MirOS Manual: arandom(4), prandom(4), random(4), srandom(4), urandom(4), wrandom(4)

RANDOM(4)                  BSD Programmer's Manual                   RANDOM(4)

NAME

     random, srandom, urandom, prandom, wrandom, arandom - random data source
     devices

SYNOPSIS

     #include <sys/types.h>
     #include <dev/rndvar.h>
     #include <dev/rndioctl.h>

DESCRIPTION

     The various random devices produce random output data with different ran-
     dom qualities. Entropy data is collected from system activity (like disk
     and network device interrupts and such), and then run through various
     hash or message digest functions to generate the output.

     /dev/random    This device is reserved for future support of hardware
                    random generators.

     /dev/srandom   Strong random data. This device returns reliable random
                    data. If sufficient entropy is not currently available
                    (i.e., the entropy pool quality starts to run low), the
                    driver pauses while more of such data is collected. The
                    entropy pool data is converted into output data using MD5.

     /dev/urandom   Same as above, but does not guarantee the data to be
                    strong. The entropy pool data is converted into output
                    data using MD5. When the entropy pool quality runs low,
                    the driver will continue to output data.

     /dev/prandom   Starting from MirOS #10uB5, this reads from the same dev-
                    ice as /dev/arandom does, but still writes back to the
                    pool safe for unprivileged users. Before, it returned sim-
                    ple pseudo-random numbers.

     /dev/wrandom   This device is actually the same as /dev/prandom, but can
                    be written to by regular users, even if this interface is
                    simulated using pipes or other means on other operating
                    systems where /dev/prandom can only be read from. Its pur-
                    pose is to allow anything from userspace or other not 100%
                    trustworthy sources to contribute even fractional bit
                    amounts of entropy into the kernel pool by hashing, col-
                    lapsing, and rate-limiting.

     /dev/arandom   As required, entropy pool data re-seeds an ARC4 generator,
                    which then generates high-quality pseudo-random output
                    data.

                    The arc4random(3) function in userland libraries seeds it-
                    self from this device, providing a second level of ARC4
                    hashed data.

     The arc4random_pushb_fast(3) function, any write access to the KERN_ARND
     sysctl(3) and writes to /dev/wrandom feed data back to the kernel as
     described above and in arc4random(9).

FILES

     /dev/random
     /dev/srandom
     /dev/urandom
     /dev/prandom
     /dev/arandom

SEE ALSO

     arc4random(3), md5(3), random(3), amdpm(4), pchb(4), md5(9), random(9)

HISTORY

     A random device first appeared in Linux operating system. This is a
     cloned interface.

     ARC4 routines added by David Mazieres. Rewritten by Thorsten Glaser.

BUGS

     No randomness testing suite provided. The ioctl(2) interface is not
     described in this manual page.

MirOS BSD #10-current          October 24, 2013                              1

Generated on 2014-04-02 20:57:59 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.