simplifications: invmod
This commit is contained in:
parent
56144eed1e
commit
b1f9bff192
@ -42,7 +42,7 @@ mp_err s_mp_invmod_fast(const mp_int *a, const mp_int *b, mp_int *c)
|
||||
if ((err = mp_copy(&y, &v)) != MP_OKAY) goto LBL_ERR;
|
||||
mp_set(&D, 1uL);
|
||||
|
||||
top:
|
||||
do {
|
||||
/* 4. while u is even do */
|
||||
while (mp_iseven(&u)) {
|
||||
/* 4.1 u = u/2 */
|
||||
@ -84,9 +84,7 @@ top:
|
||||
}
|
||||
|
||||
/* if not zero goto step 4 */
|
||||
if (!mp_iszero(&u)) {
|
||||
goto top;
|
||||
}
|
||||
} while (!mp_iszero(&u));
|
||||
|
||||
/* now a = C, b = D, gcd == g*v */
|
||||
|
||||
|
@ -36,7 +36,7 @@ mp_err s_mp_invmod_slow(const mp_int *a, const mp_int *b, mp_int *c)
|
||||
mp_set(&A, 1uL);
|
||||
mp_set(&D, 1uL);
|
||||
|
||||
top:
|
||||
do {
|
||||
/* 4. while u is even do */
|
||||
while (mp_iseven(&u)) {
|
||||
/* 4.1 u = u/2 */
|
||||
@ -87,9 +87,7 @@ top:
|
||||
}
|
||||
|
||||
/* if not zero goto step 4 */
|
||||
if (!mp_iszero(&u)) {
|
||||
goto top;
|
||||
}
|
||||
} while (!mp_iszero(&u));
|
||||
|
||||
/* now a = C, b = D, gcd == g*v */
|
||||
|
||||
@ -111,7 +109,7 @@ top:
|
||||
|
||||
/* C is now the inverse */
|
||||
mp_exch(&C, c);
|
||||
err = MP_OKAY;
|
||||
|
||||
LBL_ERR:
|
||||
mp_clear_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL);
|
||||
return err;
|
||||
|
Loading…
Reference in New Issue
Block a user