diff options
author | Werner Koch <wk@gnupg.org> | 2001-12-18 15:29:02 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2001-12-18 15:29:02 +0000 |
commit | 4d7c31417d7d49d839dad9016a0696a264229c3e (patch) | |
tree | 69c648f59a17d36e4ca7a6f8436d032a11b165df /cipher/primegen.c | |
parent | 83e80feb6eabecbca0327e4cee1e710c01f95de4 (diff) | |
download | libgcrypt-4d7c31417d7d49d839dad9016a0696a264229c3e.tar.gz |
* rsa.c (generate): Loop until we find the exact modulus size.
Changed the exponent to 41.
(rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
* primegen.c (gen_prime): Set 2 high order bits for secret primes.
* Makefile.am (DISTCLEANFILES): Include construct.c.
Diffstat (limited to 'cipher/primegen.c')
-rw-r--r-- | cipher/primegen.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cipher/primegen.c b/cipher/primegen.c index 9489f0e8..e131e33a 100644 --- a/cipher/primegen.c +++ b/cipher/primegen.c @@ -257,7 +257,9 @@ _gcry_generate_elg_prime( int mode, unsigned pbits, unsigned qbits, if( DBG_CIPHER ) { log_debug("checking g: "); /*mpi_print( stderr, g, 1 );*/ - #warning we need an internal mpi_print for debugging +#if __GNUC__ >= 2 +# warning we need an internal mpi_print for debugging +#endif } else progress('^'); @@ -323,9 +325,14 @@ gen_prime( unsigned nbits, int secret, int randomlevel ) /* generate a random number */ gcry_mpi_randomize( prime, nbits, randomlevel ); - /* set high order bit to 1, set low order bit to 1 */ - mpi_set_highbit( prime, nbits-1 ); - mpi_set_bit( prime, 0 ); + /* set high order bit to 1, set low order bit to 1. If we are + generating a secret prime we are most probably doing that + for RSA, to make sure that the modulus does have the + requested keysize we set the 2 high order bits */ + mpi_set_highbit (prime, nbits-1); + if (secret) + mpi_set_highbit (prime, nbits-2); + mpi_set_bit(prime, 0); /* calculate all remainders */ for(i=0; (x = small_prime_numbers[i]); i++ ) |