67 #define UCHAR_MAX 0xff
73 #include <openssl/rand.h>
90 const char *myname =
"tls_prng_dev_open";
94 if ((fd = open(name, O_RDONLY, 0)) < 0) {
96 msg_info(
"%s: cannot open entropy device %s: %m", myname, name);
104 msg_info(
"%s: opened entropy device %s", myname, name);
113 const char *myname =
"tls_prng_dev_read";
119 msg_panic(
"%s: bad read length: %ld", myname, (
long) len);
121 if (len >
sizeof(buffer))
122 rand_bytes =
sizeof(buffer);
129 msg_info(
"%s: read %ld bytes from entropy device %s",
130 myname, (
long) count, dev->
name);
131 RAND_seed(buffer, count);
134 msg_info(
"%s: cannot read %ld bytes from entropy device %s: %m",
135 myname, (
long) rand_bytes, dev->
name);
144 const char *myname =
"tls_prng_dev_close";
148 msg_info(
"%s: close entropy device %s", myname, dev->
name);
149 err = close(dev->
fd);
char * mystrdup(const char *str)
NORETURN msg_panic(const char *fmt,...)
TLS_PRNG_SRC * tls_prng_dev_open(const char *, int)
ssize_t timed_read(int, void *, size_t, int, void *)
int tls_prng_dev_close(TLS_PRNG_SRC *)
ssize_t tls_prng_dev_read(TLS_PRNG_SRC *, size_t)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)