aboutsummaryrefslogtreecommitdiff
path: root/lib/random/sysrandom.h
blob: 3d6b800fac37a1f9f4a95c71a91bf520bc725aec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Logic for using system random numbers

#pragma once

#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
#include <stdlib.h>
static ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
    (void)flags;
    arc4random_buf(buf, buflen);
    return buflen;
}
#elif defined(__linux__)
// Use getrandom()
#include <sys/random.h>
#else
#error "Unsupported platform for secure random number generation"
#endif