[us-commits] r2840 - trunk/utils
svn at svn.aucsolutions.com
svn at svn.aucsolutions.com
Wed Nov 6 13:57:35 MST 2019
Author: gegorbet
Date: 2019-11-06 20:57:34 +0000 (Wed, 06 Nov 2019)
New Revision: 2840
Modified:
trunk/utils/us_crypto.cpp
Log:
Kip changes so us_crypto works with openssl 1.x (pointer ctx)
Modified: trunk/utils/us_crypto.cpp
===================================================================
--- trunk/utils/us_crypto.cpp 2019-10-28 22:38:53 UTC (rev 2839)
+++ trunk/utils/us_crypto.cpp 2019-11-06 20:57:34 UTC (rev 2840)
@@ -37,19 +37,22 @@
QByteArray plain_ba = plaintext.toLatin1();
uchar* plain_ptr = (uchar*)plain_ba.data();
- EVP_CIPHER_CTX ctx;
+ // EVP_CIPHER_CTX ctx;
+ EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
uchar out[ 100 ]; // Assume the plaintext is < 99 characters
int out_length;
int final_length;
- EVP_EncryptInit ( &ctx, EVP_aes_128_cbc(), key, iv_ptr );
- EVP_EncryptUpdate( &ctx, out, &out_length, plain_ptr, plaintext.size() );
- EVP_EncryptFinal ( &ctx, &out[ out_length ], &final_length );
+ EVP_EncryptInit ( ctx, EVP_aes_128_cbc(), key, iv_ptr );
+ EVP_EncryptUpdate( ctx, out, &out_length, plain_ptr, plaintext.size() );
+ EVP_EncryptFinal ( ctx, &out[ out_length ], &final_length );
int c_size = out_length + final_length;
QByteArray cipher_ba = QByteArray( (const char*)out, c_size );
+ EVP_CIPHER_CTX_free(ctx);
+
result << cipher_ba.toHex() << iv_ba.toHex();
return result;
@@ -76,13 +79,15 @@
uchar final [ 100 ];
int ol;
- EVP_CIPHER_CTX ctx;
+ //EVP_CIPHER_CTX ctx;
+ EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
- EVP_DecryptInit ( &ctx, EVP_aes_128_cbc(), key, iv_ptr );
- EVP_DecryptUpdate( &ctx, out, &ol, cipher_ptr, cipher_ba.size() );
- EVP_DecryptFinal ( &ctx, final, &ol );
+ EVP_DecryptInit ( ctx, EVP_aes_128_cbc(), key, iv_ptr );
+ EVP_DecryptUpdate( ctx, out, &ol, cipher_ptr, cipher_ba.size() );
+ EVP_DecryptFinal ( ctx, final, &ol );
QByteArray final_ba( (char*)final, ol );
+ EVP_CIPHER_CTX_free(ctx);
return final_ba;
}
More information about the us-commits
mailing list