aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/keygen.c12
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;