| # zx_cprng_draw |
| |
| ## NAME |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| Draw from the kernel's CPRNG. |
| |
| ## SYNOPSIS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| ```c |
| #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. |
| |
| ## RIGHTS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| TODO(fxbug.dev/32253) |
| |
| ## NOTES |
| |
| `zx_cprng_draw()` triggers 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. |
| |
| ## SEE ALSO |
| |
| - [`zx_cprng_add_entropy()`] |
| |
| <!-- References updated by update-docs-from-fidl, do not edit. --> |
| |
| [`zx_cprng_add_entropy()`]: cprng_add_entropy.md |