UCommon

ucc::Random Class Reference

Cryptographically relevant random numbers. More...

#include <secure.h>

Static Public Member Functions

static size_t fill (unsigned char *memory, size_t size)
 Fill memory with pseudo-random values.
static int get (void)
 Get a pseudo-random integer, range 0 - 32767.
static int get (int min, int max)
 Get a pseudo-random integer in a preset range.
static size_t key (unsigned char *memory, size_t size)
 Get high-entropy random data.
static double real (double min, double max)
 Get a pseudo-random floating point value in a preset range.
static double real (void)
 Get a pseudo-random floating point value.
static void seed (void)
 Re-seed pseudo-random generation and entropy pools.
static bool seed (unsigned char *buffer, size_t size)
 Push entropic seed.
static bool status (void)
 Determine if we have sufficient entropy to return random values.
static String uuid (void)
static void uuid (char *string)
 Create 36 character random uuid string.

Detailed Description

Cryptographically relevant random numbers.

This is used both to gather entropy pools and pseudo-random values.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 468 of file secure.h.


Member Function Documentation

static size_t ucc::Random::fill ( unsigned char *  memory,
size_t  size 
) [static]

Fill memory with pseudo-random values.

This is used as the basis for all get and real operations and does not depend on seed entropy.

Parameters:
memorybuffer to fill.
sizeof buffer to fill.
Returns:
number of bytes set.
static int ucc::Random::get ( void  ) [static]

Get a pseudo-random integer, range 0 - 32767.

Returns:
random integer.
static int ucc::Random::get ( int  min,
int  max 
) [static]

Get a pseudo-random integer in a preset range.

Parameters:
minvalue of random integer.
maxvalue of random integer.
Returns:
random value from min to max.
static size_t ucc::Random::key ( unsigned char *  memory,
size_t  size 
) [static]

Get high-entropy random data.

This is often used to initialize keys. This operation may block if there is insufficient entropy immediately available.

Parameters:
memorybuffer to fill.
sizeof buffer.
Returns:
number of bytes filled.
static double ucc::Random::real ( double  min,
double  max 
) [static]

Get a pseudo-random floating point value in a preset range.

Parameters:
minvalue of random floating point number.
maxvalue of random floating point number.
Returns:
random value from min to max.
static double ucc::Random::real ( void  ) [static]

Get a pseudo-random floating point value.

Returns:
psudo-random value 0 to 1.
static bool ucc::Random::seed ( unsigned char *  buffer,
size_t  size 
) [static]

Push entropic seed.

Parameters:
bufferof random data to push.
sizeof buffer.
Returns:
true if successful.
static bool ucc::Random::status ( void  ) [static]

Determine if we have sufficient entropy to return random values.

Returns:
true if sufficient entropy.
static void ucc::Random::uuid ( char *  string) [static]

Create 36 character random uuid string.

Parameters:
stringto write uuid into, must be 37 bytes or more.

The documentation for this class was generated from the following file: