acapy_agent.utils.multiformats package

Multiformats utility functions.

Submodules

acapy_agent.utils.multiformats.multibase module

MultiBase encoding and decoding utilities.

class acapy_agent.utils.multiformats.multibase.Base58BtcEncoder[source]

Bases: MultibaseEncoder

Base58BTC encoding.

character: ClassVar[str] = 'z'
decode(value: str) bytes[source]

Decode a multibase encoded string.

encode(value: bytes) str[source]

Encode a byte string using the base58btc encoding.

name: ClassVar[str] = 'base58btc'
class acapy_agent.utils.multiformats.multibase.Encoding(*values)[source]

Bases: Enum

Enum for supported encodings.

base58btc = <acapy_agent.utils.multiformats.multibase.Base58BtcEncoder object>
classmethod from_character(character: str) MultibaseEncoder[source]

Get encoding from character.

classmethod from_name(name: str) MultibaseEncoder[source]

Get encoding from name.

class acapy_agent.utils.multiformats.multibase.MultibaseEncoder[source]

Bases: ABC

Encoding details.

character: ClassVar[str]
abstractmethod decode(value: str) bytes[source]

Decode a string using this encoding.

abstractmethod encode(value: bytes) str[source]

Encode a byte string using this encoding.

name: ClassVar[str]
acapy_agent.utils.multiformats.multibase.decode(value: str) bytes[source]

Decode a multibase encoded string.

Parameters:

value – The string to decode

Returns:

The decoded byte string

acapy_agent.utils.multiformats.multibase.encode(value: bytes, encoding: Encoding | Literal['base58btc']) str[source]

Encode a byte string using the given encoding.

Parameters:
  • value – The byte string to encode

  • encoding – The encoding to use

Returns:

The encoded string

acapy_agent.utils.multiformats.multicodec module

Multicodec wrap and unwrap functions.

class acapy_agent.utils.multiformats.multicodec.Multicodec(name: str, code: bytes)[source]

Bases: NamedTuple

Multicodec base class.

code: bytes

Alias for field number 1

name: str

Alias for field number 0

class acapy_agent.utils.multiformats.multicodec.SupportedCodecs(*values)[source]

Bases: Enum

Enumeration of supported multicodecs.

bls12381g1 = ('bls12_381-g1-pub', b'\xea\x01')
bls12381g1g2 = ('bls12_381-g1g2-pub', b'\xee\x01')
bls12381g2 = ('bls12_381-g2-pub', b'\xeb\x01')
classmethod by_name(name: str) Multicodec[source]

Get multicodec by name.

ed25519_pub = ('ed25519-pub', b'\xed\x01')
classmethod for_data(data: bytes) Multicodec[source]

Get multicodec by data.

p256_pub = ('p256-pub', b'\x80$')
secp256k1_pub = ('secp256k1-pub', b'\xe7\x01')
x25519_pub = ('x25519-pub', b'\xec\x01')
acapy_agent.utils.multiformats.multicodec.multicodec(name: str) Multicodec[source]

Get multicodec by name.

acapy_agent.utils.multiformats.multicodec.unwrap(data: bytes, codec: Multicodec | None = None) tuple[Multicodec, bytes][source]

Unwrap data with multicodec prefix.

acapy_agent.utils.multiformats.multicodec.wrap(multicodec: Multicodec | Literal['ed25519-pub', 'x25519-pub', 'bls12_381-g1-pub', 'bls12_381-g2-pub', 'bls12_381-g1g2-pub', 'secp256k1-pub', 'p256-pub'], data: bytes) bytes[source]

Wrap data with multicodec prefix.