Unify the random number provider

Ondřej Surý requested to merge 221-new-isc_random-api into master

The three functions has been modeled after the arc4random family of functions, and they will always return random bytes.

The isc_random family of functions internally use these CSPRNG (if available):

  1. getrandom() libc call (might be available on Linux and Solaris)
  2. SYS_getrandom syscall (might be available on Linux, detected at runtime)
  3. arc4random(), arc4random_buf() and arc4random_uniform() (available on BSDs and Mac OS X)
  4. crypto library function: 4a. RAND_bytes in case OpenSSL 4b. pkcs_C_GenerateRandom() in case PKCS#11 library

Closes #221 (closed)

Merge request reports