./cs512/c++/cppdef/dsa.cpp:175: error: no matching function for call
to
Hi I have the following error.
../cs512/c++/cppdef/dsa.cpp:175: error: no matching function for call
to 'str_to_numlist(std::back_insert_iterator<std::vector<BigInteger,
std::allocator<BigInteger> > >, const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, const BigInteger&)'
Here is the codes
/****************************************************
* w = (s') ^ -1 mod q *
* u1 = [H(M')w] mod q *
* u2 = (r')w mod q *
* v = [g^u1*y^u2)mod p] mod q *
****************************************************/
template <class ContainerType>
bool encryptcpw::dsa<ContainerType>::verifying(
typename ContainerType::const_reference y,
typename ContainerType::const_reference rp,
typename ContainerType::const_reference sp,
const std::string& Mp)
{
typedef typename ContainerType::value_type T;
const T digits(std::numeric_limits<T>::digits);
ContainerType myHashTbl;
encryptcpw::str_to_numlist(std::back_inserter(myHashTbl), Mp,
digits); // error here.
T HM(encryptcpw::MyHash(myHashTbl.begin(), myHashTbl.end(),
digits));
const T w(algocpw::improve_pow(sp, -1)%q);
const T u1((HM*w)%q);
const T u2(rp*w % q);
const T v(
((algocpw::improve_pow(g, u1) * algocpw::improve_pow(y, u2) )
% p ) % q);
return v == rp;
}
// inside StringConversion.hpp
namespace encryptcpw
{
/**************************************************************
* name: str_to_numlist *
* purpose: converts a string into sequence of list *
* @param s the string to convert. *
* @param bound the bound of elements with bound >= 256. *
* @return a list of integer *
***************************************************************/
template <typename OutputIterator>
OutputIterator str_to_numlist(OutputIterator OutIt, const
std::string& s, typename OutputIterator::value_type bound);
}
// inside StringConversiondef.hpp
template <typename OutputIterator>
OutputIterator encryptcpw::str_to_numlist(OutputIterator OutIt, const
std::string& s, typename OutputIterator::value_type bound)
{
//...
}
What is wrong?