summaryrefslogtreecommitdiff
path: root/algparam.cpp
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2003-07-16 01:53:45 +0000
committerweidai <weidai11@users.noreply.github.com>2003-07-16 01:53:45 +0000
commit38b49e454399c81aac16279f78a834de26245bec (patch)
tree1f90c9ea7a31679b5c416408a3ffeba23e87d165 /algparam.cpp
parent8cd6a9256d78953d6e99097fb4508a077e8e2ebe (diff)
downloadcryptopp-git-38b49e454399c81aac16279f78a834de26245bec.tar.gz
added support for using encoding parameters and key derivation parameters
Diffstat (limited to 'algparam.cpp')
-rw-r--r--algparam.cpp27
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