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 #define uECC_VLI_NATIVE_LITTLE_ENDIAN 0 52 #ifndef uECC_VLI_NATIVE_LITTLE_ENDIAN 53 #define uECC_VLI_NATIVE_LITTLE_ENDIAN 0 57 #ifndef uECC_SUPPORTS_secp160r1 58 #define uECC_SUPPORTS_secp160r1 1 60 #ifndef uECC_SUPPORTS_secp192r1 61 #define uECC_SUPPORTS_secp192r1 1 63 #ifndef uECC_SUPPORTS_secp224r1 64 #define uECC_SUPPORTS_secp224r1 1 66 #ifndef uECC_SUPPORTS_secp256r1 67 #define uECC_SUPPORTS_secp256r1 1 69 #ifndef uECC_SUPPORTS_secp256k1 70 #define uECC_SUPPORTS_secp256k1 1 75 #ifndef uECC_SUPPORT_COMPRESSED_POINT 76 #define uECC_SUPPORT_COMPRESSED_POINT 1 87 #if uECC_SUPPORTS_secp160r1 90 #if uECC_SUPPORTS_secp192r1 93 #if uECC_SUPPORTS_secp224r1 96 #if uECC_SUPPORTS_secp256r1 99 #if uECC_SUPPORTS_secp256k1 185 const uint8_t *private_key,
189 #if uECC_SUPPORT_COMPRESSED_POINT 259 int uECC_sign(
const uint8_t *private_key,
260 const uint8_t *message_hash,
306 const uint8_t *message,
307 unsigned message_size);
336 const uint8_t *message_hash,
357 const uint8_t *message_hash,
359 const uint8_t *signature,
uECC_Curve uECC_secp256k1(void)
unsigned result_size
Definition: uECC.h:310
uint8_t * tmp
Definition: uECC.h:311
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)
Definition: uECC.c:1378
uECC_Curve uECC_secp160r1(void)
void(* update_hash)(const struct uECC_HashContext *context, const uint8_t *message, unsigned message_size)
Definition: uECC.h:305
uECC_Curve uECC_secp224r1(void)
void(* finish_hash)(const struct uECC_HashContext *context, uint8_t *hash_result)
Definition: uECC.h:308
void uECC_compress(const uint8_t *public_key, uint8_t *compressed, uECC_Curve curve)
Definition: uECC.c:1081
struct uECC_HashContext uECC_HashContext
unsigned block_size
Definition: uECC.h:309
int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve)
Definition: uECC.c:1142
int uECC_compute_public_key(const uint8_t *private_key, uint8_t *public_key, uECC_Curve curve)
Definition: uECC.c:1157
void uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve curve)
Definition: uECC.c:1093
int uECC_curve_public_key_size(uECC_Curve curve)
Definition: uECC.c:203
int uECC_curve_private_key_size(uECC_Curve curve)
Definition: uECC.c:199
int uECC_make_key(uint8_t *public_key, uint8_t *private_key, uECC_Curve curve)
Definition: uECC.c:1005
const struct uECC_Curve_t * uECC_Curve
Definition: uECC.h:80
uECC_Curve uECC_secp256r1(void)
uECC_Curve uECC_secp192r1(void)
uECC_RNG_Function uECC_get_rng(void)
Definition: uECC.c:195
int uECC_verify(const uint8_t *public_key, const uint8_t *message_hash, unsigned hash_size, const uint8_t *signature, uECC_Curve curve)
Definition: uECC.c:1455
void(* init_hash)(const struct uECC_HashContext *context)
Definition: uECC.h:304
int uECC_sign(const uint8_t *private_key, const uint8_t *message_hash, unsigned hash_size, uint8_t *signature, uECC_Curve curve)
Definition: uECC.c:1307
int uECC_shared_secret(const uint8_t *public_key, const uint8_t *private_key, uint8_t *secret, uECC_Curve curve)
Definition: uECC.c:1035
void uECC_set_rng(uECC_RNG_Function rng_function)
Definition: uECC.c:191
int(* uECC_RNG_Function)(uint8_t *dest, unsigned size)
Definition: uECC.h:119