keys: fix bad compressed public key decoding, add a test

The error was not propagated properly here.
This commit is contained in:
Roman Khimov 2019-12-25 17:44:30 +03:00
parent b246653f62
commit 5ac8cae221
2 changed files with 7 additions and 0 deletions

View file

@ -189,6 +189,7 @@ func (p *PublicKey) DecodeBinary(r *io.BinReader) {
ylsb := uint(prefix & 0x1)
y, err = decodeCompressedY(x, ylsb)
if err != nil {
r.Err = err
return
}
case 0x04:

View file

@ -63,6 +63,12 @@ func TestDecodeFromString(t *testing.T) {
require.Error(t, err)
}
func TestDecodeFromStringBadCompressed(t *testing.T) {
str := "02ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
_, err := NewPublicKeyFromString(str)
require.Error(t, err)
}
func TestPubkeyToAddress(t *testing.T) {
pubKey, err := NewPublicKeyFromString("031ee4e73a17d8f76dc02532e2620bcb12425b33c0c9f9694cc2caa8226b68cad4")
require.NoError(t, err)