Crypto++  8.0
Free C++ class library of cryptographic schemes
Classes | Public Member Functions | Static Public Member Functions | List of all members
NameValuePairs Class Referenceabstract

Interface for retrieving values given their names. More...

+ Inheritance diagram for NameValuePairs:

Classes

class  ValueTypeMismatch
 Thrown when an unexpected type is encountered. More...
 

Public Member Functions

template<class T >
bool GetThisObject (T &object) const
 Get a copy of this object or subobject. More...
 
template<class T >
bool GetThisPointer (T *&ptr) const
 Get a pointer to this object. More...
 
template<class T >
bool GetValue (const char *name, T &value) const
 Get a named value. More...
 
template<class T >
GetValueWithDefault (const char *name, T defaultValue) const
 Get a named value. More...
 
std::string GetValueNames () const
 Get a list of value names that can be retrieved. More...
 
bool GetIntValue (const char *name, int &value) const
 Get a named value with type int. More...
 
int GetIntValueWithDefault (const char *name, int defaultValue) const
 Get a named value with type int, with default. More...
 
bool GetWord64Value (const char *name, word64 &value) const
 Get a named value with type word64. More...
 
word64 GetWord64ValueWithDefault (const char *name, word64 defaultValue) const
 Get a named value with type word64, with default. More...
 
template<class T >
void GetRequiredParameter (const char *className, const char *name, T &value) const
 Retrieves a required name/value pair. More...
 
void GetRequiredIntParameter (const char *className, const char *name, int &value) const
 Retrieves a required name/value pair. More...
 
virtual bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const =0
 Get a named value. More...
 

Static Public Member Functions

static void ThrowIfTypeMismatch (const char *name, const std::type_info &stored, const std::type_info &retrieving)
 Ensures an expected name and type is present. More...
 

Detailed Description

Interface for retrieving values given their names.

This class is used to safely pass a variable number of arbitrarily typed arguments to functions and to read values from keys and crypto parameters.

To obtain an object that implements NameValuePairs for the purpose of parameter passing, use the MakeParameters() function.

To get a value from NameValuePairs, you need to know the name and the type of the value. Call GetValueNames() on a NameValuePairs object to obtain a list of value names that it supports. then look at the Name namespace documentation to see what the type of each value is, or alternatively, call GetIntValue() with the value name, and if the type is not int, a ValueTypeMismatch exception will be thrown and you can get the actual type from the exception object.

See also
NullNameValuePairs, g_nullNameValuePairs, NameValuePairs on the Crypto++ wiki

Definition at line 293 of file cryptlib.h.

Member Function Documentation

◆ GetThisObject()

template<class T >
bool NameValuePairs::GetThisObject ( T &  object) const
inline

Get a copy of this object or subobject.

Template Parameters
Tclass or type
Parameters
objectreference to a variable that receives the value

Definition at line 328 of file cryptlib.h.

◆ GetThisPointer()

template<class T >
bool NameValuePairs::GetThisPointer ( T *&  ptr) const
inline

Get a pointer to this object.

Template Parameters
Tclass or type
Parameters
ptrreference to a pointer to a variable that receives the value

Definition at line 337 of file cryptlib.h.

◆ GetValue()

template<class T >
bool NameValuePairs::GetValue ( const char *  name,
T &  value 
) const
inline

Get a named value.

Template Parameters
Tclass or type
Parameters
namethe name of the object or value to retrieve
valuereference to a variable that receives the value
Returns
true if the value was retrieved, false otherwise
See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 350 of file cryptlib.h.

◆ GetValueWithDefault()

template<class T >
T NameValuePairs::GetValueWithDefault ( const char *  name,
defaultValue 
) const
inline

Get a named value.

Template Parameters
Tclass or type
Parameters
namethe name of the object or value to retrieve
defaultValuethe default value of the class or type if it does not exist
Returns
the object or value
See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 363 of file cryptlib.h.

◆ GetValueNames()

std::string NameValuePairs::GetValueNames ( ) const
inline

Get a list of value names that can be retrieved.

Returns
a list of names available to retrieve

the items in the list are delimited with a colon.

Definition at line 375 of file cryptlib.h.

◆ GetIntValue()

bool NameValuePairs::GetIntValue ( const char *  name,
int &  value 
) const
inline

Get a named value with type int.

Parameters
namethe name of the value to retrieve
valuethe value retrieved upon success
Returns
true if an int value was retrieved, false otherwise

GetIntValue() is used to ensure we don't accidentally try to get an unsigned int or some other type when we mean int (which is the most common case)

See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 386 of file cryptlib.h.

◆ GetIntValueWithDefault()

