diff --git a/privkey_test.go b/privkey_test.go new file mode 100644 index 00000000..49c89bc0 --- /dev/null +++ b/privkey_test.go @@ -0,0 +1,58 @@ +// Copyright (c) 2013-2014 Conformal Systems LLC. +// Use of this source code is governed by an ISC +// license that can be found in the LICENSE file. + +package btcec_test + +import ( + "bytes" + "testing" + + "github.com/conformal/btcec" +) + +func TestPrivKeys(t *testing.T) { + tests := []struct { + name string + key []byte + }{ + { + name: "check curve", + key: []byte{ + 0xea, 0xf0, 0x2c, 0xa3, 0x48, 0xc5, 0x24, 0xe6, + 0x39, 0x26, 0x55, 0xba, 0x4d, 0x29, 0x60, 0x3c, + 0xd1, 0xa7, 0x34, 0x7d, 0x9d, 0x65, 0xcf, 0xe9, + 0x3c, 0xe1, 0xeb, 0xff, 0xdc, 0xa2, 0x26, 0x94, + }, + }, + } + + for _, test := range tests { + priv, pub := btcec.PrivKeyFromBytes(btcec.S256(), test.key) + + _, err := btcec.ParsePubKey( + pub.SerializeUncompressed(), btcec.S256()) + if err != nil { + t.Errorf("%s privkey: %v", test.name, err) + continue + } + + hash := []byte{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9} + sig, err := priv.Sign(hash) + if err != nil { + t.Errorf("%s could not sign: %v", test.name, err) + continue + } + + if !sig.Verify(hash, pub) { + t.Errorf("%s could not verify: %v", test.name, err) + continue + } + + serializedKey := priv.Serialize() + if !bytes.Equal(serializedKey, test.key) { + t.Errorf("%s unexpected serialized bytes - got: %x, "+ + "want: %x", test.name, serializedKey, test.key) + } + } +} diff --git a/pubkey_test.go b/pubkey_test.go index 3ad6def4..5a144afd 100644 --- a/pubkey_test.go +++ b/pubkey_test.go @@ -12,11 +12,6 @@ import ( "github.com/davecgh/go-spew/spew" ) -type privKeyTest struct { - name string - key []byte -} - type pubKeyTest struct { name string key []byte @@ -24,18 +19,6 @@ type pubKeyTest struct { isValid bool } -var privKeyTests = []privKeyTest{ - { - name: "check curve", - key: []byte{ - 0xea, 0xf0, 0x2c, 0xa3, 0x48, 0xc5, 0x24, 0xe6, - 0x39, 0x26, 0x55, 0xba, 0x4d, 0x29, 0x60, 0x3c, - 0xd1, 0xa7, 0x34, 0x7d, 0x9d, 0x65, 0xcf, 0xe9, - 0x3c, 0xe1, 0xeb, 0xff, 0xdc, 0xa2, 0x26, 0x94, - }, - }, -} - var pubKeyTests = []pubKeyTest{ // pubkey from bitcoin blockchain tx // 0437cd7f8525ceed2324359c2d0ba26006d92d85 @@ -218,31 +201,6 @@ var pubKeyTests = []pubKeyTest{ }, } -func TestPrivKeys(t *testing.T) { - for _, test := range privKeyTests { - priv, pub := btcec.PrivKeyFromBytes(btcec.S256(), test.key) - - _, err := btcec.ParsePubKey( - pub.SerializeUncompressed(), btcec.S256()) - if err != nil { - t.Errorf("%s privkey: %v", test.name, err) - continue - } - - hash := []byte{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9} - sig, err := priv.Sign(hash) - if err != nil { - t.Errorf("%s could not sign: %v", test.name, err) - continue - } - - if !sig.Verify(hash, pub) { - t.Errorf("%s could not verify: %v", test.name, err) - continue - } - } -} - func TestPubKeys(t *testing.T) { for _, test := range pubKeyTests { pk, err := btcec.ParsePubKey(test.key, btcec.S256())