X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/b04a7659918367dcc8570e1c7b4246a97e88288d..e3dc2d225ea40a7453ae19ef4d12cf4c001076bd:/dsa-gen.c diff --git a/dsa-gen.c b/dsa-gen.c index d26bfe4..3943dd5 100644 --- a/dsa-gen.c +++ b/dsa-gen.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: dsa-gen.c,v 1.4 1999/12/22 15:52:44 mdw Exp $ + * $Id: dsa-gen.c,v 1.6 2000/07/29 10:00:14 mdw Exp $ * * Generate DSA shared parameters * @@ -30,6 +30,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: dsa-gen.c,v $ + * Revision 1.6 2000/07/29 10:00:14 mdw + * Rename `dsa_seed' to `dsa_gen' for consistency with other parameter- + * generation interfaces. + * + * Revision 1.5 2000/02/12 18:21:02 mdw + * Overhaul of key management (again). + * * Revision 1.4 1999/12/22 15:52:44 mdw * Reworking for new prime-search system. * @@ -127,7 +134,7 @@ int dsa_step(int rq, pgen_event *ev, void *p) /*----- Glue code ---------------------------------------------------------*/ -/* --- @dsa_seed@ --- * +/* --- @dsa_gen@ --- * * * Arguments: @dsa_param *dp@ = where to store parameters * @unsigned ql@ = length of @q@ in bits @@ -141,7 +148,12 @@ int dsa_step(int rq, pgen_event *ev, void *p) * Returns: @PGEN_DONE@ if everything worked ok; @PGEN_ABORT@ otherwise. * * Use: Generates the DSA shared parameters from a given seed value. - * This can take quite a long time. + * + * The parameters are a prime %$q$%, relatively small, and a + * large prime %$p = kq + 1$% for some %$k$%, together with a + * generator %$g$% of the cyclic subgroup of order %$q$%. These + * are actually the same as the Diffie-Hellman parameter set, + * but the generation algorithm is different. * * The algorithm used is a compatible extension of the method * described in the DSA standard, FIPS 186. The standard @@ -150,8 +162,8 @@ int dsa_step(int rq, pgen_event *ev, void *p) * %$l$%. Neither limitation applies to this implementation. */ -int dsa_seed(dsa_param *dp, unsigned ql, unsigned pl, unsigned steps, - const void *k, size_t sz, pgen_proc *event, void *ectx) +int dsa_gen(dsa_param *dp, unsigned ql, unsigned pl, unsigned steps, + const void *k, size_t sz, pgen_proc *event, void *ectx) { dsa_stepctx s; prim_ctx p; @@ -191,7 +203,7 @@ int dsa_seed(dsa_param *dp, unsigned ql, unsigned pl, unsigned steps, mpmont_create(&p.mm, dp->p); qc = MP_NEW; mp_div(&qc, 0, dp->p, dp->q); i = 0; - p.f = qc; + p.exp = qc; p.n = 0; if ((dp->g = pgen("g", MP_NEW, MP_NEW, event, ectx, 0, prim_step, &i, 1, prim_test, &p)) == 0) @@ -231,7 +243,7 @@ static int verify(dstr *v) int ok = 1; int rc; - rc = dsa_seed(&dp, 160, l, 1, v[0].buf, v[0].len, pgen_evspin, 0); + rc = dsa_gen(&dp, 160, l, 1, v[0].buf, v[0].len, pgen_evspin, 0); if (rc || MP_CMP(q, !=, dp.q) || MP_CMP(p, !=, dp.p) || MP_CMP(g, !=, dp.g)) { fputs("\n*** gen failed", stderr);