pass hash to pubkey_from_signature
This commit is contained in:
parent
d4dcd551e4
commit
31ab5b2e0a
|
@ -486,14 +486,14 @@ def msg_magic(message):
|
|||
|
||||
def verify_message(address, sig, message):
|
||||
try:
|
||||
public_key, compressed = pubkey_from_signature(sig, message)
|
||||
h = Hash(msg_magic(message))
|
||||
public_key, compressed = pubkey_from_signature(sig, h)
|
||||
# check public key using the address
|
||||
pubkey = point_to_ser(public_key.pubkey.point, compressed)
|
||||
addr = public_key_to_p2pkh(pubkey)
|
||||
if address != addr:
|
||||
raise Exception("Bad signature")
|
||||
# check message
|
||||
h = Hash(msg_magic(message))
|
||||
public_key.verify_digest(sig[1:], h, sigdecode = ecdsa.util.sigdecode_string)
|
||||
return True
|
||||
except Exception as e:
|
||||
|
@ -575,7 +575,7 @@ class MyVerifyingKey(ecdsa.VerifyingKey):
|
|||
return klass.from_public_point( Q, curve )
|
||||
|
||||
|
||||
def pubkey_from_signature(sig, message):
|
||||
def pubkey_from_signature(sig, h):
|
||||
if len(sig) != 65:
|
||||
raise Exception("Wrong encoding")
|
||||
nV = ord(sig[0])
|
||||
|
@ -587,7 +587,6 @@ def pubkey_from_signature(sig, message):
|
|||
else:
|
||||
compressed = False
|
||||
recid = nV - 27
|
||||
h = Hash(msg_magic(message))
|
||||
return MyVerifyingKey.from_signature(sig[1:], recid, h, curve = SECP256k1), compressed
|
||||
|
||||
|
||||
|
@ -636,12 +635,12 @@ class EC_KEY(object):
|
|||
|
||||
|
||||
def verify_message(self, sig, message):
|
||||
public_key, compressed = pubkey_from_signature(sig, message)
|
||||
h = Hash(msg_magic(message))
|
||||
public_key, compressed = pubkey_from_signature(sig, h)
|
||||
# check public key
|
||||
if point_to_ser(public_key.pubkey.point, compressed) != point_to_ser(self.pubkey.point, compressed):
|
||||
raise Exception("Bad signature")
|
||||
# check message
|
||||
h = Hash(msg_magic(message))
|
||||
public_key.verify_digest(sig[1:], h, sigdecode = ecdsa.util.sigdecode_string)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue