General Information =================== This is implementation of Fortuna PRNG (https://en.wikipedia.org/wiki/Fortuna_%28PRNG%29) in C++11 using Boost and Crypto++ libraries, written by Adam Mizerski <adam@mizerski.pl>. Components: - libfortuna - Implementation of Fortuna algorithm. - fortunad - Daemon which contains Accumulator. - libfortuna_daemon - Libraries implementing communication layer with daemon for entropy sources and clients. - fortuna_client - Client which reads random data from daemon. Licensing: - Libraries (libfortuna, libfortuna_daemon) are released under LGPLv3 or later. - Programs (everything else) are released under GPLv3 or later. Tested with: - g++ 4.9.2 - clang++ 3.5.0 - autoconf 2.69 - automake 1.13.4 - libtool 2.4.2 - Boost 1.54.0 - Crypto++ 5.6.2 Notes about libfortuna ====================== - You must provide the seed file. For example by 'dd if=/dev/random of=./fortuna.seed bs=64 count=1'. Please note that it's not safe when done at first boot on a virtual machine without entropy provided by host. - SHA3 (Keccak) is used instead of double SHA2. - Random data is generated in blocks of bytes. User must allocate enough memory to store whole blocks. In Accumulator there are output_block_length variable and bytes_to_blocks method, which helps with this task. Contributing ============ - Patches, bug reports, improvements and new features are welcome and appreciated. - As is sending Bitcoins at 15yFjvHc8BZehVHcammmAvd4qZ6ArFMJRF