Path: blob/a-new-beginning/SharedDependencies/Sources/cryptopp/algparam.cpp
2 views
// algparam.cpp - originally written and placed in the public domain by Wei Dai12#include "pch.h"34#ifndef CRYPTOPP_IMPORTS56#include "algparam.h"7#include "integer.h"89NAMESPACE_BEGIN(CryptoPP)1011bool CombinedNameValuePairs::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const12{13if (strcmp(name, "ValueNames") == 0)14return m_pairs1.GetVoidValue(name, valueType, pValue) && m_pairs2.GetVoidValue(name, valueType, pValue);15else16return m_pairs1.GetVoidValue(name, valueType, pValue) || m_pairs2.GetVoidValue(name, valueType, pValue);17}1819void AlgorithmParametersBase::operator=(const AlgorithmParametersBase &rhs)20{21CRYPTOPP_UNUSED(rhs);22CRYPTOPP_ASSERT(false);23}2425bool AlgorithmParametersBase::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const26{27if (strcmp(name, "ValueNames") == 0)28{29NameValuePairs::ThrowIfTypeMismatch(name, typeid(std::string), valueType);30if (m_next.get())31m_next->GetVoidValue(name, valueType, pValue);32(*reinterpret_cast<std::string *>(pValue) += m_name) += ";";33return true;34}35else if (strcmp(name, m_name) == 0)36{37AssignValue(name, valueType, pValue);38m_used = true;39return true;40}41else if (m_next.get())42return m_next->GetVoidValue(name, valueType, pValue);43else44return false;45}4647AlgorithmParameters::AlgorithmParameters()48: m_defaultThrowIfNotUsed(true)49{50}5152AlgorithmParameters::AlgorithmParameters(const AlgorithmParameters &x)53: m_defaultThrowIfNotUsed(x.m_defaultThrowIfNotUsed)54{55m_next.reset(const_cast<AlgorithmParameters &>(x).m_next.release());56}5758AlgorithmParameters & AlgorithmParameters::operator=(const AlgorithmParameters &x)59{60m_next.reset(const_cast<AlgorithmParameters &>(x).m_next.release());61return *this;62}6364bool AlgorithmParameters::GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const65{66if (m_next.get())67return m_next->GetVoidValue(name, valueType, pValue);68else69return false;70}7172NAMESPACE_END7374#endif757677