mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-17 11:58:13 +00:00
119 lines
3.0 KiB
Python
119 lines
3.0 KiB
Python
from typing import *
|
|
|
|
# extmod/modtrezorcrypto/modtrezorcrypto-bip32.h
|
|
class HDNode:
|
|
'''
|
|
BIP0032 HD node structure.
|
|
'''
|
|
|
|
def __init__(self,
|
|
depth: int,
|
|
fingerprint: int,
|
|
child_num: int,
|
|
chain_code: bytes,
|
|
private_key: bytes = None,
|
|
public_key: bytes = None,
|
|
curve_name: str = None) -> None:
|
|
'''
|
|
'''
|
|
|
|
def derive(self, index: int, public: bool=False) -> None:
|
|
'''
|
|
Derive a BIP0032 child node in place.
|
|
'''
|
|
|
|
def derive_cardano(self, index: int) -> None:
|
|
'''
|
|
Derive a BIP0032 child node in place using Cardano algorithm.
|
|
'''
|
|
|
|
def derive_path(self, path: List[int]) -> None:
|
|
'''
|
|
Go through a list of indexes and iteratively derive a child node in place.
|
|
'''
|
|
|
|
def serialize_public(self, version: int) -> str:
|
|
'''
|
|
Serialize the public info from HD node to base58 string.
|
|
'''
|
|
|
|
def serialize_private(self, version: int) -> str:
|
|
'''
|
|
Serialize the private info HD node to base58 string.
|
|
'''
|
|
|
|
def clone(self) -> HDNode:
|
|
'''
|
|
Returns a copy of the HD node.
|
|
'''
|
|
|
|
def depth(self) -> int:
|
|
'''
|
|
Returns a depth of the HD node.
|
|
'''
|
|
|
|
def fingerprint(self) -> int:
|
|
'''
|
|
Returns a fingerprint of the HD node (hash of the parent public key).
|
|
'''
|
|
|
|
def child_num(self) -> int:
|
|
'''
|
|
Returns a child index of the HD node.
|
|
'''
|
|
|
|
def chain_code(self) -> bytes:
|
|
'''
|
|
Returns a chain code of the HD node.
|
|
'''
|
|
|
|
def private_key(self) -> bytes:
|
|
'''
|
|
Returns a private key of the HD node.
|
|
'''
|
|
|
|
def private_key_ext(self) -> bytes:
|
|
'''
|
|
Returns a private key extension of the HD node.
|
|
'''
|
|
|
|
def public_key(self) -> bytes:
|
|
'''
|
|
Returns a public key of the HD node.
|
|
'''
|
|
|
|
def address(self, version: int) -> str:
|
|
'''
|
|
Compute a base58-encoded address string from the HD node.
|
|
'''
|
|
|
|
def nem_address(self, network: int) -> str:
|
|
'''
|
|
Compute a NEM address string from the HD node.
|
|
'''
|
|
|
|
def nem_encrypt(self, transfer_public_key: bytes, iv: bytes, salt: bytes, payload: bytes) -> bytes:
|
|
'''
|
|
Encrypts payload using the transfer's public key
|
|
'''
|
|
|
|
def ethereum_pubkeyhash(self) -> bytes:
|
|
'''
|
|
Compute an Ethereum pubkeyhash (aka address) from the HD node.
|
|
'''
|
|
|
|
def deserialize(self, value: str, version_public: int, version_private: int) -> HDNode:
|
|
'''
|
|
Construct a BIP0032 HD node from a base58-serialized value.
|
|
'''
|
|
|
|
def from_seed(seed: bytes, curve_name: str) -> HDNode:
|
|
'''
|
|
Construct a BIP0032 HD node from a BIP0039 seed value.
|
|
'''
|
|
|
|
def from_mnemonic_cardano(mnemonic: str, passphrase: str) -> bytes:
|
|
'''
|
|
Convert mnemonic to hdnode
|
|
'''
|