man.bsd.lv manual page server

Manual Page Search Parameters

GETENTROPY(3) Library Functions Manual GETENTROPY(3)

getentropyget entropy

library “libc”

#include <unistd.h>

int
getentropy(void *buf, size_t buflen);

() fills a buffer with high-quality random data.

The maximum buflen permitted is 256 bytes.

If it does not produce an error, () always provides the requested number of bytes of random data.

Similar to reading from /dev/urandom just after boot, () may block until the system has collected enough entropy to seed the CSPRNG.

The getentropy() function is implemented using getrandom(2).

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

getentropy() will succeed unless:

[]
The buf parameter points to an invalid address.
[]
Too many bytes requested, or some other fatal error occurred.

getrandom(2), arc4random(3), random(4)

getentropy() is non-standard. It is present on OpenBSD and Linux.

The getentropy() function appeared in OpenBSD 5.6. The FreeBSD libc compatibility shim first appeared in FreeBSD 12.0.

February 24, 2018 FreeBSD-13.0