From 1a32bdf92cceb7a42e5636e12d95609e17b8f786 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 11 Dec 2017 22:49:09 +0100 Subject: crypto: fix error check in toECDSA (#15632) With this change, key, err := crypto.HexToECDSA("000000...") returns nil key and an error instead of a non-nil key with nil X and Y inside. Issue found by @guidovranken. --- crypto/crypto_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'crypto/crypto_test.go') diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index b4c441e5f..835035462 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -40,6 +40,15 @@ func TestKeccak256Hash(t *testing.T) { checkhash(t, "Sha3-256-array", func(in []byte) []byte { h := Keccak256Hash(in); return h[:] }, msg, exp) } +func TestToECDSAErrors(t *testing.T) { + if _, err := HexToECDSA("0000000000000000000000000000000000000000000000000000000000000000"); err == nil { + t.Fatal("HexToECDSA should've returned error") + } + if _, err := HexToECDSA("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); err == nil { + t.Fatal("HexToECDSA should've returned error") + } +} + func BenchmarkSha3(b *testing.B) { a := []byte("hello world") for i := 0; i < b.N; i++ { -- cgit v1.2.3