Update manuals.
[u/mdw/catacomb] / rsa-recover.c
index 18b6c6a..8052ddc 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: rsa-recover.c,v 1.3 2000/06/22 19:03:14 mdw Exp $
+ * $Id: rsa-recover.c,v 1.6 2001/06/16 12:56:38 mdw Exp $
  *
  * Recover RSA parameters
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: rsa-recover.c,v $
+ * Revision 1.6  2001/06/16 12:56:38  mdw
+ * Fixes for interface change to @mpmont_expr@ and @mpmont_mexpr@.
+ *
+ * Revision 1.5  2000/10/08 12:11:22  mdw
+ * Use @MP_EQ@ instead of @MP_CMP@.
+ *
+ * Revision 1.4  2000/07/01 11:22:22  mdw
+ * Remove bad type name `rsa_param'.
+ *
  * Revision 1.3  2000/06/22 19:03:14  mdw
  * Use the new @mp_odd@ function.
  *
@@ -53,7 +62,7 @@
 
 /* --- @rsa_recover@ --- *
  *
- * Arguments:  @rsa_param *rp@ = pointer to parameter block
+ * Arguments:  @rsa_priv *rp@ = pointer to parameter block
  *
  * Returns:    Zero if all went well, nonzero if the parameters make no
  *             sense.
@@ -61,7 +70,7 @@
  * Use:                Derives the full set of RSA parameters given a minimal set.
  */
 
-int rsa_recover(rsa_param *rp)
+int rsa_recover(rsa_priv *rp)
 {
   /* --- If there is no modulus, calculate it --- */
 
@@ -83,7 +92,7 @@ int rsa_recover(rsa_param *rp)
        mp_div(&rp->q, &r, rp->n, rp->p);
       else
        mp_div(&rp->p, &r, rp->n, rp->q);
-      if (MP_CMP(r, !=, MP_ZERO)) {
+      if (!MP_EQ(r, MP_ZERO)) {
        mp_drop(r);
        return (-1);
       }
@@ -135,8 +144,9 @@ int rsa_recover(rsa_param *rp)
         */
 
        aw = primetab[i++];
-       z = mpmont_expr(&mm, z, &a, t);
-       if (MP_CMP(z, ==, mm.r) || MP_CMP(z, ==, m1))
+       z = mpmont_mul(&mm, z, &a, mm.r2);
+       z = mpmont_expr(&mm, z, z, t);
+       if (MP_EQ(z, mm.r) || MP_EQ(z, m1))
          continue;
 
        /* --- Now square until something interesting happens --- *
@@ -150,10 +160,10 @@ int rsa_recover(rsa_param *rp)
        for (;;) {
          mp *zz = mp_sqr(MP_NEW, z);
          zz = mpmont_reduce(&mm, zz, zz);
-         if (MP_CMP(zz, ==, mm.r)) {
+         if (MP_EQ(zz, mm.r)) {
            mp_drop(zz);
            goto done;
-         } else if (MP_CMP(zz, ==, m1)) {
+         } else if (MP_EQ(zz, m1)) {
            mp_drop(zz);
            goto again;
          }
@@ -224,7 +234,7 @@ int rsa_recover(rsa_param *rp)
     }
 
     mp_drop(phi);
-    if (MP_CMP(g, !=, MP_ONE)) {
+    if (!MP_EQ(g, MP_ONE)) {
       mp_drop(g);
       return (-1);
     }