45 NTSTATUS res = BCryptGenRandom(NULL, data, size, BCRYPT_USE_SYSTEM_PREFERRED_RNG);
46 if (res != STATUS_SUCCESS || size > ULONG_MAX) {
51#elif defined(__linux__) || defined(__FreeBSD__)
53 ssize_t res = getrandom(data, size, 0);
54 if (res < 0 || (
size_t)res != size ) {
59#elif defined(__APPLE__) || defined(__OpenBSD__)
62 int res = getentropy(data, size);