Skip to content

Commit

Permalink
add test for crypto package (issue #59, improve code coverage)
Browse files Browse the repository at this point in the history
  • Loading branch information
whyrusleeping committed Sep 14, 2014
1 parent 0ec9dce commit d523994
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions crypto/key_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package crypto

import "testing"

func TestRsaKeys(t *testing.T) {
sk, _, err := GenerateKeyPair(RSA, 512)
if err != nil {
t.Fatal(err)
}
testKeySignature(t, sk)
testKeyEncoding(t, sk)
}

func testKeySignature(t *testing.T, sk PrivKey) {
pk := sk.GetPublic()

text := sk.GenSecret()
sig, err := sk.Sign(text)
if err != nil {
t.Fatal(err)
}

valid, err := pk.Verify(text, sig)
if err != nil {
t.Fatal(err)
}

if !valid {
t.Fatal("Invalid signature.")
}
}

func testKeyEncoding(t *testing.T, sk PrivKey) {
skb, err := sk.Bytes()
if err != nil {
t.Fatal(err)
}

_, err = UnmarshalPrivateKey(skb)
if err != nil {
t.Fatal(err)
}

pk := sk.GetPublic()
pkb, err := pk.Bytes()
if err != nil {
t.Fatal(err)
}

_, err = UnmarshalPublicKey(pkb)
if err != nil {
t.Fatal(err)
}
}

0 comments on commit d523994

Please sign in to comment.