*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> arc4random (9)              
Title
Content
Arch
Section
 

RANDOM(9)

Contents


NAME    [Toc]    [Back]

     arc4rand, arc4random, random, read_random, srandom -- supply pseudo-random
 numbers

SYNOPSIS    [Toc]    [Back]

     #include <sys/libkern.h>

     void
     srandom(u_long seed);

     u_long
     random(void);

     void
     arc4rand(void *ptr, u_int length, int reseed);

     u_int32_t
     arc4random(void);

     #include <sys/random.h>

     int
     read_random(void *buffer, int count);

DESCRIPTION    [Toc]    [Back]

     The random() function will by default produce a sequence of numbers that
     can be duplicated by calling srandom() with `1' as the seed.  The
     srandom() function may be called with any arbitrary seed value to get
     slightly more unpredictable numbers.  It is important to remember that
     the random() function is entirely predictable, and is therefore not of
     use where knowledge of the sequence of numbers may be of benefit to an
     attacker.

     The arc4rand() function will return very good quality random numbers,
     slightly better suited for security-related purposes.  The random numbers
     from arc4rand() are seeded from the entropy device if it is available.
     Automatic reseeds happen after a certain timeinterval and after a certain
     number of bytes have been delivered.  A forced reseed can be forced by
     passing a non-zero value in the reseed argument.

     The read_random() function is used to return entropy directly from the
     entropy device if it has been loaded. If the entropy device is not
     loaded, then the buffer is filled with output generated by random().  The
     buffer is filled with no more than count bytes. It is advised that
     read_random() is not used; instead use arc4rand()

     All the bits generated by random(), arc4rand() and read_random() are
     usable.  For example, `random()&01' will produce a random binary value.

     The arc4random() is a convenience function which calls arc4rand() to
     return a 32 bit pseudo-random integer.

RETURN VALUES    [Toc]    [Back]

     The random() function uses a non-linear additive feedback random number
     generator employing a default table of size 31 long integers to return
     successive pseudo-random numbers in the range from 0 to (2**31)-1.  The
     period of this random number generator is very large, approximately
     16*((2**31)-1).

     The arc4rand() function uses the RC4 algorithm to generate successive
     pseudo-random bytes.  The arc4random() function uses arc4rand() to generate
 pseudo-random numbers in the range from 0 to (2**32)-1.

     The read_random() function returns the number of bytes placed in buffer.

AUTHORS    [Toc]    [Back]

     Dan Moschuk wrote arc4random().
     Mark R V Murray wrote read_random().


FreeBSD 5.2.1		      September 25, 2000		 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
drand48 IRIX generate uniformly distributed pseudo-random numbers
drand48 Linux generate uniformly distributed pseudo-random numbers
random NetBSD random lines from a file or random numbers
random OpenBSD random lines from a file or random numbers
fsirand HP-UX install random inode generation numbers
srandom_r Tru64 Generate pseudo-random number
setstate_r Tru64 Generate pseudo-random number
setstate Tru64 Generate pseudo-random number
random_r Tru64 Generate pseudo-random number
random Tru64 Generate pseudo-random number
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service