From d5239945a40711e16690a748ba4da9c8a9bf0fdc Mon Sep 17 00:00:00 2001 From: Jeromy Date: Sun, 14 Sep 2014 05:07:55 +0000 Subject: [PATCH] add test for crypto package (issue #59, improve code coverage) --- crypto/key_test.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 crypto/key_test.go diff --git a/crypto/key_test.go b/crypto/key_test.go new file mode 100644 index 00000000000..c002c581965 --- /dev/null +++ b/crypto/key_test.go @@ -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) + } +}