Magellan Linux

Contents of /trunk/qt4/patches/qt-4.8.7-openssl-1.1-2.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3148 - (show annotations) (download)
Mon Jul 2 08:12:28 2018 UTC (5 years, 9 months ago) by niro
File size: 28628 byte(s)
-fedora patch
1 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslcertificate.cpp
2 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2015-05-07 16:14:44.000000000 +0200
3 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslcertificate.cpp 2018-01-05 17:44:16.997588265 +0100
4 @@ -259,10 +259,10 @@
5 QByteArray QSslCertificate::version() const
6 {
7 QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
8 - if (d->versionString.isEmpty() && d->x509)
9 + if (d->versionString.isEmpty() && d->x509) {
10 d->versionString =
11 - QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
12 -
13 + QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
14 + }
15 return d->versionString;
16 }
17
18 @@ -276,7 +276,7 @@
19 {
20 QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
21 if (d->serialNumberString.isEmpty() && d->x509) {
22 - ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
23 + ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
24 // if we cannot convert to a long, just output the hexadecimal number
25 if (serialNumber->length > 4) {
26 QByteArray hexString;
27 @@ -489,24 +489,33 @@
28 QSslKey key;
29
30 key.d->type = QSsl::PublicKey;
31 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
32 X509_PUBKEY *xkey = d->x509->cert_info->key;
33 +#else
34 + X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509);
35 +#endif
36 EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
37 Q_ASSERT(pkey);
38
39 - if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
40 + int key_id;
41 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
42 + key_id = q_EVP_PKEY_type(pkey->type);
43 +#else
44 + key_id = q_EVP_PKEY_base_id(pkey);
45 +#endif
46 + if (key_id == EVP_PKEY_RSA) {
47 key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
48 key.d->algorithm = QSsl::Rsa;
49 key.d->isNull = false;
50 - } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
51 + } else if (key_id == EVP_PKEY_DSA) {
52 key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
53 key.d->algorithm = QSsl::Dsa;
54 key.d->isNull = false;
55 - } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
56 + } else if (key_id == EVP_PKEY_DH) {
57 // DH unsupported
58 } else {
59 // error?
60 }
61 -
62 q_EVP_PKEY_free(pkey);
63 return key;
64 }
65 @@ -687,7 +696,11 @@
66 unsigned char *data = 0;
67 int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
68 info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size);
69 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
70 q_CRYPTO_free(data);
71 +#else
72 + q_CRYPTO_free(data, __FILE__, __LINE__);
73 +#endif
74 }
75 return info;
76 }
77 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslkey.cpp
78 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2015-05-07 16:14:44.000000000 +0200
79 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslkey.cpp 2018-01-05 18:00:27.453937599 +0100
80 @@ -321,8 +321,19 @@
81 {
82 if (d->isNull)
83 return -1;
84 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
85 return (d->algorithm == QSsl::Rsa)
86 ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p);
87 +#else
88 + if (d->algorithm == QSsl::Rsa) {
89 + return q_RSA_bits(d->rsa);
90 + } else {
91 + const BIGNUM *p = (const BIGNUM *) NULL;
92 + q_DSA_get0_pqg(d->dsa, &p, (const BIGNUM **) NULL, (const BIGNUM **) NULL);
93 + return q_BN_num_bits(p);
94 + }
95 +#endif
96 +
97 }
98
99 /*!
100 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl.cpp
101 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200
102 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl.cpp 2018-01-05 12:06:06.336990956 +0100
103 @@ -93,6 +93,7 @@
104 bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
105 bool QSslSocketPrivate::s_loadRootCertsOnDemand = false;
106
107 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
108 /* \internal
109
110 From OpenSSL's thread(3) manual page:
111 @@ -174,6 +175,8 @@
112 }
113 } // extern "C"
114
115 +#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L
116 +
117 QSslSocketBackendPrivate::QSslSocketBackendPrivate()
118 : ssl(0),
119 ctx(0),
120 @@ -222,9 +225,12 @@
121 ciph.d->encryptionMethod = descriptionList.at(4).mid(4);
122 ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export"));
123
124 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
125 ciph.d->bits = cipher->strength_bits;
126 ciph.d->supportedBits = cipher->alg_bits;
127 -
128 +#else
129 + ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits);
130 +#endif
131 }
132 return ciph;
133 }
134 @@ -363,7 +369,7 @@
135 //
136 // See also: QSslContext::fromConfiguration()
137 if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) {
138 - q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle());
139 + q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle());
140 }
141 }
142
143 @@ -500,8 +506,10 @@
144 */
145 void QSslSocketPrivate::deinitialize()
146 {
147 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
148 q_CRYPTO_set_id_callback(0);
149 q_CRYPTO_set_locking_callback(0);
150 +#endif
151 }
152
153 /*!
154 @@ -522,13 +530,17 @@
155 return false;
156
157 // Check if the library itself needs to be initialized.
158 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
159 QMutexLocker locker(openssl_locks()->initLock());
160 +#endif
161 if (!s_libraryLoaded) {
162 s_libraryLoaded = true;
163
164 // Initialize OpenSSL.
165 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
166 q_CRYPTO_set_id_callback(id_function);
167 q_CRYPTO_set_locking_callback(locking_function);
168 +#endif
169 if (q_SSL_library_init() != 1)
170 return false;
171 q_SSL_load_error_strings();
172 @@ -567,7 +579,9 @@
173
174 void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
175 {
176 - QMutexLocker locker(openssl_locks()->initLock());
177 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
178 + QMutexLocker locker(openssl_locks()->initLock());
179 +#endif
180 if (s_loadedCiphersAndCerts)
181 return;
182 s_loadedCiphersAndCerts = true;
183 @@ -659,13 +673,18 @@
184 STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl);
185 for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) {
186 if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) {
187 - if (cipher->valid) {
188 +
189 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
190 + if (cipher->valid) {
191 +#endif
192 QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher);
193 if (!ciph.isNull()) {
194 if (!ciph.name().toLower().startsWith(QLatin1String("adh")))
195 ciphers << ciph;
196 }
197 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
198 }
199 +#endif
200 }
201 }
202
203 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_p.h qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_p.h
204 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_p.h 2015-05-07 16:14:44.000000000 +0200
205 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_p.h 2018-01-05 12:06:06.337990940 +0100
206 @@ -84,6 +84,10 @@
207 #include <openssl/tls1.h>
208 #endif
209
210 +#if OPENSSL_VERSION_NUMBER >= 0x10100000L
211 +#define OPENSSL_NO_SSL2
212 +#endif
213 +
214 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
215 typedef _STACK STACK;
216 #endif
217 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols.cpp
218 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200
219 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols.cpp 2018-01-05 17:59:10.636973932 +0100
220 @@ -111,16 +111,30 @@
221 DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
222 DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
223 DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
224 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
225 DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
226 +#else
227 +DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
228 +#endif
229 DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
230 DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
231 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
232 DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
233 +#else
234 +DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
235 +#endif
236 DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
237 DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
238 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
239 DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
240 DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
241 DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
242 +#endif
243 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
244 DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
245 +#else
246 +DEFINEFUNC3(void, CRYPTO_free, void *a, a, const char *b, b, int c, c, return, DUMMYARG)
247 +#endif
248 DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
249 #if OPENSSL_VERSION_NUMBER < 0x00908000L
250 DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return)
251 @@ -157,6 +171,7 @@
252 DEFINEFUNC2(void, RAND_seed, const void *a, a, int b, b, return, DUMMYARG)
253 DEFINEFUNC(int, RAND_status, void, DUMMYARG, return -1, return)
254 DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG)
255 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
256 DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
257 DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
258 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
259 @@ -166,6 +181,12 @@
260 DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG)
261 DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return)
262 #endif
263 +#else
264 +DEFINEFUNC(int, OPENSSL_sk_num, STACK *a, a, return -1, return)
265 +DEFINEFUNC2(void, OPENSSL_sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
266 +DEFINEFUNC(void, OPENSSL_sk_free, _STACK *a, a, return, DUMMYARG)
267 +DEFINEFUNC2(void *, OPENSSL_sk_value, STACK *a, a, int b, b, return 0, return)
268 +#endif
269 DEFINEFUNC(int, SSL_accept, SSL *a, a, return -1, return)
270 DEFINEFUNC(int, SSL_clear, SSL *a, a, return -1, return)
271 DEFINEFUNC3(char *, SSL_CIPHER_description, SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
272 @@ -213,8 +234,12 @@
273 #else
274 DEFINEFUNC(long, SSL_get_verify_result, SSL *a, a, return -1, return)
275 #endif
276 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
277 DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return)
278 DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG)
279 +#else
280 +DEFINEFUNC2(int, OPENSSL_init_ssl, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return -1, return)
281 +#endif
282 DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return 0, return)
283 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
284 DEFINEFUNC4(long, SSL_ctrl, SSL *a, a, int cmd, cmd, long larg, larg, void *parg, parg, return -1, return)
285 @@ -229,13 +254,21 @@
286 DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
287 #endif
288 DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
289 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
290 DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
291 +#else
292 +DEFINEFUNC(const SSL_METHOD *, TLS_client_method, DUMMYARG, DUMMYARG, return 0, return)
293 +#endif
294 DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
295 #ifndef OPENSSL_NO_SSL2
296 DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
297 #endif
298 DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
299 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
300 DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
301 +#else
302 +DEFINEFUNC(const SSL_METHOD *, TLS_server_method, DUMMYARG, DUMMYARG, return 0, return)
303 +#endif
304 DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
305 #else
306 DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
307 @@ -274,7 +307,11 @@
308 DEFINEFUNC(int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return)
309 DEFINEFUNC(int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return)
310 DEFINEFUNC(X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return)
311 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
312 DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
313 +#else
314 +DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
315 +#endif
316 DEFINEFUNC(X509_STORE_CTX *, X509_STORE_CTX_new, DUMMYARG, DUMMYARG, return 0, return)
317 #ifdef SSLEAY_MACROS
318 DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return)
319 @@ -282,10 +319,34 @@
320 DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a, unsigned char **b, b, long c, c, return 0, return)
321 DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c, c, return 0, return)
322 #endif
323 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
324 DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
325 DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
326 +#else
327 +DEFINEFUNC2(int, OPENSSL_init_crypto, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return -1, return)
328 +#endif
329 DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
330 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
331 DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
332 +#else
333 +DEFINEFUNC(unsigned long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
334 +#endif
335 +DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return)
336 +
337 +DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return)
338 +#if OPENSSL_VERSION_NUMBER >= 0x10100000L
339 +DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return)
340 +DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return)
341 +DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return)
342 +DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return)
343 +DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return)
344 +DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return)
345 +DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return)
346 +DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
347 +DEFINEFUNC(ASN1_TIME *, X509_getm_notAfter, X509 *x, x, return 0, return)
348 +DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, X509 *x, x, return 0, return)
349 +DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return)
350 +#endif
351
352 #ifdef Q_OS_SYMBIAN
353 #define RESOLVEFUNC(func, ordinal, lib) \
354 @@ -580,7 +641,11 @@
355 static volatile bool symbolsResolved = false;
356 static volatile bool triedToResolveSymbols = false;
357 #ifndef QT_NO_THREAD
358 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
359 QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init));
360 +#else
361 + QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl));
362 +#endif
363 #endif
364 if (symbolsResolved)
365 return true;
366 @@ -614,9 +679,11 @@
367 RESOLVEFUNC(BIO_write, 269, libs.second )
368 RESOLVEFUNC(BN_num_bits, 387, libs.second )
369 RESOLVEFUNC(CRYPTO_free, 469, libs.second )
370 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
371 RESOLVEFUNC(CRYPTO_num_locks, 500, libs.second )
372 RESOLVEFUNC(CRYPTO_set_id_callback, 513, libs.second )
373 RESOLVEFUNC(CRYPTO_set_locking_callback, 516, libs.second )
374 +#endif
375 RESOLVEFUNC(DSA_free, 594, libs.second )
376 RESOLVEFUNC(ERR_error_string, 744, libs.second )
377 RESOLVEFUNC(ERR_get_error, 749, libs.second )
378 @@ -674,8 +741,10 @@
379 RESOLVEFUNC(SSL_get_peer_cert_chain, 117, libs.first )
380 RESOLVEFUNC(SSL_get_peer_certificate, 118, libs.first )
381 RESOLVEFUNC(SSL_get_verify_result, 132, libs.first )
382 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
383 RESOLVEFUNC(SSL_library_init, 137, libs.first )
384 RESOLVEFUNC(SSL_load_error_strings, 139, libs.first )
385 +#endif
386 RESOLVEFUNC(SSL_new, 140, libs.first )
387 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
388 RESOLVEFUNC(SSL_ctrl, 95, libs.first )
389 @@ -747,9 +816,11 @@
390 RESOLVEFUNC(BIO_write)
391 RESOLVEFUNC(BN_num_bits)
392 RESOLVEFUNC(CRYPTO_free)
393 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
394 RESOLVEFUNC(CRYPTO_num_locks)
395 RESOLVEFUNC(CRYPTO_set_id_callback)
396 RESOLVEFUNC(CRYPTO_set_locking_callback)
397 +#endif
398 RESOLVEFUNC(DSA_free)
399 RESOLVEFUNC(ERR_error_string)
400 RESOLVEFUNC(ERR_get_error)
401 @@ -779,10 +850,17 @@
402 RESOLVEFUNC(RAND_seed)
403 RESOLVEFUNC(RAND_status)
404 RESOLVEFUNC(RSA_free)
405 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
406 RESOLVEFUNC(sk_free)
407 RESOLVEFUNC(sk_num)
408 RESOLVEFUNC(sk_pop_free)
409 RESOLVEFUNC(sk_value)
410 +#else
411 + RESOLVEFUNC(OPENSSL_sk_free)
412 + RESOLVEFUNC(OPENSSL_sk_num)
413 + RESOLVEFUNC(OPENSSL_sk_pop_free)
414 + RESOLVEFUNC(OPENSSL_sk_value)
415 +#endif
416 RESOLVEFUNC(SSL_CIPHER_description)
417 RESOLVEFUNC(SSL_CTX_check_private_key)
418 RESOLVEFUNC(SSL_CTX_ctrl)
419 @@ -797,6 +875,7 @@
420 RESOLVEFUNC(SSL_CTX_use_PrivateKey)
421 RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
422 RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
423 + RESOLVEFUNC(SSL_CTX_get_cert_store)
424 RESOLVEFUNC(SSL_accept)
425 RESOLVEFUNC(SSL_clear)
426 RESOLVEFUNC(SSL_connect)
427 @@ -807,8 +886,12 @@
428 RESOLVEFUNC(SSL_get_peer_cert_chain)
429 RESOLVEFUNC(SSL_get_peer_certificate)
430 RESOLVEFUNC(SSL_get_verify_result)
431 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
432 RESOLVEFUNC(SSL_library_init)
433 RESOLVEFUNC(SSL_load_error_strings)
434 +#else
435 + RESOLVEFUNC(OPENSSL_init_ssl)
436 +#endif
437 RESOLVEFUNC(SSL_new)
438 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
439 RESOLVEFUNC(SSL_ctrl)
440 @@ -819,17 +902,47 @@
441 RESOLVEFUNC(SSL_set_connect_state)
442 RESOLVEFUNC(SSL_shutdown)
443 RESOLVEFUNC(SSL_write)
444 +
445 + RESOLVEFUNC(X509_get_serialNumber)
446 +#if OPENSSL_VERSION_NUMBER >= 0x10100000L
447 + RESOLVEFUNC(SSL_CTX_ctrl)
448 + RESOLVEFUNC(EVP_PKEY_id)
449 + RESOLVEFUNC(EVP_PKEY_base_id)
450 + RESOLVEFUNC(SSL_CIPHER_get_bits)
451 + RESOLVEFUNC(SSL_CTX_set_options)
452 + RESOLVEFUNC(X509_get_version)
453 + RESOLVEFUNC(X509_get_X509_PUBKEY)
454 + RESOLVEFUNC(RSA_bits)
455 + RESOLVEFUNC(DSA_security_bits)
456 + RESOLVEFUNC(DSA_get0_pqg)
457 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
458 + RESOLVEFUNC(X509_get_notAfter)
459 + RESOLVEFUNC(X509_get_notBefore)
460 +#else
461 + RESOLVEFUNC(X509_getm_notAfter)
462 + RESOLVEFUNC(X509_getm_notBefore)
463 +#endif
464 +#endif
465 +
466 #ifndef OPENSSL_NO_SSL2
467 RESOLVEFUNC(SSLv2_client_method)
468 #endif
469 RESOLVEFUNC(SSLv3_client_method)
470 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
471 RESOLVEFUNC(SSLv23_client_method)
472 +#else
473 + RESOLVEFUNC(TLS_client_method)
474 +#endif
475 RESOLVEFUNC(TLSv1_client_method)
476 #ifndef OPENSSL_NO_SSL2
477 RESOLVEFUNC(SSLv2_server_method)
478 #endif
479 RESOLVEFUNC(SSLv3_server_method)
480 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
481 RESOLVEFUNC(SSLv23_server_method)
482 +#else
483 + RESOLVEFUNC(TLS_server_method)
484 +#endif
485 RESOLVEFUNC(TLSv1_server_method)
486 RESOLVEFUNC(X509_NAME_entry_count)
487 RESOLVEFUNC(X509_NAME_get_entry)
488 @@ -846,7 +959,11 @@
489 RESOLVEFUNC(X509_STORE_CTX_get_error)
490 RESOLVEFUNC(X509_STORE_CTX_get_error_depth)
491 RESOLVEFUNC(X509_STORE_CTX_get_current_cert)
492 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
493 RESOLVEFUNC(X509_STORE_CTX_get_chain)
494 +#else
495 + RESOLVEFUNC(X509_STORE_CTX_get0_chain)
496 +#endif
497 RESOLVEFUNC(X509_cmp)
498 #ifndef SSLEAY_MACROS
499 RESOLVEFUNC(X509_dup)
500 @@ -867,10 +984,18 @@
501 RESOLVEFUNC(d2i_DSAPrivateKey)
502 RESOLVEFUNC(d2i_RSAPrivateKey)
503 #endif
504 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
505 RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
506 RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
507 +#else
508 + RESOLVEFUNC(OPENSSL_init_crypto)
509 +#endif
510 RESOLVEFUNC(SSL_CTX_load_verify_locations)
511 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
512 RESOLVEFUNC(SSLeay)
513 +#else
514 + RESOLVEFUNC(OpenSSL_version_num)
515 +#endif
516 #endif // Q_OS_SYMBIAN
517 symbolsResolved = true;
518 delete libs.first;
519 diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols_p.h
520 --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2015-05-07 16:14:44.000000000 +0200
521 +++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols_p.h 2018-01-05 17:59:42.041550255 +0100
522 @@ -207,16 +207,31 @@
523 int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
524 long q_BIO_ctrl(BIO *a, int b, long c, void *d);
525 int q_BIO_free(BIO *a);
526 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
527 BIO *q_BIO_new(BIO_METHOD *a);
528 +#else
529 +BIO *q_BIO_new(const BIO_METHOD *a);
530 +#endif
531 BIO *q_BIO_new_mem_buf(void *a, int b);
532 int q_BIO_read(BIO *a, void *b, int c);
533 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
534 BIO_METHOD *q_BIO_s_mem();
535 +#else
536 +const BIO_METHOD *q_BIO_s_mem();
537 +#endif
538 int q_BIO_write(BIO *a, const void *b, int c);
539 int q_BN_num_bits(const BIGNUM *a);
540 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
541 int q_CRYPTO_num_locks();
542 void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
543 void q_CRYPTO_set_id_callback(unsigned long (*a)());
544 void q_CRYPTO_free(void *a);
545 +#else
546 +#define q_CRYPTO_num_locks() 1
547 +#define q_CRYPTO_set_locking_callback(a)
548 +#define q_CRYPTO_set_id_callback(a)
549 +void q_CRYPTO_free(void *a, const char *b, int c);
550 +#endif
551 void q_DSA_free(DSA *a);
552 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
553 // 0.9.8 broke SC and BC by changing this function's signature.
554 @@ -258,6 +273,7 @@
555 void q_RAND_seed(const void *a, int b);
556 int q_RAND_status();
557 void q_RSA_free(RSA *a);
558 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
559 int q_sk_num(STACK *a);
560 void q_sk_pop_free(STACK *a, void (*b)(void *));
561 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
562 @@ -267,6 +283,16 @@
563 void q_sk_free(STACK *a);
564 char * q_sk_value(STACK *a, int b);
565 #endif
566 +#else
567 +int q_OPENSSL_sk_num(STACK *a);
568 +void q_OPENSSL_sk_pop_free(STACK *a, void (*b)(void *));
569 +void q_OPENSSL_sk_free(_STACK *a);
570 +void * q_OPENSSL_sk_value(STACK *a, int b);
571 +#define q_sk_num q_OPENSSL_sk_num
572 +#define q_sk_pop_free q_OPENSSL_sk_pop_free
573 +#define q_sk_free q_OPENSSL_sk_free
574 +#define q_sk_value q_OPENSSL_sk_value
575 +#endif
576 int q_SSL_accept(SSL *a);
577 int q_SSL_clear(SSL *a);
578 char *q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c);
579 @@ -314,8 +340,14 @@
580 #else
581 long q_SSL_get_verify_result(SSL *a);
582 #endif
583 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
584 int q_SSL_library_init();
585 void q_SSL_load_error_strings();
586 +#else
587 +int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
588 +#define q_SSL_library_init() q_OPENSSL_init_ssl(0, (const OPENSSL_INIT_SETTINGS *) NULL)
589 +#define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, (const OPENSSL_INIT_SETTINGS *) NULL)
590 +#endif
591 SSL *q_SSL_new(SSL_CTX *a);
592 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
593 long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
594 @@ -328,11 +360,21 @@
595 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
596 const SSL_METHOD *q_SSLv2_client_method();
597 const SSL_METHOD *q_SSLv3_client_method();
598 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
599 const SSL_METHOD *q_SSLv23_client_method();
600 +#else
601 +const SSL_METHOD *q_TLS_client_method();
602 +#define q_SSLv23_client_method q_TLS_client_method
603 +#endif
604 const SSL_METHOD *q_TLSv1_client_method();
605 const SSL_METHOD *q_SSLv2_server_method();
606 const SSL_METHOD *q_SSLv3_server_method();
607 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
608 const SSL_METHOD *q_SSLv23_server_method();
609 +#else
610 +const SSL_METHOD *q_TLS_server_method();
611 +#define q_SSLv23_server_method q_TLS_server_method
612 +#endif
613 const SSL_METHOD *q_TLSv1_server_method();
614 #else
615 SSL_METHOD *q_SSLv2_client_method();
616 @@ -377,7 +419,12 @@
617 int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
618 int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
619 X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
620 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
621 STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
622 +#else
623 +STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
624 +#define q_X509_STORE_CTX_get_chain q_X509_STORE_CTX_get0_chain
625 +#endif
626
627 #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
628 #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
629 @@ -399,7 +446,25 @@
630 PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
631 bp,(char *)x,enc,kstr,klen,cb,u)
632 #endif
633 +
634 +X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx);
635 +ASN1_INTEGER * q_X509_get_serialNumber(X509 *x);
636 +
637 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
638 #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
639 +#define q_X509_get_version(x) X509_get_version(x)
640 +#else
641 +int q_EVP_PKEY_id(const EVP_PKEY *pkey);
642 +int q_EVP_PKEY_base_id(const EVP_PKEY *pkey);
643 +int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
644 +long q_SSL_CTX_set_options(SSL_CTX *ctx, long options);
645 +long q_X509_get_version(X509 *x);
646 +X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
647 +int q_RSA_bits(const RSA *rsa);
648 +int q_DSA_security_bits(const DSA *dsa);
649 +void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
650 +#endif
651 +
652 #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
653 #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
654 #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
655 @@ -410,8 +475,17 @@
656 #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
657 #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
658 q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
659 +
660 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
661 #define q_X509_get_notAfter(x) X509_get_notAfter(x)
662 #define q_X509_get_notBefore(x) X509_get_notBefore(x)
663 +#else
664 +ASN1_TIME *q_X509_getm_notAfter(X509 *x);
665 +ASN1_TIME *q_X509_getm_notBefore(X509 *x);
666 +#define q_X509_get_notAfter(x) q_X509_getm_notAfter(x)
667 +#define q_X509_get_notBefore(x) q_X509_getm_notBefore(x)
668 +#endif
669 +
670 #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
671 (char *)(rsa))
672 #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
673 @@ -421,10 +495,21 @@
674 #else
675 #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_noconf()
676 #endif
677 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
678 void q_OPENSSL_add_all_algorithms_noconf();
679 void q_OPENSSL_add_all_algorithms_conf();
680 +#else
681 +int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
682 +#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, (const OPENSSL_INIT_SETTINGS *) NULL)
683 +# define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, (const OPENSSL_INIT_SETTINGS *) NULL)
684 +#endif
685 int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
686 +#if OPENSSL_VERSION_NUMBER < 0x10100000L
687 long q_SSLeay();
688 +#else
689 +unsigned long q_OpenSSL_version_num();
690 +#define q_SSLeay q_OpenSSL_version_num
691 +#endif
692
693 // Helper function
694 class QDateTime;