FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

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

 

NAME

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

SYNOPSIS

      #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

      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.
      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 gener‐
      ate 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

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

Sections

Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.