使用Crypto ++加载PEM编码的RSA公钥

时间:2018-05-26 14:50:50

标签: c++ crypto++

使用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.hrsa.h等其他Crypto ++函数上出现错误。

编辑2: 根据jww的要求,有CryptoPP's cryptlib.vcxprojmy project vcxproj file

0 个答案:

没有答案