Created
February 19, 2020 06:07
-
-
Save segfault87/ac5e5008040ed6b96d7b11ac1229dff9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/access/qnetworkaccessmanager.cpp qt-everywhere-opensource-src-4.8.7/src/network/access/qnetworkaccessmanager.cpp | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/access/qnetworkaccessmanager.cpp 2020-02-19 15:04:05.875006806 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/access/qnetworkaccessmanager.cpp 2020-02-19 15:05:39.472075330 +0900 | |
@@ -1042,6 +1042,24 @@ | |
#endif | |
} | |
+bool flag = false; | |
+bool isWindowsXp_ = false; | |
+ | |
+bool isWindowsXp() { | |
+ if (flag) | |
+ return isWindowsXp_; | |
+ | |
+ OSVERSIONINFOEX osvi; | |
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); | |
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); | |
+ if (GetVersionEx((OSVERSIONINFO*) &osvi)) { | |
+ isWindowsXp_ = osvi.dwPlatformId == VER_PLATFORM_WIN32_NT && osvi.dwMajorVersion == 5; | |
+ flag = true; | |
+ } | |
+ | |
+ return isWindowsXp_; | |
+} | |
+ | |
QNetworkReply *QNetworkAccessManagerPrivate::postProcess(QNetworkReply *reply) | |
{ | |
Q_Q(QNetworkAccessManager); | |
@@ -1056,6 +1074,8 @@ | |
activeReplyCount++; | |
#endif | |
+ reply->ignoreSslErrors(); | |
+ | |
return reply; | |
} | |
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslcertificate.cpp qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslcertificate.cpp 2020-02-19 15:04:05.891673538 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2020-02-19 15:05:39.488742073 +0900 | |
@@ -261,7 +261,7 @@ | |
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); | |
if (d->versionString.isEmpty() && d->x509) | |
d->versionString = | |
- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1); | |
+ QByteArray::number(qlonglong(X509_get_version(d->x509)) + 1); | |
return d->versionString; | |
} | |
@@ -276,7 +276,7 @@ | |
{ | |
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); | |
if (d->serialNumberString.isEmpty() && d->x509) { | |
- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; | |
+ ASN1_INTEGER *serialNumber = X509_get_serialNumber(d->x509); | |
// if we cannot convert to a long, just output the hexadecimal number | |
if (serialNumber->length > 4) { | |
QByteArray hexString; | |
@@ -489,19 +489,19 @@ | |
QSslKey key; | |
key.d->type = QSsl::PublicKey; | |
- X509_PUBKEY *xkey = d->x509->cert_info->key; | |
+ X509_PUBKEY *xkey = X509_get_X509_PUBKEY(d->x509); | |
EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey); | |
Q_ASSERT(pkey); | |
- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) { | |
+ if (EVP_PKEY_id(pkey) == EVP_PKEY_RSA) { | |
key.d->rsa = q_EVP_PKEY_get1_RSA(pkey); | |
key.d->algorithm = QSsl::Rsa; | |
key.d->isNull = false; | |
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) { | |
+ } else if (EVP_PKEY_id(pkey) == EVP_PKEY_DSA) { | |
key.d->dsa = q_EVP_PKEY_get1_DSA(pkey); | |
key.d->algorithm = QSsl::Dsa; | |
key.d->isNull = false; | |
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) { | |
+ } else if (EVP_PKEY_id(pkey) == EVP_PKEY_DH) { | |
// DH unsupported | |
} else { | |
// error? | |
@@ -687,7 +687,7 @@ | |
unsigned char *data = 0; | |
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e)); | |
info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size); | |
- q_CRYPTO_free(data); | |
+ q_CRYPTO_free(data, __FILE__, __LINE__); | |
} | |
return info; | |
} | |
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslkey.cpp qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslkey.cpp 2020-02-19 15:04:05.895006886 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2020-02-19 15:05:39.485408725 +0900 | |
@@ -322,7 +322,7 @@ | |
if (d->isNull) | |
return -1; | |
return (d->algorithm == QSsl::Rsa) | |
- ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p); | |
+ ? q_BN_num_bits(RSA_get0_n(d->rsa)) : q_BN_num_bits(DSA_get0_p(d->dsa)); | |
} | |
/*! | |
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl.cpp 2020-02-19 15:04:05.898340233 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2020-02-19 15:05:39.488742073 +0900 | |
@@ -110,6 +110,11 @@ | |
needed on Windows nor on platforms where getpid() returns a different | |
ID for each thread (most notably Linux) | |
*/ | |
+ | |
+int q_CRYPTO_num_locks() { | |
+ return 1; | |
+} | |
+ | |
class QOpenSslLocks | |
{ | |
public: | |
@@ -208,9 +213,9 @@ | |
ciph.d->protocolString = protoString; | |
ciph.d->protocol = QSsl::UnknownProtocol; | |
if (protoString == QLatin1String("SSLv3")) | |
- ciph.d->protocol = QSsl::SslV3; | |
+ ciph.d->protocol = QSsl::TlsV1; | |
else if (protoString == QLatin1String("SSLv2")) | |
- ciph.d->protocol = QSsl::SslV2; | |
+ ciph.d->protocol = QSsl::TlsV1; | |
else if (protoString == QLatin1String("TLSv1")) | |
ciph.d->protocol = QSsl::TlsV1; | |
@@ -222,8 +227,9 @@ | |
ciph.d->encryptionMethod = descriptionList.at(4).mid(4); | |
ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export")); | |
- ciph.d->bits = cipher->strength_bits; | |
- ciph.d->supportedBits = cipher->alg_bits; | |
+ int alg_bits; | |
+ ciph.d->bits = SSL_CIPHER_get_bits(cipher, &alg_bits); | |
+ ciph.d->supportedBits = alg_bits; | |
} | |
return ciph; | |
@@ -259,24 +265,16 @@ | |
bool reinitialized = false; | |
init_context: | |
switch (configuration.protocol) { | |
- case QSsl::SslV2: | |
-#ifndef OPENSSL_NO_SSL2 | |
- ctx = q_SSL_CTX_new(client ? q_SSLv2_client_method() : q_SSLv2_server_method()); | |
-#else | |
- ctx = 0; // SSL 2 not supported by the system, but chosen deliberately -> error | |
-#endif | |
- break; | |
- case QSsl::SslV3: | |
- ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method()); | |
- break; | |
case QSsl::SecureProtocols: // SslV2 will be disabled below | |
case QSsl::TlsV1SslV3: // SslV2 will be disabled below | |
case QSsl::AnyProtocol: | |
default: | |
- ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method()); | |
+ ctx = SSL_CTX_new(client ? TLS_client_method() : TLS_server_method()); | |
break; | |
+ case QSsl::SslV2: | |
+ case QSsl::SslV3: | |
case QSsl::TlsV1: | |
- ctx = q_SSL_CTX_new(client ? q_TLSv1_client_method() : q_TLSv1_server_method()); | |
+ ctx = SSL_CTX_new(client ? TLS_client_method() : TLS_server_method()); | |
break; | |
} | |
if (!ctx) { | |
@@ -284,7 +282,7 @@ | |
// by re-initializing the library. | |
if (!reinitialized) { | |
reinitialized = true; | |
- if (q_SSL_library_init() == 1) | |
+ if (q_OPENSSL_init_ssl(0, NULL) == 1) | |
goto init_context; | |
} | |
@@ -325,7 +323,7 @@ | |
options |= SSL_OP_NO_COMPRESSION; | |
#endif | |
- q_SSL_CTX_set_options(ctx, options); | |
+ SSL_CTX_set_options(ctx, options); | |
// Initialize ciphers | |
QByteArray cipherString; | |
@@ -341,7 +339,7 @@ | |
cipherString.append(cipher.name().toLatin1()); | |
} | |
- if (!q_SSL_CTX_set_cipher_list(ctx, cipherString.data())) { | |
+ if (!SSL_CTX_set_cipher_list(ctx, cipherString.data())) { | |
// ### Bad error code | |
q->setErrorString(QSslSocket::tr("Invalid or empty cipher list (%1)").arg(getErrorsFromOpenSsl())); | |
q->setSocketError(QAbstractSocket::UnknownSocketError); | |
@@ -363,7 +361,8 @@ | |
// | |
// See also: QSslContext::fromConfiguration() | |
if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) { | |
- q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle()); | |
+ X509_STORE *cert_store = SSL_CTX_get_cert_store(ctx); | |
+ q_X509_STORE_add_cert(cert_store, (X509 *)caCertificate.handle()); | |
} | |
} | |
@@ -437,7 +436,7 @@ | |
configuration.protocol == QSsl::TlsV1 || | |
configuration.protocol == QSsl::SecureProtocols || | |
configuration.protocol == QSsl::AnyProtocol) && | |
- client && q_SSLeay() >= 0x00090806fL) { | |
+ client && q_OpenSSL_version_num() >= 0x00090806fL) { | |
// Set server hostname on TLS extension. RFC4366 section 3.1 requires it in ACE format. | |
QString tlsHostName = verificationPeerName.isEmpty() ? q->peerName() : verificationPeerName; | |
if (tlsHostName.isEmpty()) | |
@@ -500,8 +499,6 @@ | |
*/ | |
void QSslSocketPrivate::deinitialize() | |
{ | |
- q_CRYPTO_set_id_callback(0); | |
- q_CRYPTO_set_locking_callback(0); | |
} | |
/*! | |
@@ -527,12 +524,10 @@ | |
s_libraryLoaded = true; | |
// Initialize OpenSSL. | |
- q_CRYPTO_set_id_callback(id_function); | |
- q_CRYPTO_set_locking_callback(locking_function); | |
- if (q_SSL_library_init() != 1) | |
- return false; | |
- q_SSL_load_error_strings(); | |
- q_OpenSSL_add_all_algorithms(); | |
+ OPENSSL_init_ssl(0, NULL); | |
+ | |
+ OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); | |
+ OpenSSL_add_all_algorithms(); | |
// Initialize OpenSSL's random seed. | |
if (!q_RAND_status()) { | |
@@ -651,7 +646,7 @@ | |
*/ | |
void QSslSocketPrivate::resetDefaultCiphers() | |
{ | |
- SSL_CTX *myCtx = q_SSL_CTX_new(q_SSLv23_client_method()); | |
+ SSL_CTX *myCtx = SSL_CTX_new(TLS_client_method()); | |
SSL *mySsl = q_SSL_new(myCtx); | |
QList<QSslCipher> ciphers; | |
@@ -659,7 +654,7 @@ | |
STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl); | |
for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) { | |
if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) { | |
- if (cipher->valid) { | |
+ if (1 /*cipher->valid*/) { | |
QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher); | |
if (!ciph.isNull()) { | |
if (!ciph.name().toLower().startsWith(QLatin1String("adh"))) | |
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl_symbols.cpp 2020-02-19 15:04:05.898340233 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2020-02-19 15:05:39.488742073 +0900 | |
@@ -111,16 +111,13 @@ | |
DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return); | |
DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return) | |
DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return) | |
-DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return) | |
+DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return) | |
DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return) | |
DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return) | |
-DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) | |
+DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) | |
DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return) | |
DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return) | |
-DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG) | |
-DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG) | |
-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG) | |
+DEFINEFUNC3(void, CRYPTO_free, void *a, a, const char *file, file, int line, line, return, DUMMYARG) | |
DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG) | |
#if OPENSSL_VERSION_NUMBER < 0x00908000L | |
DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return) | |
@@ -157,11 +154,11 @@ | |
DEFINEFUNC2(void, RAND_seed, const void *a, a, int b, b, return, DUMMYARG) | |
DEFINEFUNC(int, RAND_status, void, DUMMYARG, return -1, return) | |
DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG) | |
-DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return) | |
-DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG) | |
+DEFINEFUNC(int, OPENSSL_sk_num, STACK *a, a, return -1, return) | |
+DEFINEFUNC2(void, OPENSSL_sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG) | |
#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG) | |
-DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return 0, return) | |
+DEFINEFUNC(void, OPENSSL_sk_free, _STACK *a, a, return, DUMMYARG) | |
+DEFINEFUNC2(void *, OPENSSL_sk_value, STACK *a, a, int b, b, return 0, return) | |
#else | |
DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG) | |
DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return) | |
@@ -178,11 +175,6 @@ | |
#endif | |
DEFINEFUNC4(long, SSL_CTX_ctrl, SSL_CTX *a, a, int b, b, long c, c, void *d, d, return -1, return) | |
DEFINEFUNC(void, SSL_CTX_free, SSL_CTX *a, a, return, DUMMYARG) | |
-#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-DEFINEFUNC(SSL_CTX *, SSL_CTX_new, const SSL_METHOD *a, a, return 0, return) | |
-#else | |
-DEFINEFUNC(SSL_CTX *, SSL_CTX_new, SSL_METHOD *a, a, return 0, return) | |
-#endif | |
DEFINEFUNC2(int, SSL_CTX_set_cipher_list, SSL_CTX *a, a, const char *b, b, return -1, return) | |
DEFINEFUNC(int, SSL_CTX_set_default_verify_paths, SSL_CTX *a, a, return -1, return) | |
DEFINEFUNC3(void, SSL_CTX_set_verify, SSL_CTX *a, a, int b, b, int (*c)(int, X509_STORE_CTX *), c, return, DUMMYARG) | |
@@ -213,8 +205,7 @@ | |
#else | |
DEFINEFUNC(long, SSL_get_verify_result, SSL *a, a, return -1, return) | |
#endif | |
-DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return) | |
-DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG) | |
+DEFINEFUNC2(int, OPENSSL_init_ssl, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return -1, return) | |
DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return 0, return) | |
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) | |
DEFINEFUNC4(long, SSL_ctrl, SSL *a, a, int cmd, cmd, long larg, larg, void *parg, parg, return -1, return) | |
@@ -225,26 +216,10 @@ | |
DEFINEFUNC(void, SSL_set_connect_state, SSL *a, a, return, DUMMYARG) | |
DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, return) | |
#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-#ifndef OPENSSL_NO_SSL2 | |
-DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-#endif | |
-DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-#ifndef OPENSSL_NO_SSL2 | |
-DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
-#endif | |
-DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
#else | |
-DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
-DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) | |
#endif | |
DEFINEFUNC3(int, SSL_write, SSL *a, a, const void *b, b, int c, c, return -1, return) | |
@@ -274,7 +249,7 @@ | |
DEFINEFUNC(int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return) | |
DEFINEFUNC(int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return) | |
DEFINEFUNC(X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return) | |
-DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return) | |
+DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return) | |
DEFINEFUNC(X509_STORE_CTX *, X509_STORE_CTX_new, DUMMYARG, DUMMYARG, return 0, return) | |
#ifdef SSLEAY_MACROS | |
DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return) | |
@@ -282,10 +257,8 @@ | |
DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a, unsigned char **b, b, long c, c, return 0, return) | |
DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c, c, return 0, return) | |
#endif | |
-DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG) | |
-DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG) | |
DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return) | |
-DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return) | |
+DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return) | |
#ifdef Q_OS_SYMBIAN | |
#define RESOLVEFUNC(func, ordinal, lib) \ | |
@@ -431,14 +404,14 @@ | |
pair.first = 0; | |
pair.second = 0; | |
- QSystemLibrary *ssleay32 = new QSystemLibrary(QLatin1String("ssleay32")); | |
+ QSystemLibrary *ssleay32 = new QSystemLibrary(QLatin1String("libssl-1_1")); | |
if (!ssleay32->load(false)) { | |
// Cannot find ssleay32.dll | |
delete ssleay32; | |
return pair; | |
} | |
- QSystemLibrary *libeay32 = new QSystemLibrary(QLatin1String("libeay32")); | |
+ QSystemLibrary *libeay32 = new QSystemLibrary(QLatin1String("libcrypto-1_1")); | |
if (!libeay32->load(false)) { | |
delete ssleay32; | |
delete libeay32; | |
@@ -580,7 +553,7 @@ | |
static volatile bool symbolsResolved = false; | |
static volatile bool triedToResolveSymbols = false; | |
#ifndef QT_NO_THREAD | |
- QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init)); | |
+ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl)); | |
#endif | |
if (symbolsResolved) | |
return true; | |
@@ -615,8 +588,6 @@ | |
RESOLVEFUNC(BN_num_bits, 387, libs.second ) | |
RESOLVEFUNC(CRYPTO_free, 469, libs.second ) | |
RESOLVEFUNC(CRYPTO_num_locks, 500, libs.second ) | |
- RESOLVEFUNC(CRYPTO_set_id_callback, 513, libs.second ) | |
- RESOLVEFUNC(CRYPTO_set_locking_callback, 516, libs.second ) | |
RESOLVEFUNC(DSA_free, 594, libs.second ) | |
RESOLVEFUNC(ERR_error_string, 744, libs.second ) | |
RESOLVEFUNC(ERR_get_error, 749, libs.second ) | |
@@ -654,7 +625,6 @@ | |
RESOLVEFUNC(SSL_CTX_check_private_key, 21, libs.first ) | |
RESOLVEFUNC(SSL_CTX_ctrl, 22, libs.first ) | |
RESOLVEFUNC(SSL_CTX_free, 24, libs.first ) | |
- RESOLVEFUNC(SSL_CTX_new, 35, libs.first ) | |
RESOLVEFUNC(SSL_CTX_set_cipher_list, 40, libs.first ) | |
RESOLVEFUNC(SSL_CTX_set_default_verify_paths, 44, libs.first ) | |
RESOLVEFUNC(SSL_CTX_set_verify, 56, libs.first ) | |
@@ -674,8 +644,7 @@ | |
RESOLVEFUNC(SSL_get_peer_cert_chain, 117, libs.first ) | |
RESOLVEFUNC(SSL_get_peer_certificate, 118, libs.first ) | |
RESOLVEFUNC(SSL_get_verify_result, 132, libs.first ) | |
- RESOLVEFUNC(SSL_library_init, 137, libs.first ) | |
- RESOLVEFUNC(SSL_load_error_strings, 139, libs.first ) | |
+ RESOLVEFUNC(OPENSSL_init_ssl, 137, libs.first ) | |
RESOLVEFUNC(SSL_new, 140, libs.first ) | |
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) | |
RESOLVEFUNC(SSL_ctrl, 95, libs.first ) | |
@@ -686,13 +655,7 @@ | |
RESOLVEFUNC(SSL_set_connect_state, 152, libs.first ) | |
RESOLVEFUNC(SSL_shutdown, 173, libs.first ) | |
RESOLVEFUNC(SSL_write, 188, libs.first ) | |
- RESOLVEFUNC(SSLv2_client_method, 192, libs.first ) | |
- RESOLVEFUNC(SSLv3_client_method, 195, libs.first ) | |
- RESOLVEFUNC(SSLv23_client_method, 189, libs.first ) | |
RESOLVEFUNC(TLSv1_client_method, 198, libs.first ) | |
- RESOLVEFUNC(SSLv2_server_method, 194, libs.first ) | |
- RESOLVEFUNC(SSLv3_server_method, 197, libs.first ) | |
- RESOLVEFUNC(SSLv23_server_method, 191, libs.first ) | |
RESOLVEFUNC(TLSv1_server_method, 200, libs.first ) | |
RESOLVEFUNC(SSL_CTX_load_verify_locations, 34, libs.first ) | |
RESOLVEFUNC(X509_NAME_entry_count, 1821, libs.second ) | |
@@ -727,9 +690,7 @@ | |
RESOLVEFUNC(d2i_DSAPrivateKey, 2220, libs.second ) | |
RESOLVEFUNC(d2i_RSAPrivateKey, 2296, libs.second ) | |
#endif | |
- RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf, 1153, libs.second ) | |
- RESOLVEFUNC(OPENSSL_add_all_algorithms_conf, 1152, libs.second ) | |
- RESOLVEFUNC(SSLeay, 1504, libs.second ) | |
+ RESOLVEFUNC(OpenSSL_version_num, 1504, libs.second ) | |
#else // Q_OS_SYMBIAN | |
#ifdef SSLEAY_MACROS | |
RESOLVEFUNC(ASN1_dup) | |
@@ -747,9 +708,6 @@ | |
RESOLVEFUNC(BIO_write) | |
RESOLVEFUNC(BN_num_bits) | |
RESOLVEFUNC(CRYPTO_free) | |
- RESOLVEFUNC(CRYPTO_num_locks) | |
- RESOLVEFUNC(CRYPTO_set_id_callback) | |
- RESOLVEFUNC(CRYPTO_set_locking_callback) | |
RESOLVEFUNC(DSA_free) | |
RESOLVEFUNC(ERR_error_string) | |
RESOLVEFUNC(ERR_get_error) | |
@@ -779,15 +737,14 @@ | |
RESOLVEFUNC(RAND_seed) | |
RESOLVEFUNC(RAND_status) | |
RESOLVEFUNC(RSA_free) | |
- RESOLVEFUNC(sk_free) | |
- RESOLVEFUNC(sk_num) | |
- RESOLVEFUNC(sk_pop_free) | |
- RESOLVEFUNC(sk_value) | |
+ RESOLVEFUNC(OPENSSL_sk_free) | |
+ RESOLVEFUNC(OPENSSL_sk_num) | |
+ RESOLVEFUNC(OPENSSL_sk_pop_free) | |
+ RESOLVEFUNC(OPENSSL_sk_value) | |
RESOLVEFUNC(SSL_CIPHER_description) | |
RESOLVEFUNC(SSL_CTX_check_private_key) | |
RESOLVEFUNC(SSL_CTX_ctrl) | |
RESOLVEFUNC(SSL_CTX_free) | |
- RESOLVEFUNC(SSL_CTX_new) | |
RESOLVEFUNC(SSL_CTX_set_cipher_list) | |
RESOLVEFUNC(SSL_CTX_set_default_verify_paths) | |
RESOLVEFUNC(SSL_CTX_set_verify) | |
@@ -807,8 +764,7 @@ | |
RESOLVEFUNC(SSL_get_peer_cert_chain) | |
RESOLVEFUNC(SSL_get_peer_certificate) | |
RESOLVEFUNC(SSL_get_verify_result) | |
- RESOLVEFUNC(SSL_library_init) | |
- RESOLVEFUNC(SSL_load_error_strings) | |
+ RESOLVEFUNC(OPENSSL_init_ssl) | |
RESOLVEFUNC(SSL_new) | |
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) | |
RESOLVEFUNC(SSL_ctrl) | |
@@ -819,17 +775,7 @@ | |
RESOLVEFUNC(SSL_set_connect_state) | |
RESOLVEFUNC(SSL_shutdown) | |
RESOLVEFUNC(SSL_write) | |
-#ifndef OPENSSL_NO_SSL2 | |
- RESOLVEFUNC(SSLv2_client_method) | |
-#endif | |
- RESOLVEFUNC(SSLv3_client_method) | |
- RESOLVEFUNC(SSLv23_client_method) | |
RESOLVEFUNC(TLSv1_client_method) | |
-#ifndef OPENSSL_NO_SSL2 | |
- RESOLVEFUNC(SSLv2_server_method) | |
-#endif | |
- RESOLVEFUNC(SSLv3_server_method) | |
- RESOLVEFUNC(SSLv23_server_method) | |
RESOLVEFUNC(TLSv1_server_method) | |
RESOLVEFUNC(X509_NAME_entry_count) | |
RESOLVEFUNC(X509_NAME_get_entry) | |
@@ -846,7 +792,7 @@ | |
RESOLVEFUNC(X509_STORE_CTX_get_error) | |
RESOLVEFUNC(X509_STORE_CTX_get_error_depth) | |
RESOLVEFUNC(X509_STORE_CTX_get_current_cert) | |
- RESOLVEFUNC(X509_STORE_CTX_get_chain) | |
+ RESOLVEFUNC(X509_STORE_CTX_get0_chain) | |
RESOLVEFUNC(X509_cmp) | |
#ifndef SSLEAY_MACROS | |
RESOLVEFUNC(X509_dup) | |
@@ -867,10 +813,8 @@ | |
RESOLVEFUNC(d2i_DSAPrivateKey) | |
RESOLVEFUNC(d2i_RSAPrivateKey) | |
#endif | |
- RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf) | |
- RESOLVEFUNC(OPENSSL_add_all_algorithms_conf) | |
RESOLVEFUNC(SSL_CTX_load_verify_locations) | |
- RESOLVEFUNC(SSLeay) | |
+ RESOLVEFUNC(OpenSSL_version_num) | |
#endif // Q_OS_SYMBIAN | |
symbolsResolved = true; | |
delete libs.first; | |
diff -urN qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl_symbols_p.h qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h | |
--- qt-everywhere-opensource-src-4.8.7-orig/src/network/ssl/qsslsocket_openssl_symbols_p.h 2020-02-19 15:04:05.898340233 +0900 | |
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2020-02-19 15:05:39.488742073 +0900 | |
@@ -207,16 +207,13 @@ | |
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b); | |
long q_BIO_ctrl(BIO *a, int b, long c, void *d); | |
int q_BIO_free(BIO *a); | |
-BIO *q_BIO_new(BIO_METHOD *a); | |
+BIO *q_BIO_new(const BIO_METHOD *a); | |
BIO *q_BIO_new_mem_buf(void *a, int b); | |
int q_BIO_read(BIO *a, void *b, int c); | |
-BIO_METHOD *q_BIO_s_mem(); | |
+const BIO_METHOD *q_BIO_s_mem(); | |
int q_BIO_write(BIO *a, const void *b, int c); | |
int q_BN_num_bits(const BIGNUM *a); | |
-int q_CRYPTO_num_locks(); | |
-void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int)); | |
-void q_CRYPTO_set_id_callback(unsigned long (*a)()); | |
-void q_CRYPTO_free(void *a); | |
+void q_CRYPTO_free(void *a, const char *file, int line); | |
void q_DSA_free(DSA *a); | |
#if OPENSSL_VERSION_NUMBER >= 0x00908000L | |
// 0.9.8 broke SC and BC by changing this function's signature. | |
@@ -258,11 +255,11 @@ | |
void q_RAND_seed(const void *a, int b); | |
int q_RAND_status(); | |
void q_RSA_free(RSA *a); | |
-int q_sk_num(STACK *a); | |
-void q_sk_pop_free(STACK *a, void (*b)(void *)); | |
+int q_OPENSSL_sk_num(STACK *a); | |
+void q_OPENSSL_sk_pop_free(STACK *a, void (*b)(void *)); | |
#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-void q_sk_free(_STACK *a); | |
-void * q_sk_value(STACK *a, int b); | |
+void q_OPENSSL_sk_free(_STACK *a); | |
+void * q_OPENSSL_sk_value(STACK *a, int b); | |
#else | |
void q_sk_free(STACK *a); | |
char * q_sk_value(STACK *a, int b); | |
@@ -279,11 +276,6 @@ | |
#endif | |
long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d); | |
void q_SSL_CTX_free(SSL_CTX *a); | |
-#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a); | |
-#else | |
-SSL_CTX *q_SSL_CTX_new(SSL_METHOD *a); | |
-#endif | |
int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b); | |
int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a); | |
void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *)); | |
@@ -314,8 +306,7 @@ | |
#else | |
long q_SSL_get_verify_result(SSL *a); | |
#endif | |
-int q_SSL_library_init(); | |
-void q_SSL_load_error_strings(); | |
+int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); | |
SSL *q_SSL_new(SSL_CTX *a); | |
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) | |
long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg); | |
@@ -326,22 +317,10 @@ | |
void q_SSL_set_connect_state(SSL *a); | |
int q_SSL_shutdown(SSL *a); | |
#if OPENSSL_VERSION_NUMBER >= 0x10000000L | |
-const SSL_METHOD *q_SSLv2_client_method(); | |
-const SSL_METHOD *q_SSLv3_client_method(); | |
-const SSL_METHOD *q_SSLv23_client_method(); | |
const SSL_METHOD *q_TLSv1_client_method(); | |
-const SSL_METHOD *q_SSLv2_server_method(); | |
-const SSL_METHOD *q_SSLv3_server_method(); | |
-const SSL_METHOD *q_SSLv23_server_method(); | |
const SSL_METHOD *q_TLSv1_server_method(); | |
#else | |
-SSL_METHOD *q_SSLv2_client_method(); | |
-SSL_METHOD *q_SSLv3_client_method(); | |
-SSL_METHOD *q_SSLv23_client_method(); | |
SSL_METHOD *q_TLSv1_client_method(); | |
-SSL_METHOD *q_SSLv2_server_method(); | |
-SSL_METHOD *q_SSLv3_server_method(); | |
-SSL_METHOD *q_SSLv23_server_method(); | |
SSL_METHOD *q_TLSv1_server_method(); | |
#endif | |
int q_SSL_write(SSL *a, const void *b, int c); | |
@@ -377,7 +356,7 @@ | |
int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); | |
int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); | |
X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); | |
-STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); | |
+STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); | |
#define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) | |
#define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) | |
@@ -399,9 +378,13 @@ | |
PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\ | |
bp,(char *)x,enc,kstr,klen,cb,u) | |
#endif | |
-#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) | |
-#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st) | |
-#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i) | |
+//#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) | |
+#define q_sk_pop_free q_OPENSSL_sk_pop_free | |
+#define q_sk_free q_OPENSSL_sk_free | |
+#define q_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st) | |
+#define q_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i) | |
+#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st) | |
+#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i) | |
#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st)) | |
#define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i)) | |
#define q_sk_X509_num(st) q_SKM_sk_num(X509, (st)) | |
@@ -416,15 +399,10 @@ | |
(char *)(rsa)) | |
#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ | |
(char *)(dsa)) | |
-#ifdef OPENSSL_LOAD_CONF | |
-#define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf() | |
-#else | |
-#define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_noconf() | |
-#endif | |
-void q_OPENSSL_add_all_algorithms_noconf(); | |
-void q_OPENSSL_add_all_algorithms_conf(); | |
+#define q_OpenSSL_add_all_algorithms() \ | |
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) | |
int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath); | |
-long q_SSLeay(); | |
+long q_OpenSSL_version_num(); | |
// Helper function | |
class QDateTime; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment