Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
ARC4RANDOM(3)	       FreeBSD Library Functions Manual		 ARC4RANDOM(3)

NAME
     arc4random, arc4random_stir, arc4random_addrandom -- arc4 random number
     generator

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <stdlib.h>

     u_int32_t
     arc4random(void);

     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	num-
     bers in the range of 0 to (2**32)-1, and therefore	has twice the range of
     rand(3) and random(3).

     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(),
     since arc4random()	automatically initializes itself.

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 anony-
     mously 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.

FreeBSD	10.1			April 15, 1997			  FreeBSD 10.1

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=arc4random&sektion=3&manpath=FreeBSD+5.3-RELEASE>

home | help