Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

random_harvest(9) [freebsd man page]

RANDOM_HARVEST(9)					   BSD Kernel Developer's Manual					 RANDOM_HARVEST(9)

NAME
random_harvest -- gather entropy from the kernel for the entropy device SYNOPSIS
#include <sys/types.h> #include <sys/random.h> void random_harvest(void *entropy, u_int size, u_int bits, u_int frac, enum esource source); DESCRIPTION
The random_harvest() function is used by device drivers and other kernel processes to pass data that is considered (at least partially) sto- chastic to the entropy device. The caller should pass a pointer (to no more than 16 bytes) of the ``random'' data in entropy. The argument size contains the number of bytes pointed to. The caller should very conservatively estimate the number of random bits in the sample, and pass this in bits or frac. If the estimated number of bits per sample is an integer, then bits is used, and frac is 0. Otherwise, for low-entropy samples, ``fractional'' entropy can be supplied in frac. (This is considered to be frac / 1024 bits of entropy.) The source is chosen from RANDOM_WRITE, RANDOM_KEYBOARD, RANDOM_MOUSE, RANDOM_NET and RANDOM_INTERRUPT, and is used to indicate the source of the entropy. Interrupt harvesting has been simplified for the kernel programmer. If a device driver registers an interrupt handler with BUS_SETUP_INTR(9) or bus_setup_intr(9), then it is only necessary to include the INTR_ENTROPY bit in the flags argument to have that interrupt source be used for entropy harvesting. SEE ALSO
random(4), BUS_SETUP_INTR(9) AUTHORS
The FreeBSD random(4) entropy device and supporting documentation was written by Mark R V Murray. BSD
February 6, 2002 BSD

Check Out this Related Man Page

RANDOM(4)						   BSD Kernel Interfaces Manual 						 RANDOM(4)

NAME
random , urandom -- random data source devices. SYNOPSIS
pseudo-device random DESCRIPTION
The random device produces uniformly distributed random byte values of potentially high quality. To obtain random bytes, open /dev/random for reading and read from it. To add entropy to the random generation system, open /dev/random for writing and write data that you believe to be somehow random. /dev/urandom is a compatibility nod to Linux. On Linux, /dev/urandom will produce lower quality output if the entropy pool drains, while /dev/random will prefer to block and wait for additional entropy to be collected. With Yarrow, this choice and distinction is not necessary, and the two devices behave identically. You may use either. OPERATION
The random device implements the Yarrow pseudo random number generator algorithm and maintains its entropy pool. Additional entropy is fed to the generator regularly by the SecurityServer daemon from random jitter measurements of the kernel. SecurityServer is also responsible for periodically saving some entropy to disk and reloading it during startup to provide entropy in early system operation. You may feed additional entropy to the generator by writing it to the random device, though this is not required in a normal operating envi- ronment. LIMITATIONS AND WARNINGS
Yarrow is a fairly resilient algorithm, and is believed to be resistant to non-root. The quality of its output is however dependent on regu- lar addition of appropriate entropy. If the SecurityServer system daemon fails for any reason, output quality will suffer over time without any explicit indication from the random device itself. Paranoid programmers can counteract this risk somewhat by collecting entropy of their choice (e.g. from keystroke or mouse timings) and seed- ing it into random directly before obtaining important random numbers. FILES
/dev/random /dev/urandom HISTORY
A random device appeared in the Linux operating system. Darwin September 6, 2001 Darwin
Man Page