#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
Fa seed .
The
srandom ();
function may be called with any arbitrary
Fa 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
Fa 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
Fa buffer
is filled with output generated by
random (.);
The
Fa buffer
is filled with no more than
Fa 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
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
Fa buffer .
AUTHORS
An Dan Moschuk
wrote
arc4random (.);
An Mark R V Murray
wrote
read_random (.);