Skip to content
  • Ondřej Surý's avatar
    Replace all random functions with isc_random, isc_random_buf and isc_random_uniform API. · 3a4f820d
    Ondřej Surý authored
    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
    3a4f820d