Uprating of the passphrase pixie.
[u/mdw/catacomb] / dh-check.c
index 8956bd1..13320a6 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.3 2004/04/08 01:36:15 mdw Exp $
  *
  * Checks Diffie-Hellman group parameters
  *
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: dh-check.c,v $
- * Revision 1.1  2001/02/03 16:08:24  mdw
- * Add consistency checking for public keys.
- *
- */
-
 /*----- Header files ------------------------------------------------------*/
 
 #include <mLib/dstr.h>
@@ -66,6 +58,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 +89,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")) {