26 return BCryptGenRandom((BCRYPT_ALG_HANDLE)NULL, (PUCHAR)buf, (ULONG)len, BCRYPT_USE_SYSTEM_PREFERRED_RNG) == 0;
30#if defined(R__ARC4_STDLIB) || defined(R__ARC4_BSDLIB)
31 arc4random_buf(buf, len);
33#elif defined(R__GETRANDOM_CLIB)
34 return getrandom(buf, len, GRND_NONBLOCK) == len;
35#elif defined(R__USE_URANDOM)
36 std::ifstream urandom{
"/dev/urandom"};
39 urandom.read(
reinterpret_cast<char *
>(buf), len);
40 return urandom.good();
42#error "Reliable cryptographic random function not defined"