Beispiel #1
0
 def test_xpriv_generation(self):
     # Test vectors.
     for test_vector in self.english_vectors:
         root_seed = bip39.root_seed_from_mnemonic(
             mnemonic=test_vector['mnemonic'], salt=test_vector['salt'])
         root = HDKey.from_root_seed(root_seed=root_seed)
         self.assertEqual(root.xpriv, test_vector['root']['xpriv'])
Beispiel #2
0
 def test_xpriv_when_derived(self):
     # Test vectors.
     for test_vector in self.english_vectors:
         root_seed = bip39.root_seed_from_mnemonic(
             mnemonic=test_vector['mnemonic'], salt=test_vector['salt'])
         root = HDKey.from_root_seed(root_seed=root_seed)
         node = root.derive_path(test_vector['derived_node']['path'])
         self.assertEqual(node.xpriv, test_vector['derived_node']['xpriv'])
Beispiel #3
0
 def test_fingerprint_generation(self):
     # Test vectors.
     for test_vector in self.english_vectors:
         root_seed = bip39.root_seed_from_mnemonic(
             mnemonic=test_vector['mnemonic'], salt=test_vector['salt'])
         root = HDKey.from_root_seed(root_seed=root_seed)
         self.assertEqual(root.fingerprint,
                          bytes.fromhex(test_vector['root']['fingerprint']))
Beispiel #4
0
 def test_private_key_generation(self):
     # Test vectors.
     for test_vector in self.english_vectors:
         root_seed = bip39.root_seed_from_mnemonic(
             mnemonic=test_vector['mnemonic'], salt=test_vector['salt'])
         root = HDKey.from_root_seed(root_seed=root_seed)
         self.assertEqual(root.privkey.hex(),
                          test_vector['root']['private_key'])
Beispiel #5
0
 def test_from_root_seed(self):
     for test_vector in self.english_vectors:
         root = HDKey.from_root_seed(bytes.fromhex(test_vector['seed']))
         child = root.derive_path(test_vector['derived_node']['path'])
         for (obj, choice) in zip([root, child], ['root', 'derived_node']):
             self.assertEqual(obj.xpriv, test_vector[choice]['xpriv'])
             self.assertEqual(obj.xpub, test_vector[choice]['xpub'])
             self.assertEqual(obj.privkey.hex(),
                              test_vector[choice]['private_key'])
             self.assertEqual(obj.pubkey.hex(),
                              test_vector[choice]['public_key'])
             self.assertEqual(obj.index, test_vector[choice]['index'])
             self.assertEqual(
                 obj.fingerprint,
                 bytes.fromhex(test_vector[choice]['fingerprint']))
             self.assertEqual(
                 obj.chain_code,
                 bytes.fromhex(test_vector[choice]['chain_code']))
             self.assertEqual(obj.depth, test_vector[choice]['depth'])
Beispiel #6
0
 def test_node_path_derivation(self):
     # Test vectors.
     for test_vector in self.english_vectors:
         root_seed = bip39.root_seed_from_mnemonic(
             mnemonic=test_vector['mnemonic'], salt=test_vector['salt'])
         root = HDKey.from_root_seed(root_seed=root_seed)
         node = root.derive_path(test_vector['derived_node']['path'])
         self.assertEqual(node.xpriv, test_vector['derived_node']['xpriv'])
         self.assertEqual(node.xpub, test_vector['derived_node']['xpub'])
         self.assertEqual(node.privkey.hex(),
                          test_vector['derived_node']['private_key'])
         self.assertEqual(node.pubkey.hex(),
                          test_vector['derived_node']['public_key'])
         self.assertEqual(node.index, test_vector['derived_node']['index'])
         self.assertEqual(
             node.fingerprint,
             bytes.fromhex(test_vector['derived_node']['fingerprint']))
         self.assertEqual(
             node.chain_code,
             bytes.fromhex(test_vector['derived_node']['chain_code']))
         self.assertEqual(node.depth, test_vector['derived_node']['depth'])
Beispiel #7
0
from riemann_keys.hdkey import HDKey

# Mnemonic to root
MNEMONIC = "keen speed ice always runway film setup sentence update stove distance merge"
root_seed = HDKey.root_seed_from_mnemonic(mnemonic=MNEMONIC)
root = HDKey.from_root_seed(root_seed=root_seed)

print("public key " + root.public_key.hex())
print("private key " + root.private_key.hex())
print("chaincode " + root.chain_code.hex())
print("xpub " + root.extended_public_key)
print("xpriv " + root.extended_private_key)
print("\n")

# Derive to a node at depth of 5
node = root.derive_path("m/44'/1'/1'/0/1")
print("public key " + node.public_key.hex())
print("private key " + node.private_key.hex())
print("chaincode " + node.chain_code.hex())
print("xpub " + node.extended_public_key)
print("xpriv " + node.extended_private_key)