from binascii import hexlify, unhexlify from struct import pack, unpack from sys import exit from highlevelcrypto import makeCryptor, makePubCryptor, privToPub, hexToPubkey from pyelliptic import ECC from shared import decodeWalletImportFormat privencryptionkey = hexlify(decodeWalletImportFormat('5J9ydXT7Ep9pgbbkWei8LNsBMEdv3pgYq4nMnh2mqETzFsH7QYC')) #privesigningkey = hexlify(decodeWalletImportFormat('5KZ69cpaXNh4GcaueuibSLae6nyYNRbq5ouX1eA2jFF75jT9Qcr')) #privencryptionkey = hexlify(decodeWalletImportFormat('5KZ69cpaXNh4GcaueuibSLae6nyYNRbq5ouX1eA2jFF75jT9Qcr')) pubkey = privToPub(privencryptionkey) c = makeCryptor(privencryptionkey) eh = '00000000639194c10000000201019780d6685fb615a1ea82be2b981645ac02ca00201126d12e5aec99856dcc2c1bdaa964643f54524f847d36ab67810fe8bc053b180020f7dfe03154d20aa799865d36b13447f4ede4147534f5ab6b33cc4584b924056fe19f449889ebed27470fa4e16964bc1c11be1dbe5e448075aacf29782d32e90956b67f731459aeb511f6e61c905ca5314aa1fae58fbbbac2852bf4ee9da92fa8aa6df56521a10e094b3ca23582300e59e84c1aa46f7815a0d518faf5c4c7e1fc8439097b9989120811c1824e92677ddc35f0e34228b284d813bb421e0a8f020acb6eca51b0dfb6d0066ef5c7a483c02667af26551a3df7298533b203fc699647d2ff966f8615186586e5d6bf1e70c14331cc72a7614cf7b4648d32fc93a6bebdf0431c417af76f5827659c8e72c35414bcb59afa0ba8421c2665048f51e49d9d966063a269bda815ed7e9822760469cf9ed1dd182e74c61bc7e5a692cc966eae27982490a085199033dc0964b9eadbec22d5784d7b725b4c492b5d648d087c50058195ec4e7a9219f10f74dab9383dc2' e = unhexlify(eh)[14:] #e = unhexlify(eh) #e = unhexlify(eh)[4:] #print e c.decrypt(e) exit(0) m = '040100000001ecdc884536409bc7d387aaf521f95a6b964f20a25bc6cd597165dd6fa76b2c3cf0c8f463480bc2facfa8c9abbe386d528d876d249e0b8ead240a2c6196ba94e547e2673246034a2c920158410dfe970127bfc1efe4d4db58eb48408f338aebe07362e91936e654b3b041591a6c05e5882f51f59582db6808497d4572339d7a0dfd03e8fd03e80083d970e98aa0edec730577a43bdae373953706010a686579207468657265210046304402207ff3b4613dc5deac188b2cfdcbdaafaf567e40bc6859c4612ae9a045786bd48602205c54802071d7205ea5be91c2fc55fbf47d2316f65b9c23e2c7894b9d5d8c900f' #cp = ECC() #e = cp.encrypt(unhexlify(m), hexToPubkey(pubkey)) #print(hexlify(e)) #print(len(e)) l = len(e) print("IV") print(hexlify(e[0:16])) print("Curve type") print(hexlify(e[16:18])) print("X length") print(hexlify(e[18:20])) print("X") print(hexlify(e[20:52])) print("Y length") print(hexlify(e[52:54])) print("Y") print(hexlify(e[54:86])) print("encrypted") print(hexlify(e[86:l-32])) print("HMAC") print(hexlify(e[-32:])) retval = c.decrypt(e) print(retval) print "pubkey" print pubkey m2 = hexlify(e) offset = 0 print "addressversion" print unhexlify(m2)[offset:offset+1] offset += 1 print "stream" print unhexlify(m2)[offset:offset+1] offset += 1 print "behaviour" print unhexlify(m2)[offset:offset+4] offset += 4 print "signkey" print unhexlify(m2)[offset:offset+64] offset += 64 print "enckey" print unhexlify(m2)[offset:offset+64] offset += 64 print "trials" print unhexlify(m2)[offset:offset+2] offset += 2 print "extra" print unhexlify(m2)[offset:offset+2] offset += 2 print "dest" print unhexlify(m2)[offset:offset+20] offset += 20 print "Encoding" print unhexlify(m2)[offset:offset+1] offset += 1 print "Length" print unhexlify(m2)[offset:offset+1]