ARC4RANDOM(9) | Kernel Developer's Manual | ARC4RANDOM(9)

# NAME

`arc4random`, `arc4random_buf`, `arc4random_uniform`, `enqueue_randomness` — kernel random subsystem

# SYNOPSIS

`#include <sys/systm.h>`

u_int32_t
`arc4random`(void);

void
`arc4random_buf`(void *buf, size_t nbytes);

u_int32_t
`arc4random_uniform`(u_int32_t upper_bound);

void
`enqueue_randomness`(int);

# DESCRIPTION

`arc4random`() and `arc4random_buf`() provide random numbers and are intended to be called in any circumstance where random numbers are required.

`arc4random_uniform`() will return a uniformly distributed random number less than upper_bound, avoiding "modulo bias" when the upper bound is not a power of two. In the worst case, this function may consume multiple iterations to ensure uniformity; see the source code to understand the problem and solution.

`enqueue_randomness`() causes the supplied data argument to be added to the entropy pool.

# SEE ALSO

arc4random(3), random(4)

May 29, 2020 | Debian