Change the seeder array from a modulo to a logical AND, improving performance
and allowing us to overflow the index variable without overflowing the
array.
Implement seeding via writes to /dev/random. Seeding is only allowed
if the kern.seedenable sysctl is set to 1 (defaults to 0), and the securelevel
is less then or equal to 0. Note that the random number generator also
self-seeds to some degree.
Writing to /dev/random is no longer a sink null. Writing to /dev/urandom
is no longer allowed at all.
Modify the seeding code to mix a few of the bits with PNG feedback to reduce
the possibility of seeding-based attacks.
Intentionally feed /dev/urandom back into /dev/random for a bit, then run
DIEHARD to test for any obvious screwups. Passes DIEHARD.