How to generate public and private key pairs from the 12 seed words in python
How to generate public and private key pairs from the 12 seed words in python
I basically followed the instructions here How to generate mycelium addresses from the 12 words in python
So my code is similar:
from bip32utils import BIP32Key from bip32utils import BIP32_HARDEN from bip32utils import Base58 import os, bip39 strength_bits = 128 entropy = os.urandom(strength_bits // 8) wallet_generator = bip39.Mnemonic('english') mnemonic = wallet_generator.to_mnemonic(entropy) assert wallet_generator.to_entropy(mnemonic) == entropy # see, bijective! # Or specify the mnemonic directly if you prefer: mnemonic = 'aware report movie exile buyer drum poverty supreme gym oppose float elegant' passphrase = 'test' seed = bip39.Mnemonic.to_seed(mnemonic, passphrase=passphrase) key = BIP32Key.fromEntropy(seed) account_number = 0 i = 0 print key.ChildKey(44 + BIP32_HARDEN) \ .ChildKey(0 + BIP32_HARDEN) \ .ChildKey(account_number + BIP32_HARDEN) \ .ChildKey(0) \ .ChildKey(i) \ .Address()
And I verified it using https://iancoleman.io/bip39/#english that the generated address is indeed the first address that this webpage generated as well. However, I also want to get the public and private key pairs using this same library. I originally tried:
print Base58.check_encode(key.ChildKey(44 + BIP32_HARDEN) \ .ChildKey(0 + BIP32_HARDEN) \ .ChildKey(account_number + BIP32_HARDEN) \ .ChildKey(0) \ .ChildKey(i) \ .PublicKey()) print Base58.check_encode(key.ChildKey(44 + BIP32_HARDEN) \ .ChildKey(0 + BIP32_HARDEN) \ .ChildKey(account_number + BIP32_HARDEN) \ .ChildKey(0) \ .ChildKey(i) \ .PrivateKey())
However, the output of these two calls are not the same as the ones provided by the website above for the same address.
So my question is: what's the proper way for me to generate the public and private key pairs?
https://ift.tt/2tyaH2z
Comments
Post a Comment