From 131d0d944a81a5b9c213c8ab5b2bedb99848d52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Mon, 18 Mar 2002 18:11:03 +0100 Subject: [PATCH] (rsa_generate_keypair): Output a newline after a non-empty line of 'e':s (bad e was chosen, try again). Rev: src/nettle/rsa-keygen.c:1.2 --- rsa-keygen.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/rsa-keygen.c b/rsa-keygen.c index 2d2cc922..4305c0a8 100644 --- a/rsa-keygen.c +++ b/rsa-keygen.c @@ -303,21 +303,28 @@ rsa_generate_keypair(struct rsa_public_key *pub, /* If we didn't have a given e, generate one now. */ if (e_size) - for (;;) - { - bignum_random_size(pub->e, e_size, - random_ctx, random); + { + int retried = 0; + for (;;) + { + bignum_random_size(pub->e, e_size, + random_ctx, random); - /* Make sure it's odd and that the most significant bit is - * set */ - mpz_setbit(pub->e, 0); - mpz_setbit(pub->e, e_size - 1); - - /* Needs gmp-3, or inverse might be negative. */ - if (mpz_invert(key->d, pub->e, phi)) - break; - else if (progress) progress(progress_ctx, 'e'); - } + /* Make sure it's odd and that the most significant bit is + * set */ + mpz_setbit(pub->e, 0); + mpz_setbit(pub->e, e_size - 1); + + /* Needs gmp-3, or inverse might be negative. */ + if (mpz_invert(key->d, pub->e, phi)) + break; + + if (progress) progress(progress_ctx, 'e'); + retried = 1; + } + if (retried && progress) + progress(progress_ctx, '\n'); + } else { /* Must always succeed, as we already that e -- GitLab