def test_sign_verify(self): private_key = Key(secret_exponent=1) h = b"\x00" * 32 sig = private_key.sign(h) self.assertTrue(private_key.verify(h, sig)) public_key = private_key.public_copy() self.assertTrue(public_key.verify(h, sig)) h160_key = Key(hash160=private_key.hash160()) self.assertTrue(h160_key.verify(h, sig))
def test_verify(self): k = Key( 112173377222920129593162218520911143413373757558304408147751653234671616107365 ) owner = b'\x02\xd3\xdcYh{t%\xe3\x99\x91\x1c\x1b\x12\xbeO\xf6\x95\x83\xd0\xac\xe77\xc4\x1e\xe9\x12\xb4\x00\xd5\xeb\xd2\x14' #signature = b'0E\x02!\x00\xa6\x84\x81\xe7\xfaU\xe1\x8c\x9a\x100\xe4\xcfi\x98\xee\xb2\xcf\xe4\\\x80\nC%\xd5X\x01\x86\xae\xf0T3\x02 D\x0bR^\xaeJ&\xfc"\xa2\xf6\xb6\xa5\xe2\xbe]\x91\x0b\xb7q{\xa4D1\x80]\x88\xf5Hv\x8f\xb1' pb = PearlBase(Pearl(0), owner) up = UnspendPearls([pb]) raw = pb.get_hash() + TRANSACTION_TYPE + pb.get_hash() + b'\x00' * 33 sha3hash = sha3.sha3_256(raw).digest() signature = k.sign(sha3hash) raw += signature transaction = Transaction() transaction.unpack(raw) self.assertTrue(transaction.verify(up))
def generate_ecc_signature(content, key): key = Key(secret_exponent=from_bytes_32(a2b_hex(key))) return b2a_hex(key.sign(double_hash256(content))).decode()
def create_signature(self, sha3hash, private_key): k = Key(private_key) signature = k.sign(sha3hash) self.signature = signature return signature