使用CryptoPP 5.6.4,我正在导入RSA公钥,如下所示:
#include <pem.h>
const std::string publickey_str = "rsa_key here";
RSA::PublicKey publicKey;
try
{
StringSource source(publickey_str, true);
PEM_Load(source, publicKey);
}
catch (const Exception& ex)
{
std::cerr << ex.what() << std::endl;
return;
}
今天我下载并编译了Crypto ++ 7.0.0,我惊讶地发现cryptopp文件夹中不再存在pem.h。文档没有改变,我无法找到移动PEM_load
函数的位置。
有人知道吗?
编辑 :添加PEM包并重建Crypto ++(一切正常)后,我在编译项目时得到了一个未解析的外部符号(这是使用PEM_Load
以及Crypto ++的其他部分:
"void __cdecl CryptoPP::PEM_Load(class CryptoPP::BufferedTransformation &,class CryptoPP::RSAFunction &)"
(?PEM_Load@CryptoPP@@YAXAEAVBufferedTransformation@1@AEAVRSAFunction@1@@Z)
我将cryptlib.lib添加到链接器,设置/MT
标志,并使用VS2017静态构建了cryptopp。我不会在aes.h
,rsa.h
等其他Crypto ++函数上出现错误。
编辑2: 根据jww的要求,有CryptoPP's cryptlib.vcxproj和my project vcxproj file