lime
Lime is a C++ library implementing Open Whisper System Signal protocol
Public Member Functions | List of all members
lime::RNG Class Referenceabstract

Random number generator interface. More...

Inheritance diagram for lime::RNG:
lime::bctbx_RNG

Public Member Functions

virtual void randomize (sBuffer< lime::settings::DRrandomSeedSize > &buffer)=0
 fill the given RandomSeed buffer with Random bytes More...
 
virtual uint32_t randomize ()=0
 Generate a 32 bits unsigned integer(used to generate keys Id) The MSbit is forced to 0 to avoid dealing with DB misinterpreting unsigned values into signed one Our random number is actually on 31 bits. More...
 
virtual void randomize (uint8_t *buffer, const size_t size)=0
 
virtual ~RNG ()=default
 

Detailed Description

Random number generator interface.

This abstract class is used to hold a RNG object It provides explicit functions to generate:

Constructor & Destructor Documentation

◆ ~RNG()

virtual lime::RNG::~RNG ( )
virtualdefault

Member Function Documentation

◆ randomize() [1/3]

virtual void lime::RNG::randomize ( sBuffer< lime::settings::DRrandomSeedSize > &  buffer)
pure virtual

fill the given RandomSeed buffer with Random bytes

Parameters
[in,out]bufferpoint to the beginning of the buffer to be filled with random bytes

Implemented in lime::bctbx_RNG.

◆ randomize() [2/3]

virtual uint32_t lime::RNG::randomize ( )
pure virtual

Generate a 32 bits unsigned integer(used to generate keys Id) The MSbit is forced to 0 to avoid dealing with DB misinterpreting unsigned values into signed one Our random number is actually on 31 bits.

Returns
a random 32 bits unsigned integer

Implemented in lime::bctbx_RNG.

◆ randomize() [3/3]

virtual void lime::RNG::randomize ( uint8_t *  buffer,
const size_t  size 
)
pure virtual

fill a buffer with random numbers

Parameters
[in,out]bufferThe buffer to be filled with random (callers responsability to allocate memory)
[in]sizesize in bytes of the random generated, buffer must be at least of this size

Implemented in lime::bctbx_RNG.


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