int NameValuePairs::GetIntValueWithDefault ( const char *  name,
int  defaultValue 
) const
inline

Get a named value with type int, with default.

Parameters
namethe name of the value to retrieve
defaultValuethe default value if the name does not exist
Returns
the value retrieved on success or the default value
See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 395 of file cryptlib.h.

◆ GetWord64Value()

bool NameValuePairs::GetWord64Value ( const char *  name,
word64 &  value 
) const
inline

Get a named value with type word64.

Parameters
namethe name of the value to retrieve
valuethe value retrieved upon success
Returns
true if an word64 value was retrieved, false otherwise
See also
GetValue(), GetValueWithDefault(), GetWord64ValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 404 of file cryptlib.h.

◆ GetWord64ValueWithDefault()

word64 NameValuePairs::GetWord64ValueWithDefault ( const char *  name,
word64  defaultValue 
) const
inline

Get a named value with type word64, with default.

Parameters
namethe name of the value to retrieve
defaultValuethe default value if the name does not exist
Returns
the value retrieved on success or the default value
See also
GetValue(), GetValueWithDefault(), GetWord64Value(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredWord64Parameter()

Definition at line 413 of file cryptlib.h.

◆ ThrowIfTypeMismatch()

static void NameValuePairs::ThrowIfTypeMismatch ( const char *  name,
const std::type_info &  stored,
const std::type_info &  retrieving 
)
inlinestatic

Ensures an expected name and type is present.

Parameters
namethe name of the value
storedthe type that was stored for the name
retrievingthe type that is being retrieved for the name
Exceptions
ValueTypeMismatch

ThrowIfTypeMismatch() effectively performs a type safety check. stored and retrieving are C++ mangled names for the type.

See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 425 of file cryptlib.h.

◆ GetRequiredParameter()

template<class T >
void NameValuePairs::GetRequiredParameter ( const char *  className,
const char *  name,
T &  value 
) const
inline

Retrieves a required name/value pair.

Template Parameters
Tclass or type
Parameters
classNamethe name of the class
namethe name of the value
valuereference to a variable to receive the value
Exceptions
InvalidArgument

GetRequiredParameter() throws InvalidArgument if the name is not present or not of the expected type T.

See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 439 of file cryptlib.h.

◆ GetRequiredIntParameter()

void NameValuePairs::GetRequiredIntParameter ( const char *  className,
const char *  name,
int &  value 
) const
inline

Retrieves a required name/value pair.

Parameters
classNamethe name of the class
namethe name of the value
valuereference to a variable to receive the value
Exceptions
InvalidArgument

GetRequiredParameter() throws InvalidArgument if the name is not present or not of the expected type T.

See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Definition at line 454 of file cryptlib.h.

◆ GetVoidValue()

virtual bool NameValuePairs::GetVoidValue ( const char *  name,
const std::type_info &  valueType,
void *  pValue 
) const
pure virtual

Get a named value.

Parameters
namethe name of the object or value to retrieve
valueTypereference to a variable that receives the value
pValuevoid pointer to a variable that receives the value
Returns
true if the value was retrieved, false otherwise

GetVoidValue() retrieves the value of name if it exists.

Note
GetVoidValue() is an internal function and should be implemented by derived classes. Users should use one of the other functions instead.
See also
GetValue(), GetValueWithDefault(), GetIntValue(), GetIntValueWithDefault(), GetRequiredParameter() and GetRequiredIntParameter()

Implemented in DL_PublicKeyImpl< GP >, DL_PublicKeyImpl< DL_GroupParameters_EC< EC > >, DL_PrivateKeyImpl< GP >, DL_PrivateKeyImpl< DL_GroupParameters_EC< EC > >, NullNameValuePairs, DL_GroupParameters< T >, DL_GroupParameters< Integer >, DL_GroupParameters< typename EcPrecomputation< EC > ::Element >, ed25519PublicKey, AlgorithmParameters, DL_PrivateKey_ECGDSA< EC >, ed25519PrivateKey, DL_GroupParameters_LUC, DL_GroupParameters_GFP, x25519, CombinedNameValuePairs, DL_GroupParameters_IntegerBasedImpl< GROUP_PRECOMP, BASE_PRECOMP >, DL_GroupParameters_IntegerBasedImpl< DL_GroupPrecomputation_LUC, DL_BasePrecomputation_LUC >, DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation >, InvertibleRSAFunction, InvertibleLUCFunction, InvertibleESIGNFunction, InvertibleRWFunction, DL_GroupParameters_EC< EC >, InvertibleRabinFunction, DL_GroupParameters_IntegerBased, LUCFunction, RWFunction, RSAFunction, RabinFunction, ESIGNFunction, and XTR_DH.


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