From b3462490ef6817d89b55f6f6eb209d2319e8d842 Mon Sep 17 00:00:00 2001 From: rentzsch Date: Sat, 4 Jul 2020 14:52:07 -0600 Subject: [PATCH] [DEV] OpenSSL v1.1.0 now requires dynamic allocation of cipher contexts via EVP_CIPHER_CTX_new(). --- stressdrive.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/stressdrive.c b/stressdrive.c index 2007e13..fd10eb1 100644 --- a/stressdrive.c +++ b/stressdrive.c @@ -202,8 +202,12 @@ int main(int argc, const char *argv[]) { exit(EXIT_CALL_FAILED); } - EVP_CIPHER_CTX aes; - if (!EVP_EncryptInit(&aes, EVP_aes_128_cbc(), aesKey, aesIv)) { + EVP_CIPHER_CTX *aes = EVP_CIPHER_CTX_new(); + if (!aes) { + fprintf(stderr, "EVP_CIPHER_CTX_new() failed\n"); + exit(EXIT_CALL_FAILED); + } + if (!EVP_EncryptInit(aes, EVP_aes_128_cbc(), aesKey, aesIv)) { fprintf(stderr, "EVP_EncryptInit() failed\n"); exit(EXIT_CALL_FAILED); } @@ -220,7 +224,7 @@ int main(int argc, const char *argv[]) { (uint32_t)MIN(bufferBlocks, blockCount - blockIndex) * blockSize; int outSize; - if (!EVP_EncryptUpdate(&aes, buffer, &outSize, aesInput, size)) { + if (!EVP_EncryptUpdate(aes, buffer, &outSize, aesInput, size)) { fprintf(stderr, "EVP_EncryptUpdate() failed\n"); exit(EXIT_CALL_FAILED); } @@ -239,6 +243,7 @@ int main(int argc, const char *argv[]) { PROGRESS_Update(&progress, blockIndex, blockSize); } PROGRESS_Finish(&progress, blockSize); + EVP_CIPHER_CTX_free(aes); uint8_t writtenShaDigest[SHA_DIGEST_LENGTH]; SHA1_Finish(writtenShaDigest, &shaContext, "written");