mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
DSA key gen: start from 2 when looking for g.
Having just written a comment about how it was almost inconceivably improbable that you _wouldn't_ be successful in finding a suitable g on the very first number you tried, I couldn't help noticing that in fact my very next DSA key generation test had to try twice. Had I made a mistake in my probability theory? No, it turns out: I find g by raising consecutive numbers to the power (p-1)/q and looking to see if they're not 1, but I start with 1 itself, which along with -1 is the only number that _can't_ work! Save a bit of pointless effort and iterate up from 2 instead.
This commit is contained in:
parent
a7f409eb61
commit
8b672835c1
@ -64,7 +64,7 @@ int dsa_generate(struct dss_key *key, int bits, ProgressReceiver *prog)
|
||||
*/
|
||||
progress_start_phase(prog, phase_g);
|
||||
mp_int *power = mp_div(p, q); /* this is floor(p/q) == (p-1)/q */
|
||||
mp_int *h = mp_from_integer(1);
|
||||
mp_int *h = mp_from_integer(2);
|
||||
mp_int *g;
|
||||
while (1) {
|
||||
progress_report_attempt(prog);
|
||||
|
Loading…
Reference in New Issue
Block a user