Tools/kernel-patches for /dev/[u]random
This little program reads data from the 'Intel 82802 Firmware Hub' which is integrated in 815-motherboards. This program reads data until a buffer of 4KB is filled with values. When that point is reached, all those values are send to the entropy-buffer of the /dev/[u]random-device.
For the paranoid: the buffer is actually locked into physical-memory. Because of that (and because I'm addressing hardware directly), this program must run as root.
This daemon is obsolete: since 2.4.0, the Linux-kernel has a driver which does the same job.
Have a look at: security - contains a pointer to "audio-randomd" which is another attempt on retrieving random values.
With this tool/library one can test the output of a random-number-generator. One needs a little experience with C-programming to get this thing to work since no Makefile is included :o)
Compare the output of cat /vmlinuz | ./a.out with the output of dd if=/dev/urandom bs=1 count=2501 | ./a.out and be amazed :o).
This code was written with the FIPS140-1 documentation in mind.
Note: this code is also (in already) included in the i82802 firmware hub driver of Linux-kernel 2.4.0
Look here: http://www.cs.berkeley.edu/~daw/rnd/ for a zillion links to resources for collecting and processing crypto-strength randomness.
Also have a look at these two:
- audio-entropyd - a daemon which adds entropy to the kernel RNG from your audio-card
- video-entropyd - this one reads entropy-data from a video4linux-device, a webcam or a tv-card for example