diff options
author | weidai <weidai11@users.noreply.github.com> | 2003-07-16 01:53:45 +0000 |
---|---|---|
committer | weidai <weidai11@users.noreply.github.com> | 2003-07-16 01:53:45 +0000 |
commit | 38b49e454399c81aac16279f78a834de26245bec (patch) | |
tree | 1f90c9ea7a31679b5c416408a3ffeba23e87d165 /algparam.cpp | |
parent | 8cd6a9256d78953d6e99097fb4508a077e8e2ebe (diff) | |
download | cryptopp-git-38b49e454399c81aac16279f78a834de26245bec.tar.gz |
added support for using encoding parameters and key derivation parameters
Diffstat (limited to 'algparam.cpp')
-rw-r--r-- | algparam.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/algparam.cpp b/algparam.cpp index 268584fd..aebe3c0f 100644 --- a/algparam.cpp +++ b/algparam.cpp @@ -10,6 +10,33 @@ NAMESPACE_BEGIN(CryptoPP) bool (*AssignIntToInteger)(const std::type_info &valueType, void *pInteger, const void *pInt) = NULL; +bool CombinedNameValuePairs::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const +{ + if (strcmp(name, "ValueNames") == 0) + return m_pairs1.GetVoidValue(name, valueType, pValue) && m_pairs2.GetVoidValue(name, valueType, pValue); + else + return m_pairs1.GetVoidValue(name, valueType, pValue) || m_pairs2.GetVoidValue(name, valueType, pValue); +} + +bool AlgorithmParametersBase::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const +{ + if (strcmp(name, "ValueNames") == 0) + { + ThrowIfTypeMismatch(name, typeid(std::string), valueType); + GetParent().GetVoidValue(name, valueType, pValue); + (*reinterpret_cast<std::string *>(pValue) += m_name) += ";"; + return true; + } + else if (strcmp(name, m_name) == 0) + { + AssignValue(name, valueType, pValue); + m_used = true; + return true; + } + else + return GetParent().GetVoidValue(name, valueType, pValue); +} + NAMESPACE_END #endif |