svn commit: r230230 - head/sys/dev/random
David Schultz
das at FreeBSD.org
Mon Jan 16 20:18:10 UTC 2012
Author: das
Date: Mon Jan 16 20:18:10 2012
New Revision: 230230
URL: http://svn.freebsd.org/changeset/base/230230
Log:
Generate a warning if the kernel's arc4random() is seeded with bogus entropy.
Modified:
head/sys/dev/random/harvest.c
Modified: head/sys/dev/random/harvest.c
==============================================================================
--- head/sys/dev/random/harvest.c Mon Jan 16 20:17:51 2012 (r230229)
+++ head/sys/dev/random/harvest.c Mon Jan 16 20:18:10 2012 (r230230)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
#include <sys/queue.h>
#include <sys/random.h>
#include <sys/selinfo.h>
+#include <sys/syslog.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
@@ -48,6 +49,7 @@ static int read_random_phony(void *, int
/* Structure holding the desired entropy sources */
struct harvest_select harvest = { 1, 1, 1, 0 };
+static int warned = 0;
/* hold the address of the routine which is actually called if
* the randomdev is loaded
@@ -71,6 +73,7 @@ random_yarrow_deinit_harvester(void)
{
reap_func = NULL;
read_func = read_random_phony;
+ warned = 0;
}
/* Entropy harvesting routine. This is supposed to be fast; do
@@ -108,6 +111,11 @@ read_random_phony(void *buf, int count)
u_long randval;
int size, i;
+ if (!warned) {
+ log(LOG_WARNING, "random device not loaded; using insecure entropy\n");
+ warned = 1;
+ }
+
/* srandom() is called in kern/init_main.c:proc0_post() */
/* Fill buf[] with random(9) output */
More information about the svn-src-all
mailing list