示例#1
0
 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))
示例#2
0
    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))
示例#3
0
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()
示例#4
0
 def create_signature(self, sha3hash, private_key):
     k = Key(private_key)
     signature = k.sign(sha3hash)
     self.signature = signature
     return signature