The class Salsa20_Policy defined in line 16 of salsa.h misses a public inheritance of Salsa20_Info since 5.6.0.
while compiling the following code,
:::c++
#include <salsa.h>
int main(int argc, char*[] argv)
{
CryptoPP::Salsa20::Decryption lrDecrypt;
return 0;
}
~~~~~
it generates the following errors:
1>d:\cryptopp_5_6_2\strciphr.h(282) : error C2039: 'DEFAULT_KEYLENGTH' : is not a member of 'CryptoPP::SymmetricCipherFinal<base,info>'
1> with
1>
1> BASE=CryptoPP::ConcretePolicyHolder<cryptopp::salsa20_policy,cryptopp::additiveciphertemplate\<cryptopp::abstractpolicyholder\<cryptopp::additivecipherabstractpolicy,cryptopp::symmetriccipher>>>,
1> INFO=CryptoPP::Salsa20_Info
1> </cryptopp::salsa20_policy,cryptopp::additiveciphertemplate\<cryptopp::abstractpolicyholder\<cryptopp::additivecipherabstractpolicy,cryptopp::symmetriccipher>
....</base,info>
it can be fixed by changing line 16 of salsa.h to the following:
:::c+
class CRYPTOPP_NO_VTABLE Salsa20_Policy : public AdditiveCipherConcretePolicy<word32, 16="">, public Salsa20_Info
~~~~</word32,>