Security Scol plugin
Classes | Public Member Functions | Static Public Member Functions | List of all members
NameValuePairs Class Referenceabstract

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

#include <cryptlib.h>

Inheritance diagram for NameValuePairs:
AlgorithmParameters CombinedNameValuePairs CryptoMaterial NullNameValuePairs Certificate GeneratableCryptoMaterial PublicKey CryptoParameters PrivateKey ASN1CryptoMaterial< PublicKey > LUCFunction RWFunction RabinFunction DL_GroupParameters< typename GROUP_PRECOMP::Element > DL_GroupParameters< Integer > DL_GroupParameters< T > XTR_DH x25519 ASN1CryptoMaterial< PrivateKey > InvertibleESIGNFunction InvertibleLUCFunction InvertibleRWFunction InvertibleRabinFunction ESIGNFunction X509PublicKey InvertibleLUCFunction InvertibleRWFunction InvertibleRabinFunction

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

Static Public Member Functions

static CRYPTOPP_DLL void CRYPTOPP_API 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 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 321 of file cryptlib.h.

Constructor & Destructor Documentation

◆ ~NameValuePairs()

virtual NameValuePairs::~NameValuePairs ( )
inlinevirtual

Definition at line 324 of file cryptlib.h.

Member Function Documentation

◆ GetIntValue()

CRYPTOPP_DLL 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 415 of file cryptlib.h.

◆ GetIntValueWithDefault()

CRYPTOPP_DLL 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 424 of file cryptlib.h.

◆ GetRequiredIntParameter()

CRYPTOPP_DLL 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 483 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 468 of file cryptlib.h.

◆ 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 357 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 366 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 379 of file cryptlib.h.

◆ GetValueNames()

CRYPTOPP_DLL 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 404 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 392 of file cryptlib.h.

◆ GetVoidValue()

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

◆ GetWord64Value()

CRYPTOPP_DLL 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 433 of file cryptlib.h.

◆ GetWord64ValueWithDefault()

CRYPTOPP_DLL 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 442 of file cryptlib.h.

◆ ThrowIfTypeMismatch()

static CRYPTOPP_DLL void CRYPTOPP_API 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 454 of file cryptlib.h.


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