diff --git a/crypto/signature_test.go b/crypto/signature_test.go index e7e2b67db3..2e67f6f76f 100644 --- a/crypto/signature_test.go +++ b/crypto/signature_test.go @@ -19,6 +19,7 @@ package crypto import ( "bytes" "crypto/ecdsa" + "reflect" "testing" "github.com/ethereum/go-ethereum/common" @@ -100,6 +101,24 @@ func TestCompressPubkey(t *testing.T) { } } +func TestPubkeyRandom(t *testing.T) { + const runs = 200 + + for i := 0; i < runs; i++ { + key, err := GenerateKey() + if err != nil { + t.Fatalf("iteration %d: %v", i, err) + } + pubkey2, err := DecompressPubkey(CompressPubkey(&key.PublicKey)) + if err != nil { + t.Fatalf("iteration %d: %v", i, err) + } + if !reflect.DeepEqual(key.PublicKey, *pubkey2) { + t.Fatalf("iteration %d: keys not equal", i) + } + } +} + func BenchmarkEcrecoverSignature(b *testing.B) { for i := 0; i < b.N; i++ { if _, err := Ecrecover(testmsg, testsig); err != nil {