comparison bn_fast_mp_invmod.c @ 142:d29b64170cf0 libtommath-orig

import of libtommath 0.32
author Matt Johnston <matt@ucc.asn.au>
date Sun, 19 Dec 2004 11:33:56 +0000
parents 86e0b50a9b58
children d8254fc979e9
comparison
equal deleted inserted replaced
19:e1037a1e12e7 142:d29b64170cf0
1 #include <tommath.h>
2 #ifdef BN_FAST_MP_INVMOD_C
1 /* LibTomMath, multiple-precision integer library -- Tom St Denis 3 /* LibTomMath, multiple-precision integer library -- Tom St Denis
2 * 4 *
3 * LibTomMath is a library that provides multiple-precision 5 * LibTomMath is a library that provides multiple-precision
4 * integer arithmetic as well as number theoretic functionality. 6 * integer arithmetic as well as number theoretic functionality.
5 * 7 *
10 * The library is free for all purposes without any express 12 * The library is free for all purposes without any express
11 * guarantee it works. 13 * guarantee it works.
12 * 14 *
13 * Tom St Denis, [email protected], http://math.libtomcrypt.org 15 * Tom St Denis, [email protected], http://math.libtomcrypt.org
14 */ 16 */
15 #include <tommath.h>
16 17
17 /* computes the modular inverse via binary extended euclidean algorithm, 18 /* computes the modular inverse via binary extended euclidean algorithm,
18 * that is c = 1/a mod b 19 * that is c = 1/a mod b
19 * 20 *
20 * Based on mp_invmod except this is optimized for the case where b is 21 * Based on slow invmod except this is optimized for the case where b is
21 * odd as per HAC Note 14.64 on pp. 610 22 * odd as per HAC Note 14.64 on pp. 610
22 */ 23 */
23 int 24 int
24 fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c) 25 fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c)
25 { 26 {
139 res = MP_OKAY; 140 res = MP_OKAY;
140 141
141 __ERR:mp_clear_multi (&x, &y, &u, &v, &B, &D, NULL); 142 __ERR:mp_clear_multi (&x, &y, &u, &v, &B, &D, NULL);
142 return res; 143 return res;
143 } 144 }
145 #endif