[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9. Random Numbers

9.1 Quality of random numbers  Libgcrypt uses different quality levels.
9.2 Retrieving random numbers  How to retrieve random numbers.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.1 Quality of random numbers

Libgcypt offers random numbers of different quality levels:

Data type: enum gcry_random_level
The constants for the random quality levels are of this type.

GCRY_WEAK_RANDOM
This should not anymore be used. It has recently been changed to an alias of GCRY_STRONG_RANDOM. Use gcry_create_nonce instead.
GCRY_STRONG_RANDOM
Use this level for e.g. session keys and similar purposes.
GCRY_VERY_STRONG_RANDOM
Use this level for e.g. key material.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.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)

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)

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.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by root on April, 16 2004 using texi2html