Provided by: libbsd-dev_0.6.0-2ubuntu1_amd64 bug

NAME

       arc4random,  arc4random_buf,  arc4random_uniform,  arc4random_stir,  arc4random_addrandom  —  arc4 random
       number generator

LIBRARY

       library “libbsd”

SYNOPSIS

       #include <bsd/stdlib.h>

       u_int32_t
       arc4random(void);

       void
       arc4random_buf(void *buf, size_t nbytes);

       u_int32_t
       arc4random_uniform(u_int32_t upper_bound);

       void
       arc4random_stir(void);

       void
       arc4random_addrandom(unsigned char *dat, int datlen);

DESCRIPTION

       The arc4random() function uses the key stream generator employed by the arc4 cipher, which uses 8*8 8 bit
       S-Boxes.  The S-Boxes can be in about (2**1700) states.  The arc4random() function returns  pseudo-random
       numbers in the range of 0 to (2**32)−1, and therefore has twice the range of rand(3) and random(3).

       arc4random_buf() function fills the region buf of length nbytes with ARC4-derived random data.

       arc4random_uniform()   will   return  a  uniformly  distributed  random  number  less  than  upper_bound.
       arc4random_uniform() is recommended over constructions like “arc4random() %  upper_bound”  as  it  avoids
       "modulo bias" when the upper bound is not a power of two.

       The  arc4random_stir()  function  reads  data  from  /dev/urandom  and uses it to permute the S-Boxes via
       arc4random_addrandom().

       There is no need to call  arc4random_stir()  before  using  arc4random()  functions  family,  since  they
       automatically initialize themselves.

EXAMPLES

       The  following  produces  a  drop-in  replacement for the traditional rand() and random() functions using
       arc4random():

             #define foo4random() (arc4random() % ((unsigned)RAND_MAX + 1))

SEE ALSO

       rand(3), random(3), srandomdev(3)

HISTORY

       RC4 has been designed by RSA Data Security, Inc.  It  was  posted  anonymously  to  the  USENET  and  was
       confirmed  to  be equivalent by several sources who had access to the original cipher.  Since RC4 used to
       be a trade secret, the cipher is now referred to as ARC4.

Debian                                           April 15, 1997                                    ARC4RANDOM(3)