Coverage Report

Created: 2024-11-21 07:03

/src/cryptopp/algparam.h
Line
Count
Source (jump to first uncovered line)
1
// algparam.h - originally written and placed in the public domain by Wei Dai
2
3
/// \file algparam.h
4
/// \brief Classes for working with NameValuePairs
5
6
#ifndef CRYPTOPP_ALGPARAM_H
7
#define CRYPTOPP_ALGPARAM_H
8
9
#include "config.h"
10
#include "cryptlib.h"
11
12
#include "smartptr.h"
13
#include "secblock.h"
14
#include "integer.h"
15
#include "misc.h"
16
17
#include <string>
18
#include <typeinfo>
19
#include <exception>
20
21
NAMESPACE_BEGIN(CryptoPP)
22
23
/// \brief Used to pass byte array input as part of a NameValuePairs object
24
class ConstByteArrayParameter
25
{
26
public:
27
  /// \brief Construct a ConstByteArrayParameter
28
  /// \param data a C-String
29
  /// \param deepCopy flag indicating whether the data should be copied
30
  /// \details The deepCopy option is used when the NameValuePairs object can't
31
  ///   keep a copy of the data available
32
  ConstByteArrayParameter(const char *data = NULLPTR, bool deepCopy = false)
33
    : m_deepCopy(false), m_data(NULLPTR), m_size(0)
34
5.36M
  {
35
5.36M
    Assign(reinterpret_cast<const byte *>(data), data ? strlen(data) : 0, deepCopy);
36
5.36M
  }
37
38
  /// \brief Construct a ConstByteArrayParameter
39
  /// \param data a memory buffer
40
  /// \param size the length of the memory buffer
41
  /// \param deepCopy flag indicating whether the data should be copied
42
  /// \details The deepCopy option is used when the NameValuePairs object can't
43
  ///   keep a copy of the data available
44
  ConstByteArrayParameter(const byte *data, size_t size, bool deepCopy = false)
45
    : m_deepCopy(false), m_data(NULLPTR), m_size(0)
46
4.82M
  {
47
4.82M
    Assign(data, size, deepCopy);
48
4.82M
  }
49
50
  /// \brief Construct a ConstByteArrayParameter
51
  /// \tparam T a std::basic_string<char> or std::vector<byte> class
52
  /// \param string a std::basic_string<char> or std::vector<byte> object
53
  /// \param deepCopy flag indicating whether the data should be copied
54
  /// \details The deepCopy option is used when the NameValuePairs object can't
55
  ///   keep a copy of the data available
56
  template <class T> ConstByteArrayParameter(const T &string, bool deepCopy = false)
57
    : m_deepCopy(false), m_data(NULLPTR), m_size(0)
58
  {
59
    CRYPTOPP_COMPILE_ASSERT(sizeof(typename T::value_type) == 1);
60
    Assign(reinterpret_cast<const byte *>(&string[0]), string.size(), deepCopy);
61
  }
62
63
  /// \brief Assign contents from a memory buffer
64
  /// \param data a memory buffer
65
  /// \param size the length of the memory buffer
66
  /// \param deepCopy flag indicating whether the data should be copied
67
  /// \details The deepCopy option is used when the NameValuePairs object can't
68
  ///   keep a copy of the data available
69
  void Assign(const byte *data, size_t size, bool deepCopy)
70
10.1M
  {
71
    // This fires, which means: no data with a size, or data with no size.
72
    // CRYPTOPP_ASSERT((data && size) || !(data || size));
73
10.1M
    if (deepCopy)
74
0
      m_block.Assign(data, size);
75
10.1M
    else
76
10.1M
    {
77
10.1M
      m_data = data;
78
10.1M
      m_size = size;
79
10.1M
    }
80
10.1M
    m_deepCopy = deepCopy;
81
10.1M
  }
82
83
  /// \brief Pointer to the first byte in the memory block
84
5.09M
  const byte *begin() const {return m_deepCopy ? m_block.begin() : m_data;}
85
  /// \brief Pointer beyond the last byte in the memory block
86
0
  const byte *end() const {return m_deepCopy ? m_block.end() : m_data + m_size;}
87
  /// \brief Length of the memory block
88
5.09M
  size_t size() const {return m_deepCopy ? m_block.size() : m_size;}
89
90
private:
91
  bool m_deepCopy;
92
  const byte *m_data;
93
  size_t m_size;
94
  SecByteBlock m_block;
95
};
96
97
/// \brief Used to pass byte array input as part of a NameValuePairs object
98
class ByteArrayParameter
99
{
100
public:
101
  /// \brief Construct a ByteArrayParameter
102
  /// \param data a memory buffer
103
  /// \param size the length of the memory buffer
104
  ByteArrayParameter(byte *data = NULLPTR, unsigned int size = 0)
105
0
    : m_data(data), m_size(size) {}
106
107
  /// \brief Construct a ByteArrayParameter
108
  /// \param block a SecByteBlock
109
  ByteArrayParameter(SecByteBlock &block)
110
0
    : m_data(block.begin()), m_size(block.size()) {}
111
112
  /// \brief Pointer to the first byte in the memory block
113
0
  byte *begin() const {return m_data;}
114
  /// \brief Pointer beyond the last byte in the memory block
115
0
  byte *end() const {return m_data + m_size;}
116
  /// \brief Length of the memory block
117
0
  size_t size() const {return m_size;}
118
119
private:
120
  byte *m_data;
121
  size_t m_size;
122
};
123
124
/// \brief Combines two sets of NameValuePairs
125
/// \details CombinedNameValuePairs allows you to provide two sets of of NameValuePairs.
126
///   If a name is not found in the first set, then the second set is searched for the
127
///   name and value pair. The second set of NameValuePairs often provides default values.
128
class CRYPTOPP_DLL CombinedNameValuePairs : public NameValuePairs
129
{
130
public:
131
  /// \brief Construct a CombinedNameValuePairs
132
  /// \param pairs1 reference to the first set of NameValuePairs
133
  /// \param pairs2 reference to the second set of NameValuePairs
134
  CombinedNameValuePairs(const NameValuePairs &pairs1, const NameValuePairs &pairs2)
135
100
    : m_pairs1(pairs1), m_pairs2(pairs2) {}
136
137
  bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const;
138
139
private:
140
  const NameValuePairs &m_pairs1, &m_pairs2;
141
};
142
143
#ifndef CRYPTOPP_DOXYGEN_PROCESSING
144
template <class T, class BASE>
145
class GetValueHelperClass
146
{
147
public:
148
  GetValueHelperClass(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst)
149
    : m_pObject(pObject), m_name(name), m_valueType(&valueType), m_pValue(pValue), m_found(false), m_getValueNames(false)
150
0
  {
151
0
    if (strcmp(m_name, "ValueNames") == 0)
152
0
    {
153
0
      m_found = m_getValueNames = true;
154
0
      NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(std::string), *m_valueType);
155
0
      if (searchFirst)
156
0
        searchFirst->GetVoidValue(m_name, valueType, pValue);
157
0
      if (typeid(T) != typeid(BASE))
158
0
        pObject->BASE::GetVoidValue(m_name, valueType, pValue);
159
0
      ((*reinterpret_cast<std::string *>(m_pValue) += "ThisPointer:") += typeid(T).name()) += ';';
160
0
    }
161
162
0
    if (!m_found && strncmp(m_name, "ThisPointer:", 12) == 0 && strcmp(m_name+12, typeid(T).name()) == 0)
163
0
    {
164
0
      NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(T *), *m_valueType);
165
0
      *reinterpret_cast<const T **>(pValue) = pObject;
166
0
      m_found = true;
167
0
      return;
168
0
    }
