В своем приложении C ++ я хотел бы использовать библиотеку Crypto ++. После нескольких часов успешной сборки проекта, когда мне наконец удалось это сделать, я столкнулся с этим исключением при запуске приложения:
"Необработанное исключение в 0x00007FFE59DF9709 в Przychodnia.exe: исключение Microsoft C ++: CryptoPP :: SelfTestFailure at ячейка памяти 0x0000007BEEAFF210. ".
Я пытался использовать SHA, SHA3, AES, и все эти попытки привели к тому же исключению, указанному выше.
Код, который я пытаюсь выполнить:
CryptoPP::AES hash;
CryptoPP::byte key[CryptoPP::AES::DEFAULT_KEYLENGTH], iv[CryptoPP::AES::BLOCKSIZE];
memset(key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH);
memset(iv, 0x00, CryptoPP::AES::BLOCKSIZE);
//above code works fine
//code below results in exception
std::string output;
CryptoPP::AES::Encryption aesEncryption(key, CryptoPP::AES::DEFAULT_KEYLENGTH);
CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption(aesEncryption, iv);
Стек вызовов:
KernelBase.dll!00007ffe59df9709()
vcruntime140d.dll!00007ffe2f69b230()
cryptopp.dll!CryptoPP::Algorithm::Algorithm(bool checkSelfTestStatus)
[External Code]
Przychodnia.exe!CryptoPP::BlockCipherFinal<0,CryptoPP::Rijndael::Enc>::BlockCipherFinal<0,CryptoPP::Rijndael::Enc>(const unsigned char * key, unsigned __int64 length)
Przychodnia.exe!Encryptor::encode(const std::string& password)
Przychodnia.exe!main()
[External Code]
Возможно, я что-то сделал не так при компиляции cryptlib из crypttest.sln, компоновке и копировании файлов .lib и .dll, но я ' Я даже не уверен, что и где искать. Я предоставлю любые необходимые детали, если это необходимо.