]> andersk Git - openssh.git/blobdiff - entropy.c
- markus@cvs.openbsd.org 2001/11/07 22:53:21
[openssh.git] / entropy.c
index 0d767d675a939cf868b8445a8ec18c6e50d53b28..9588f792946f413a7d7aba2aa2e28691acabe46f 100644 (file)
--- a/entropy.c
+++ b/entropy.c
@@ -68,7 +68,8 @@ RCSID("$Id$");
 # define SAVED_IDS_WORK_WITH_SETEUID
 #endif
 
-void check_openssl_version(void) 
+static void
+check_openssl_version(void) 
 {
        if (SSLeay() != OPENSSL_VERSION_NUMBER)
                fatal("OpenSSL version mismatch. Built against %lx, you "
@@ -83,7 +84,8 @@ void check_openssl_version(void)
 
 #ifdef USE_PRNGD
 /* Collect entropy from PRNGD/EGD */
-int get_random_bytes(unsigned char *buf, int len)
+int
+get_random_bytes(unsigned char *buf, int len)
 {
        int fd;
        char msg[2];
@@ -180,7 +182,8 @@ done:
 #else /* !USE_PRNGD */
 #ifdef RANDOM_POOL
 /* Collect entropy from /dev/urandom or pipe */
-int get_random_bytes(unsigned char *buf, int len)
+static int
+get_random_bytes(unsigned char *buf, int len)
 {
        int random_pool;
 
@@ -226,7 +229,8 @@ seed_rng(void)
        memset(buf, '\0', sizeof(buf));
 }
 
-void init_rng(void) 
+void
+init_rng(void) 
 {
        check_openssl_version();
 }
@@ -403,8 +407,7 @@ stir_rusage(int who, double entropy_estimate)
 }
 
 
-static
-int
+static int
 _get_timeval_msec_difference(struct timeval *t1, struct timeval *t2) {
        int secdiff, usecdiff;
 
@@ -502,7 +505,9 @@ hash_output_from_command(entropy_source_t *src, char *hash)
                        break;
                case 1:
                        /* command input */
-                       bytes_read = read(p[0], buf, sizeof(buf));
+                       do {
+                               bytes_read = read(p[0], buf, sizeof(buf));
+                       } while (bytes_read == -1 && errno == EINTR);
                        RAND_add(&bytes_read, sizeof(&bytes_read), 0.0);
                        if (bytes_read == -1) {
                                error_abort = 1;
@@ -842,8 +847,10 @@ seed_rng(void)
        /* commands */
        old_sigchld_handler = mysignal(SIGCHLD, SIG_DFL);
 
-       debug("Seeded RNG with %i bytes from programs", (int)stir_from_programs());
-       debug("Seeded RNG with %i bytes from system calls", (int)stir_from_system());
+       debug("Seeded RNG with %i bytes from programs", 
+           (int)stir_from_programs());
+       debug("Seeded RNG with %i bytes from system calls", 
+           (int)stir_from_system());
 
        if (!RAND_status())
                fatal("Not enough entropy in RNG");
@@ -854,7 +861,8 @@ seed_rng(void)
                fatal("Couldn't initialise builtin random number generator -- exiting.");
 }
 
-void init_rng(void)
+void
+init_rng(void)
 {
        int original_euid;
 
This page took 0.047996 seconds and 4 git commands to generate.