Загрузите открытый ключ RSA в формате PEM с помощью Crypto ++ - PullRequest
0 голосов
/ 26 мая 2018

С 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, и я был удивлен, увидев, что pem.h небольше не присутствует в папке cryptopp.Документация не изменилась, и я не смог найти, куда была перемещена функция 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, и cryptopp был построен статически с использованием VS2017. У меня нет ошибки в других функциях Crypto ++, либо из aes.h, rsa.h и т.д.

...