@@ -121,12 +121,18 @@ #endif uint32_t of_random(void) { -#ifdef HAVE_ARC4RANDOM +#if defined(HAVE_ARC4RANDOM) return arc4random(); +#elif defined(HAVE_GETRANDOM) + uint32_t buffer; + + OF_ENSURE(getrandom(&buffer, sizeof(buffer), 0) == sizeof(buffer)); + + return buffer; #else static of_once_t onceControl; of_once(&onceControl, initRandom); # ifdef HAVE_RANDOM