1 #include <mbedtls/bignum.h> 3 #define F_BITCOIN_WIF_MAINNET (uint8_t)0x80 4 #define F_BITCOIN_WIF_TESTNET (uint8_t)0xEF 5 #define F_BITCOIN_P2PKH (uint8_t)0x00 // P2PKH address 6 #define F_BITCOIN_T2PKH (uint8_t)0x6F // Testnet Address 7 #define F_BITCOIN_BUF_SZ (size_t)512 8 #define F_MAX_BASE58_LENGTH (size_t)112//52 // including null char 9 #define F_BITCOIN_SEED_GENERATOR "Bitcoin seed" 11 #define MAINNET_PUBLIC (size_t)0 12 #define MAINNET_PRIVATE (size_t)1 13 #define TESTNET_PUBLIC (size_t)2 14 #define TESTNET_PRIVATE (size_t)3 17 {0x04, 0x88, 0xB2, 0x1E},
18 {0x04, 0x88, 0xAD, 0xE4},
19 {0x04, 0x35, 0x87, 0xCF},
20 {0x04, 0x35, 0x83, 0x94}
22 #define F_VERSION_BYTES_IDX_LEN (size_t)(sizeof(F_VERSION_BYTES)/(4*sizeof(uint8_t))) 35 int f_encode_b58(
char *,
size_t,
size_t *, uint8_t *,
size_t);
52 #define F_XPRIV_BASE58 (int)1 53 #define F_XPUB_BASE58 (int)2 58 #define DERIVE_XPRIV_XPUB_DYN_OUT_BASE58 (int)8 59 #define DERIVE_XPRIV_XPUB_DYN_OUT_XPRIV (int)16 60 #define DERIVE_XPRIV_XPUB_DYN_OUT_XPUB (int)32 62 #define F_GET_XKEY_IS_BASE58 (int)0x00008000 80 ERROR_LOAD_FROM_MASTER_KEY_FROM_ENTROPY_BITS
int f_uncompress_elliptic_curve(uint8_t *, size_t, size_t *, mbedtls_ecp_group_id, uint8_t *, size_t)
struct f_bitcoin_serialize_t __attribute__((packed)) BITCOIN_SERIALIZE
uint8_t sk_or_pk_data[33]
int f_wif_to_private_key(uint8_t *, unsigned char *, const char *)
enum error_load_master_key_from_entropy_bits_e ERROR_LOAD_FROM_MASTER_KEY_FROM_ENTROPY_BITS
int f_bitcoin_valid_bip32(BITCOIN_SERIALIZE *, int *, void *, int)
master_key_entropy_bits_e
int f_decode_b58_util(uint8_t *, size_t, size_t *, const char *)
int f_public_key_to_address(char *, size_t, size_t *, uint8_t *, uint8_t)
int f_derive_xpriv_or_xpub_dynamic(void **, uint8_t *, uint32_t *, void *, uint32_t, int)
int f_xpriv2xpub(void *, size_t, size_t *, void *, int)
int f_get_xkey_type(void *)
error_load_master_key_from_entropy_bits_e
int f_private_key_to_wif(char *, size_t, size_t *, uint8_t, uint8_t *)
int f_generate_master_key(BITCOIN_SERIALIZE *, size_t, uint32_t)
int f_encode_b58(char *, size_t, size_t *, uint8_t *, size_t)
int f_fingerprint(uint8_t *, uint8_t *, uint8_t *)
int f_check_if_invalid_btc_public_key(uint8_t *)
static const uint8_t F_VERSION_BYTES[][4]
enum master_key_entropy_bits_e MASTER_KEY_ENTROPY_BITS
int load_master_private_key(void *, unsigned char *, size_t)
int f_derive_xkey_dynamic(void **, void *, const char *, int)
ERROR_LOAD_FROM_MASTER_KEY_FROM_ENTROPY_BITS f_load_from_master_key_from_entropy_bits(BITCOIN_SERIALIZE *, size_t, const uint8_t *, MASTER_KEY_ENTROPY_BITS)
int f_bip32_to_public_key_or_private_key(uint8_t *, int *, uint8_t *, uint8_t *, uint8_t *, uint32_t, const void *, int)