65 #define UCHAR_MAX 0xff
71 #include <openssl/rand.h>
88 const char *myname =
"tls_prng_egd_open";
93 msg_info(
"%s: connect to EGD server %s", myname, name);
97 msg_info(
"%s: cannot connect to EGD server %s: %m", myname, name);
105 msg_info(
"%s: connected to EGD server %s", myname, name);
114 const char *myname =
"tls_prng_egd_read";
119 msg_panic(
"%s: bad length %ld", myname, (
long) len);
125 msg_info(
"cannot write to EGD server %s: %m", egd->
name);
129 msg_info(
"cannot read from EGD server %s: %m", egd->
name);
133 if (count >
sizeof(buffer))
134 count =
sizeof(buffer);
136 msg_info(
"EGD server %s reports zero bytes available", egd->
name);
140 msg_info(
"cannot read %ld bytes from EGD server %s: %m",
141 (
long) count, egd->
name);
145 msg_info(
"%s: got %ld bytes from EGD server %s", myname,
146 (
long) count, egd->
name);
147 RAND_seed(buffer, count);
155 const char *myname =
"tls_prng_egd_close";
160 err = close(egd->
fd);
char * mystrdup(const char *str)
NORETURN msg_panic(const char *fmt,...)
int unix_connect(const char *, int, int)
ssize_t timed_read(int, void *, size_t, int, void *)
int tls_prng_egd_close(TLS_PRNG_SRC *)
ssize_t timed_write(int, const void *, size_t, int, void *)
ssize_t tls_prng_egd_read(TLS_PRNG_SRC *, size_t)
TLS_PRNG_SRC * tls_prng_egd_open(const char *, int)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)