RND(9)                       OpenBSD Kernel Manual                      RND(9)

NAME
     random - device kernel interface

SYNOPSIS
     #include <dev/rndvar.h>

     void
     add_true_randomness(int);

     void
     add_timer_randomness(int);

     void
     add_mouse_randomness(int);

     void
     add_tty_randomness(int);

     void
     add_net_randomness(int);

     void
     add_disk_randomness(int);

     void
     add_audio_randomness(int);

     void
     get_random_bytes(void *buf, size_t nbytes);

     u_int32_t
     arc4random(void);

     void
     arc4random_bytes(void *buf, size_t nbytes);

DESCRIPTION
     The add_mouse_randomness(), add_tty_randomness(), add_net_randomness(),
     add_disk_randomness() and add_audio_randomness() routines are used to
     supply data for the random data source device for further processing.
     The processing involves calculating inter-event timedelta and measuring
     entropy contained in the resulting delta-T; the argument data supplied is
     just mixed into the pool and does not increase the entropy counter.

     add_true_randomness() does not involve the usual timing calculations, and
     causes the supplied data argument to be added to the entropy pool, in-
     creasing the entropy counter by 32 bits.

     add_timer_randomness() will not cause the entropy counter to rise.  It is
     used to change the state of the pool periodically, mostly by means of
     timing the random driver's operations.

     get_random_bytes() may be used to retrieve strong random data, just as it
     would by the srandom(4) device.

     arc4random() and arc4random_bytes() will give random 32 bit numbers
     hashed with the ARC4 algorithm, which appears to be faster and less abu-
     sive to the entropy pool.

SEE ALSO
     arc4random(3), pchb(4), random(4)

CAVEATS
     None of these functions should really be called during the autoconf(4)
     process.

OpenBSD 4.0                     March 26, 1996                               2
