Pollard's rho algorithm for computing discrete logs.
[u/mdw/catacomb] / bbs-jump.c
index 8e7109d..428915d 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: bbs-jump.c,v 1.2 1999/12/22 15:52:08 mdw Exp $
+ * $Id: bbs-jump.c,v 1.4 2000/07/01 11:20:36 mdw Exp $
  *
  * Jumping around a BBS sequence
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: bbs-jump.c,v $
+ * Revision 1.4  2000/07/01 11:20:36  mdw
+ * Remove bad type name `bbs_param'.
+ *
+ * Revision 1.3  2000/06/17 10:44:17  mdw
+ * Typesetting fix.
+ *
  * Revision 1.2  1999/12/22 15:52:08  mdw
  * Rename `bbs_params' to `bbs_param' for consistency.
  *
@@ -51,7 +57,7 @@
 /* --- @jump@ --- *
  *
  * Arguments:  @bbs *b@ = pointer to BBS generator context
- *             @bbs_param *bp@ = pointer to BBS modulus factors
+ *             @bbs_priv *bp@ = pointer to BBS modulus factors
  *             @unsigned long n@ = number of steps to move
  *             @mp *px@ = exponent mod @p@ for a one-step jump
  *             @mp *qx@ = exponent mod @q@ for a one-step jump
@@ -77,7 +83,7 @@
  *
  *             If you want to step the generator forwards, simply set
  *             %$px = qx = 2$%.  If you want to step backwards, make
- *             %$px = (p + 1)/4$% and %$qx = (q + 1)/4%$.  Note that, if
+ *             %$px = (p + 1)/4$% and %$qx = (q + 1)/4$%.  Note that, if
  *             %$x$% is a quadratic residue mod $%p$%, then
  *
  *             %$(x^2) ^ {(p + 1)/4}$%
@@ -89,7 +95,7 @@
  *             %$p \equiv 3 \pmod 4$%.)
  */
 
-static void jump(bbs *b, bbs_param *bp, unsigned long n,
+static void jump(bbs *b, bbs_priv *bp, unsigned long n,
                 mp *px, mp *qx)
 {
   mp *ep, *eq;
@@ -169,7 +175,7 @@ static void jump(bbs *b, bbs_param *bp, unsigned long n,
 /* --- @bbs_ff@ --- *
  *
  * Arguments:  @bbs *b@ = pointer to a BBS generator state
- *             @bbs_param *bp@ = pointer to BBS modulus factors
+ *             @bbs_priv *bp@ = pointer to BBS modulus factors
  *             @unsigned long n@ = number of steps to make
  *
  * Returns:    ---
@@ -179,7 +185,7 @@ static void jump(bbs *b, bbs_param *bp, unsigned long n,
  *             efficiently.
  */
 
-void bbs_ff(bbs *b, bbs_param *bp, unsigned long n)
+void bbs_ff(bbs *b, bbs_priv *bp, unsigned long n)
 {
   jump(b, bp, n, MP_TWO, MP_TWO);
 }
@@ -187,7 +193,7 @@ void bbs_ff(bbs *b, bbs_param *bp, unsigned long n)
 /* --- @bbs_rew@ --- *
  *
  * Arguments:  @bbs *b@ = pointer to a BBS generator state
- *             @bbs_param *bp@ = pointer to BBS modulus factors
+ *             @bbs_priv *bp@ = pointer to BBS modulus factors
  *             @unsigned long n@ = number of steps to make
  *
  * Returns:    ---
@@ -197,7 +203,7 @@ void bbs_ff(bbs *b, bbs_param *bp, unsigned long n)
  *             at all.
  */
 
-void bbs_rew(bbs *b, bbs_param *bp, unsigned long n)
+void bbs_rew(bbs *b, bbs_priv *bp, unsigned long n)
 {
   mp *px = mp_lsr(MP_NEW, bp->p, 2);
   mp *qx = mp_lsr(MP_NEW, bp->q, 2);
@@ -214,7 +220,7 @@ void bbs_rew(bbs *b, bbs_param *bp, unsigned long n)
 
 static int verify(dstr *v)
 {
-  bbs_param bp;
+  bbs_priv bp;
   bbs b;
   mp *x;
   unsigned long n;