-
Notifications
You must be signed in to change notification settings - Fork 8
/
asymmetric_decryption_key_store_test.go
34 lines (32 loc) · 1.06 KB
/
asymmetric_decryption_key_store_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package gose
import (
"github.com/ThalesGroup/gose/jose"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
)
func TestAsymmetricDecryptionKeyStoreImpl_Get(t *testing.T) {
generator := &RsaKeyDecryptionKeyGenerator{}
key, err := generator.Generate(jose.AlgRSAOAEP, 2048, []jose.KeyOps{jose.KeyOpsDecrypt})
require.NoError(t, err)
store, err := NewAsymmetricDecryptionKeyStoreImpl(map[string]AsymmetricDecryptionKey{
"test": key,
})
require.NoError(t, err)
// Look for key with matching kid
first, err := store.Get("test")
assert.NoError(t, err)
assert.NotNil(t, first)
// Look without kid. There's only 1 key so we expect that to be returned.
second, err := store.Get("unknown")
assert.NoError(t, err)
assert.NotNil(t, second)
// Test that we never return a key if kids do not match and we have multiple keys in the store
store, err = NewAsymmetricDecryptionKeyStoreImpl(map[string]AsymmetricDecryptionKey{
"test": key,
"another": key,
})
third, err := store.Get("unknown")
assert.Error(t, err)
assert.Nil(t, third)
}