diff --git a/core/vm/address.go b/core/vm/address.go index df801863fc..45c93e3119 100644 --- a/core/vm/address.go +++ b/core/vm/address.go @@ -82,7 +82,7 @@ func ecrecoverFunc(in []byte) []byte { rsv := append(in[64:128], byte(v.Uint64())) pubKey := crypto.Ecrecover(in[:32], rsv) // make sure the public key is a valid one - if pubKey == nil || len(pubKey) != 65 { + if pubKey == nil { return nil } diff --git a/crypto/crypto.go b/crypto/crypto.go index 9a1559fbfb..37b6a38a6d 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -21,11 +21,16 @@ import ( "github.com/ethereum/go-ethereum/crypto/ecies" "github.com/ethereum/go-ethereum/crypto/secp256k1" "github.com/ethereum/go-ethereum/crypto/sha3" + "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/rlp" "golang.org/x/crypto/pbkdf2" "golang.org/x/crypto/ripemd160" ) +var ( + cryptologger = logger.NewLogger("CRYPTO") +) + func init() { // specify the params for the s256 curve ecies.AddParamsForCurve(S256(), ecies.ECIES_AES128_SHA256) @@ -69,8 +74,10 @@ func Ripemd160(data []byte) []byte { } func Ecrecover(hash, sig []byte) []byte { - r, _ := secp256k1.RecoverPubkey(hash, sig) - + r, err := secp256k1.RecoverPubkey(hash, sig) + if err != nil { + cryptologger.Errorf("EC RECOVER FAIL: ", err) + } return r }