Nano cryptocurrency C library with P2PoW/DPoW support
1.0.0
|
#include <mbedtls/bignum.h>
Go to the source code of this file.
Data Structures | |
struct | f_bitcoin_serialize_t |
Macros | |
#define | F_BITCOIN_WIF_MAINNET (uint8_t)0x80 |
#define | F_BITCOIN_WIF_TESTNET (uint8_t)0xEF |
#define | F_BITCOIN_P2PKH (uint8_t)0x00 |
#define | F_BITCOIN_T2PKH (uint8_t)0x6F |
#define | F_BITCOIN_BUF_SZ (size_t)512 |
#define | F_MAX_BASE58_LENGTH (size_t)112 |
#define | F_BITCOIN_SEED_GENERATOR "Bitcoin seed" |
#define | MAINNET_PUBLIC (size_t)0 |
#define | MAINNET_PRIVATE (size_t)1 |
#define | TESTNET_PUBLIC (size_t)2 |
#define | TESTNET_PRIVATE (size_t)3 |
#define | F_VERSION_BYTES_IDX_LEN (size_t)(sizeof(F_VERSION_BYTES)/(4*sizeof(uint8_t))) |
#define | F_XPRIV_BASE58 (int)1 |
#define | F_XPUB_BASE58 (int)2 |
#define | DERIVE_XPRIV_XPUB_DYN_OUT_BASE58 (int)8 |
#define | DERIVE_XPRIV_XPUB_DYN_OUT_XPRIV (int)16 |
#define | DERIVE_XPRIV_XPUB_DYN_OUT_XPUB (int)32 |
#define | F_GET_XKEY_IS_BASE58 (int)0x00008000 |
Typedefs | |
typedef enum error_load_master_key_from_entropy_bits_e | ERROR_LOAD_FROM_MASTER_KEY_FROM_ENTROPY_BITS |
typedef enum master_key_entropy_bits_e | MASTER_KEY_ENTROPY_BITS |
Enumerations | |
enum | error_load_master_key_from_entropy_bits_e { ERR_INVALID_ENTROPY_BITS = 20300, ERR_INVALID_VERSION_BYTES, ERR_MASTER_KEY_FROM_ENTROPY_ALLOC } |
enum | master_key_entropy_bits_e { MK_128 = 16, MK_256 = 32, MK_512 = 64 } |
Functions | |
struct f_bitcoin_serialize_t | __attribute__ ((packed)) BITCOIN_SERIALIZE |
int | f_decode_b58_util (uint8_t *, size_t, size_t *, const char *) |
int | f_encode_b58 (char *, size_t, size_t *, uint8_t *, size_t) |
int | f_private_key_to_wif (char *, size_t, size_t *, uint8_t, uint8_t *) |
int | f_wif_to_private_key (uint8_t *, unsigned char *, const char *) |
int | f_generate_master_key (BITCOIN_SERIALIZE *, size_t, uint32_t) |
int | f_bitcoin_valid_bip32 (BITCOIN_SERIALIZE *, int *, void *, int) |
int | f_uncompress_elliptic_curve (uint8_t *, size_t, size_t *, mbedtls_ecp_group_id, uint8_t *, size_t) |
int | f_bip32_to_public_key_or_private_key (uint8_t *, int *, uint8_t *, uint8_t *, uint8_t *, uint32_t, const void *, int) |
int | f_public_key_to_address (char *, size_t, size_t *, uint8_t *, uint8_t) |
int | f_xpriv2xpub (void *, size_t, size_t *, void *, int) |
int | load_master_private_key (void *, unsigned char *, size_t) |
int | f_fingerprint (uint8_t *, uint8_t *, uint8_t *) |
int | f_get_xkey_type (void *) |
int | f_derive_xpriv_or_xpub_dynamic (void **, uint8_t *, uint32_t *, void *, uint32_t, int) |
int | f_derive_xkey_dynamic (void **, void *, const char *, int) |
int | f_check_if_invalid_btc_public_key (uint8_t *) |
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) |
Variables | |
static const uint8_t | F_VERSION_BYTES [][4] |
uint8_t | version_bytes [4] |
uint8_t | master_node |
uint8_t | finger_print [4] |
uint8_t | child_number [4] |
uint8_t | chain_code [32] |
uint8_t | sk_or_pk_data [33] |
uint8_t | chksum [4] |
#define DERIVE_XPRIV_XPUB_DYN_OUT_BASE58 (int)8 |
Definition at line 58 of file f_bitcoin.h.
#define DERIVE_XPRIV_XPUB_DYN_OUT_XPRIV (int)16 |
Definition at line 59 of file f_bitcoin.h.
#define DERIVE_XPRIV_XPUB_DYN_OUT_XPUB (int)32 |
Definition at line 60 of file f_bitcoin.h.
#define F_BITCOIN_BUF_SZ (size_t)512 |
Definition at line 7 of file f_bitcoin.h.
#define F_BITCOIN_P2PKH (uint8_t)0x00 |
Definition at line 5 of file f_bitcoin.h.
#define F_BITCOIN_SEED_GENERATOR "Bitcoin seed" |
Definition at line 9 of file f_bitcoin.h.
#define F_BITCOIN_T2PKH (uint8_t)0x6F |
Definition at line 6 of file f_bitcoin.h.
#define F_BITCOIN_WIF_MAINNET (uint8_t)0x80 |
Definition at line 3 of file f_bitcoin.h.
#define F_BITCOIN_WIF_TESTNET (uint8_t)0xEF |
Definition at line 4 of file f_bitcoin.h.
#define F_GET_XKEY_IS_BASE58 (int)0x00008000 |
Definition at line 62 of file f_bitcoin.h.
#define F_MAX_BASE58_LENGTH (size_t)112 |
Definition at line 8 of file f_bitcoin.h.
#define F_VERSION_BYTES_IDX_LEN (size_t)(sizeof(F_VERSION_BYTES)/(4*sizeof(uint8_t))) |
Definition at line 22 of file f_bitcoin.h.
#define F_XPRIV_BASE58 (int)1 |
Definition at line 52 of file f_bitcoin.h.
#define F_XPUB_BASE58 (int)2 |
Definition at line 53 of file f_bitcoin.h.
#define MAINNET_PRIVATE (size_t)1 |
Definition at line 12 of file f_bitcoin.h.
#define MAINNET_PUBLIC (size_t)0 |
Definition at line 11 of file f_bitcoin.h.
#define TESTNET_PRIVATE (size_t)3 |
Definition at line 14 of file f_bitcoin.h.
#define TESTNET_PUBLIC (size_t)2 |
Definition at line 13 of file f_bitcoin.h.
typedef enum master_key_entropy_bits_e MASTER_KEY_ENTROPY_BITS |
Enumerator | |
---|---|
ERR_INVALID_ENTROPY_BITS | |
ERR_INVALID_VERSION_BYTES | |
ERR_MASTER_KEY_FROM_ENTROPY_ALLOC |
Definition at line 68 of file f_bitcoin.h.
Enumerator | |
---|---|
MK_128 | |
MK_256 | |
MK_512 |
Definition at line 74 of file f_bitcoin.h.
struct f_nano_wallet_info_t __attribute__ | ( | (packed) | ) |
int f_bip32_to_public_key_or_private_key | ( | uint8_t * | , |
int * | , | ||
uint8_t * | , | ||
uint8_t * | , | ||
uint8_t * | , | ||
uint32_t | , | ||
const void * | , | ||
int | |||
) |
int f_bitcoin_valid_bip32 | ( | BITCOIN_SERIALIZE * | , |
int * | , | ||
void * | , | ||
int | |||
) |
int f_check_if_invalid_btc_public_key | ( | uint8_t * | ) |
int f_decode_b58_util | ( | uint8_t * | , |
size_t | , | ||
size_t * | , | ||
const char * | |||
) |
int f_derive_xkey_dynamic | ( | void ** | , |
void * | , | ||
const char * | , | ||
int | |||
) |
int f_derive_xpriv_or_xpub_dynamic | ( | void ** | , |
uint8_t * | , | ||
uint32_t * | , | ||
void * | , | ||
uint32_t | , | ||
int | |||
) |
int f_encode_b58 | ( | char * | , |
size_t | , | ||
size_t * | , | ||
uint8_t * | , | ||
size_t | |||
) |
int f_fingerprint | ( | uint8_t * | , |
uint8_t * | , | ||
uint8_t * | |||
) |
int f_generate_master_key | ( | BITCOIN_SERIALIZE * | , |
size_t | , | ||
uint32_t | |||
) |
int f_get_xkey_type | ( | void * | ) |
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_private_key_to_wif | ( | char * | , |
size_t | , | ||
size_t * | , | ||
uint8_t | , | ||
uint8_t * | |||
) |
int f_public_key_to_address | ( | char * | , |
size_t | , | ||
size_t * | , | ||
uint8_t * | , | ||
uint8_t | |||
) |
int f_uncompress_elliptic_curve | ( | uint8_t * | , |
size_t | , | ||
size_t * | , | ||
mbedtls_ecp_group_id | , | ||
uint8_t * | , | ||
size_t | |||
) |
int f_wif_to_private_key | ( | uint8_t * | , |
unsigned char * | , | ||
const char * | |||
) |
int f_xpriv2xpub | ( | void * | , |
size_t | , | ||
size_t * | , | ||
void * | , | ||
int | |||
) |
int load_master_private_key | ( | void * | , |
unsigned char * | , | ||
size_t | |||
) |
uint8_t chain_code[32] |
Definition at line 21 of file f_bitcoin.h.
uint8_t child_number[4] |
Definition at line 20 of file f_bitcoin.h.
uint8_t chksum[4] |
Definition at line 23 of file f_bitcoin.h.
|
static |
Definition at line 16 of file f_bitcoin.h.
uint8_t finger_print[4] |
Definition at line 19 of file f_bitcoin.h.
uint8_t master_node |
Definition at line 18 of file f_bitcoin.h.
uint8_t sk_or_pk_data[33] |
Definition at line 22 of file f_bitcoin.h.
uint8_t version_bytes[4] |
Definition at line 17 of file f_bitcoin.h.