Bip38 Functions
-
int bip38_raw_from_private_key(const unsigned char *bytes, size_t bytes_len, const unsigned char *pass, size_t pass_len, uint32_t flags, unsigned char *bytes_out, size_t len)
Encode a private key in raw BIP 38 address format.
- Parameters:
bytes – Private key to use.
bytes_len – Size of
bytes
in bytes. Must beEC_PRIVATE_KEY_LEN
.pass – Password for the encoded private key.
pass_len – Length of
pass
in bytes.flags – BIP38 conversion flags indicating desired behavior.
bytes_out – Destination for the resulting raw BIP38 address.
len – Size of
bytes_out
. Must beBIP38_SERIALIZED_LEN
.
- Returns:
See Error Codes
-
int bip38_from_private_key(const unsigned char *bytes, size_t bytes_len, const unsigned char *pass, size_t pass_len, uint32_t flags, char **output)
Encode a private key in BIP 38 address format.
- Parameters:
bytes – Private key to use.
bytes_len – Size of
bytes
in bytes. Must beEC_PRIVATE_KEY_LEN
.pass – Password for the encoded private key.
pass_len – Length of
pass
in bytes.flags – BIP38 conversion flags indicating desired behavior.
output – Destination for the resulting BIP38 address.
- Returns:
See Error Codes
-
int bip38_raw_to_private_key(const unsigned char *bytes, size_t bytes_len, const unsigned char *pass, size_t pass_len, uint32_t flags, unsigned char *bytes_out, size_t len)
Decode a raw BIP 38 address to a private key.
- Parameters:
bytes – Raw BIP 38 address to decode.
bytes_len – Size of
bytes
in bytes. Must beBIP38_SERIALIZED_LEN
.pass – Password for the encoded private key.
pass_len – Length of
pass
in bytes.flags – BIP38 conversion flags indicating desired behavior.
bytes_out – Destination for the resulting private key.
len – Size of
bytes_out
. Must beEC_PRIVATE_KEY_LEN
.
- Returns:
See Error Codes
-
int bip38_to_private_key(const char *bip38, const unsigned char *pass, size_t pass_len, uint32_t flags, unsigned char *bytes_out, size_t len)
Decode a BIP 38 address to a private key.
- Parameters:
bip38 – BIP 38 address to decode.
pass – Password for the encoded private key.
pass_len – Length of
pass
in bytes.flags – BIP38 conversion flags indicating desired behavior.
bytes_out – Destination for the resulting private key.
len – Size of
bytes_out
. Must beEC_PRIVATE_KEY_LEN
.
- Returns:
See Error Codes
-
int bip38_raw_get_flags(const unsigned char *bytes, size_t bytes_len, size_t *written)
Get compression and/or EC mult flags.
- Parameters:
bytes – Raw BIP 38 address to get the flags from.
bytes_len – Size of
bytes
in bytes. Must beBIP38_SERIALIZED_LEN
.written – BIP38 conversion flags indicating behavior.
- Returns:
See Error Codes
-
int bip38_get_flags(const char *bip38, size_t *written)
Get compression and/or EC mult flags.
- Parameters:
bip38 – BIP 38 address to get the flags from.
written – BIP38 conversion flags indicating behavior.
- Returns:
See Error Codes
Bip38 Constants
BIP38 conversion flags
-
BIP38_KEY_NETWORK_MASK
Mask for the bottom 8 bitflags which hold the network
-
BIP38_KEY_MAINNET
Address is for main network
-
BIP38_KEY_TESTNET
Address is for test network
-
BIP38_KEY_COMPRESSED
Public key is compressed
-
BIP38_KEY_EC_MULT
EC-Multiplied key (FIXME: Not implemented)
-
BIP38_KEY_QUICK_CHECK
Check structure only (no password required)
-
BIP38_KEY_RAW_MODE
Treat bytes in as raw data
-
BIP38_KEY_SWAP_ORDER
Hash comes after encrypted key
-
BIP38_SERIALIZED_LEN
Length of a raw BIP38 key in bytes