slip32

Module for SLIP32 extended key serialization/deserialization. Reference: https://github.com/satoshilabs/slips/blob/master/slip-0032.md

class Slip32KeySerConst

Bases: object

Class container for SLIP32 key serialize constants.

STD_KEY_NET_VERSIONS: Slip32KeyNetVersions = <bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions object>
class Slip32PrivateKeySerializer

Bases: object

SLIP32 private key serializer class. It serializes private keys.

static Serialize(priv_key: ~bip_utils.ecc.common.ikeys.IPrivateKey, path: ~typing.Union[str, ~bip_utils.bip.bip32.bip32_path.Bip32Path], chain_code: ~typing.Union[bytes, ~bip_utils.bip.bip32.bip32_key_data.Bip32ChainCode], key_net_ver: ~bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions = <bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions object>) str

Serialize a private key.

Parameters:
  • priv_key (IPrivateKey object) – IPrivateKey object

  • path (str or Bip32Path object) – BIP32 path

  • chain_code (bytes or Bip32ChainCode object) – Chain code

  • key_net_ver (Slip32KeyNetVersions object, optional) – Key net versions (SLIP32 net version by default)

Returns:

Serialized private key

Return type:

str

class Slip32PublicKeySerializer

Bases: object

SLIP32 public key serializer class. It serializes public keys.

static Serialize(pub_key: ~bip_utils.ecc.common.ikeys.IPublicKey, path: ~typing.Union[str, ~bip_utils.bip.bip32.bip32_path.Bip32Path], chain_code: ~typing.Union[bytes, ~bip_utils.bip.bip32.bip32_key_data.Bip32ChainCode], key_net_ver: ~bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions = <bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions object>) str

Serialize a public key.

Parameters:
  • pub_key (IPublicKey object) – IPublicKey object

  • path (str or Bip32Path object) – BIP32 path

  • chain_code (bytes or Bip32ChainCode object) – Chain code

  • key_net_ver (Slip32KeyNetVersions object, optional) – Key net versions (SLIP32 net version by default)

Returns:

Serialized public key

Return type:

str

class Slip32DeserializedKey(key_bytes: bytes, path: Bip32Path, chain_code: Bip32ChainCode, is_public: bool)

Bases: object

SLIP32 deserialized key class. It represents a key deserialized with the Slip32KeyDeserializer.

m_key_bytes: bytes
m_path: Bip32Path
m_chain_code: Bip32ChainCode
m_is_public: bool
KeyBytes() bytes

Get key bytes.

Returns:

Key bytes

Return type:

bytes

Path() Bip32Path

Get path.

Returns:

Bip32Path object

Return type:

Bip32Path object

ChainCode() Bip32ChainCode

Get chain code.

Returns:

Bip32ChainCode object

Return type:

Bip32ChainCode object

IsPublic() bool

Get if public.

Returns:

True if the key is public, false otherwise

Return type:

bool

class Slip32KeyDeserializer

Bases: object

SLIP32 key deserializer class. It deserializes an extended key.

classmethod DeserializeKey(ser_key_str: str, key_net_ver: ~bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions = <bip_utils.slip.slip32.slip32_key_net_ver.Slip32KeyNetVersions object>) Slip32DeserializedKey

Deserialize a key.

Parameters:
  • ser_key_str (str) – Serialized key string

  • key_net_ver (Slip32KeyNetVersions object, optional) – Key net versions (SLIP32 net version by default)

Returns:

Slip32DeserializedKey object

Return type:

Slip32DeserializedKey object

Raises:

ValueError – If the key net version is not valid