- rel 4; fix openssl 1.1.1 build master auto/th/dclib-0.3.23-4
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 26 Sep 2018 04:33:53 +0000 (06:33 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 26 Sep 2018 04:33:53 +0000 (06:33 +0200)
dclib-ssl.patch
dclib.spec

index f124a21..b84b7a8 100644 (file)
@@ -57,3 +57,103 @@ diff -up dclib-0.3.23/dclib/core/cssl.cpp.openssl dclib-0.3.23/dclib/core/cssl.c
        if ( method != NULL )
        {
                ctx = SSL_CTX_new(method);
+--- dclib-0.3.23/dclib/core/cssl.cpp.org       2018-09-26 06:27:39.330068940 +0200
++++ dclib-0.3.23/dclib/core/cssl.cpp   2018-09-26 06:31:39.423763528 +0200
+@@ -447,7 +447,7 @@ CString CSSL::EncryptData( CSSLObject *
+       CString res;
+       CByteArray bain,baout;
+       int i,tmplen;
+-      EVP_CIPHER_CTX ctx;
++      EVP_CIPHER_CTX *ctx;
+       // sanity check
+       if ( !SSLObject || (s.IsEmpty()) )
+@@ -455,8 +455,11 @@ CString CSSL::EncryptData( CSSLObject *
+               return res;
+       }
+       
+-      EVP_CIPHER_CTX_init(&ctx);
+-      EVP_EncryptInit(&ctx, EVP_bf_cbc(), SSLObject->m_remotekey, SSLObject->m_remoteiv);
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL)
++              return res;
++
++      EVP_EncryptInit(ctx, EVP_bf_cbc(), SSLObject->m_remotekey, SSLObject->m_remoteiv);
+       // init input array
+       bain.SetSize(2);
+@@ -466,13 +469,13 @@ CString CSSL::EncryptData( CSSLObject *
+       // init output array
+       // input size + cipher_block_size for EVP_EncryptUpdate
+       // plus cipher_block_size for EVP_EncryptFinal
+-      baout.SetSize( bain.Size() + ( 2 * EVP_CIPHER_CTX_block_size(&ctx) ) );
++      baout.SetSize( bain.Size() + ( 2 * EVP_CIPHER_CTX_block_size(ctx) ) );
+       //printf("CSSL::EncryptData: wrong old size=%lu new size=%lu\n",bain.Size()*2,baout.Size());
+       i = baout.Size();
+-      if ( EVP_EncryptUpdate(&ctx, baout.Data(), &i, bain.Data(), bain.Size() ) )
++      if ( EVP_EncryptUpdate(ctx, baout.Data(), &i, bain.Data(), bain.Size() ) )
+       {
+-              if ( EVP_EncryptFinal(&ctx, baout.Data()+i, &tmplen) )
++              if ( EVP_EncryptFinal(ctx, baout.Data()+i, &tmplen) )
+               {
+                       i+=tmplen;
+                       bain.SetSize(0);
+@@ -483,7 +486,7 @@ CString CSSL::EncryptData( CSSLObject *
+               }
+       }
+-      EVP_CIPHER_CTX_cleanup(&ctx);
++      EVP_CIPHER_CTX_free(ctx);
+       return res;
+ }
+@@ -494,7 +497,7 @@ CString CSSL::DecryptData( CSSLObject *
+       CString res;
+       CByteArray bain,baout;
+       int i,tmplen;
+-      EVP_CIPHER_CTX ctx;
++      EVP_CIPHER_CTX *ctx;
+       // sanity check
+       if ( !SSLObject || (s.IsEmpty()) )
+@@ -502,22 +505,25 @@ CString CSSL::DecryptData( CSSLObject *
+               return res;
+       }
+       
+-      EVP_CIPHER_CTX_init(&ctx);
+-      EVP_DecryptInit(&ctx, EVP_bf_cbc(), SSLObject->m_localkey, SSLObject->m_localiv);
++      ctx = EVP_CIPHER_CTX_new();
++      if (ctx == NULL)
++              return res;
++
++      EVP_DecryptInit(ctx, EVP_bf_cbc(), SSLObject->m_localkey, SSLObject->m_localiv);
+       bain.SetSize(0);
+       bain.Append(s.Data(),s.Length());
+       if ( CBase64::Decode(&baout,&bain) > 0 )
+       {
+-              bain.SetSize( baout.Size() + ( 2 * EVP_CIPHER_CTX_block_size(&ctx) ) );
++              bain.SetSize( baout.Size() + ( 2 * EVP_CIPHER_CTX_block_size(ctx) ) );
+               //printf("CSSL::DecryptData: wrong old size=%lu new size=%lu\n",baout.Size()*2,bain.Size());
+               i = 0;
+-              if ( EVP_DecryptUpdate(&ctx, bain.Data(), &i, baout.Data(), (int)baout.Size() ) )
++              if ( EVP_DecryptUpdate(ctx, bain.Data(), &i, baout.Data(), (int)baout.Size() ) )
+               {
+                       tmplen = 0;
+-                      if ( EVP_DecryptFinal(&ctx, bain.Data()+i, &tmplen) )
++                      if ( EVP_DecryptFinal(ctx, bain.Data()+i, &tmplen) )
+                       {
+                               i+=tmplen;
+                               res.Set((const char*)bain.Data()+2,i-2);
+@@ -525,7 +531,7 @@ CString CSSL::DecryptData( CSSLObject *
+               }
+       }
+-      EVP_CIPHER_CTX_cleanup(&ctx);
++      EVP_CIPHER_CTX_free(ctx);
+       return res;
+ }
index 659ce9f..3a107c0 100644 (file)
@@ -6,7 +6,7 @@ Summary:        DirectConnect support library for dcgui-qt
 Summary(pl.UTF-8):     Biblioteka obsługująca DirectConnect dla dcgui-qt
 Name:          dclib
 Version:       0.3.23
-Release:       3
+Release:       4
 Epoch:         1
 License:       GPL
 Group:         Libraries
This page took 0.478197 seconds and 4 git commands to generate.