1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
putty-source/unix/uxgen.c
Simon Tatham 2d1287b9ca Added a command-line key generation tool. Currently builds and runs
on Linux, but the (very few) platform-specific bits are already
abstracted out of the main code, so it should port to other
platforms with a minimum of fuss.

[originally from svn r3762]
2004-01-22 19:15:32 +00:00

37 lines
616 B
C

/*
* uxgen.c: Unix implementation of get_heavy_noise() from cmdgen.c.
*/
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include "putty.h"
char *get_random_data(int len)
{
char *buf = snewn(len, char);
int fd;
int ngot, ret;
fd = open("/dev/random", O_RDONLY);
if (fd < 0) {
sfree(buf);
perror("puttygen: unable to open /dev/random");
return NULL;
}
ngot = 0;
while (ngot < len) {
ret = read(fd, buf+ngot, len-ngot);
if (ret < 0) {
close(fd);
perror("puttygen: unable to read /dev/random");
return NULL;
}
ngot += ret;
}
return buf;
}