X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/13032b7773a9ccbd36a94da9b5aacb8bafc11ec4..8d90b8b27bf086da6245030459ab3e5977313eb0:/sshdssg.c diff --git a/sshdssg.c b/sshdssg.c index 3eb68d46..3d7b0ef6 100644 --- a/sshdssg.c +++ b/sshdssg.c @@ -9,6 +9,7 @@ int dsa_generate(struct dss_key *key, int bits, progfn_t pfn, void *pfnparam) { Bignum qm1, power, g, h, tmp; + unsigned pfirst, qfirst; int progress; /* @@ -70,15 +71,16 @@ int dsa_generate(struct dss_key *key, int bits, progfn_t pfn, pfn(pfnparam, PROGFN_READY, 0, 0); + invent_firstbits(&pfirst, &qfirst); /* * Generate q: a prime of length 160. */ - key->q = primegen(160, 2, 2, NULL, 1, pfn, pfnparam); + key->q = primegen(160, 2, 2, NULL, 1, pfn, pfnparam, qfirst); /* * Now generate p: a prime of length `bits', such that p-1 is * divisible by q. */ - key->p = primegen(bits-160, 2, 2, key->q, 2, pfn, pfnparam); + key->p = primegen(bits-160, 2, 2, key->q, 2, pfn, pfnparam, pfirst); /* * Next we need g. Raise 2 to the power (p-1)/q modulo p, and