--- src/etc/rc.d/initrandom 2005/11/19 21:47:32 1.5 +++ src/etc/rc.d/initrandom 2006/07/10 22:19:14 1.6 @@ -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