mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-14 09:37:34 -05:00
Generate keys more carefully, so that when the user asks for an n-bit
key they always get an n-bit number instead of n-1. The latter was perfectly harmless but kept confusing users. [originally from svn r9421]
This commit is contained in:
@ -10,6 +10,7 @@ int rsa_generate(struct RSAKey *key, int bits, progfn_t pfn,
|
||||
void *pfnparam)
|
||||
{
|
||||
Bignum pm1, qm1, phi_n;
|
||||
unsigned pfirst, qfirst;
|
||||
|
||||
/*
|
||||
* Set up the phase limits for the progress report. We do this
|
||||
@ -59,10 +60,11 @@ int rsa_generate(struct RSAKey *key, int bits, progfn_t pfn,
|
||||
* general that's slightly more fiddly to arrange. By choosing
|
||||
* a prime e, we can simplify the criterion.)
|
||||
*/
|
||||
invent_firstbits(&pfirst, &qfirst);
|
||||
key->p = primegen(bits / 2, RSA_EXPONENT, 1, NULL,
|
||||
1, pfn, pfnparam);
|
||||
1, pfn, pfnparam, pfirst);
|
||||
key->q = primegen(bits - bits / 2, RSA_EXPONENT, 1, NULL,
|
||||
2, pfn, pfnparam);
|
||||
2, pfn, pfnparam, qfirst);
|
||||
|
||||
/*
|
||||
* Ensure p > q, by swapping them if not.
|
||||
|
Reference in New Issue
Block a user