ARC4RANDOM(3) | Library Functions Manual | ARC4RANDOM(3) |
uint32_t
arc4random(void);
void
arc4random_buf(void *buffer, size_t length);
uint32_t
arc4random_uniform(uint32_t upper_bound);
void
arc4random_stir(void);
void
arc4random_addrandom(u_char *dat, int datlen);
arc4random() fits into a middle ground not covered by other subsystems such as the strong, slow, and resource expensive random devices described in rnd(4) versus the fast but poor quality interfaces described in rand(3), random(3), and drand48(3).
The arc4random_buf() function fills the buffer with length bytes of ARC4-derived random data.
The arc4random_uniform() function returns a uniformly distributed random number less than upper_bound avoiding 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(), since arc4random() automatically initializes itself.
These functions first appeared in OpenBSD 2.1.
February 4, 2011 | NetBSD 6.1 |