This is a userland simulator of the Linux /dev/(u)random RNG 
adapted from the Linux kernel v3.2.35.

The RNG proper is contained in src/random.[ch] with some
additional dependencies and helper files in that directory as 
well.  The tests/ directory contains unit tests used to determine
if the simulator works properly.

Unit tests in the tests directory require the "check" unit testing framework and can be found at:

On a Mac with the homebrew package manager "check" can be 
installed with the following command:
brew install check

The simulator was also used to verify our instrumented Linux
kernel by replaying events that were recorded during boot and
verifying that the simulator produced identical internal states
and RNG outputs as the values that were recorded.

Some of these tests were created by hand using values extracted
from instrumented kernel trace files.  Longer tests were 
automatically compiled from python scripts that converted traces
into test cases.