./cs512/c++/cppdef/dsa.cpp:175: error: no matching function for callto

C

cablepuff

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?
 
V

Victor Bazarov

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&)'

Are you sure that the 'value_type' type of 'back_insert_iterator'
is the same as 'BigInteger'?
[..]
// 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?

Not sure. Can you distill it to a simple sample without all the
namespaces and BigIntegers?

V
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top