Fixes for interface change to @mpmont_expr@ and @mpmont_mexpr@.
[u/mdw/catacomb] / dh-check.c
index 8956bd1..f9317f5 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: dh-check.c,v 1.1 2001/02/03 16:08:24 mdw Exp $
+ * $Id: dh-check.c,v 1.2 2001/06/16 12:56:38 mdw Exp $
  *
  * Checks Diffie-Hellman group parameters
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: dh-check.c,v $
+ * Revision 1.2  2001/06/16 12:56:38  mdw
+ * Fixes for interface change to @mpmont_expr@ and @mpmont_mexpr@.
+ *
  * Revision 1.1  2001/02/03 16:08:24  mdw
  * Add consistency checking for public keys.
  *
@@ -66,6 +69,7 @@ int dh_checkparam(keycheck *kc, const dh_param *dp, mp **v, size_t n)
   mpmont mm;
   mp *pm1 = MP_NEW;
   mp *q = MP_NEW;
+  mp *x;
   mpmul mu;
   size_t i;
 
@@ -96,7 +100,9 @@ int dh_checkparam(keycheck *kc, const dh_param *dp, mp **v, size_t n)
     goto fail;
   q = mp_odd(q, dp->q, &i);
   mpmont_create(&mm, dp->p);
-  q = mpmont_expr(&mm, q, dp->g, q);
+  x = mpmont_mul(&mm, MP_NEW, dp->g, mm.r2);
+  q = mpmont_expr(&mm, q, x, q);
+  mp_drop(x);
   do {
     if (mp_eq(q, mm.r) != !i) {
       if (keycheck_report(kc, KCSEV_ERR, "order of g != q")) {