tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
getentropy() to be added to POSIX in the next version
I know there has been discussion here about getentropy() etc.
Normally outside my area of direct interest, so I didn't pay
all that much attention, but I thought that you all should know
that getentropy() has been added in the draft (next draft when
it appears) of the forthcoming version of the POSIX standard.
(Perhaps in 2022, outside chance 2021, no chance 2020, beyond
2022 is possible).
The actual page (or something close to it) is included
below - there are also some extra changes elsewhere that aren't
particularly interesting (like the addition of GETENTROPY_MAX
in <limits.h>, a prototype in <unistd.h>, and some references
from other places).
How the NetBSD version fits with this spec I have no idea,
but I assume that others out there do.
Note that in the cut&paste below, all markup has been lost, and the
text has been re-justified to fit this e-mail.
kre
NAME
getentropy -- fill a buffer with random bytes
SYNOPSIS
#include <unistd.h>
int getentropy(void *buffer, size_t length);
DESCRIPTION
The getentropy() function shall write length bytes of data
starting at the location pointed to by buffer. The output shall
be unpredictable high quality random data, generated by a
cryptographically secure pseudo-random number generator. The
maximum permitted value for the length argument is given by the
{GETENTROPY_MAX} symbolic constant defined in <limits.h>.
A successful call to getentropy() shall always provide the
requested number of bytes of entropy.
RETURN VALUE
Upon successful completion, getentropy() shall return 0;
otherwise, -1 shall be returned and errno set to indicate the error.
ERRORS
The getentropy() function shall fail if:
[EINVAL]
The value of length is greater than {GETENTROPY_MAX}.
The getentropy() function may fail if:
[ENOSYS]
The system does not provide the necessary source of entropy.
EXAMPLES
None.
APPLICATION USAGE
The intended use of this function is to create a seed for other
pseudo-random number generators.
RATIONALE
The getentropy() function is not a cancellation point.
(See [xref to 2.9.5.2 Cancellation Points].)
FUTURE DIRECTIONS
None.
SEE ALSO
drand48(), initstate(), rand()
XBD <limits.h>, <unistd.h>
CHANGE HISTORY
First released in Issue 8.
Home |
Main Index |
Thread Index |
Old Index