Lines Matching refs:ret
51 int isodd, swap, smaller, ret, cmp, iszero, tmp_isodd; in _nn_modinv_odd() local
57 ret = nn_init(out, 0); EG(ret, err); in _nn_modinv_odd()
58 ret = nn_init(&a, (u16)(m->wlen * WORD_BYTES)); EG(ret, err); in _nn_modinv_odd()
59 ret = nn_init(&b, (u16)(m->wlen * WORD_BYTES)); EG(ret, err); in _nn_modinv_odd()
60 ret = nn_init(&u, (u16)(m->wlen * WORD_BYTES)); EG(ret, err); in _nn_modinv_odd()
61 ret = nn_init(&mp1d2, (u16)(m->wlen * WORD_BYTES)); EG(ret, err); in _nn_modinv_odd()
65 ret = nn_init(&tmp, (u16)(m->wlen * WORD_BYTES)); EG(ret, err); in _nn_modinv_odd()
67 MUST_HAVE((!nn_isodd(m, &isodd)) && isodd, ret, err); in _nn_modinv_odd()
68 MUST_HAVE((!nn_cmp(x, m, &cmp)) && (cmp < 0), ret, err); in _nn_modinv_odd()
69 MUST_HAVE((!nn_iszero(x, &iszero)) && (!iszero), ret, err); in _nn_modinv_odd()
82 ret = nn_copy(&a, x); EG(ret, err); in _nn_modinv_odd()
83 ret = nn_set_wlen(&a, m->wlen); EG(ret, err); in _nn_modinv_odd()
84 ret = nn_copy(&b, m); EG(ret, err); in _nn_modinv_odd()
85 ret = nn_one(&u); EG(ret, err); in _nn_modinv_odd()
86 ret = nn_zero(uu); EG(ret, err); in _nn_modinv_odd()
93 ret = nn_set_wlen(&u, m->wlen); EG(ret, err); in _nn_modinv_odd()
94 ret = nn_set_wlen(uu, m->wlen); EG(ret, err); in _nn_modinv_odd()
101 ret = nn_rshift_fixedlen(&mp1d2, m, 1); EG(ret, err); in _nn_modinv_odd()
103 ret = nn_inc(&mp1d2, &mp1d2); EG(ret, err); /* no carry can occur here in _nn_modinv_odd()
126 MUST_HAVE((!nn_isodd(&b, &tmp_isodd)) && tmp_isodd, ret, err); in _nn_modinv_odd()
128 ret = nn_isodd(&a, &isodd); EG(ret, err); in _nn_modinv_odd()
129 ret = nn_cmp(&a, &b, &cmp); EG(ret, err); in _nn_modinv_odd()
132 ret = nn_cnd_swap(swap, &a, &b); EG(ret, err); in _nn_modinv_odd()
133 ret = nn_cnd_sub(isodd, &a, &a, &b); EG(ret, err); in _nn_modinv_odd()
135 MUST_HAVE((!nn_isodd(&a, &tmp_isodd)) && (!tmp_isodd), ret, err); /* a is now even */ in _nn_modinv_odd()
137 ret = nn_rshift_fixedlen(&a, &a, 1); EG(ret, err);/* division by 2 */ in _nn_modinv_odd()
154 ret = nn_cnd_swap(swap, &u, uu); EG(ret, err); in _nn_modinv_odd()
157 ret = nn_cmp(&u, uu, &cmp); EG(ret, err); in _nn_modinv_odd()
161 ret = nn_sub(&tmp, m, uu); EG(ret, err); in _nn_modinv_odd()
164 …ret = nn_cnd_add(isodd & smaller, &u, &u, &tmp); EG(ret, err); /* no carry can occur as 'u+(m-uu) … in _nn_modinv_odd()
165 ret = nn_cnd_sub(isodd & (!smaller), &u, &u, uu); EG(ret, err); in _nn_modinv_odd()
168 ret = nn_isodd(&u, &isodd); EG(ret, err); in _nn_modinv_odd()
169 ret = nn_rshift_fixedlen(&u, &u, 1); EG(ret, err); in _nn_modinv_odd()
170 …ret = nn_cnd_add(isodd, &u, &u, &mp1d2); EG(ret, err); /* no carry can occur as u=1+u' with u'<m-1… in _nn_modinv_odd()
172 MUST_HAVE((!nn_cmp(&u, m, &cmp)) && (cmp < 0), ret, err); in _nn_modinv_odd()
173 MUST_HAVE((!nn_cmp(uu, m, &cmp)) && (cmp < 0), ret, err); in _nn_modinv_odd()
185 MUST_HAVE((!nn_iszero(&a, &iszero)) && iszero, ret, err); in _nn_modinv_odd()
188 ret = nn_cmp_word(&b, WORD(1), &cmp); EG(ret, err); in _nn_modinv_odd()
191 ret = nn_cnd_sub(cmp != 0, uu, uu, uu); EG(ret, err); in _nn_modinv_odd()
193 ret = cmp ? -1 : 0; in _nn_modinv_odd()
204 return ret; in _nn_modinv_odd()
223 int sign, ret, cmp, isodd, isone; in nn_modinv() local
228 ret = nn_check_initialized(x); EG(ret, err); in nn_modinv()
229 ret = nn_check_initialized(m); EG(ret, err); in nn_modinv()
232 ret = nn_init(&out, 0); EG(ret, err); in nn_modinv()
233 ret = nn_isodd(m, &isodd); EG(ret, err); in nn_modinv()
235 ret = nn_cmp(x, m, &cmp); EG(ret, err); in nn_modinv()
244 ret = nn_mod(x_mod_m, x, m); EG(ret, err); in nn_modinv()
245 ret = _nn_modinv_odd(&out, x_mod_m, m); EG(ret, err); in nn_modinv()
247 ret = _nn_modinv_odd(&out, x, m); EG(ret, err); in nn_modinv()
249 ret = nn_copy(_out, &out); in nn_modinv()
254 ret = nn_isodd(x, &isodd); EG(ret, err); in nn_modinv()
255 MUST_HAVE(isodd, ret, err); in nn_modinv()
257 ret = nn_init(&u, 0); EG(ret, err); in nn_modinv()
258 ret = nn_init(&v, 0); EG(ret, err); in nn_modinv()
259 ret = nn_xgcd(&out, &u, &v, x, m, &sign); EG(ret, err); in nn_modinv()
260 ret = nn_isone(&out, &isone); EG(ret, err); in nn_modinv()
261 MUST_HAVE(isone, ret, err); in nn_modinv()
263 ret = nn_mod(&out, &u, m); EG(ret, err); in nn_modinv()
265 ret = nn_sub(&out, m, &out); EG(ret, err); in nn_modinv()
267 ret = nn_copy(_out, &out); in nn_modinv()
276 return ret; in nn_modinv()
288 int ret; in _nn_sub_mod_2exp() local
290 ret = nn_set_wlen(A, (u8)(Awlen + 1)); EG(ret, err); in _nn_sub_mod_2exp()
295 ret = nn_sub(A, A, B); EG(ret, err); in _nn_sub_mod_2exp()
298 ret = nn_set_wlen(A, Awlen); in _nn_sub_mod_2exp()
301 return ret; in _nn_sub_mod_2exp()
322 int isodd, ret; in nn_modinv_2exp() local
326 MUST_HAVE((x_isodd != NULL), ret, err); in nn_modinv_2exp()
327 ret = nn_check_initialized(x); EG(ret, err); in nn_modinv_2exp()
328 ret = nn_check_initialized(_out); EG(ret, err); in nn_modinv_2exp()
330 ret = nn_init(&out, 0); EG(ret, err); in nn_modinv_2exp()
331 ret = nn_init(&tmp_sqr, 0); EG(ret, err); in nn_modinv_2exp()
332 ret = nn_init(&tmp_mul, 0); EG(ret, err); in nn_modinv_2exp()
333 ret = nn_isodd(x, &isodd); EG(ret, err); in nn_modinv_2exp()
340 ret = nn_zero(_out); EG(ret, err); in nn_modinv_2exp()
349 ret = nn_one(&out); EG(ret, err); in nn_modinv_2exp()
356 ret = nn_sqr_low(&tmp_sqr, &out, out.wlen); EG(ret, err); in nn_modinv_2exp()
357 ret = nn_mul_low(&tmp_mul, &tmp_sqr, x, out.wlen); EG(ret, err); in nn_modinv_2exp()
358 ret = nn_lshift_fixedlen(&out, &out, 1); EG(ret, err); in nn_modinv_2exp()
375 ret = _nn_sub_mod_2exp(&out, &tmp_mul); EG(ret, err); in nn_modinv_2exp()
382 ret = nn_set_wlen(&out, (u8)(2 * out.wlen)); EG(ret, err); in nn_modinv_2exp()
383 ret = nn_sqr_low(&tmp_sqr, &out, out.wlen); EG(ret, err); in nn_modinv_2exp()
384 ret = nn_mul_low(&tmp_mul, &tmp_sqr, x, out.wlen); EG(ret, err); in nn_modinv_2exp()
385 ret = nn_lshift_fixedlen(&out, &out, 1); EG(ret, err); in nn_modinv_2exp()
386 ret = _nn_sub_mod_2exp(&out, &tmp_mul); EG(ret, err); in nn_modinv_2exp()
393 ret = nn_set_wlen(&out, exp_wlen); EG(ret, err); in nn_modinv_2exp()
394 ret = nn_sqr_low(&tmp_sqr, &out, out.wlen); EG(ret, err); in nn_modinv_2exp()
395 ret = nn_mul_low(&tmp_mul, &tmp_sqr, x, out.wlen); EG(ret, err); in nn_modinv_2exp()
396 ret = nn_lshift_fixedlen(&out, &out, 1); EG(ret, err); in nn_modinv_2exp()
397 ret = _nn_sub_mod_2exp(&out, &tmp_mul); EG(ret, err); in nn_modinv_2exp()
405 ret = nn_copy(_out, &out); EG(ret, err); in nn_modinv_2exp()
414 return ret; in nn_modinv_2exp()
425 int ret; in nn_modinv_word() local
428 ret = nn_init(&nn_tmp, 0); EG(ret, err); in nn_modinv_word()
429 ret = nn_set_word_value(&nn_tmp, w); EG(ret, err); in nn_modinv_word()
430 ret = nn_modinv(out, &nn_tmp, m); in nn_modinv_word()
435 return ret; in nn_modinv_word()
445 int ret, cmp, isodd; in _nn_modinv_fermat_common() local
450 ret = nn_check_initialized(x); EG(ret, err); in _nn_modinv_fermat_common()
451 ret = nn_check_initialized(p); EG(ret, err); in _nn_modinv_fermat_common()
457 ret = nn_iszero(x, &cmp); EG(ret, err); in _nn_modinv_fermat_common()
460 ret = nn_init(out, 0); EG(ret, err); in _nn_modinv_fermat_common()
461 ret = nn_zero(out); EG(ret, err); in _nn_modinv_fermat_common()
462 ret = -1; in _nn_modinv_fermat_common()
470 ret = nn_cmp_word(p, WORD(2), &cmp); EG(ret, err); in _nn_modinv_fermat_common()
473 ret = nn_isodd(x, &isodd); EG(ret, err); in _nn_modinv_fermat_common()
476 ret = nn_init(out, 0); EG(ret, err); in _nn_modinv_fermat_common()
477 ret = nn_one(out); EG(ret, err); in _nn_modinv_fermat_common()
478 ret = 0; in _nn_modinv_fermat_common()
482 ret = nn_init(out, 0); EG(ret, err); in _nn_modinv_fermat_common()
483 ret = nn_zero(out); EG(ret, err); in _nn_modinv_fermat_common()
484 ret = -1; in _nn_modinv_fermat_common()
491 ret = nn_init(out, 0); EG(ret, err); in _nn_modinv_fermat_common()
492 ret = nn_zero(out); EG(ret, err); in _nn_modinv_fermat_common()
493 ret = -1; in _nn_modinv_fermat_common()
501 ret = nn_init(p_minus_two, 0); EG(ret, err); in _nn_modinv_fermat_common()
504 ret = nn_init(&two, 0); EG(ret, err); in _nn_modinv_fermat_common()
505 ret = nn_set_word_value(&two, WORD(2)); EG(ret, err); in _nn_modinv_fermat_common()
506 ret = nn_sub(p_minus_two, p, &two); in _nn_modinv_fermat_common()
511 return ret; in _nn_modinv_fermat_common()
533 int ret, lesstwo; in nn_modinv_fermat() local
540 ret = _nn_modinv_fermat_common(out, x, p, &p_minus_two, &lesstwo); EG(ret, err); in nn_modinv_fermat()
544 ret = nn_mod_pow(out, x, &p_minus_two, p); in nn_modinv_fermat()
550 return ret; in nn_modinv_fermat()
569 int ret, lesstwo; in nn_modinv_fermat_redc() local
576 ret = _nn_modinv_fermat_common(out, x, p, &p_minus_two, &lesstwo); EG(ret, err); in nn_modinv_fermat_redc()
580 ret = nn_mod_pow_redc(out, x, &p_minus_two, p, r, r_square, mpinv); in nn_modinv_fermat_redc()
586 return ret; in nn_modinv_fermat_redc()