def test_exercise_3(self): r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6 s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec sig = Signature(r, s) self.assertEqual( sig.der().hex(), '3045022037206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c60221008ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec' )
def test_der(self): testcases = ( (1, 2), (randint(0, 2**256), randint(0, 2**255)), (randint(0, 2**256), randint(0, 2**255)), ) for r, s in testcases: sig = Signature(r, s) der = sig.der() sig2 = Signature.parse(der) self.assertEqual(sig2.r, r) self.assertEqual(sig2.s, s)
def build_transaction2(transidsarr, transindexarr, pubkeysarr, amountsarr, tnet=True): tx_ins = buildinputs(transidsarr, transindexarr) print("ins") print(tx_ins) tx_outs = buildoutputs(pubkeysarr, amountsarr) print("pubkeys") print(pubkeysarr) print("outs") print(tx_outs) tx_obj = Tx(version=1, tx_ins=tx_ins, tx_outs=tx_outs, locktime=0, testnet=tnet) #hash_type = SIGHASH_ALL #z = tx_obj.sig_hash(0, hash_type) #pk = PrivateKey(secret=privatekey) for i in range(len(tx_ins)): sighash = SIGHASH_ALL z = tx_obj.sig_hash(i, sighash) #print("getting sign:") r, s = ardubridge.sign(z) s = int(s) others = N - s if others < s: s = others #print("r: " + str(r)) #print("s: " + str(s)) sig = Signature(int(r), s) der = sig.der() sig = der + bytes([sighash]) #sec = pk.point.sec() #print("public point:") #print(int(pk.point.x.hex(), 16)) #print(int(pk.point.y.hex(), 16)) x, y = ardubridge.getpubkey() if (x == -1 and y == -1): return '-1' #pub = S256Point(53237820045986896539096637357322002537362350769420441605069248472301971758546, 49407176618187043960559197373734381057571970898731550795341045595301080938882) pub = S256Point(int(x), int(y)) sec2 = pub.sec() tx_obj.tx_ins[i].script_sig = Script([sig, sec2]) return hexlify(tx_obj.serialize())
from ecc import Signature r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6 s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec sign = Signature(r, s) print(sign.der().hex())
from ecc import Signature r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6 s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec firma = Signature(r, s) print(firma.der().hex())
priv = PrivateKey(5003) priv2 = PrivateKey(2021**5) priv3 = PrivateKey(0x54321deadbeef) print(priv.wif(compressed=True, testnet=True)) print(priv2.wif(compressed=False, testnet=True)) print(priv3.wif(compressed=True, testnet=False)) """ priv = PrivateKey(9092092091210920920919099930002) print(priv.point.address(testnet=True)) print(sys.getsizeof(priv)) r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6 s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec dat_sig = Signature(r, s) #print(type(dat_sig.der().hex().encode('ascii'))) print(dat_sig.der().hex()) print(sys.getsizeof(dat_sig)) print(encode_base58_checksum(dat_sig.der())) print(sys.getsizeof(dat_sig)) num = 10011545 print(int_to_little_endian(num, 8))
# # * s = # # `0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec` # In[4]: # Exercise 3 # Find 'the DER' format for a signature whose `r` and `s` values from ecc import Signature r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6 s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec sig = Signature(r, s) print(sig.der().hex()) # result : 3045022037206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c60221008ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec # ### Exercise 4 # # Convert the following hex to binary and then to Base58: # # * `7c076ff316692a3d7eb3c3bb0f8b1488cf72e1afcd929e29307032997a838a3d` # * `eff69ef2b1bd93a66ed5219add4fb51e11a840f404876325a1e8ffe0529a2c` # * `c7207fee197d27c618aea621406f6bf5ef6fca38681d82b2f06fddbdce6feab6` # In[5]: # Exercise 4 # Convert the following hex to binary and then to Base58