.\" $NetBSD: rndctl.8,v 1.22.26.1 2019/12/17 12:45:30 martin Exp $
.\"
.\" Copyright (c) 1997 Michael Graff
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd August 10, 2014
.Dt RNDCTL 8
.Os
.Sh NAME
.Nm rndctl
.Nd in-kernel random number generator management tool
.Sh SYNOPSIS
.Nm
.Op Fl CcEe
.Op Fl d Ar devname | Fl t Ar devtype
.Nm
.Op Fl lsv
.Op Fl d Ar devname | Fl t Ar devtype
.Nm
.Fl L Ar save-file
.Nm
.Fl S Ar save-file
.Sh DESCRIPTION
The
.Nm
program displays statistics on the current state of the
.Xr rnd 4
pseudo-driver, and allows the administrator to control which sources
are allowed to contribute to the randomness pool maintained by
.Xr rnd 4 ,
as well as whether a given source counts as strongly random.
.Pp
The following options are available:
.Bl -tag -width 123456
.It Fl C
Disable collection of timing information for the given
device name or device type.
.It Fl c
Enable collection of timing information for the given
device name or device type.
.It Fl d
Only the device named
.Ar devname
is altered or displayed.
This is mutually exclusive with
.Fl t .
.It Fl E
Disable entropy estimation from the collected timing information for
the given device name or device type.
If collection is still enabled, timing information is still
collected and mixed into the internal entropy pool,
but no entropy is assumed to be present.
.It Fl e
Enable entropy estimation using the collected timing information
for the given device name or device type.
.It Fl L
Load saved entropy from file
.Ar save-file
and overwrite it with a seed derived by hashing it together with output
from
.Pa /dev/urandom
so that the new seed has at least as much entropy as either the old
seed had or the system already has.
If interrupted, either the old seed or the new seed will be in place.
.It Fl l
List all sources, or, if the
.Fl t
or
.Fl d
flags are specified, only those specified by the
.Ar devtype
or
.Ar devname
specified.
.It Fl S
Save entropy pool to file
.Ar save-file .
The file format is specific to
.Nm
and includes an estimate of the amount of saved entropy and a checksum.
.It Fl s
Display statistics on the current state of the random collection pool.
.It Fl t
All devices of type
.Ar devtype
are altered or displayed.
This is mutually exclusive with
.Fl d .
.Pp
The available types are:
.Bl -tag -width "diskx"
.It Ic disk
Physical hard drives.
.It Ic net
Network interfaces.
.It Ic tape
Tape devices.
.It Ic tty
Terminal, mouse, or other user input devices.
.It Ic rng
Random number generators.
.El
.It Fl v
Verbose output: show entropy estimation statistics for each source.
.El
.Sh FILES
.Bl -tag -width /dev/urandomx -compact
.It Pa /dev/random
Returns
.Dq good
values only.
.It Pa /dev/urandom
Always returns data, degenerates to a pseudo-random generator.
.El
.Sh SEE ALSO
.Xr rnd 4 ,
.Xr rnd 9
.Sh HISTORY
The
.Nm
program was first made available in
.Nx 1.3 .
.Sh AUTHORS
The
.Nm
program was written by
.An Michael Graff
.Aq explorer@flame.org .
.Sh BUGS
Turning on entropy estimation from unsafe or predictable sources will
weaken system security, while turning on entropy collection from such
sources may weaken system security.
.Pp
Care should be taken when using this command.