Lines Matching refs:uECC_word_t
87 void uECC_vli_clear(uECC_word_t *vli, wordcount_t num_words) in uECC_vli_clear()
95 uECC_word_t uECC_vli_isZero(const uECC_word_t *vli, wordcount_t num_words) in uECC_vli_isZero()
97 uECC_word_t bits = 0; in uECC_vli_isZero()
105 uECC_word_t uECC_vli_testBit(const uECC_word_t *vli, bitcount_t bit) in uECC_vli_testBit()
108 ((uECC_word_t)1 << (bit & uECC_WORD_BITS_MASK))); in uECC_vli_testBit()
112 static wordcount_t vli_numDigits(const uECC_word_t *vli, in vli_numDigits()
125 bitcount_t uECC_vli_numBits(const uECC_word_t *vli, in uECC_vli_numBits()
129 uECC_word_t i; in uECC_vli_numBits()
130 uECC_word_t digit; in uECC_vli_numBits()
145 void uECC_vli_set(uECC_word_t *dest, const uECC_word_t *src, in uECC_vli_set()
155 cmpresult_t uECC_vli_cmp_unsafe(const uECC_word_t *left, in uECC_vli_cmp_unsafe()
156 const uECC_word_t *right, in uECC_vli_cmp_unsafe()
171 uECC_word_t uECC_vli_equal(const uECC_word_t *left, const uECC_word_t *right, in uECC_vli_equal()
175 uECC_word_t diff = 0; in uECC_vli_equal()
184 uECC_word_t cond_set(uECC_word_t p_true, uECC_word_t p_false, unsigned int cond) in cond_set()
191 uECC_word_t uECC_vli_sub(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_sub()
192 const uECC_word_t *right, wordcount_t num_words) in uECC_vli_sub()
194 uECC_word_t borrow = 0; in uECC_vli_sub()
197 uECC_word_t diff = left[i] - right[i] - borrow; in uECC_vli_sub()
198 uECC_word_t val = (diff > left[i]); in uECC_vli_sub()
208 static uECC_word_t uECC_vli_add(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_add()
209 const uECC_word_t *right, wordcount_t num_words) in uECC_vli_add()
211 uECC_word_t carry = 0; in uECC_vli_add()
214 uECC_word_t sum = left[i] + right[i] + carry; in uECC_vli_add()
215 uECC_word_t val = (sum < left[i]); in uECC_vli_add()
222 cmpresult_t uECC_vli_cmp(const uECC_word_t *left, const uECC_word_t *right, in uECC_vli_cmp()
225 uECC_word_t tmp[NUM_ECC_WORDS]; in uECC_vli_cmp()
226 uECC_word_t neg = !!uECC_vli_sub(tmp, left, right, num_words); in uECC_vli_cmp()
227 uECC_word_t equal = uECC_vli_isZero(tmp, num_words); in uECC_vli_cmp()
232 static void uECC_vli_rshift1(uECC_word_t *vli, wordcount_t num_words) in uECC_vli_rshift1()
234 uECC_word_t *end = vli; in uECC_vli_rshift1()
235 uECC_word_t carry = 0; in uECC_vli_rshift1()
239 uECC_word_t temp = *vli; in uECC_vli_rshift1()
245 static void muladd(uECC_word_t a, uECC_word_t b, uECC_word_t *r0, in muladd()
246 uECC_word_t *r1, uECC_word_t *r2) in muladd()
254 *r0 = (uECC_word_t)r01; in muladd()
259 static void uECC_vli_mult(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_mult()
260 const uECC_word_t *right, wordcount_t num_words) in uECC_vli_mult()
263 uECC_word_t r0 = 0; in uECC_vli_mult()
264 uECC_word_t r1 = 0; in uECC_vli_mult()
265 uECC_word_t r2 = 0; in uECC_vli_mult()
294 void uECC_vli_modAdd(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_modAdd()
295 const uECC_word_t *right, const uECC_word_t *mod, in uECC_vli_modAdd()
298 uECC_word_t carry = uECC_vli_add(result, left, right, num_words); in uECC_vli_modAdd()
306 void uECC_vli_modSub(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_modSub()
307 const uECC_word_t *right, const uECC_word_t *mod, in uECC_vli_modSub()
310 uECC_word_t l_borrow = uECC_vli_sub(result, left, right, num_words); in uECC_vli_modSub()
320 void uECC_vli_mmod(uECC_word_t *result, uECC_word_t *product, in uECC_vli_mmod()
321 const uECC_word_t *mod, wordcount_t num_words) in uECC_vli_mmod()
323 uECC_word_t mod_multiple[2 * NUM_ECC_WORDS]; in uECC_vli_mmod()
324 uECC_word_t tmp[2 * NUM_ECC_WORDS]; in uECC_vli_mmod()
325 uECC_word_t *v[2] = {tmp, product}; in uECC_vli_mmod()
326 uECC_word_t index; in uECC_vli_mmod()
333 uECC_word_t carry = 0; in uECC_vli_mmod()
336 for(index = 0; index < (uECC_word_t)num_words; ++index) { in uECC_vli_mmod()
345 uECC_word_t borrow = 0; in uECC_vli_mmod()
348 uECC_word_t diff = v[index][i] - mod_multiple[i] - borrow; in uECC_vli_mmod()
364 void uECC_vli_modMult(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_modMult()
365 const uECC_word_t *right, const uECC_word_t *mod, in uECC_vli_modMult()
368 uECC_word_t product[2 * NUM_ECC_WORDS]; in uECC_vli_modMult()
373 void uECC_vli_modMult_fast(uECC_word_t *result, const uECC_word_t *left, in uECC_vli_modMult_fast()
374 const uECC_word_t *right, uECC_Curve curve) in uECC_vli_modMult_fast()
376 uECC_word_t product[2 * NUM_ECC_WORDS]; in uECC_vli_modMult_fast()
382 static void uECC_vli_modSquare_fast(uECC_word_t *result, in uECC_vli_modSquare_fast()
383 const uECC_word_t *left, in uECC_vli_modSquare_fast()
392 static void vli_modInv_update(uECC_word_t *uv, in vli_modInv_update()
393 const uECC_word_t *mod, in vli_modInv_update()
397 uECC_word_t carry = 0; in vli_modInv_update()
408 void uECC_vli_modInv(uECC_word_t *result, const uECC_word_t *input, in uECC_vli_modInv()
409 const uECC_word_t *mod, wordcount_t num_words) in uECC_vli_modInv()
411 uECC_word_t a[NUM_ECC_WORDS], b[NUM_ECC_WORDS]; in uECC_vli_modInv()
412 uECC_word_t u[NUM_ECC_WORDS], v[NUM_ECC_WORDS]; in uECC_vli_modInv()
455 void double_jacobian_default(uECC_word_t * X1, uECC_word_t * Y1, in double_jacobian_default()
456 uECC_word_t * Z1, uECC_Curve curve) in double_jacobian_default()
459 uECC_word_t t4[NUM_ECC_WORDS]; in double_jacobian_default()
460 uECC_word_t t5[NUM_ECC_WORDS]; in double_jacobian_default()
481 uECC_word_t l_carry = uECC_vli_add(X1, X1, curve->p, num_words); in double_jacobian_default()
502 void x_side_default(uECC_word_t *result, in x_side_default()
503 const uECC_word_t *x, in x_side_default()
506 uECC_word_t _3[NUM_ECC_WORDS] = {3}; /* -a = 3 */ in x_side_default()
622 uECC_word_t EccPoint_isZero(const uECC_word_t *point, uECC_Curve curve) in EccPoint_isZero()
627 void apply_z(uECC_word_t * X1, uECC_word_t * Y1, const uECC_word_t * const Z, in apply_z()
630 uECC_word_t t1[NUM_ECC_WORDS]; in apply_z()
639 static void XYcZ_initial_double(uECC_word_t * X1, uECC_word_t * Y1, in XYcZ_initial_double()
640 uECC_word_t * X2, uECC_word_t * Y2, in XYcZ_initial_double()
641 const uECC_word_t * const initial_Z, in XYcZ_initial_double()
644 uECC_word_t z[NUM_ECC_WORDS]; in XYcZ_initial_double()
661 void XYcZ_add(uECC_word_t * X1, uECC_word_t * Y1, in XYcZ_add()
662 uECC_word_t * X2, uECC_word_t * Y2, in XYcZ_add()
666 uECC_word_t t5[NUM_ECC_WORDS]; in XYcZ_add()
691 static void XYcZ_addC(uECC_word_t * X1, uECC_word_t * Y1, in XYcZ_addC()
692 uECC_word_t * X2, uECC_word_t * Y2, in XYcZ_addC()
696 uECC_word_t t5[NUM_ECC_WORDS]; in XYcZ_addC()
697 uECC_word_t t6[NUM_ECC_WORDS]; in XYcZ_addC()
698 uECC_word_t t7[NUM_ECC_WORDS]; in XYcZ_addC()
729 void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point, in EccPoint_mult()
730 const uECC_word_t * scalar, in EccPoint_mult()
731 const uECC_word_t * initial_Z, in EccPoint_mult()
735 uECC_word_t Rx[2][NUM_ECC_WORDS]; in EccPoint_mult()
736 uECC_word_t Ry[2][NUM_ECC_WORDS]; in EccPoint_mult()
737 uECC_word_t z[NUM_ECC_WORDS]; in EccPoint_mult()
739 uECC_word_t nb; in EccPoint_mult()
774 uECC_word_t regularize_k(const uECC_word_t * const k, uECC_word_t *k0, in regularize_k()
775 uECC_word_t *k1, uECC_Curve curve) in regularize_k()
782 uECC_word_t carry = uECC_vli_add(k0, k, curve->n, num_n_words) || in regularize_k()
791 uECC_word_t EccPoint_compute_public_key(uECC_word_t *result, in EccPoint_compute_public_key()
792 uECC_word_t *private_key, in EccPoint_compute_public_key()
796 uECC_word_t tmp1[NUM_ECC_WORDS]; in EccPoint_compute_public_key()
797 uECC_word_t tmp2[NUM_ECC_WORDS]; in EccPoint_compute_public_key()
798 uECC_word_t *p2[2] = {tmp1, tmp2}; in EccPoint_compute_public_key()
799 uECC_word_t carry; in EccPoint_compute_public_key()
833 (uECC_word_t)bytes[i] << (8 * (b % uECC_WORD_SIZE)); in uECC_vli_bytesToNative()
837 int uECC_generate_random_int(uECC_word_t *random, const uECC_word_t *top, in uECC_generate_random_int()
840 uECC_word_t mask = (uECC_word_t)-1; in uECC_generate_random_int()
841 uECC_word_t tries; in uECC_generate_random_int()
863 int uECC_valid_point(const uECC_word_t *point, uECC_Curve curve) in uECC_valid_point()
865 uECC_word_t tmp1[NUM_ECC_WORDS]; in uECC_valid_point()
866 uECC_word_t tmp2[NUM_ECC_WORDS]; in uECC_valid_point()
893 uECC_word_t _public[NUM_ECC_WORDS * 2]; in uECC_valid_public_key()
912 uECC_word_t _private[NUM_ECC_WORDS]; in uECC_compute_public_key()
913 uECC_word_t _public[NUM_ECC_WORDS * 2]; in uECC_compute_public_key()