Add sanity checks when generating new RSA keys.
authorGuus Sliepen <guus@sliepen.org>
Tue, 13 May 2014 18:29:09 +0000 (20:29 +0200)
committerGuus Sliepen <guus@sliepen.org>
Tue, 13 May 2014 18:33:20 +0000 (20:33 +0200)
The key size should be a multiple of 8 bits, and it should be between 1024 and
8192 bits.

src/tincctl.c

index 4864fab3da5550ae35cd66d17998a248d57886c4..2f7fe6b06fdd7a7f1a37037ef7272fbed89dbd66 100644 (file)
@@ -417,6 +417,15 @@ static bool rsa_keygen(int bits, bool ask) {
        FILE *f;
        char *pubname, *privname;
 
+       // Make sure the key size is a multiple of 8 bits.
+       bits &= ~0x7;
+
+       // Force them to be between 1024 and 8192 bits long.
+       if(bits < 1024)
+               bits = 1024;
+       if(bits > 8192)
+               bits = 8192;
+
        fprintf(stderr, "Generating %d bits keys:\n", bits);
 
        if(!(key = rsa_generate(bits, 0x10001))) {