“ChaCha”尚未使用 Crypto++ 在此范围内声明?

‘ChaCha’ has not been declared in this scope using Crypto++?

我正在尝试创建一个 运行 ChaCha 加密程序。但是,我一直遇到这个问题

testingchacha.cpp:38:5: error: ‘ChaCha’ has not been declared ChaCha::Encryption enc;

我尝试更改代码

ChaCha::Encryption

ChaCha20::Encryption

但这样做给了我一长串错误。

我也尝试使用 Crypto++ 网站上的示例代码,但我遇到了关于 'ChaCha' 尚未声明的相同问题。

using namespace CryptoPP;
...

// Encryption object
ChaCha::Encryption enc;    
enc.SetKeyWithIV(key, key.size(), iv, iv.size());

为什么会出现编译错误?

您使用的是旧版本的库。

名称从 ChaCha20 更改为 ChaCha,请参阅提交 here

您至少需要 8.1 版,另请参阅 this issue on github

更新库,如果您在使用正确的名称时收到一长串错误,那么您可能应该询问一下。