11#define uECC_arch_other 0
15#define uECC_arm_thumb 4
16#define uECC_arm_thumb2 5
29#ifndef uECC_OPTIMIZATION_LEVEL
30 #define uECC_OPTIMIZATION_LEVEL 2
36#ifndef uECC_SQUARE_FUNC
37 #define uECC_SQUARE_FUNC 0
51#ifndef uECC_VLI_NATIVE_LITTLE_ENDIAN
52 #define uECC_VLI_NATIVE_LITTLE_ENDIAN 0
56#ifndef uECC_SUPPORTS_secp160r1
57 #define uECC_SUPPORTS_secp160r1 1
59#ifndef uECC_SUPPORTS_secp192r1
60 #define uECC_SUPPORTS_secp192r1 1
62#ifndef uECC_SUPPORTS_secp224r1
63 #define uECC_SUPPORTS_secp224r1 1
65#ifndef uECC_SUPPORTS_secp256r1
66 #define uECC_SUPPORTS_secp256r1 1
68#ifndef uECC_SUPPORTS_secp256k1
69 #define uECC_SUPPORTS_secp256k1 1
74#ifndef uECC_SUPPORT_COMPRESSED_POINT
75 #define uECC_SUPPORT_COMPRESSED_POINT 1
86#if uECC_SUPPORTS_secp160r1
89#if uECC_SUPPORTS_secp192r1
92#if uECC_SUPPORTS_secp224r1
95#if uECC_SUPPORTS_secp256r1
98#if uECC_SUPPORTS_secp256k1
186 const uint8_t *private_key,
190#if uECC_SUPPORT_COMPRESSED_POINT
261 const uint8_t *message_hash,
307 const uint8_t *message,
308 unsigned message_size);
337 const uint8_t *message_hash,
358 const uint8_t *message_hash,
360 const uint8_t *signature,
void(* update_hash)(const struct uECC_HashContext *context, const uint8_t *message, unsigned message_size)
Definition uECC.h:306
unsigned result_size
Definition uECC.h:311
uint8_t * tmp
Definition uECC.h:312
void(* init_hash)(const struct uECC_HashContext *context)
Definition uECC.h:305
unsigned block_size
Definition uECC.h:310
void(* finish_hash)(const struct uECC_HashContext *context, uint8_t *hash_result)
Definition uECC.h:309
uECC_Curve uECC_secp192r1(void)
uECC_Curve uECC_secp160r1(void)
int(* uECC_RNG_Function)(uint8_t *dest, unsigned size)
Definition uECC.h:118
int uECC_shared_secret(const uint8_t *public_key, const uint8_t *private_key, uint8_t *secret, uECC_Curve curve)
int uECC_curve_private_key_size(uECC_Curve curve)
uECC_Curve uECC_secp256r1(void)
void uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve curve)
int uECC_curve_public_key_size(uECC_Curve curve)
int uECC_verify(const uint8_t *public_key, const uint8_t *message_hash, unsigned hash_size, const uint8_t *signature, uECC_Curve curve)
int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve)
int uECC_compute_public_key(const uint8_t *private_key, uint8_t *public_key, uECC_Curve curve)
const struct uECC_Curve_t * uECC_Curve
Definition uECC.h:79
void uECC_set_rng(uECC_RNG_Function rng_function)
int uECC_make_key(uint8_t *public_key, uint8_t *private_key, uECC_Curve curve)
int uECC_sign_deterministic(const uint8_t *private_key, const uint8_t *message_hash, unsigned hash_size, const uECC_HashContext *hash_context, uint8_t *signature, uECC_Curve curve)
uECC_Curve uECC_secp256k1(void)
int uECC_sign(const uint8_t *private_key, const uint8_t *message_hash, unsigned hash_size, uint8_t *signature, uECC_Curve curve)
uECC_Curve uECC_secp224r1(void)
void uECC_compress(const uint8_t *public_key, uint8_t *compressed, uECC_Curve curve)
uECC_RNG_Function uECC_get_rng(void)