17#define PURIFY_SECRET_KEY_BYTES 64u
18#define PURIFY_PUBLIC_KEY_BYTES 64u
19#define PURIFY_FIELD_ELEMENT_BYTES 32u
20#define PURIFY_BIP340_SECRET_KEY_BYTES 32u
21#define PURIFY_BIP340_XONLY_PUBKEY_BYTES 32u
151 const unsigned char* message,
#define PURIFY_SECRET_KEY_BYTES
#define PURIFY_PUBLIC_KEY_BYTES
purify_error_code purify_generate_key(purify_generated_key *out)
Generates one random Purify keypair.
purify_error_code purify_fill_secure_random(unsigned char *bytes, size_t bytes_len)
Fills a caller-owned buffer with secure operating-system randomness.
purify_error_code
Machine-readable status code returned by the Purify C core.
@ PURIFY_ERROR_IO_WRITE_FAILED
@ PURIFY_ERROR_HASH_TO_CURVE_EXHAUSTED
@ PURIFY_ERROR_MISSING_VALUE
@ PURIFY_ERROR_BIT_INDEX_OUT_OF_RANGE
@ PURIFY_ERROR_GENERATOR_ORDER_CHECK_FAILED
@ PURIFY_ERROR_INVALID_SYMBOL
@ PURIFY_ERROR_EMPTY_INPUT
@ PURIFY_ERROR_INVALID_DIMENSIONS
@ PURIFY_ERROR_INVALID_HEX_LENGTH
@ PURIFY_ERROR_DIVISION_BY_ZERO
@ PURIFY_ERROR_NARROWING_OVERFLOW
@ PURIFY_ERROR_IO_OPEN_FAILED
@ PURIFY_ERROR_TRANSCRIPT_CHECK_FAILED
@ PURIFY_ERROR_EQUATION_MISMATCH
@ PURIFY_ERROR_ENTROPY_UNAVAILABLE
@ PURIFY_ERROR_INVALID_FIXED_SIZE
@ PURIFY_ERROR_SIZE_MISMATCH
@ PURIFY_ERROR_UNSUPPORTED_SYMBOL
@ PURIFY_ERROR_INTERNAL_MISMATCH
@ PURIFY_ERROR_BINDING_MISMATCH
@ PURIFY_ERROR_RANGE_VIOLATION
@ PURIFY_ERROR_BACKEND_REJECTED_INPUT
@ PURIFY_ERROR_NON_BOOLEAN_VALUE
@ PURIFY_ERROR_UNINITIALIZED_STATE
@ PURIFY_ERROR_INDEX_OUT_OF_RANGE
@ PURIFY_ERROR_UNEXPECTED_SIZE
@ PURIFY_ERROR_INVALID_HEX
const char * purify_error_message(purify_error_code code)
Returns a human-facing description for one status code.
purify_error_code purify_generate_key_from_seed(purify_generated_key *out, const unsigned char *seed, size_t seed_len)
Deterministically derives one Purify keypair from seed material.
purify_error_code purify_eval(unsigned char out_field_element[PURIFY_FIELD_ELEMENT_BYTES], const unsigned char secret_key[PURIFY_SECRET_KEY_BYTES], const unsigned char *message, size_t message_len)
Evaluates the Purify PRF for one packed secret and message.
const char * purify_error_name(purify_error_code code)
Returns a stable programmatic name for one status code.
purify_error_code purify_derive_public_key(unsigned char out_public_key[PURIFY_PUBLIC_KEY_BYTES], const unsigned char secret_key[PURIFY_SECRET_KEY_BYTES])
Derives the packed public key corresponding to one packed Purify secret.
purify_error_code purify_validate_secret_key(const unsigned char secret_key[PURIFY_SECRET_KEY_BYTES])
Validates one packed Purify secret key.
#define PURIFY_FIELD_ELEMENT_BYTES
purify_error_code purify_derive_bip340_key(purify_bip340_key *out, const unsigned char secret_key[PURIFY_SECRET_KEY_BYTES], purify_secp_context *secp_context)
Derives one canonical BIP340 keypair from one packed Purify secret.
#define PURIFY_BIP340_SECRET_KEY_BYTES
#define PURIFY_BIP340_XONLY_PUBKEY_BYTES
purify_error_code purify_validate_public_key(const unsigned char public_key[PURIFY_PUBLIC_KEY_BYTES])
Validates one packed Purify public key.
Shared public declaration of Purify's reusable secp256k1 context handle.
Canonical BIP340 keypair derived from one packed Purify secret.
unsigned char secret_key[PURIFY_BIP340_SECRET_KEY_BYTES]
unsigned char xonly_public_key[PURIFY_BIP340_XONLY_PUBKEY_BYTES]
Seed/public-key bundle returned by the C core key-generation entry points.
unsigned char secret_key[PURIFY_SECRET_KEY_BYTES]
unsigned char public_key[PURIFY_PUBLIC_KEY_BYTES]