
most of these warnings are not problems because of ample use of abort() calls. However, the large number of warnings makes it difficult to identify real problems. Initialize the variables to shut up the compilers. Change-Id: I8477c11b17c7b6a7d9074c721fdd2d7303b186a8
44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
#include <tommath.h>
|
|
#ifdef BN_MP_INVMOD_C
|
|
/* LibTomMath, multiple-precision integer library -- Tom St Denis
|
|
*
|
|
* LibTomMath is a library that provides multiple-precision
|
|
* integer arithmetic as well as number theoretic functionality.
|
|
*
|
|
* The library was designed directly after the MPI library by
|
|
* Michael Fromberger but has been written from scratch with
|
|
* additional optimizations in place.
|
|
*
|
|
* The library is free for all purposes without any express
|
|
* guarantee it works.
|
|
*
|
|
* Tom St Denis, tomstdenis@gmail.com, http://libtom.org
|
|
*/
|
|
|
|
/* hac 14.61, pp608 */
|
|
int mp_invmod (mp_int * a, mp_int * b, mp_int * c)
|
|
{
|
|
/* b cannot be negative */
|
|
if (b->sign == MP_NEG || mp_iszero(b) == 1) {
|
|
return MP_VAL;
|
|
}
|
|
|
|
#ifdef BN_FAST_MP_INVMOD_C
|
|
/* if the modulus is odd we can use a faster routine instead */
|
|
if (mp_isodd (b) == 1) {
|
|
return fast_mp_invmod (a, b, c);
|
|
}
|
|
#endif
|
|
|
|
#ifdef BN_MP_INVMOD_SLOW_C
|
|
return mp_invmod_slow(a, b, c);
|
|
#else
|
|
return MP_VAL;
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
/* $Source: /cvs/libtom/libtommath/bn_mp_invmod.c,v $ */
|
|
/* $Revision: 1.4 $ */
|
|
/* $Date: 2006/12/28 01:25:13 $ */
|