Previous: Quality of random numbers, Up: Random Numbers


8.2 Retrieving random numbers

— Function: void gcry_randomize (unsigned char *buffer, size_t length, enum gcry_random_level level)

Fill buffer with length random bytes using a random quality as defined by level.

— Function: void * gcry_random_bytes (size_t nbytes, enum gcry_random_level level)

Convenience function to allocate a memory block consisting of nbytes fresh random bytes using a random quality as defined by level.

— Function: void * gcry_random_bytes_secure (size_t nbytes, enum gcry_random_level level)

Convenience function to allocate a memory block consisting of nbytes fresh random bytes using a random quality as defined by level. This function differs from gcry_random_bytes in that the returned buffer is allocated in a “secure” area of the memory.

— Function: void gcry_create_nonce (unsigned char *buffer, size_t length)

Fill buffer with length unpredictable bytes. This is commonly called a nonce and may also be used for initialization vectors and padding. This is an extra function nearly independent of the other random function for 3 reasons: It better protects the regular random generator's internal state, provides better performance and does not drain the precious entropy pool.