def sub_transaction(self, recipient, amount): # 交易结构[[t1,t2,t3]] if amount > self.amount: return False else: t1 = {# 字典顺序不能修改,否则网络传输过程中改变最终hash值 'amount': amount, 'recipient': recipient, 'sender': str(self.public_key), } signature = sign(t1, self.private_key) t2 = {'signature': signature} t3 = {'txhash': sha_256(t1)} tx = [t1, t2, t3] self.current_transactions.append(tx) return True
def sign_verify(private_key, message, sender, recipient, amount): sign_pub_key = wallet.sign(private_key, message) return sign_pub_key
addrfrom = P2PKHBitcoinAddress.from_pubkey(pubkey) addrfromhex = P2PKHBitcoinAddress.from_pubkey(pubkeyhex.decode("hex")) print("\nAddress From %s" % addrfrom) print("\nAddress From Hex %s" % addrfromhex) message = "bitid://localhost:5000/callback?x=30f56bc022dde976&u=1" print("\nClear: %s" % message) encrypted = encrypt.encrypt(wallet.get_public_key(), message) print("\nEncrypted: %s" % encrypted) decrypted = encrypt.decrypt(wallet.get_private_key_wif(), encrypted) print("\nDecrypted: %s" % decrypted) signature = wallet.sign(message) print("\nSignature: %s" % signature) print("\nVerified: %s" % wallet.verify(message, signature)) test1_raw_hex = '3e52050b58e1765ca9abfce576aa0efc27eaa4dd11a4051affabd050e6b92324' test1_private_key_wif = privateKeyToWif(test1_raw_hex) test1_key = CBitcoinSecret(test1_private_key_wif) test1_pub = test1_key.pub test2_private_key_wif = wallet.get_private_key_wif() test2_key = wallet.get_private_key() test2_pub = test2_key.pub message = "foobar" print("\nClear: %s" % message)
def SignTx(self, priv_key, msg): signature_and_public_key = wallet.sign(priv_key, msg) self.msg = msg self.signature = str(signature_and_public_key[0])[2:-1] self.public_key = '04' + signature_and_public_key[-1]