forked from hashicorp/go-kms-wrapping
-
Notifications
You must be signed in to change notification settings - Fork 0
/
testing.go
59 lines (52 loc) · 1.4 KB
/
testing.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package aead
import (
"context"
"crypto/rand"
"testing"
wrapping "github.com/hxfs/go-kms-wrapping/v2"
"github.com/hxfs/go-kms-wrapping/v2/extras/multi"
"github.com/stretchr/testify/require"
)
// TestPooledWrapper returns a pooled aead wrapper for testing
func TestPooledWrapper(t *testing.T) wrapping.Wrapper {
t.Helper()
require := require.New(t)
testCtx := context.Background()
w1Key := make([]byte, 32)
n, err := rand.Read(w1Key)
require.NoError(err)
require.Equal(32, n)
w1 := NewWrapper()
_, err = w1.SetConfig(testCtx, wrapping.WithKeyId("w1"))
require.NoError(err)
err = w1.SetAesGcmKeyBytes(w1Key)
require.NoError(err)
w2Key := make([]byte, 32)
n, err = rand.Read(w2Key)
require.NoError(err)
require.Equal(32, n)
w2 := NewWrapper()
_, err = w2.SetConfig(testCtx, wrapping.WithKeyId("w2"))
require.NoError(err)
err = w2.SetAesGcmKeyBytes(w2Key)
require.NoError(err)
p, err := multi.NewPooledWrapper(testCtx, w1)
require.NoError(err)
return p
}
// TestWrapper returns a test aead wrapper for testing
func TestWrapper(t *testing.T) wrapping.Wrapper {
t.Helper()
require := require.New(t)
testCtx := context.Background()
w1Key := make([]byte, 32)
n, err := rand.Read(w1Key)
require.NoError(err)
require.Equal(32, n)
w := NewWrapper()
_, err = w.SetConfig(testCtx, wrapping.WithKeyId("w1"))
require.NoError(err)
err = w.SetAesGcmKeyBytes(w1Key)
require.NoError(err)
return w
}