Menu

#46 Salsa20 broken since 5.6.0

open
nobody
salsa (1)
5
2014-11-10
2014-11-10
Dr. Geek
No

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,>

Discussion

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.