From ea31c2724443da26c0bd20ac9c8f833a5db5b240 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Mon, 10 Jul 2006 22:19:14 +0000 Subject: [PATCH] Turn on the new kern.seedenable sysctl when seeding the PRNG. --- etc/rc.d/initrandom | 15 ++++++++++----- etc/rc.d/random | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/etc/rc.d/initrandom b/etc/rc.d/initrandom index 60ea9ca920..a5c44fe6a4 100644 --- a/etc/rc.d/initrandom +++ b/etc/rc.d/initrandom @@ -1,7 +1,7 @@ #!/bin/sh # # $FreeBSD: src/etc/rc.d/initrandom,v 1.1 2002/06/13 22:14:36 gordon Exp $ -# $DragonFly: src/etc/rc.d/initrandom,v 1.5 2005/11/19 21:47:32 swildner Exp $ +# $DragonFly: src/etc/rc.d/initrandom,v 1.6 2006/07/10 22:19:14 dillon Exp $ # # PROVIDE: initrandom @@ -17,7 +17,9 @@ stop_cmd=":" feed_dev_random() { if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then + sysctl kern.seedenable=1 cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null + sysctl kern.seedenable=0 fi } @@ -37,13 +39,16 @@ initrandom_start() ;; esac - # XXX temporary until we can get the entropy - # harvesting rate up - # Entropy below is not great, - # but better than nothing. + # Mix in more junk. At the very least this will make seeding a + # bit more machine specific. The sysctl -a will also catch the + # TSC, 8254, and a few other things that tend to be somewhat more + # random (even from a CD boot) so it isn't all that bad. + # + sysctl kern.seedenable=1 ( ps -fauxww; sysctl -a; date; df -ib; dmesg; ps -fauxww; ) \ 2>&1 | dd of=/dev/random bs=8k 2>/dev/null cat /bin/ls | dd of=/dev/random bs=8k 2>/dev/null + sysctl kern.seedenable=0 } load_rc_config random diff --git a/etc/rc.d/random b/etc/rc.d/random index a16add34fd..029941c65d 100644 --- a/etc/rc.d/random +++ b/etc/rc.d/random @@ -1,7 +1,7 @@ #!/bin/sh # # $FreeBSD: src/etc/rc.d/random,v 1.3 2003/04/18 17:55:05 mtm Exp $ -# $DragonFly: src/etc/rc.d/random,v 1.3 2005/11/19 21:47:32 swildner Exp $ +# $DragonFly: src/etc/rc.d/random,v 1.4 2006/07/10 22:19:14 dillon Exp $ # # PROVIDE: random @@ -18,7 +18,9 @@ stop_cmd="random_stop" feed_dev_random() { if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then + sysctl kern.seedenable=1 cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null + sysctl kern.seedenable=1 fi } -- 2.41.0