def verify(self, message): pub = PublicKey(self.pub_key) message = VarInt(len(message)).encode() + message # LOGGER.debug("Comparing with %r" % (MESSAGE_TEMPLATE.format(message).encode())) try: good = pub.verify(self.sig_ser, MESSAGE_TEMPLATE.format(message).encode()) except Exception: LOGGER.exception("Verification failed") good = False return good
def verify(self, message): pub = PublicKey(self.pub_key) message = VarInt(len(message)).encode() + message try: # sig_raw = pub.ecdsa_deserialize(self.sig_ser) good = pub.verify(self.sig_ser, Define.MESSAGE_TEMPLATE % message) except Exception: print("Verification failed") good = False return good
def verify(self, message): pub = PublicKey(self.pub_key) message = VarInt(len(message)).encode() + message LOGGER.debug("Comparing with %r" % (MESSAGE_TEMPLATE % message)) try: # sig_raw = pub.ecdsa_deserialize(self.sig_ser) good = pub.verify(self.sig_ser, MESSAGE_TEMPLATE % message) except Exception: LOGGER.exception("Verification failed") good = False return good
def verify_hash(message, signature, public_key): if not isinstance(signature, bytes): raise TypeError("signature must be bytes") if not isinstance(public_key, bytes): raise TypeError("public_key must be bytes") pub_key = PublicKey(public_key) try: is_verified = pub_key.verify(signature, message) except ValueError as e: logger.error(str(e)) logger.error("Signature that could not be parsed %s, message: %s", signature, message) return False return is_verified
def valid(self): """Check if this object is valid or not""" if not self.signature: return False assert isinstance(self.signature, bytes) assert 68 <= len(self.signature) <= 71 assert isinstance(self.user_public_key, bytes) assert len(self.user_public_key) == 33 assert isinstance(self.user_address, str) assert re.match(r'^(?:0[xX])?[0-9a-fA-F]{40}$', self.user_address) public_key = PublicKey(self.user_public_key) verified = public_key.verify( self.signature, self.serialize(include_signature=False), ) if not verified: return False if get_address(public_key) != self.user_address: return False return self.id == self.hash