From 07406791c9b09beb2b9ca97260017ab1ebe04067 Mon Sep 17 00:00:00 2001 From: Josh Rickmar Date: Fri, 16 Oct 2015 14:11:05 -0400 Subject: [PATCH] rpcserver: Copy btcwallet fix for verifymessage. --- rpcserver.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rpcserver.go b/rpcserver.go index 99928219..402c239d 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -3372,8 +3372,12 @@ func handleVerifyMessage(s *rpcServer, cmd interface{}, closeChan <-chan struct{ // Validate the signature - this just shows that it was valid at all. // we will compare it with the key next. + var buf bytes.Buffer + wire.WriteVarString(&buf, 0, "Bitcoin Signed Message:\n") + wire.WriteVarString(&buf, 0, c.Message) + expectedMessageHash := wire.DoubleSha256(buf.Bytes()) pk, wasCompressed, err := btcec.RecoverCompact(btcec.S256(), sig, - wire.DoubleSha256([]byte("Bitcoin Signed Message:\n"+c.Message))) + expectedMessageHash) if err != nil { // Mirror Bitcoin Core behavior, which treats error in // RecoverCompact as invalid signature.