Unify the random number provider
While looking at the crypto routines, I found that we have:
isc_random_get()
isc_rng_randombytes()
isc_entropy_getdata()
and the usage isn't really consistent throughout the source code.
This issue aims to unify the random data providers inside libisc to use (in this order):
-
getrandom()
glibc call if available -
SYS_getrandom
syscall if available -
arc4random()
if available - crypto library provider call (
RAND_bytes()
in case of OpenSSL) if available
These are all good (and reasonable fast) providers of random data.