GeneratableCryptoMaterial Class Reference

Interface for crypto material. More...

`#include <cryptlib.h>`

Inheritance diagram for GeneratableCryptoMaterial:

## Public Member Functions

virtual void | GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &params=g_nullNameValuePairs)
| Generate a random key or crypto parameters.
void | GenerateRandomWithKeySize (RandomNumberGenerator &rng, unsigned int keySize)
| Generate a random key or crypto parameters.
Public Member Functions inherited from CryptoMaterial
virtual void | AssignFrom (const NameValuePairs &source)=0
| Assign values to this object.
virtual bool | Validate (RandomNumberGenerator &rng, unsigned int level) const =0
| Check this object for errors.
virtual void | ThrowIfInvalid (RandomNumberGenerator &rng, unsigned int level) const
| Check this object for errors.
virtual void | Save (BufferedTransformation &bt) const
| Saves a key to a BufferedTransformation.
virtual void | Load (BufferedTransformation &bt)
| Loads a key from a BufferedTransformation.
virtual bool | SupportsPrecomputation () const
| Determines whether the object supports precomputation.
virtual void | Precompute (unsigned int precomputationStorage)
| Perform precomputation.
virtual void | LoadPrecomputation (BufferedTransformation &storedPrecomputation)
| Retrieve previously saved precomputation.
virtual void | SavePrecomputation (BufferedTransformation &storedPrecomputation) const
| Save precomputation for later use.
void | DoQuickSanityCheck () const
| Perform a quick sanity check.
Public Member Functions inherited from NameValuePairs
template<class T>
bool | GetThisObject (T &object) const
| Get a copy of this object or subobject.
template<class T>
bool | GetThisPointer (T *&ptr) const
| Get a pointer to this object.
template<class T>
bool | GetValue (const char *name, T &value) const
| Get a named value.
template<class T>
T | GetValueWithDefault (const char *name, T defaultValue) const
| Get a named value.
CRYPTOPP_DLL std::string | GetValueNames () const
| Get a list of value names that can be retrieved.
CRYPTOPP_DLL bool | GetIntValue (const char *name, int &value) const
| Get a named value with type int.
CRYPTOPP_DLL int | GetIntValueWithDefault (const char *name, int defaultValue) const
| Get a named value with type int, with default.
CRYPTOPP_DLL bool | GetWord64Value (const char *name, word64 &value) const
| Get a named value with type word64.
CRYPTOPP_DLL word64 | GetWord64ValueWithDefault (const char *name, word64 defaultValue) const
| Get a named value with type word64, with default.
template<class T>
void | GetRequiredParameter (const char *className, const char *name, T &value) const
| Retrieves a required name/value pair.
CRYPTOPP_DLL void | GetRequiredIntParameter (const char *className, const char *name, int &value) const
| Retrieves a required name/value pair.
virtual CRYPTOPP_DLL bool | GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const =0
| Get a named value.

## Additional Inherited Members

Static Public Member Functions inherited from NameValuePairs
static CRYPTOPP_DLL void | ThrowIfTypeMismatch (const char *name, const std::type_info &stored, const std::type_info &retrieving)
| Ensures an expected name and type is present.

## Detailed Description

Interface for crypto material.

GeneratableCryptoMaterial() is an interface for crypto material, such as private keys and crypto parameters. Derived classes offer public methods such as GenerateRandom() and GenerateRandomWithKeySize().

See also
  CryptoMaterial()

Definition at line 2514 of file cryptlib.h.

## Constructor & Destructor Documentation

## ~GeneratableCryptoMaterial()

virtual GeneratableCryptoMaterial::~GeneratableCryptoMaterial | ( |  | ) |

inline virtual

Definition at line 2517 of file cryptlib.h.

## Member Function Documentation

## GenerateRandom()

virtual void GeneratableCryptoMaterial::GenerateRandom | ( | RandomNumberGenerator & | rng,
|  | const NameValuePairs & | params = g_nullNameValuePairs )

inline virtual

Generate a random key or crypto parameters.

Parameters

  rng | a RandomNumberGenerator to produce keying material
  params | additional initialization parameters

Exceptions

  KeyingErr | if a key can't be generated or algorithm parameters are invalid

If a derived class does not override GenerateRandom(), then the base class throws NotImplemented.

Reimplemented in DL_GroupParameters_DSA, DL_GroupParameters_EC< EC >, DL_GroupParameters_IntegerBased, DL_PrivateKeyImpl< GP >, DL_PrivateKeyImpl< DL_GroupParameters_EC< EC > >, ed25519PrivateKey, InvertibleESIGNFunction, InvertibleLUCFunction, InvertibleRabinFunction, InvertibleRSAFunction, InvertibleRWFunction, and x25519.

Definition at line 2525 of file cryptlib.h.

## GenerateRandomWithKeySize()

void GeneratableCryptoMaterial::GenerateRandomWithKeySize | ( | RandomNumberGenerator & | rng,
|  | unsigned int | keySize )

Generate a random key or crypto parameters.

Parameters

  rng | a RandomNumberGenerator to produce keying material
  keySize | the size of the key, in bits

Exceptions

  KeyingErr | if a key can't be generated or algorithm parameters are invalid

GenerateRandomWithKeySize calls GenerateRandom() with a NameValuePairs object with only "KeySize"

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

- cryptlib.h