[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