1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Unix PuTTYgen: switch to /dev/urandom by default.

The general wisdom these days - in particular as given by the Linux
urandom(4) man page - seems to be that there's no need to use the
blocking /dev/random any more unless you're running at very early boot
time when the system random pool is at serious risk of not having any
entropy in it at all.

In case of non-Linux systems that don't think /dev/urandom is a
standard name, I fall back to /dev/random if /dev/urandom can't be
found.
This commit is contained in:
Simon Tatham 2018-06-03 14:30:28 +01:00
parent 06a14fe8b8
commit 025599ec99

View File

@ -16,8 +16,26 @@ char *get_random_data(int len, const char *device)
int fd;
int ngot, ret;
if (!device)
device = "/dev/random";
if (!device) {
static const char *const default_devices[] = {
"/dev/urandom", "/dev/random"
};
size_t i;
for (i = 0; i < lenof(default_devices); i++) {
if (access(default_devices[i], R_OK) == 0) {
device = default_devices[i];
break;
}
}
if (!device) {
sfree(buf);
fprintf(stderr, "puttygen: cannot find a readable "
"random number source; use --random-device\n");
return NULL;
}
}
fd = open(device, O_RDONLY);
if (fd < 0) {