mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-18 04:27:02 +02:00
* VAULT-15547 First pass at agent/proxy decoupling * VAULT-15547 Fix some imports * VAULT-15547 cases instead of string.Title * VAULT-15547 changelog * VAULT-15547 Fix some imports * VAULT-15547 some more dependency updates * VAULT-15547 More dependency paths * VAULT-15547 godocs for tests * VAULT-15547 godocs for tests * VAULT-15547 test package updates * VAULT-15547 test packages * VAULT-15547 add proxy to test packages * VAULT-15547 gitignore * VAULT-15547 address comments * VAULT-15547 Some typos and small fixes
62 lines
1.1 KiB
Go
62 lines
1.1 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package keymanager
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"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,
|
|
},
|
|
}
|
|
|
|
ctx := context.Background()
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
m, err := NewPassthroughKeyManager(ctx, 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(ctx)
|
|
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)
|
|
}
|
|
})
|
|
}
|
|
}
|