Summary
Draw from the kernel's CPRNG.
Declaration
#include <zircon/syscalls.h>
void zx_cprng_draw(void* buffer, size_t buffer_size);
Description
zx_cprng_draw()
draws random bytes from the kernel CPRNG. This data should
be suitable for cryptographic applications.
Clients that require a large volume of randomness should consider using these bytes to seed a user-space random number generator for better performance. As always, test the actual latency of your call site before optimizing.
Rights
None.
Notes
zx_cprng_draw()
terminates the calling process if buffer
is not a valid
userspace pointer.
There are no other error conditions. If its arguments are valid,
zx_cprng_draw()
will succeed.