diff options
-rw-r--r-- | g10/keygen.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index b84dd0b30..84f852f3f 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -1039,10 +1039,14 @@ gen_elg(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek, assert( is_ELGAMAL(algo) ); - if( nbits < 512 ) { + if (nbits < 1024) { nbits = 2048; log_info(_("keysize invalid; using %u bits\n"), nbits ); } + else if (nbits > 4096) { + nbits = 4096; + log_info(_("keysize invalid; using %u bits\n"), nbits ); + } if( (nbits % 32) ) { nbits = ((nbits + 31) / 32) * 32; @@ -1121,7 +1125,7 @@ gen_dsa(unsigned int nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek, MPI *factors; unsigned int qbits; - if( nbits < 512) + if( nbits < 768) { nbits = 2048; log_info(_("keysize invalid; using %u bits\n"), nbits ); @@ -1256,6 +1260,10 @@ gen_rsa(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek, nbits = 2048; log_info(_("keysize invalid; using %u bits\n"), nbits ); } + else if (nbits > 4096) { + nbits = 4096; + log_info(_("keysize invalid; using %u bits\n"), nbits ); + } if( (nbits % 32) ) { nbits = ((nbits + 31) / 32) * 32; |