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

  T | class or type

Parameters

  object | reference 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

  T | class or type

Parameters

  ptr | reference 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

  T | class or type

Parameters

  name | the name of the object or value to retrieve
  value | reference 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,
|  | T | defaultValue
| ) |  | const
| inline

Get a named value.

Template Parameters

  T | class or type

Parameters

  name | the name of the object or value to retrieve
  defaultValue | the 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

  name | the name of the value to retrieve
  value | the 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

  name | the name of the value to retrieve
  defaultValue | the 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

  name | the name of the value to retrieve
  value | the 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

  name | the name of the value to retrieve
  defaultValue | the 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
| ) |  |
| inline static

Ensures an expected name and type is present.

Parameters

  name | the name of the value
  stored | the type that was stored for the name
  retrieving | the 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

  T | class or type

Parameters

  className | the name of the class
  name | the name of the value
  value | reference 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

  className | the name of the class
  name | the name of the value
  value | reference 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

  name | the name of the object or value to retrieve
  valueType | reference to a variable that receives the value
  pValue | void 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:

- cryptlib.h