31 lines
1.0 KiB
C
31 lines
1.0 KiB
C
/*
|
|
* NOSTR Core Library - NIP-006: Key Derivation from Mnemonic
|
|
*/
|
|
|
|
#ifndef NIP006_H
|
|
#define NIP006_H
|
|
|
|
#include "nip001.h"
|
|
#include <stdint.h>
|
|
|
|
// Input type detection
|
|
typedef enum {
|
|
NOSTR_INPUT_UNKNOWN = 0,
|
|
NOSTR_INPUT_NSEC_HEX,
|
|
NOSTR_INPUT_NSEC_BECH32,
|
|
NOSTR_INPUT_MNEMONIC
|
|
} nostr_input_type_t;
|
|
|
|
// Function declarations
|
|
int nostr_generate_keypair(unsigned char* private_key, unsigned char* public_key);
|
|
int nostr_generate_mnemonic_and_keys(char* mnemonic, size_t mnemonic_size,
|
|
int account, unsigned char* private_key,
|
|
unsigned char* public_key);
|
|
int nostr_derive_keys_from_mnemonic(const char* mnemonic, int account,
|
|
unsigned char* private_key, unsigned char* public_key);
|
|
nostr_input_type_t nostr_detect_input_type(const char* input);
|
|
int nostr_decode_nsec(const char* input, unsigned char* private_key);
|
|
int nostr_decode_npub(const char* input, unsigned char* public_key);
|
|
|
|
#endif // NIP006_H
|