From aaeff8b3fe52dd3946c1a7f779c4f1eb170f4bf9 Mon Sep 17 00:00:00 2001 From: magnum Date: Sat, 10 Dec 2016 12:25:34 +0100 Subject: [PATCH] encfs_common.c: Fixes for compatibility with OpenSSL 1.1. See #2355 --- src/encfs_common_plug.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/encfs_common_plug.c b/src/encfs_common_plug.c index c86d43606a..67af0d63e8 100644 --- a/src/encfs_common_plug.c +++ b/src/encfs_common_plug.c @@ -209,26 +209,26 @@ int encfs_common_streamDecode(encfs_common_custom_salt *cur_salt, unsigned char { unsigned char ivec[ MAX_IVLENGTH ]; int dstLen=0, tmpLen=0; - EVP_CIPHER_CTX stream_dec; + EVP_CIPHER_CTX *stream_dec = EVP_CIPHER_CTX_new(); encfs_common_setIVec(cur_salt, ivec, iv64 + 1, key); - EVP_CIPHER_CTX_init(&stream_dec); - EVP_DecryptInit_ex( &stream_dec, cur_salt->streamCipher, NULL, NULL, NULL); - EVP_CIPHER_CTX_set_key_length( &stream_dec, cur_salt->keySize ); - EVP_CIPHER_CTX_set_padding( &stream_dec, 0 ); - EVP_DecryptInit_ex( &stream_dec, NULL, NULL, key, NULL); - - EVP_DecryptInit_ex( &stream_dec, NULL, NULL, NULL, ivec); - EVP_DecryptUpdate( &stream_dec, buf, &dstLen, buf, size ); - EVP_DecryptFinal_ex( &stream_dec, buf+dstLen, &tmpLen ); + EVP_CIPHER_CTX_init(stream_dec); + EVP_DecryptInit_ex( stream_dec, cur_salt->streamCipher, NULL, NULL, NULL); + EVP_CIPHER_CTX_set_key_length( stream_dec, cur_salt->keySize ); + EVP_CIPHER_CTX_set_padding( stream_dec, 0 ); + EVP_DecryptInit_ex( stream_dec, NULL, NULL, key, NULL); + + EVP_DecryptInit_ex( stream_dec, NULL, NULL, NULL, ivec); + EVP_DecryptUpdate( stream_dec, buf, &dstLen, buf, size ); + EVP_DecryptFinal_ex( stream_dec, buf+dstLen, &tmpLen ); unshuffleBytes( buf, size ); flipBytes( buf, size ); encfs_common_setIVec(cur_salt, ivec, iv64, key ); - EVP_DecryptInit_ex( &stream_dec, NULL, NULL, NULL, ivec); - EVP_DecryptUpdate( &stream_dec, buf, &dstLen, buf, size ); - EVP_DecryptFinal_ex( &stream_dec, buf+dstLen, &tmpLen ); - EVP_CIPHER_CTX_cleanup(&stream_dec); + EVP_DecryptInit_ex( stream_dec, NULL, NULL, NULL, ivec); + EVP_DecryptUpdate( stream_dec, buf, &dstLen, buf, size ); + EVP_DecryptFinal_ex( stream_dec, buf+dstLen, &tmpLen ); + EVP_CIPHER_CTX_cleanup(stream_dec); unshuffleBytes( buf, size ); dstLen += tmpLen;