mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-08 23:57:01 +02:00
Adds the option of a write-through cache, backed by boltdb Co-authored-by: Theron Voran <tvoran@users.noreply.github.com> Co-authored-by: Jason O'Donnell <2160810+jasonodonnell@users.noreply.github.com> Co-authored-by: Calvin Leung Huang <cleung2010@gmail.com>
57 lines
972 B
Go
57 lines
972 B
Go
package keymanager
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestKeyManager_PassthrougKeyManager(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
key []byte
|
|
wantErr bool
|
|
}{
|
|
{
|
|
"new key",
|
|
nil,
|
|
false,
|
|
},
|
|
{
|
|
"existing valid key",
|
|
[]byte("e679e2f3d8d0e489d408bc617c6890d6"),
|
|
false,
|
|
},
|
|
{
|
|
"invalid key length",
|
|
[]byte("foobar"),
|
|
true,
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
m, err := NewPassthroughKeyManager(tc.key)
|
|
if tc.wantErr {
|
|
require.Error(t, err)
|
|
return
|
|
}
|
|
require.NoError(t, err)
|
|
|
|
if w := m.Wrapper(); w == nil {
|
|
t.Fatalf("expected non-nil wrapper from the key manager")
|
|
}
|
|
|
|
token, err := m.RetrievalToken()
|
|
if err != nil {
|
|
t.Fatalf("unable to retrieve token: %s", err)
|
|
}
|
|
|
|
if len(tc.key) != 0 && !bytes.Equal(tc.key, token) {
|
|
t.Fatalf("expected key bytes: %x, got: %x", tc.key, token)
|
|
}
|
|
})
|
|
}
|
|
}
|