68 #include <openssl/rand.h>        
   85     const char *myname = 
"tls_prng_file_open";
 
   89     if ((fd = open(name, O_RDONLY, 0)) < 0) {
 
   91         msg_info(
"%s: cannot open entropy file %s: %m", myname, name);
 
   99         msg_info(
"%s: opened entropy file %s", myname, name);
 
  108     const char *myname = 
"tls_prng_file_read";
 
  114     msg_info(
"%s: seed internal pool from file %s", myname, fh->
name);
 
  116     if (lseek(fh->
fd, 0, SEEK_SET) < 0) {
 
  122     for (to_read = len; to_read > 0; to_read -= count) {
 
  123     if ((count = 
timed_read(fh->
fd, buffer, to_read > 
sizeof(buffer) ?
 
  124                 sizeof(buffer) : to_read,
 
  125                 fh->
timeout, (
void *) 0)) < 0) {
 
  132     RAND_seed(buffer, count);
 
  135     msg_info(
"read %ld bytes from entropy file %s: %m",
 
  136          (
long) (len - to_read), fh->
name);
 
  137     return (len - to_read);
 
  144     const char *myname = 
"tls_prng_file_close";
 
  148     msg_info(
"%s: close entropy file %s", myname, fh->
name);
 
TLS_PRNG_SRC * tls_prng_file_open(const char *, int)
char * mystrdup(const char *str)
int tls_prng_file_close(TLS_PRNG_SRC *)
ssize_t timed_read(int, void *, size_t, int, void *)
ssize_t tls_prng_file_read(TLS_PRNG_SRC *, size_t)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)