/*
tincctl.c -- Controlling a running tincd
- Copyright (C) 2007-2016 Guus Sliepen <guus@tinc-vpn.org>
+ Copyright (C) 2007-2017 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
// 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;
+ // Make sure that a valid key size is used.
+ if(bits < 1024 || bits > 8192) {
+ fprintf(stderr, "Invalid key size %d specified! It should be between 1024 and 8192 bits.\n", bits);
+ return false;
+ } else if(bits < 2048) {
+ fprintf(stderr, "WARNING: generating a weak %d bits RSA key! 2048 or more bits are recommended.\n", bits);
+ }
fprintf(stderr, "Generating %d bits keys:\n", bits);
}
fclose(f);
+
+#ifndef HAVE_MINGW
if ((pid == 0) || (kill(pid, 0) && (errno == ESRCH))) {
fprintf(stderr, "Could not find tincd running at pid %d\n", pid);
/* clean up the stale socket and pid file */
return false;
}
-#ifndef HAVE_MINGW
struct sockaddr_un sa;
sa.sun_family = AF_UNIX;
strncpy(sa.sun_path, unixsocketname, sizeof sa.sun_path);