diff options
author | Paul Duncan <pabs@pablotron.org> | 2023-10-16 17:20:36 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2023-10-16 17:20:36 -0400 |
commit | 8bce03ef55d76e84c3a15c68cceaa71800196792 (patch) | |
tree | 3645c7777c61ddedd1f118d9a84631eac183b2f2 /examples/06-all/rand-bytes.h | |
parent | 4c94118ec89c3cae982bf4a6cc8866bc68741b33 (diff) | |
download | sha3-8bce03ef55d76e84c3a15c68cceaa71800196792.tar.bz2 sha3-8bce03ef55d76e84c3a15c68cceaa71800196792.zip |
add examples/06-all/
Diffstat (limited to 'examples/06-all/rand-bytes.h')
-rw-r--r-- | examples/06-all/rand-bytes.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/06-all/rand-bytes.h b/examples/06-all/rand-bytes.h new file mode 100644 index 0000000..b9d38d4 --- /dev/null +++ b/examples/06-all/rand-bytes.h @@ -0,0 +1,20 @@ +#ifndef RAND_BYTES_H +#define RAND_BYTES_H + +#include <stddef.h> // size_t +#include <sys/random.h> // getrandom() +#include <err.h> // errx() + +// Fill `buf` with `len` random bytes using `getrandom()`. +// +// Prints an error and exits with an error code if `len` random bytes +// could not be read. +static void rand_bytes(void * const buf, const size_t len) { + const ssize_t got = getrandom(buf, len, 0); + if (got < (ssize_t) len) { + // print error message, exit with error + errx(-1, "getrandom() failed"); + } +} + +#endif /* RAND_BYTES_H */ |