aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/keygen.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/g10/keygen.c b/g10/keygen.c
index a786beb08..6d3dfa69b 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -1170,11 +1170,16 @@ gen_elg (int algo, unsigned int nbits,
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))
{
@@ -1281,7 +1286,7 @@ gen_dsa (unsigned int nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
gcry_sexp_t misc_key_info;
unsigned int qbits;
- if ( nbits < 512)
+ if (nbits < 768)
{
nbits = 2048;
log_info(_("keysize invalid; using %u bits\n"), nbits );
@@ -1437,6 +1442,11 @@ 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))
{