Ejemplo n.º 1
0
 def test_exercise_3(self):
     r = 0x37206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c6
     s = 0x8ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec
     sig = Signature(r, s)
     self.assertEqual(
         sig.der().hex(),
         '3045022037206a0610995c58074999cb9767b87af4c4978db68c06e8e6e81d282047a7c60221008ca63759c1157ebeaec0d03cecca119fc9a75bf8e6d0fa65c841c8e2738cdaec'
     )
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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())
Ejemplo n.º 4
0
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())
Ejemplo n.º 6
0
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))
Ejemplo n.º 7
0
#
# * 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