code / tomo-random

Lines568 Tomo238 C174 Markdown156
(17 lines)
1 // Logic for using system random numbers
3 #pragma once
5 #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
6 #include <stdlib.h>
7 static ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
8 (void)flags;
9 arc4random_buf(buf, buflen);
10 return buflen;
12 #elif defined(__linux__)
13 // Use getrandom()
14 #include <sys/random.h>
15 #else
16 #error "Unsupported platform for secure random number generation"
17 #endif