Crypto ++ SelfTestFailure исключение - не может использовать любой код библиотеки - PullRequest
0 голосов
/ 28 апреля 2020

В своем приложении 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, но я ' Я даже не уверен, что и где искать. Я предоставлю любые необходимые детали, если это необходимо.

...