Commit 393a527364e2f0e3e28936cc2ee28c906ea55856

Karel Miko 2017-04-09T00:36:50

fix fast_mp_invmod() not being able to handle case where b=1 This closes #67

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/bn_mp_invmod.c b/bn_mp_invmod.c
index 44951e5..820635d 100644
--- a/bn_mp_invmod.c
+++ b/bn_mp_invmod.c
@@ -25,7 +25,7 @@ int mp_invmod (mp_int * a, mp_int * b, mp_int * c)
 
 #ifdef BN_FAST_MP_INVMOD_C
   /* if the modulus is odd we can use a faster routine instead */
-  if (mp_isodd (b) == MP_YES) {
+  if ((mp_isodd(b) == MP_YES) && (mp_cmp_d(b, 1) != MP_EQ)) {
     return fast_mp_invmod (a, b, c);
   }
 #endif