...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package linux
15
16 import (
17 "bytes"
18 "crypto"
19 "crypto/rsa"
20 "flag"
21 "testing"
22 )
23
24 const (
25 testModule = "/usr/local/lib/softhsm/libsofthsm2.so"
26 testLabel = "Demo Object"
27 testUserPin = "0000"
28 )
29
30 var testSlot = *flag.String("testSlot", "", "libsofthsm2 slot location")
31
32 func TestEncrypt(t *testing.T) {
33 sk, err := NewSecureKey(testModule, testSlot, testLabel, testUserPin)
34 if err != nil {
35 t.Errorf("Client Encrypt: error generating secure key, %q", err)
36 }
37 message := "Plain text to encrypt"
38 bMessage := []byte(message)
39
40 _, err = sk.Encrypt(nil, bMessage, crypto.SHA1)
41 if err != nil {
42 t.Errorf("Client Encrypt error: %q", err)
43 }
44 }
45
46 func TestDecrypt(t *testing.T) {
47 sk, err := NewSecureKey(testModule, testSlot, testLabel, testUserPin)
48 if err != nil {
49 t.Errorf("Client Decrypt: error generating secure key, %q", err)
50 }
51 message := "Plain text to encrypt"
52 bMessage := []byte(message)
53
54 cipher, err := sk.Encrypt(nil, bMessage, crypto.SHA1)
55 if err != nil {
56 t.Errorf("Client Encrypt error: %q", err)
57 }
58 decrypted, err := sk.Decrypt(nil, cipher, &rsa.OAEPOptions{Hash: crypto.SHA1})
59 if err != nil {
60 t.Fatalf("Client Decrypt error: %v", err)
61 }
62 decrypted = bytes.Trim(decrypted, "\x00")
63 if string(decrypted) != message {
64 t.Errorf("Client Decrypt error: expected %q, got %q", message, string(decrypted))
65 }
66 }
67
View as plain text