add test for crypto package (issue #59, improve code coverage)
Jeromy committed
Sep 14, 2014 at 05:07 UTC
d5239945a40711e16690a748ba4da9c8a9bf0fdc
1 file changed
+54
crypto/key_test.go
new
+54
@@ -0,0 +1,54 @@
1
+package crypto
2
+
3
+import "testing"
4
+
5
+func TestRsaKeys(t *testing.T) {
6
+ sk, _, err := GenerateKeyPair(RSA, 512)
7
+ if err != nil {
8
+ t.Fatal(err)
9
+ }
10
+ testKeySignature(t, sk)
11
+ testKeyEncoding(t, sk)
12
+}
13
+
14
+func testKeySignature(t *testing.T, sk PrivKey) {
15
+ pk := sk.GetPublic()
16
+
17
+ text := sk.GenSecret()
18
+ sig, err := sk.Sign(text)
19
+ if err != nil {
20
+ t.Fatal(err)
21
+ }
22
+
23
+ valid, err := pk.Verify(text, sig)
24
+ if err != nil {
25
+ t.Fatal(err)
26
+ }
27
+
28
+ if !valid {
29
+ t.Fatal("Invalid signature.")
30
+ }
31
+}
32
+
33
+func testKeyEncoding(t *testing.T, sk PrivKey) {
34
+ skb, err := sk.Bytes()
35
+ if err != nil {
36
+ t.Fatal(err)
37
+ }
38
+
39
+ _, err = UnmarshalPrivateKey(skb)
40
+ if err != nil {
41
+ t.Fatal(err)
42
+ }
43
+
44
+ pk := sk.GetPublic()
45
+ pkb, err := pk.Bytes()
46
+ if err != nil {
47
+ t.Fatal(err)
48
+ }
49
+
50
+ _, err = UnmarshalPublicKey(pkb)
51
+ if err != nil {
52
+ t.Fatal(err)
53
+ }
54
+}