def get_xkeys(self, seed, t, passphrase, derivation): assert is_any_2fa_seed_type(t) xtype = 'standard' if t == '2fa' else 'p2wsh' bip32_seed = Mnemonic.mnemonic_to_seed(seed, passphrase) xprv, xpub = bip32_root(bip32_seed, xtype) xprv, xpub = bip32_private_derivation(xprv, "m/", derivation) return xprv, xpub
def _do_test_bip32(self, seed, sequence): xprv, xpub = bip32_root(bfh(seed), 'standard') self.assertEqual("m/", sequence[0:2]) path = 'm' sequence = sequence[2:] for n in sequence.split('/'): child_path = path + '/' + n if n[-1] != "'": xpub2 = bip32_public_derivation(xpub, path, child_path) xprv, xpub = bip32_private_derivation(xprv, path, child_path) if n[-1] != "'": self.assertEqual(xpub, xpub2) path = child_path return xpub, xprv
def get_xkeys(self, seed, passphrase, derivation): bip32_seed = Mnemonic.mnemonic_to_seed(seed, passphrase) xprv, xpub = bip32_root(bip32_seed, 'standard') xprv, xpub = bip32_private_derivation(xprv, "m/", derivation) return xprv, xpub
mkey_group.add_argument( "-m", "--master", help="provide master private key \"-\" to read from stdin", dest="master_key" ) parser.add_argument( "-c", "--convert", help="Convert provided master key to this type", choices=key_types, dest="convert" ) output_group = parser.add_argument_group(description="Output options") output_group.add_argument( "-d", "--derivation-path", help="derivation path", dest="derivation_path", default=default_derivation_path) output_group.add_argument( "-p", "--xprv", help="Generate xprv (default is xpub)", action="store_true", dest="output_xprv" ) args = parser.parse_args() master_key = args.master_key if args.gen_master: key_type = args.gen_master if args.gen_master != "p2pkh" else "standard" entropy = ecdsa.util.randrange( pow( 2, entropy_size * 8 ) ) entropy_in_bytes = entropy.to_bytes( entropy_size , sys.byteorder ) xprv,xpub = bip32.bip32_root( entropy_in_bytes, key_type ) master_key = xprv elif args.master_key == "-": master_key = sys.stdin.readline().strip() if args.convert: if args.gen_master: sys.exit( "Convert option cannot be used with generate master option" ) else: convert_type = args.convert if args.convert !="p2pkh" else "standard" if bip32.is_xpub(master_key): xtype, depth, fingerprint, child_number, c, K_or_k = bip32.deserialize_xpub( master_key ) master_key = bip32.serialize_xpub( convert_type, c, K_or_k, depth, fingerprint, child_number ) elif bip32.is_xprv(master_key): xtype, depth, fingerprint, child_number, c, K_or_k = bip32.deserialize_xprv( master_key ) master_key = bip32.serialize_xprv( convert_type, c, K_or_k, depth, fingerprint, child_number )