]> git.pld-linux.org Git - packages/dclib.git/blob - dclib-ssl.patch
- rel 4; fix openssl 1.1.1 build
[packages/dclib.git] / dclib-ssl.patch
1 diff -up dclib-0.3.23/dclib/core/cssl.cpp.openssl dclib-0.3.23/dclib/core/cssl.cpp
2 --- dclib-0.3.23/dclib/core/cssl.cpp.openssl    2009-01-07 23:13:52.000000000 +0100
3 +++ dclib-0.3.23/dclib/core/cssl.cpp    2009-08-25 14:12:21.000000000 +0200
4 @@ -86,7 +86,11 @@ void CSSL::DeInitSSLLibrary()
5  /** */
6  SSL_CTX * CSSL::InitClientCTX()
7  {
8 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
9 +       const SSL_METHOD *method;
10 +#else
11         SSL_METHOD *method;
12 +#endif
13         SSL_CTX *ctx = NULL;
14  
15         method = SSLv23_client_method();                /* Create new client-method instance */
16 @@ -109,7 +113,11 @@ SSL_CTX * CSSL::InitClientCTX()
17  /** */
18  SSL_CTX * CSSL::InitServerCTX()
19  {
20 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
21 +       const SSL_METHOD *method;
22 +#else
23         SSL_METHOD *method;
24 +#endif
25         SSL_CTX *ctx = NULL;
26  
27         method = SSLv23_server_method();                /* Create new client-method instance */
28 @@ -130,9 +138,14 @@ SSL_CTX * CSSL::InitServerCTX()
29  /** */
30  SSL_CTX * CSSL::NewTLSv1ClientCTX()
31  {
32 -       SSL_METHOD * method = TLSv1_client_method();
33 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
34 +       const SSL_METHOD *method;
35 +#else
36 +       SSL_METHOD *method;
37 +#endif
38         SSL_CTX * ctx = NULL;
39         
40 +       method = TLSv1_client_method();
41         if ( method != NULL )
42         {
43                 ctx = SSL_CTX_new(method);
44 @@ -149,9 +162,14 @@ SSL_CTX * CSSL::NewTLSv1ClientCTX()
45  /** */
46  SSL_CTX * CSSL::NewTLSv1ServerCTX()
47  {
48 -       SSL_METHOD * method = TLSv1_server_method();
49 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
50 +       const SSL_METHOD *method;
51 +#else
52 +       SSL_METHOD *method;
53 +#endif
54         SSL_CTX * ctx = NULL;
55         
56 +       method = TLSv1_server_method();
57         if ( method != NULL )
58         {
59                 ctx = SSL_CTX_new(method);
60 --- dclib-0.3.23/dclib/core/cssl.cpp.org        2018-09-26 06:27:39.330068940 +0200
61 +++ dclib-0.3.23/dclib/core/cssl.cpp    2018-09-26 06:31:39.423763528 +0200
62 @@ -447,7 +447,7 @@ CString CSSL::EncryptData( CSSLObject *
63         CString res;
64         CByteArray bain,baout;
65         int i,tmplen;
66 -       EVP_CIPHER_CTX ctx;
67 +       EVP_CIPHER_CTX *ctx;
68  
69         // sanity check
70         if ( !SSLObject || (s.IsEmpty()) )
71 @@ -455,8 +455,11 @@ CString CSSL::EncryptData( CSSLObject *
72                 return res;
73         }
74         
75 -       EVP_CIPHER_CTX_init(&ctx);
76 -       EVP_EncryptInit(&ctx, EVP_bf_cbc(), SSLObject->m_remotekey, SSLObject->m_remoteiv);
77 +       ctx = EVP_CIPHER_CTX_new();
78 +       if (ctx == NULL)
79 +               return res;
80 +
81 +       EVP_EncryptInit(ctx, EVP_bf_cbc(), SSLObject->m_remotekey, SSLObject->m_remoteiv);
82  
83         // init input array
84         bain.SetSize(2);
85 @@ -466,13 +469,13 @@ CString CSSL::EncryptData( CSSLObject *
86         // init output array
87         // input size + cipher_block_size for EVP_EncryptUpdate
88         // plus cipher_block_size for EVP_EncryptFinal
89 -       baout.SetSize( bain.Size() + ( 2 * EVP_CIPHER_CTX_block_size(&ctx) ) );
90 +       baout.SetSize( bain.Size() + ( 2 * EVP_CIPHER_CTX_block_size(ctx) ) );
91         //printf("CSSL::EncryptData: wrong old size=%lu new size=%lu\n",bain.Size()*2,baout.Size());
92         i = baout.Size();
93  
94 -       if ( EVP_EncryptUpdate(&ctx, baout.Data(), &i, bain.Data(), bain.Size() ) )
95 +       if ( EVP_EncryptUpdate(ctx, baout.Data(), &i, bain.Data(), bain.Size() ) )
96         {
97 -               if ( EVP_EncryptFinal(&ctx, baout.Data()+i, &tmplen) )
98 +               if ( EVP_EncryptFinal(ctx, baout.Data()+i, &tmplen) )
99                 {
100                         i+=tmplen;
101                         bain.SetSize(0);
102 @@ -483,7 +486,7 @@ CString CSSL::EncryptData( CSSLObject *
103                 }
104         }
105  
106 -       EVP_CIPHER_CTX_cleanup(&ctx);
107 +       EVP_CIPHER_CTX_free(ctx);
108  
109         return res;
110  }
111 @@ -494,7 +497,7 @@ CString CSSL::DecryptData( CSSLObject *
112         CString res;
113         CByteArray bain,baout;
114         int i,tmplen;
115 -       EVP_CIPHER_CTX ctx;
116 +       EVP_CIPHER_CTX *ctx;
117  
118         // sanity check
119         if ( !SSLObject || (s.IsEmpty()) )
120 @@ -502,22 +505,25 @@ CString CSSL::DecryptData( CSSLObject *
121                 return res;
122         }
123         
124 -       EVP_CIPHER_CTX_init(&ctx);
125 -       EVP_DecryptInit(&ctx, EVP_bf_cbc(), SSLObject->m_localkey, SSLObject->m_localiv);
126 +       ctx = EVP_CIPHER_CTX_new();
127 +       if (ctx == NULL)
128 +               return res;
129 +
130 +       EVP_DecryptInit(ctx, EVP_bf_cbc(), SSLObject->m_localkey, SSLObject->m_localiv);
131  
132         bain.SetSize(0);
133         bain.Append(s.Data(),s.Length());
134  
135         if ( CBase64::Decode(&baout,&bain) > 0 )
136         {
137 -               bain.SetSize( baout.Size() + ( 2 * EVP_CIPHER_CTX_block_size(&ctx) ) );
138 +               bain.SetSize( baout.Size() + ( 2 * EVP_CIPHER_CTX_block_size(ctx) ) );
139                 //printf("CSSL::DecryptData: wrong old size=%lu new size=%lu\n",baout.Size()*2,bain.Size());
140                 i = 0;
141  
142 -               if ( EVP_DecryptUpdate(&ctx, bain.Data(), &i, baout.Data(), (int)baout.Size() ) )
143 +               if ( EVP_DecryptUpdate(ctx, bain.Data(), &i, baout.Data(), (int)baout.Size() ) )
144                 {
145                         tmplen = 0;
146 -                       if ( EVP_DecryptFinal(&ctx, bain.Data()+i, &tmplen) )
147 +                       if ( EVP_DecryptFinal(ctx, bain.Data()+i, &tmplen) )
148                         {
149                                 i+=tmplen;
150                                 res.Set((const char*)bain.Data()+2,i-2);
151 @@ -525,7 +531,7 @@ CString CSSL::DecryptData( CSSLObject *
152                 }
153         }
154  
155 -       EVP_CIPHER_CTX_cleanup(&ctx);
156 +       EVP_CIPHER_CTX_free(ctx);
157  
158         return res;
159  }
This page took 0.031879 seconds and 3 git commands to generate.