169
170
0
    if (!m_found && searchFirst)
171
0
      m_found = searchFirst->GetVoidValue(m_name, valueType, pValue);
172
173
0
    if (!m_found && typeid(T) != typeid(BASE))
174
0
      m_found = pObject->BASE::GetVoidValue(m_name, valueType, pValue);
175
0
  }
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_GFP, CryptoPP::DL_GroupParameters_IntegerBased>::GetValueHelperClass(CryptoPP::DL_GroupParameters_GFP const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_GroupParameters<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased>::GetValueHelperClass(CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >::GetValueHelperClass(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >::GetValueHelperClass(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_PublicKey<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::GetValueHelperClass(CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::GetValueHelperClass(CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::GetValueHelperClass(CryptoPP::DL_GroupParameters_IntegerBased const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
176
177
0
  operator bool() const {return m_found;}
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_GFP, CryptoPP::DL_GroupParameters_IntegerBased>::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased>::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::operator bool() const
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::operator bool() const
178
179
  template <class R>
180
  GetValueHelperClass<T,BASE> & operator()(const char *name, const R & (T::*pm)() const)
181
0
  {
182
0
    if (m_getValueNames)
183
0
      (*reinterpret_cast<std::string *>(m_pValue) += name) += ";";
184
0
    if (!m_found && strcmp(name, m_name) == 0)
185
0
    {
186
0
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(R), *m_valueType);
187
0
      *reinterpret_cast<R *>(m_pValue) = (m_pObject->*pm)();
188
0
      m_found = true;
189
0
    }
190
0
    return *this;
191
0
  }
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::operator()<CryptoPP::ECPPoint>(char const*, CryptoPP::ECPPoint const& (CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_GroupParameters<CryptoPP::Integer>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::operator()<CryptoPP::ECP>(char const*, CryptoPP::ECP const& (CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::operator()<CryptoPP::EC2N>(char const*, CryptoPP::EC2N const& (CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::operator()<CryptoPP::ECPPoint>(char const*, CryptoPP::ECPPoint const& (CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::operator()<CryptoPP::EC2NPoint>(char const*, CryptoPP::EC2NPoint const& (CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_PublicKey<CryptoPP::Integer>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_PrivateKey<CryptoPP::Integer>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::operator()<CryptoPP::EC2NPoint>(char const*, CryptoPP::EC2NPoint const& (CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>::*)() const)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >& CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const& (CryptoPP::DL_GroupParameters_IntegerBased::*)() const)
192
193
  GetValueHelperClass<T,BASE> &Assignable()
194
0
  {
195
0
#ifndef __INTEL_COMPILER  // ICL 9.1 workaround: Intel compiler copies the vTable pointer for some reason
196
0
    if (m_getValueNames)
197
0
      ((*reinterpret_cast<std::string *>(m_pValue) += "ThisObject:") += typeid(T).name()) += ';';
198
0
    if (!m_found && strncmp(m_name, "ThisObject:", 11) == 0 && strcmp(m_name+11, typeid(T).name()) == 0)
199
0
    {
200
0
      NameValuePairs::ThrowIfTypeMismatch(m_name, typeid(T), *m_valueType);
201
0
      *reinterpret_cast<T *>(m_pValue) = *m_pObject;
202
0
      m_found = true;
203
0
    }
204
0
#endif
205
0
    return *this;
206
0
  }
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_GFP, CryptoPP::DL_GroupParameters_IntegerBased>::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased>::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::Assignable()
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::Assignable()
207
208
private:
209
  const T *m_pObject;
210
  const char *m_name;
211
  const std::type_info *m_valueType;
212
  void *m_pValue;
213
  bool m_found, m_getValueNames;
214
};
215
216
template <class BASE, class T>
217
GetValueHelperClass<T, BASE> GetValueHelper(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst=NULLPTR)
218
0
{
219
0
  return GetValueHelperClass<T, BASE>(pObject, name, valueType, pValue, searchFirst);
220
0
}
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_GFP, CryptoPP::DL_GroupParameters_IntegerBased> CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_GFP>(CryptoPP::DL_GroupParameters_GFP const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased> CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> > >(CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >(CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >(CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA> >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA> >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters_IntegerBased>(CryptoPP::DL_GroupParameters_IntegerBased const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
221
222
template <class T>
223
GetValueHelperClass<T, T> GetValueHelper(const T *pObject, const char *name, const std::type_info &valueType, void *pValue, const NameValuePairs *searchFirst=NULLPTR)
224
0
{
225
0
  return GetValueHelperClass<T, T>(pObject, name, valueType, pValue, searchFirst);
226
0
}
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint>, CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> >(CryptoPP::DL_GroupParameters<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::Integer>, CryptoPP::DL_GroupParameters<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::Integer> >(CryptoPP::DL_GroupParameters<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >(CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >(CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >(CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >(CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_PublicKey<CryptoPP::Integer> >(CryptoPP::DL_PublicKey<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> > CryptoPP::GetValueHelper<CryptoPP::DL_PrivateKey<CryptoPP::Integer> >(CryptoPP::DL_PrivateKey<CryptoPP::Integer> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
Unexecuted instantiation: CryptoPP::GetValueHelperClass<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint>, CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> > CryptoPP::GetValueHelper<CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> >(CryptoPP::DL_GroupParameters<CryptoPP::EC2NPoint> const*, char const*, std::type_info const&, void*, CryptoPP::NameValuePairs const*)
227
228
// ********************************************************
229
230
template <class T, class BASE>
231
class AssignFromHelperClass
232
{
233
public:
234
  AssignFromHelperClass(T *pObject, const NameValuePairs &source)
235
    : m_pObject(pObject), m_source(source), m_done(false)
236
0
  {
237
0
    if (source.GetThisObject(*pObject))
238
0
      m_done = true;
239
0
    else if (typeid(BASE) != typeid(T))
240
0
      pObject->BASE::AssignFrom(source);
241
0
  }
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased>::AssignFromHelperClass(CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::AssignFromHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::AssignFromHelperClass(CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::AssignFromHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::AssignFromHelperClass(CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP> >::AssignFromHelperClass(CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N> >::AssignFromHelperClass(CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::AssignFromHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::AssignFromHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::AssignFromHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::AssignFromHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >::AssignFromHelperClass(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >::AssignFromHelperClass(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::AssignFromHelperClass(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::AssignFromHelperClass(CryptoPP::DL_PublicKey<CryptoPP::Integer>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::AssignFromHelperClass(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::AssignFromHelperClass(CryptoPP::DL_PrivateKey<CryptoPP::Integer>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBased>::AssignFromHelperClass(CryptoPP::DL_GroupParameters_IntegerBased*, CryptoPP::NameValuePairs const&)
242
243
  template <class R>
244
  AssignFromHelperClass & operator()(const char *name, void (T::*pm)(const R&))
245
0
  {
246
0
    if (!m_done)
247
0
    {
248
0
      R value;
249
0
      if (!m_source.GetValue(name, value))
250
0
        throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name + "'");
251
0
      (m_pObject->*pm)(value);
252
0
    }
253
0
    return *this;
254
0
  }
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >::operator()<CryptoPP::ECPPoint>(char const*, void (CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>::*)(CryptoPP::ECPPoint const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >::operator()<CryptoPP::EC2NPoint>(char const*, void (CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>::*)(CryptoPP::EC2NPoint const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP> >::operator()<CryptoPP::ECPPoint>(char const*, void (CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>::*)(CryptoPP::ECPPoint const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N> >::operator()<CryptoPP::EC2NPoint>(char const*, void (CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>::*)(CryptoPP::EC2NPoint const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >::operator()<CryptoPP::Integer>(char const*, void (CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>::*)(CryptoPP::Integer const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >::operator()<CryptoPP::Integer>(char const*, void (CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>::*)(CryptoPP::Integer const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, void (CryptoPP::DL_PublicKey<CryptoPP::Integer>::*)(CryptoPP::Integer const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >& CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> >::operator()<CryptoPP::Integer>(char const*, void (CryptoPP::DL_PrivateKey<CryptoPP::Integer>::*)(CryptoPP::Integer const&))
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBased>& CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBased>::operator()<CryptoPP::Integer>(char const*, void (CryptoPP::DL_GroupParameters_IntegerBased::*)(CryptoPP::Integer const&))
255
256
  template <class R, class S>
257
  AssignFromHelperClass & operator()(const char *name1, const char *name2, void (T::*pm)(const R&, const S&))
258
0
  {
259
0
    if (!m_done)
260
0
    {
261
0
      R value1;
262
0
      if (!m_source.GetValue(name1, value1))
263
0
        throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name1 + "'");
264
0
      S value2;
265
0
      if (!m_source.GetValue(name2, value2))
266
0
        throw InvalidArgument(std::string(typeid(T).name()) + ": Missing required parameter '" + name2 + "'");
267
0
      (m_pObject->*pm)(value1, value2);
268
0
    }
269
0
    return *this;
270
0
  }
271
272
private:
273
  T *m_pObject;
274
  const NameValuePairs &m_source;
275
  bool m_done;
276
};
277
278
template <class BASE, class T>
279
AssignFromHelperClass<T, BASE> AssignFromHelper(T *pObject, const NameValuePairs &source)
280
0
{
281
0
  return AssignFromHelperClass<T, BASE>(pObject, source);
282
0
}
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >, CryptoPP::DL_GroupParameters_IntegerBased> CryptoPP::AssignFromHelper<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> > >(CryptoPP::DL_GroupParameters_IntegerBasedImpl<CryptoPP::ModExpPrecomputation, CryptoPP::DL_FixedBasePrecomputationImpl<CryptoPP::Integer> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> > >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> > >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_EC<CryptoPP::EC2N> >*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP> >(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::ECP>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N> >(CryptoPP::DL_PrivateKey_ECGDSA<CryptoPP::EC2N>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PublicKey<CryptoPP::Integer> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA> >(CryptoPP::DL_PublicKeyImpl<CryptoPP::DL_GroupParameters_DSA>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA> >(CryptoPP::DL_PrivateKeyImpl<CryptoPP::DL_GroupParameters_DSA>*, CryptoPP::NameValuePairs const&)
283
284
template <class T>
285
AssignFromHelperClass<T, T> AssignFromHelper(T *pObject, const NameValuePairs &source)
286
0
{
287
0
  return AssignFromHelperClass<T, T>(pObject, source);
288
0
}
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>, CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::ECPPoint> >(CryptoPP::DL_PublicKey<CryptoPP::ECPPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint> >(CryptoPP::DL_PublicKey<CryptoPP::EC2NPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP> >(CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::ECP>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>, CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N> >(CryptoPP::DL_PublicKey_ECGDSA<CryptoPP::EC2N>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>, CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint> >(CryptoPP::DL_PrivateKey<CryptoPP::ECPPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>, CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint> >(CryptoPP::DL_PrivateKey<CryptoPP::EC2NPoint>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PublicKey<CryptoPP::Integer>, CryptoPP::DL_PublicKey<CryptoPP::Integer> > CryptoPP::AssignFromHelper<CryptoPP::DL_PublicKey<CryptoPP::Integer> >(CryptoPP::DL_PublicKey<CryptoPP::Integer>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_PrivateKey<CryptoPP::Integer>, CryptoPP::DL_PrivateKey<CryptoPP::Integer> > CryptoPP::AssignFromHelper<CryptoPP::DL_PrivateKey<CryptoPP::Integer> >(CryptoPP::DL_PrivateKey<CryptoPP::Integer>*, CryptoPP::NameValuePairs const&)
Unexecuted instantiation: CryptoPP::AssignFromHelperClass<CryptoPP::DL_GroupParameters_IntegerBased, CryptoPP::DL_GroupParameters_IntegerBased> CryptoPP::AssignFromHelper<CryptoPP::DL_GroupParameters_IntegerBased>(CryptoPP::DL_GroupParameters_IntegerBased*, CryptoPP::NameValuePairs const&)
289
290
#endif // CRYPTOPP_DOXYGEN_PROCESSING
291
292
// ********************************************************
293
294
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
295
// Allow the linker to discard Integer code if not needed.
296
// Also see http://github.com/weidai11/cryptopp/issues/389.
297
CRYPTOPP_DLL bool AssignIntToInteger(const std::type_info &valueType, void *pInteger, const void *pInt);
298
#endif
299
300
CRYPTOPP_DLL const std::type_info & CRYPTOPP_API IntegerTypeId();
301
302
/// \brief Base class for AlgorithmParameters
303
class CRYPTOPP_DLL AlgorithmParametersBase
304
{
305
public:
306
  /// \brief Exception thrown when an AlgorithmParameter is unused
307
  class ParameterNotUsed : public Exception
308
  {
309
  public:
310
0
    ParameterNotUsed(const char *name) : Exception(OTHER_ERROR, std::string("AlgorithmParametersBase: parameter \"") + name + "\" not used") {}
311
  };
312
313
  virtual ~AlgorithmParametersBase() CRYPTOPP_THROW
314
5.36M
  {
315
316
5.36M
#if defined(CRYPTOPP_CXX17_UNCAUGHT_EXCEPTIONS)
317
5.36M
    if (std::uncaught_exceptions() == 0)
318
#elif defined(CRYPTOPP_CXX98_UNCAUGHT_EXCEPTION)
319
    if (std::uncaught_exception() == false)
320
#else
321
    try
322
#endif
323
5.36M
    {
324
5.36M
      if (m_throwIfNotUsed && !m_used)
325
0
        throw ParameterNotUsed(m_name);
326
5.36M
    }
327
#if !defined(CRYPTOPP_CXX98_UNCAUGHT_EXCEPTION)
328
# if !defined(CRYPTOPP_CXX17_UNCAUGHT_EXCEPTIONS)
329
    catch(const Exception&)
330
    {
331
    }
332
# endif
333
#endif
334
5.36M
  }
335
336
  // this is actually a move, not a copy
337
  AlgorithmParametersBase(const AlgorithmParametersBase &x)
338
    : m_name(x.m_name), m_throwIfNotUsed(x.m_throwIfNotUsed), m_used(x.m_used)
339
0
  {
340
0
    m_next.reset(const_cast<AlgorithmParametersBase &>(x).m_next.release());
341
0
    x.m_used = true;
342
0
  }
343
344
  /// \brief Construct a AlgorithmParametersBase
345
  /// \param name the parameter name
346
  /// \param throwIfNotUsed flags indicating whether an exception should be thrown
347
  /// \details If throwIfNotUsed is true, then a ParameterNotUsed exception
348
  ///   will be thrown in the destructor if the parameter is not not retrieved.
349
  AlgorithmParametersBase(const char *name, bool throwIfNotUsed)
350
5.36M
    : m_name(name), m_throwIfNotUsed(throwIfNotUsed), m_used(false) {}
351
352
  bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const;
353
354
protected:
355
  friend class AlgorithmParameters;
356
  void operator=(const AlgorithmParametersBase& rhs);  // assignment not allowed, declare this for VC60
357
358
  virtual void AssignValue(const char *name, const std::type_info &valueType, void *pValue) const =0;
359
  virtual void MoveInto(void *p) const =0;  // not really const
360
361
  const char *m_name;
362
  bool m_throwIfNotUsed;
363
  mutable bool m_used;
364
  member_ptr<AlgorithmParametersBase> m_next;
365
};
366
367
/// \brief Template base class for AlgorithmParameters
368
/// \tparam T the class or type
369
template <class T>
370
class AlgorithmParametersTemplate : public AlgorithmParametersBase
371
{
372
public:
373
  /// \brief Construct an AlgorithmParametersTemplate
374
  /// \param name the name of the value
375
  /// \param value a reference to the value
376
  /// \param throwIfNotUsed flags indicating whether an exception should be thrown
377
  /// \details If throwIfNotUsed is true, then a ParameterNotUsed exception
378
  ///   will be thrown in the destructor if the parameter is not not retrieved.
379
  AlgorithmParametersTemplate(const char *name, const T &value, bool throwIfNotUsed)
380
    : AlgorithmParametersBase(name, throwIfNotUsed), m_value(value)
381
5.36M
  {
382
5.36M
  }
CryptoPP::AlgorithmParametersTemplate<CryptoPP::ConstByteArrayParameter>::AlgorithmParametersTemplate(char const*, CryptoPP::ConstByteArrayParameter const&, bool)
Line
Count
Source
381
5.09M
  {
382
5.09M
  }
CryptoPP::AlgorithmParametersTemplate<int>::AlgorithmParametersTemplate(char const*, int const&, bool)
Line
Count
Source
381
136k
  {
382
136k
  }
CryptoPP::AlgorithmParametersTemplate<bool>::AlgorithmParametersTemplate(char const*, bool const&, bool)
Line
Count
Source
381
724
  {
382
724
  }
CryptoPP::AlgorithmParametersTemplate<unsigned long>::AlgorithmParametersTemplate(char const*, unsigned long const&, bool)
Line
Count
Source
381
75
  {
382
75
  }
CryptoPP::AlgorithmParametersTemplate<int const*>::AlgorithmParametersTemplate(char const*, int const* const&, bool)
Line
Count
Source
381
135k
  {
382
135k
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer>::AlgorithmParametersTemplate(char const*, CryptoPP::Integer const&, bool)
CryptoPP::AlgorithmParametersTemplate<CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme>::AlgorithmParametersTemplate(char const*, CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme const&, bool)
Line
Count
Source
381
708
  {
382
708
  }
CryptoPP::AlgorithmParametersTemplate<unsigned int>::AlgorithmParametersTemplate(char const*, unsigned int const&, bool)
Line
Count
Source
381
75
  {
382
75
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned char const*>::AlgorithmParametersTemplate(char const*, unsigned char const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer::RandomNumberType>::AlgorithmParametersTemplate(char const*, CryptoPP::Integer::RandomNumberType const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::OID>::AlgorithmParametersTemplate(char const*, CryptoPP::OID const&, bool)
383
384
  void AssignValue(const char *name, const std::type_info &valueType, void *pValue) const
385
5.36M
  {
386
5.36M
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
5.36M
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
5.36M
#endif
390
5.36M
    {
391
5.36M
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
5.36M
      *reinterpret_cast<T *>(pValue) = m_value;
393
5.36M
    }
394
5.36M
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::RandomNumberGenerator*>::AssignValue(char const*, std::type_info const&, void*) const
CryptoPP::AlgorithmParametersTemplate<unsigned long>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
72
  {
386
72
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
72
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
72
#endif
390
72
    {
391
72
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
72
      *reinterpret_cast<T *>(pValue) = m_value;
393
72
    }
394
72
  }
CryptoPP::AlgorithmParametersTemplate<bool>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
724
  {
386
724
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
724
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
724
#endif
390
724
    {
391
724
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
724
      *reinterpret_cast<T *>(pValue) = m_value;
393
724
    }
394
724
  }
CryptoPP::AlgorithmParametersTemplate<int>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
136k
  {
386
136k
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
136k
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
136k
#endif
390
136k
    {
391
136k
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
136k
      *reinterpret_cast<T *>(pValue) = m_value;
393
136k
    }
394
136k
  }
CryptoPP::AlgorithmParametersTemplate<CryptoPP::ConstByteArrayParameter>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
5.09M
  {
386
5.09M
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
5.09M
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
5.09M
#endif
390
5.09M
    {
391
5.09M
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
5.09M
      *reinterpret_cast<T *>(pValue) = m_value;
393
5.09M
    }
394
5.09M
  }
CryptoPP::AlgorithmParametersTemplate<int const*>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
135k
  {
386
135k
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
135k
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
135k
#endif
390
135k
    {
391
135k
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
135k
      *reinterpret_cast<T *>(pValue) = m_value;
393
135k
    }
394
135k
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned char const*>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned char>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<std::__1::basic_istream<char, std::__1::char_traits<char> >*>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<char const*>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<wchar_t const*>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<std::__1::basic_ostream<char, std::__1::char_traits<char> >*>::AssignValue(char const*, std::type_info const&, void*) const
CryptoPP::AlgorithmParametersTemplate<CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
708
  {
386
708
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
708
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
708
#endif
390
708
    {
391
708
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
708
      *reinterpret_cast<T *>(pValue) = m_value;
393
708
    }
394
708
  }
CryptoPP::AlgorithmParametersTemplate<unsigned int>::AssignValue(char const*, std::type_info const&, void*) const
Line
Count
Source
385
75
  {
386
75
#ifndef CRYPTOPP_NO_ASSIGN_TO_INTEGER
387
    // Special case for retrieving an Integer parameter when an int was passed in
388
75
    if (!(typeid(T) == typeid(int) && AssignIntToInteger(valueType, pValue, &m_value)))
389
75
#endif
390
75
    {
391
75
      NameValuePairs::ThrowIfTypeMismatch(name, typeid(T), valueType);
392
75
      *reinterpret_cast<T *>(pValue) = m_value;
393
75
    }
394
75
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer::RandomNumberType>::AssignValue(char const*, std::type_info const&, void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::OID>::AssignValue(char const*, std::type_info const&, void*) const
395
396
#if defined(DEBUG_NEW) && (CRYPTOPP_MSC_VERSION >= 1300)
397
# pragma push_macro("new")
398
# undef new
399
#endif
400
401
  void MoveInto(void *buffer) const
402
0
  {
403
0
    AlgorithmParametersTemplate<T>* p = new(buffer) AlgorithmParametersTemplate<T>(*this);
404
0
    CRYPTOPP_UNUSED(p);  // silence warning
405
0
  }
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::RandomNumberGenerator*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned long>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<bool>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<int>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::ConstByteArrayParameter>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<int const*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned char const*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned char>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<std::__1::basic_istream<char, std::__1::char_traits<char> >*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<char const*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<wchar_t const*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<std::__1::basic_ostream<char, std::__1::char_traits<char> >*>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<unsigned int>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::Integer::RandomNumberType>::MoveInto(void*) const
Unexecuted instantiation: CryptoPP::AlgorithmParametersTemplate<CryptoPP::OID>::MoveInto(void*) const
406
407
#if defined(DEBUG_NEW) && (CRYPTOPP_MSC_VERSION >= 1300)
408
# pragma pop_macro("new")
409
#endif
410
411
protected:
412
  T m_value;
413
};
414
415
CRYPTOPP_DLL_TEMPLATE_CLASS AlgorithmParametersTemplate<bool>;
416
CRYPTOPP_DLL_TEMPLATE_CLASS AlgorithmParametersTemplate<int>;
417
CRYPTOPP_DLL_TEMPLATE_CLASS AlgorithmParametersTemplate<ConstByteArrayParameter>;
418
419
/// \brief An object that implements NameValuePairs
420
/// \note A NameValuePairs object containing an arbitrary number of name value pairs may be constructed by
421
///   repeatedly using operator() on the object returned by MakeParameters, for example:
422
///   <pre>
423
///     AlgorithmParameters parameters = MakeParameters(name1, value1)(name2, value2)(name3, value3);
424
///   </pre>
425
class CRYPTOPP_DLL AlgorithmParameters : public NameValuePairs
426
{
427
public:
428
  /// \brief Construct a AlgorithmParameters
429
  /// \note A NameValuePairs object containing an arbitrary number of name value pairs may be constructed by
430
  ///   repeatedly using operator() on the object returned by MakeParameters, for example:
431
  ///   <pre>
432
  ///     AlgorithmParameters parameters = MakeParameters(name1, value1)(name2, value2)(name3, value3);
433
  ///   </pre>
434
  AlgorithmParameters();
435
436
#ifdef __BORLANDC__
437
  /// \brief Construct a AlgorithmParameters
438
  /// \tparam T the class or type
439
  /// \param name the name of the object or value to retrieve
440
  /// \param value reference to a variable that receives the value
441
  /// \param throwIfNotUsed if true, the object will throw an exception if the value is not accessed
442
  /// \note throwIfNotUsed is ignored if using a compiler that does not support std::uncaught_exception(),
443
  ///   such as MSVC 7.0 and earlier.
444
  /// \note A NameValuePairs object containing an arbitrary number of name value pairs may be constructed by
445
  ///   repeatedly using operator() on the object returned by MakeParameters, for example:
446
  ///   <pre>
447
  ///     AlgorithmParameters parameters = MakeParameters(name1, value1)(name2, value2)(name3, value3);
448
  ///   </pre>
449
  template <class T>
450
  AlgorithmParameters(const char *name, const T &value, bool throwIfNotUsed=true)
451
    : m_next(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed))
452
    , m_defaultThrowIfNotUsed(throwIfNotUsed)
453
  {
454
  }
455
#endif
456
457
  AlgorithmParameters(const AlgorithmParameters &x);
458
459
  AlgorithmParameters & operator=(const AlgorithmParameters &x);
460
461
  /// \tparam T the class or type
462
  /// \param name the name of the object or value to retrieve
463
  /// \param value reference to a variable that receives the value
464
  /// \param throwIfNotUsed if true, the object will throw an exception if the value is not accessed
465
  template <class T>
466
  AlgorithmParameters & operator()(const char *name, const T &value, bool throwIfNotUsed)
467
5.36M
  {
468
5.36M
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
5.36M
    p->m_next.reset(m_next.release());
470
5.36M
    m_next.reset(p.release());
471
5.36M
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
5.36M
    return *this;
473
5.36M
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::ConstByteArrayParameter>(char const*, CryptoPP::ConstByteArrayParameter const&, bool)
Line
Count
Source
467
5.09M
  {
468
5.09M
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
5.09M
    p->m_next.reset(m_next.release());
470
5.09M
    m_next.reset(p.release());
471
5.09M
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
5.09M
    return *this;
473
5.09M
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<int>(char const*, int const&, bool)
Line
Count
Source
467
136k
  {
468
136k
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
136k
    p->m_next.reset(m_next.release());
470
136k
    m_next.reset(p.release());
471
136k
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
136k
    return *this;
473
136k
  }
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::RandomNumberGenerator*>(char const*, CryptoPP::RandomNumberGenerator* const&, bool)
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<bool>(char const*, bool const&, bool)
Line
Count
Source
467
724
  {
468
724
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
724
    p->m_next.reset(m_next.release());
470
724
    m_next.reset(p.release());
471
724
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
724
    return *this;
473
724
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned long>(char const*, unsigned long const&, bool)
Line
Count
Source
467
75
  {
468
75
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
75
    p->m_next.reset(m_next.release());
470
75
    m_next.reset(p.release());
471
75
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
75
    return *this;
473
75
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<int const*>(char const*, int const* const&, bool)
Line
Count
Source
467
135k
  {
468
135k
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
135k
    p->m_next.reset(m_next.release());
470
135k
    m_next.reset(p.release());
471
135k
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
135k
    return *this;
473
135k
  }
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned char const*>(char const*, unsigned char const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned char>(char const*, unsigned char const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<std::__1::basic_istream<char, std::__1::char_traits<char> >*>(char const*, std::__1::basic_istream<char, std::__1::char_traits<char> >* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<char const*>(char const*, char const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<wchar_t const*>(char const*, wchar_t const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<std::__1::basic_ostream<char, std::__1::char_traits<char> >*>(char const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >* const&, bool)
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme>(char const*, CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme const&, bool)
Line
Count
Source
467
708
  {
468
708
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
708
    p->m_next.reset(m_next.release());
470
708
    m_next.reset(p.release());
471
708
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
708
    return *this;
473
708
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned int>(char const*, unsigned int const&, bool)
Line
Count
Source
467
75
  {
468
75
    member_ptr<AlgorithmParametersBase> p(new AlgorithmParametersTemplate<T>(name, value, throwIfNotUsed));
469
75
    p->m_next.reset(m_next.release());
470
75
    m_next.reset(p.release());
471
75
    m_defaultThrowIfNotUsed = throwIfNotUsed;
472
75
    return *this;
473
75
  }
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::Integer::RandomNumberType>(char const*, CryptoPP::Integer::RandomNumberType const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::OID>(char const*, CryptoPP::OID const&, bool)
474
475
  /// \brief Appends a NameValuePair to a collection of NameValuePairs
476
  /// \tparam T the class or type
477
  /// \param name the name of the object or value to retrieve
478
  /// \param value reference to a variable that receives the value
479
  template <class T>
480
  AlgorithmParameters & operator()(const char *name, const T &value)
481
136k
  {
482
136k
    return operator()(name, value, m_defaultThrowIfNotUsed);
483
136k
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<int>(char const*, int const&)
Line
Count
Source
481
136k
  {
482
136k
    return operator()(name, value, m_defaultThrowIfNotUsed);
483
136k
  }
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<bool>(char const*, bool const&)
Line
Count
Source
481
724
  {
482
724
    return operator()(name, value, m_defaultThrowIfNotUsed);
483
724
  }
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::ConstByteArrayParameter>(char const*, CryptoPP::ConstByteArrayParameter const&)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::Integer>(char const*, CryptoPP::Integer const&)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned char>(char const*, unsigned char const&)
CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<unsigned int>(char const*, unsigned int const&)
Line
Count
Source
481
25
  {
482
25
    return operator()(name, value, m_defaultThrowIfNotUsed);
483
25
  }
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::Integer::RandomNumberType>(char const*, CryptoPP::Integer::RandomNumberType const&)
Unexecuted instantiation: CryptoPP::AlgorithmParameters& CryptoPP::AlgorithmParameters::operator()<CryptoPP::OID>(char const*, CryptoPP::OID const&)
484
485
  bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const;
486
487
protected:
488
  member_ptr<AlgorithmParametersBase> m_next;
489
  bool m_defaultThrowIfNotUsed;
490
};
491
492
/// \brief Create an object that implements NameValuePairs
493
/// \tparam T the class or type
494
/// \param name the name of the object or value to retrieve
495
/// \param value reference to a variable that receives the value
496
/// \param throwIfNotUsed if true, the object will throw an exception if the value is not accessed
497
/// \note throwIfNotUsed is ignored if using a compiler that does not support std::uncaught_exception(),
498
///   such as MSVC 7.0 and earlier.
499
/// \note A NameValuePairs object containing an arbitrary number of name value pairs may be constructed by
500
///   repeatedly using \p operator() on the object returned by \p MakeParameters, for example:
501
///   <pre>
502
///     AlgorithmParameters parameters = MakeParameters(name1, value1)(name2, value2)(name3, value3);
503
///   </pre>
504
#ifdef __BORLANDC__
505
typedef AlgorithmParameters MakeParameters;
506
#else
507
template <class T>
508
AlgorithmParameters MakeParameters(const char *name, const T &value, bool throwIfNotUsed = true)
509
5.23M
{
510
5.23M
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
5.23M
}
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<CryptoPP::ConstByteArrayParameter>(char const*, CryptoPP::ConstByteArrayParameter const&, bool)
Line
Count
Source
509
5.09M
{
510
5.09M
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
5.09M
}
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<CryptoPP::RandomNumberGenerator*>(char const*, CryptoPP::RandomNumberGenerator* const&, bool)
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<int>(char const*, int const&, bool)
Line
Count
Source
509
724
{
510
724
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
724
}
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<unsigned long>(char const*, unsigned long const&, bool)
Line
Count
Source
509
75
{
510
75
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
75
}
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<int const*>(char const*, int const* const&, bool)
Line
Count
Source
509
135k
{
510
135k
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
135k
}
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<CryptoPP::Integer>(char const*, CryptoPP::Integer const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<unsigned char const*>(char const*, unsigned char const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<bool>(char const*, bool const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<std::__1::basic_istream<char, std::__1::char_traits<char> >*>(char const*, std::__1::basic_istream<char, std::__1::char_traits<char> >* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<char const*>(char const*, char const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<wchar_t const*>(char const*, wchar_t const* const&, bool)
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<std::__1::basic_ostream<char, std::__1::char_traits<char> >*>(char const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >* const&, bool)
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme>(char const*, CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme const&, bool)
Line
Count
Source
509
708
{
510
708
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
708
}
CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<unsigned int>(char const*, unsigned int const&, bool)
Line
Count
Source
509
50
{
510
50
  return AlgorithmParameters()(name, value, throwIfNotUsed);
511
50
}
Unexecuted instantiation: CryptoPP::AlgorithmParameters CryptoPP::MakeParameters<CryptoPP::Integer::RandomNumberType>(char const*, CryptoPP::Integer::RandomNumberType const&, bool)
512
#endif
513
514
0
#define CRYPTOPP_GET_FUNCTION_ENTRY(name)   (Name::name(), &ThisClass::Get##name)
515
0
#define CRYPTOPP_SET_FUNCTION_ENTRY(name)   (Name::name(), &ThisClass::Set##name)
516
0
#define CRYPTOPP_SET_FUNCTION_ENTRY2(name1, name2)  (Name::name1(), Name::name2(), &ThisClass::Set##name1##And##name2)
517
518
NAMESPACE_END
519
520
#endif