-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathkey_test.go
76 lines (58 loc) · 1.79 KB
/
key_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
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package tpmk
import (
"testing"
"github.com/google/go-tpm/tpmutil"
"github.com/google/go-tpm-tools/simulator"
"github.com/google/go-tpm/legacy/tpm2"
"github.com/stretchr/testify/require"
)
func TestPrimaryKeyGenerate(t *testing.T) {
dev, err := simulator.Get()
require.NoError(t, err)
defer dev.Close()
const (
handle = 0x81000000
pw = ""
attr = tpm2.FlagSign | tpm2.FlagFixedTPM | tpm2.FlagUserWithAuth | tpm2.FlagFixedParent | tpm2.FlagSensitiveDataOrigin
)
pub1, err := GenRSAPrimaryKey(dev, handle, pw, pw, attr)
require.NoError(t, err)
require.NotEmpty(t, pub1)
_, pub2, err := ReadPublicKey(dev, handle)
require.NoError(t, err)
require.Exactly(t, pub1, pub2)
}
func TestKeyDelete(t *testing.T) {
dev, err := simulator.Get()
require.NoError(t, err)
defer dev.Close()
const (
handle tpmutil.Handle = 0x81000000
pw = ""
attr = tpm2.FlagSign | tpm2.FlagFixedTPM | tpm2.FlagUserWithAuth | tpm2.FlagFixedParent | tpm2.FlagSensitiveDataOrigin
)
_, err = GenRSAPrimaryKey(dev, handle, pw, pw, attr)
require.NoError(t, err)
handles, err := KeyList(dev)
require.NoError(t, err)
require.Contains(t, handles, handle)
err = DeleteKey(dev, handle, pw)
require.NoError(t, err)
handles, err = KeyList(dev)
require.NoError(t, err)
require.NotContains(t, handles, handle)
}
// func TestRSAKeyImport(t *testing.T) {
// dev, err := simulator.Get()
// require.NoError(t, err)
// defer dev.Close()
// const (
// handle tpmutil.Handle = 0x81000000
// pw = ""
// attr = tpm2.FlagSign | tpm2.FlagUserWithAuth | tpm2.FlagSensitiveDataOrigin
// )
// key, err := rsa.GenerateKey(rand.Reader, 2048)
// require.NoError(t, err)
// err = ImportKey(dev, handle, key, pw, attr)
// require.NoError(t, err)
// }