Пример #1
0
 def derivation(self, chain_code: bytes,
                child_index: int) -> Tuple["Secp256k1Deriv", bytes]:
     if child_index < 0 or child_index >= 2**31:
         raise Exception("invalid child index")
     I = utils.hmac512(chain_code,
                       self.get_public_bytes() + utils.tb(child_index, 4))
     return (self.__class__(self.derive(Secp256k1Priv(I[0:32]))), I[32:])
Пример #2
0
 def hardened_derivation(self, chain_code: bytes,
                         child_index: int) -> Tuple["ED25519Priv", bytes]:
     if child_index < 0 or child_index >= 2**31:
         raise Exception("invalid hardened child index")
     I = utils.hmac512(
         chain_code, b"\x00" + self.get_private_bytes() +
         utils.tb(child_index + 0x80000000, 4))
     return (ED25519Priv(I[0:32]), I[32:])
Пример #3
0
 def from_seed_ed25519(cls, seed: bytes) -> "XKey":
     I = utils.hmac512(b"ed25519 seed", seed)
     return XKey(Version.PRIVATE, 0, b"\x00\x00\x00\x00", 0, False, I[32:],
                 ED25519Priv(I[0:32]))
Пример #4
0
 def from_seed(cls, seed: bytes) -> "XKey":
     I = utils.hmac512(b"Bitcoin seed", seed)
     return XKey(Version.PRIVATE, 0, b"\x00\x00\x00\x00", 0, False, I[32:],
                 Secp256k1Priv(I[0:32]))