simplifications: invmod

This commit is contained in:
Daniel Mendler 2019-10-29 20:21:22 +01:00
parent 56144eed1e
commit b1f9bff192
No known key found for this signature in database
GPG Key ID: D88ADB2A2693CA43
2 changed files with 76 additions and 80 deletions

View File

@ -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; if ((err = mp_copy(&y, &v)) != MP_OKAY) goto LBL_ERR;
mp_set(&D, 1uL); mp_set(&D, 1uL);
top: do {
/* 4. while u is even do */ /* 4. while u is even do */
while (mp_iseven(&u)) { while (mp_iseven(&u)) {
/* 4.1 u = u/2 */ /* 4.1 u = u/2 */
@ -84,9 +84,7 @@ top:
} }
/* if not zero goto step 4 */ /* if not zero goto step 4 */
if (!mp_iszero(&u)) { } while (!mp_iszero(&u));
goto top;
}
/* now a = C, b = D, gcd == g*v */ /* now a = C, b = D, gcd == g*v */

View File

@ -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(&A, 1uL);
mp_set(&D, 1uL); mp_set(&D, 1uL);
top: do {
/* 4. while u is even do */ /* 4. while u is even do */
while (mp_iseven(&u)) { while (mp_iseven(&u)) {
/* 4.1 u = u/2 */ /* 4.1 u = u/2 */
@ -87,9 +87,7 @@ top:
} }
/* if not zero goto step 4 */ /* if not zero goto step 4 */
if (!mp_iszero(&u)) { } while (!mp_iszero(&u));
goto top;
}
/* now a = C, b = D, gcd == g*v */ /* now a = C, b = D, gcd == g*v */
@ -111,7 +109,7 @@ top:
/* C is now the inverse */ /* C is now the inverse */
mp_exch(&C, c); mp_exch(&C, c);
err = MP_OKAY;
LBL_ERR: LBL_ERR:
mp_clear_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL); mp_clear_multi(&x, &y, &u, &v, &A, &B, &C, &D, NULL);
return err; return err;