]>
Commit | Line | Data |
---|---|---|
57a2e0a5 PG |
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); | |
50c4c239 AM |
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 | } |