diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2003-07-16 01:53:45 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2003-07-16 01:53:45 +0000 |
commit | 42c3d8f3aa593c224174558fd6f3d2709e08f7d0 (patch) | |
tree | 1f90c9ea7a31679b5c416408a3ffeba23e87d165 /algparam.cpp | |
parent | 09326fa9f564c09ebecff7c56d0e33555dec65b6 (diff) | |
download | cryptopp-42c3d8f3aa593c224174558fd6f3d2709e08f7d0.tar.gz |
added support for using encoding parameters and key derivation parameters
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@98 57ff6487-cd31-0410-9ec3-f628ee90f5f0
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 268584f..aebe3c0 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 |