Skip to content

The rng-tools official repository (formerly part of the gkernel project on sourceforge)

License

Notifications You must be signed in to change notification settings

QryptInc/rng-tools

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Using Qrypt's Quantum Entropy in RNG Tools

rng-tools is a utility that allows you to inject entropy from hardware sources, prngs, and http streams into system devices. Qrypt's Quantum Entropy service is a random source option in rng-tools, allowing you to inject quantum entropy into system devices such as /dev/random, /dev/urandom, and user-defined nodes or files.

This service requires an access token. Follow the steps in Getting Started to obtain an access token.

More information about rng-tools can be found on the rng-tools Github and the rng-tools wiki page.


Installation

To use Qrypt's Quantum Entropy service in rng-tools, rng-tools must be installed and configured.

Clone the latest rng-tools master from GitHub.

git clone https://github.com/nhorman/rng-tools

Install rng-tools dependencies. Additional packages may be required, depending on linux distro. The configure script below will name any missing packages it encounters.

sudo apt install \
    make \
    libtool \
    libxml2-dev \
    libssl-dev \
    libcurl3-dev \
    libp11-dev \
    librtlsdr-dev \
    libusb-1.0-0-dev \
    libjansson-dev \
    libcap-dev

Add --disable-dependency-tracking to the ./configure command if needed.

./autogen.sh
./configure
make
sudo make install

Verify installation.

which rngd

Command Line Usage

The resulting rngd executable can run directly to start either a daemon or a foreground process. By default, rngd will run as a background daemon and attempt to use the hwrng, errand, pkcs11, and rtlsdr random sources.

To run rngd using exclusively Qrypt's Quantum Entropy, run the following command. This will run rngd as a foreground process with the Qrypt source enabled and all other entropy sources disabled. rngd will send its random to the /dev/random device.

Note that sudo is needed in the command because rngd accesses the root folder.

sudo rngd -f -x hwrng -x rdrand -x pkcs11 -x rtlsdr -n qrypt -O qrypt:tokenfile:<qrypt token path>

Command line options:

Option Description
-f Run rngd as a foreground process. If omitted, rngd will run as a background daemon
-o <path> Device or file for the random number output. Defaults to /dev/random
-x <source> Disables the specified source. For example, -x hwrng
-n <source> Enables the specified source. For example, -n qrypt
-O <source>:<key>:<value> Sets a source specific configuration option. For example, -O qrypt:tokenfile:/etc/rngd/qrypt.token

Service Usage

rng-tools comes with a rngd.service file for setting up a systemd service. To configure rngd to automatically start the Qrypt source on boot, follow these steps:

Save your Qrypt api token to a system-accessible directory, such as /etc/rngd/qrypt.token. Then, edit rngd.service to add Qrypt arguments and options.

Note that sudo is needed in the subsequent commands because rngd accesses the root folder.

[Unit]
Description=Hardware RNG Entropy Gatherer Daemon
ConditionVirtualization=!container

# The '-f' option is required for the systemd service 'rngd' to work with Type=simple
[Service]
Type=simple
ExecStart=<rngd install path> -f -x hwrng -x rdrand -x pkcs11 -x rtlsdr -n qrypt -O qrypt:tokenfile:<qrypt token path>
SuccessExitStatus=66

[Install]
WantedBy=multi-user.target

Copy the rngd service to systemd.

sudo cp rngd.service /etc/systemd/system/rngd.service
sudo chmod 644 /etc/systemd/system/rngd.service

Start the rngd service.

sudo systemctl daemon-reload
sudo systemctl start rngd

Verify the rngd service is running properly.

sudo systemctl status rngd

Enable the rngd service for it to start on system boot.

sudo systemctl enable rngd

About

The rng-tools official repository (formerly part of the gkernel project on sourceforge)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 76.8%
  • M4 12.0%
  • Roff 6.0%
  • Assembly 4.0%
  • Other 1.2%