### 10.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.