.links: Drop obsolete `lib-config.in' file.
[u/mdw/catacomb] / dh.h
diff --git a/dh.h b/dh.h
index 0ddc342..04b526e 100644 (file)
--- a/dh.h
+++ b/dh.h
@@ -7,7 +7,7 @@
  * (c) 1999 Straylight/Edgeware
  */
 
-/*----- Licensing notice --------------------------------------------------* 
+/*----- Licensing notice --------------------------------------------------*
  *
  * This file is part of Catacomb.
  *
  * it under the terms of the GNU Library General Public License as
  * published by the Free Software Foundation; either version 2 of the
  * License, or (at your option) any later version.
- * 
+ *
  * Catacomb is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Library General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Library General Public
  * License along with Catacomb; if not, write to the Free
  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
@@ -65,7 +65,7 @@
 typedef gprime_param dh_param;         /* Group parameters */
 
 typedef struct dh_pub {
-  dh_param dp;                         /* Shared parameters */         
+  dh_param dp;                         /* Shared parameters */
   mp *y;                               /* Public key */
 } dh_pub;
 
@@ -138,11 +138,11 @@ extern int dh_gen(dh_param */*dp*/, unsigned /*ql*/, unsigned /*pl*/,
  *             @unsigned flags@ = other generation flags
  *             @unsigned steps@ = number of steps to go
  *             @grand *r@ = random number source
- *              @pgen_proc *oev@ = outer event handler function
- *              @void *oec@ = argument for the outer event handler
- *              @pgen_proc *iev@ = inner event handler function
- *              @void *iec@ = argument for the inner event handler
- *              @size_t *nf@, @mp ***f@ = output array for factors
+ *             @pgen_proc *oev@ = outer event handler function
+ *             @void *oec@ = argument for the outer event handler
+ *             @pgen_proc *iev@ = inner event handler function
+ *             @void *iec@ = argument for the inner event handler
+ *             @size_t *nf@, @mp ***f@ = output array for factors
  *
  * Returns:    @PGEN_DONE@ if it worked, @PGEN_ABORT@ if it didn't.
  *
@@ -166,6 +166,29 @@ extern int dh_limlee(dh_param */*dp*/, unsigned /*ql*/, unsigned /*pl*/,
                     pgen_proc */*oev*/, void */*oec*/, pgen_proc */*iev*/,
                     void */*iec*/, size_t */*nf*/, mp ***/*f*/);
 
+/* --- @dh_kcdsagen@ --- *
+ *
+ * Arguments:  @dh_param *dp@ = pointer to output parameter block
+ *             @unsigned ql@ = size of small factor of %$(p - 1)/2$%
+ *             @unsigned pl@ = size of %$p$% in bits
+ *             @unsigned flags@ = other generation flags (none defined)
+ *             @unsigned steps@ = number of steps to go
+ *             @grand *r@ = random number source
+ *             @pgen_proc *ev@ = event handler function
+ *             @void *ec@ = context for the event handler
+ *
+ * Returns:    @PGEN_DONE@ if it worked, @PGEN_ABORT@ if it failed.
+ *
+ * Use:                Generates a KCDSA prime group.  That is, it chooses a prime
+ *             %$p$%, such that $%p = 2 q v + 1$%, for primes %$q$% and
+ *             %$v$%.  The actual group of interest is the subgroup of order
+ *             %$q$%.
+ */
+
+extern int dh_kcdsagen(dh_param */*dp*/, unsigned /*ql*/, unsigned /*pl*/,
+                      unsigned /*flags*/, unsigned /*steps*/, grand */*r*/,
+                      pgen_proc */*ev*/, void */*ec*/);
+
 /* --- @dh_checkparam@ --- *
  *
  * Arguments:  @keycheck *kc@ = keycheck state