“Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.” – John Von Neumann, 1951
If you have good reasons for streaming raw entropy (no health check, no whitening) from one or more Infinite Noise TRNGs, here it is. Use at your own risk, and may God have mercy upon your soul.
Works on POSIX systems. Tested on Linux (musl libc) and MacOS. Windows not supported.
Not intended for cryptographic purposes!
- Stripped-down version of libinfnoise
- Highly-accurate scheduler
- Configurable sampling rate
- Multiple devices support
- Pub/Sub broker
- Stdout and/or ZeroMQ streaming
- Client examples in C and Python
- Pretty image generator
Usage: entstream [OPTION...]
-o, --enable-stdout Print entropy to stdout
-p, --enable-pubsub Send entropy to a Pub/Sub broker
-e, --endpoint=ADDRESS Endpoint address
-s, --serial=SERIAL If set, connect only to the specifed device
-r, --rate=RATE If 0, will run as fast as possible
Help options:
-?, --help Show this help message
--usage Display brief usage message
See sub.c
and sub.py
for example code on how to subscribe to the entropy feed and parse the resulting data.
Enable the community repository in /etc/apk/repositories
.
apk update
apk upgrade
apk add build-base
apk add linux-headers libftdi1-dev czmq-dev popt-dev
make && make install
If Alpine Linux is used in diskless mode, you can persist the modifications with:
lbu add /usr/local/bin/entstream
lbu commit -d
Install Homebrew.
brew update
brew install libftdi czmq argp-standalone popt
make && make install