add test for crypto package (issue #59, improve code coverage)

This commit is contained in:
Jeromy 2014-09-14 05:07:55 +00:00
parent 0ec9dce19c
commit d5239945a4

54
crypto/key_test.go Normal file
View File

@ -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)
}
}