-extern int dsa_seed(dsa_param */*dp*/, unsigned /*ql*/, unsigned /*pl*/,
- unsigned /*steps*/, const void */*k*/, size_t /*sz*/,
- pgen_proc */*event*/, void */*ectx*/);
+extern int dsa_gen(dsa_param */*dp*/, unsigned /*ql*/, unsigned /*pl*/,
+ unsigned /*steps*/, const void */*k*/, size_t /*sz*/,
+ dsa_seed */*sd*/, pgen_proc */*event*/, void */*ectx*/);
+
+/* --- @dsa_checkparam@ --- *
+ *
+ * Arguments: @keycheck *kc@ = keycheck state
+ * @const dsa_param *dp@ = pointer to the parameter set
+ * @const dsa_seed *ds@ = pointer to seed information
+ *
+ * Returns: Zero if all OK, or return status from function.
+ *
+ * Use: Checks a set of DSA parameters for consistency and security.
+ */
+
+extern int dsa_checkparam(keycheck */*kc*/, const dsa_param */*dp*/,
+ const dsa_seed */*ds*/);
+
+/* --- @dsa_h2n@ --- *
+ *
+ * Arguments: @mp *d@ = destination integer
+ * @mp *r@ = order of the DSA group
+ * @const void *h@ = pointer to message hash
+ * @size_t hsz@ = size (in bytes) of the hash output
+ *
+ * Returns: Resulting integer.
+ *
+ * Use: Converts a hash to an integer in the demented way necessary
+ * for DSA/ECDSA. This is, of course, completely insane, but
+ * there you go.
+ */
+
+extern mp *dsa_h2n(mp */*d*/, mp */*r*/, const void */*h*/, size_t /*hsz*/);