|
void | double_jacobian_default (tc_uECC_word_t *X1, tc_uECC_word_t *Y1, tc_uECC_word_t *Z1, tc_uECC_Curve curve) |
|
void | x_side_default (tc_uECC_word_t *result, const tc_uECC_word_t *x, tc_uECC_Curve curve) |
|
void | vli_mmod_fast_secp256r1 (unsigned int *result, unsigned int *product) |
|
tc_uECC_Curve | tc_uECC_secp256r1 (void) |
|
int | tc_uECC_generate_random_int (tc_uECC_word_t *random, const tc_uECC_word_t *top, wordcount_t num_words) |
|
void | tc_uECC_set_rng (tc_uECC_RNG_Function rng_function) |
|
tc_uECC_RNG_Function | tc_uECC_get_rng (void) |
|
int | tc_uECC_curve_private_key_size (tc_uECC_Curve curve) |
|
int | tc_uECC_curve_public_key_size (tc_uECC_Curve curve) |
|
int | tc_uECC_compute_public_key (const uint8_t *private_key, uint8_t *public_key, tc_uECC_Curve curve) |
|
tc_uECC_word_t | EccPoint_compute_public_key (tc_uECC_word_t *result, tc_uECC_word_t *private_key, tc_uECC_Curve curve) |
|
tc_uECC_word_t | regularize_k (const tc_uECC_word_t *const k, tc_uECC_word_t *k0, tc_uECC_word_t *k1, tc_uECC_Curve curve) |
|
void | EccPoint_mult (tc_uECC_word_t *result, const tc_uECC_word_t *point, const tc_uECC_word_t *scalar, const tc_uECC_word_t *initial_Z, bitcount_t num_bits, tc_uECC_Curve curve) |
|
tc_uECC_word_t | tc_uECC_vli_isZero (const tc_uECC_word_t *vli, wordcount_t num_words) |
|
tc_uECC_word_t | EccPoint_isZero (const tc_uECC_word_t *point, tc_uECC_Curve curve) |
|
cmpresult_t | tc_uECC_vli_cmp (const tc_uECC_word_t *left, const tc_uECC_word_t *right, wordcount_t num_words) |
|
cmpresult_t | tc_uECC_vli_cmp_unsafe (const tc_uECC_word_t *left, const tc_uECC_word_t *right, wordcount_t num_words) |
|
void | tc_uECC_vli_modSub (tc_uECC_word_t *result, const tc_uECC_word_t *left, const tc_uECC_word_t *right, const tc_uECC_word_t *mod, wordcount_t num_words) |
|
void | XYcZ_add (tc_uECC_word_t *X1, tc_uECC_word_t *Y1, tc_uECC_word_t *X2, tc_uECC_word_t *Y2, tc_uECC_Curve curve) |
|
void | apply_z (tc_uECC_word_t *X1, tc_uECC_word_t *Y1, const tc_uECC_word_t *const Z, tc_uECC_Curve curve) |
|
tc_uECC_word_t | tc_uECC_vli_testBit (const tc_uECC_word_t *vli, bitcount_t bit) |
|
void | tc_uECC_vli_mmod (tc_uECC_word_t *result, tc_uECC_word_t *product, const tc_uECC_word_t *mod, wordcount_t num_words) |
|
void | tc_uECC_vli_modMult_fast (tc_uECC_word_t *result, const tc_uECC_word_t *left, const tc_uECC_word_t *right, tc_uECC_Curve curve) |
|
tc_uECC_word_t | tc_uECC_vli_sub (tc_uECC_word_t *result, const tc_uECC_word_t *left, const tc_uECC_word_t *right, wordcount_t num_words) |
|
tc_uECC_word_t | tc_uECC_vli_equal (const tc_uECC_word_t *left, const tc_uECC_word_t *right, wordcount_t num_words) |
|
void | tc_uECC_vli_modMult (tc_uECC_word_t *result, const tc_uECC_word_t *left, const tc_uECC_word_t *right, const tc_uECC_word_t *mod, wordcount_t num_words) |
|
void | tc_uECC_vli_modInv (tc_uECC_word_t *result, const tc_uECC_word_t *input, const tc_uECC_word_t *mod, wordcount_t num_words) |
|
void | tc_uECC_vli_set (tc_uECC_word_t *dest, const tc_uECC_word_t *src, wordcount_t num_words) |
|
void | tc_uECC_vli_modAdd (tc_uECC_word_t *result, const tc_uECC_word_t *left, const tc_uECC_word_t *right, const tc_uECC_word_t *mod, wordcount_t num_words) |
|
bitcount_t | tc_uECC_vli_numBits (const tc_uECC_word_t *vli, const wordcount_t max_words) |
|
void | tc_uECC_vli_clear (tc_uECC_word_t *vli, wordcount_t num_words) |
|
int | tc_uECC_valid_point (const tc_uECC_word_t *point, tc_uECC_Curve curve) |
|
int | tc_uECC_valid_public_key (const uint8_t *public_key, tc_uECC_Curve curve) |
|
void | tc_uECC_vli_nativeToBytes (uint8_t *bytes, int num_bytes, const unsigned int *native) |
|
void | tc_uECC_vli_bytesToNative (unsigned int *native, const uint8_t *bytes, int num_bytes) |
|
– Interface to common ECC functions.
Overview: This software is an implementation of common functions necessary to elliptic curve cryptography. This implementation uses curve NIST p-256.
Security: The curve NIST p-256 provides approximately 128 bits of security.