@cryptotaxi247 / kubo / commits / d5239945a

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 +}