def test_bip32_descend(): master = btc.bip32_master_key(b'\x07' * 32) end_key = btc.bip32_descend(master, [2, 3, 10000]) assert end_key == binascii.unhexlify( "6856ef965940a1a7b1311dc041050ac0013e326c7ff4e2c677a7694b4f0405c901") end_key = btc.bip32_descend(master, 2, 5, 4, 5) assert end_key == binascii.unhexlify( "d2d816b6485103c0d7ff95482788f0e8e73fa11817079e006d47979d8196c4b101")
def test_bip32_vector(vector): master = btc.bip32_master_key(vector['seed']) assert master == vector['keys'][0][0], 'failed: master xpriv' masterpub = btc.bip32_privtopub(master) assert masterpub == vector['keys'][0][1], 'failed: master xpub' currentkey = master for i in range(1, len(vector['depths'])): currentkey = btc.bip32_ckd(currentkey, vector['depths'][i]) print(currentkey) print(vector['keys'][i][0]) assert currentkey == vector['keys'][i][ 0], 'failed: child priv key, should be: ' + vector['keys'][i][0] pub = btc.bip32_privtopub(currentkey) print(pub) print(vector['keys'][i][1]) assert pub == vector['keys'][i][ 1], 'failed: child pub key, should be: ' + vector['keys'][i][1]
def derive_bip32_master_key(cls, seed): # FIXME: slight encoding mess return btc.bip32_deserialize( btc.bip32_master_key(seed, vbytes=cls.BIP32_priv_vbytes))