<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/facea54fb2cf383c404c0b96eee1c5da5da686a7">https://github.com/macports/macports-ports/commit/facea54fb2cf383c404c0b96eee1c5da5da686a7</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new facea54  qt4-mac: fix build against openssl 1.1.1
</span>facea54 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit facea54fb2cf383c404c0b96eee1c5da5da686a7
</span>Author: ken-cunningham-webuse <ken.cunningham.webuse@gmail.com>
AuthorDate: Sun Sep 1 16:40:00 2019 -0700

<span style='display:block; white-space:pre;color:#404040;'>    qt4-mac: fix build against openssl 1.1.1
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    this PR uses a debian patch discovered and tweaked
</span><span style='display:block; white-space:pre;color:#404040;'>    by @RJVB - many thanks - builds against openssl 1.1.1
</span><span style='display:block; white-space:pre;color:#404040;'>    and also against openssl 1.0.2r
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    closes: https://trac.macports.org/ticket/58205
</span>---
 aqua/qt4-mac/Portfile                        |   4 +
 aqua/qt4-mac/files/patch-qt4-openssl111.diff | 398 +++++++++++++++++++++++++++
 2 files changed, 402 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/Portfile b/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c73926c..0445344 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -350,6 +350,10 @@ patchfiles-append patch-src_corelib_io_qsettings.cpp.diff
</span> 
 patchfiles-append patch-src_gui_text_qfontengine_coretext.mm.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# fix build against openssl 1.1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://trac.macports.org/ticket/58205
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-qt4-openssl111.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # error out if trying to build on a new OSX version (> 10.15).
 
 platform darwin {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-qt4-openssl111.diff b/aqua/qt4-mac/files/patch-qt4-openssl111.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..16dc109
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-qt4-openssl111.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,398 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+see https://trac.macports.org/ticket/58205
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Description: Compile with openssl-1.1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Most changes are related to openssl structures are now opaque. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * The network/ssl threading setup has been disabled because the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   old openssl threading model has been removed and is apparently
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   no longer needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * A number of new functions had to be imported (see changes to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   src/network/ssl/qsslsocket_openssl_symbols.cpp) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Author: Gert Wollny  <gw.fossdev@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Last-Update: 2016-06-28
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Bug-Debian: http://bugs.debian.org/828522
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/qsslcertificate.cpp src/network/ssl/qsslcertificate.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0f2314e2..96f6de43 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/qsslcertificate.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/qsslcertificate.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -259,10 +259,10 @@ void QSslCertificate::clear()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QByteArray QSslCertificate::version() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (d->versionString.isEmpty() && d->x509)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (d->versionString.isEmpty() && d->x509) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         d->versionString =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return d->versionString;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -276,7 +276,7 @@ QByteArray QSslCertificate::serialNumber() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (d->serialNumberString.isEmpty() && d->x509) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // if we cannot convert to a long, just output the hexadecimal number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (serialNumber->length > 4) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             QByteArray hexString;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -489,24 +489,33 @@ QSslKey QSslCertificate::publicKey() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QSslKey key;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     key.d->type = QSsl::PublicKey;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     X509_PUBKEY *xkey = d->x509->cert_info->key;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT(pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    int key_id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    key_id = q_EVP_PKEY_type(pkey->type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    key_id = q_EVP_PKEY_base_id(pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (key_id == EVP_PKEY_RSA) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->algorithm = QSsl::Rsa;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->isNull = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else if (key_id == EVP_PKEY_DSA) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->algorithm = QSsl::Dsa;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         key.d->isNull = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else if (key_id == EVP_PKEY_DH) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // DH unsupported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // error?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     q_EVP_PKEY_free(pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return key;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -687,7 +696,7 @@ static QMap<QString, QString> _q_mapFromX509Name(X509_NAME *name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         unsigned char *data = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        q_CRYPTO_free(data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        q_OPENSSL_free(data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/qsslkey.cpp src/network/ssl/qsslkey.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 437a177b..73753206 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/qsslkey.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/qsslkey.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -321,8 +321,19 @@ int QSslKey::length() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (d->isNull)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return (d->algorithm == QSsl::Rsa)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (d->algorithm == QSsl::Rsa) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return q_RSA_bits(d->rsa);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const BIGNUM *p = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        q_DSA_get0_pqg(d->dsa, &p, NULL, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return q_BN_num_bits(p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/qsslsocket_openssl.cpp src/network/ssl/qsslsocket_openssl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8eba0761..12e9f47a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/qsslsocket_openssl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/qsslsocket_openssl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,6 +93,7 @@ bool QSslSocketPrivate::s_libraryLoaded = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QSslSocketPrivate::s_loadRootCertsOnDemand = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* \internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     From OpenSSL's thread(3) manual page:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -174,6 +175,8 @@ static unsigned long id_function()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } // extern "C"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QSslSocketBackendPrivate::QSslSocketBackendPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     : ssl(0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ctx(0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -222,9 +225,12 @@ QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(SSL_CIPHER *ciph
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ciph.d->encryptionMethod = descriptionList.at(4).mid(4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ciph.d->bits = cipher->strength_bits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ciph.d->supportedBits = cipher->alg_bits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ciph;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -367,7 +373,7 @@ init_context:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // See also: QSslContext::fromConfiguration()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -504,8 +510,10 @@ void QSslSocketBackendPrivate::destroySslContext()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QSslSocketPrivate::deinitialize()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     q_CRYPTO_set_id_callback(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     q_CRYPTO_set_locking_callback(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -526,13 +534,17 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Check if the library itself needs to be initialized.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QMutexLocker locker(openssl_locks()->initLock());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!s_libraryLoaded) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         s_libraryLoaded = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Initialize OpenSSL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_CRYPTO_set_id_callback(id_function);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_CRYPTO_set_locking_callback(locking_function);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (q_SSL_library_init() != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_SSL_load_error_strings();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -571,7 +583,9 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    QMutexLocker locker(openssl_locks()->initLock());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QMutexLocker locker(openssl_locks()->initLock());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (s_loadedCiphersAndCerts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     s_loadedCiphersAndCerts = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -663,13 +677,18 @@ void QSslSocketPrivate::resetDefaultCiphers()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if (cipher->valid) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (cipher->valid) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (!ciph.isNull()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     if (!ciph.name().toLower().startsWith(QLatin1String("adh")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         ciphers << ciph;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/qsslsocket_openssl_symbols.cpp src/network/ssl/qsslsocket_openssl_symbols.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b20baa27..507fc3e2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/qsslsocket_openssl_symbols.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/qsslsocket_openssl_symbols.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,16 +111,24 @@ DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(void, OPENSSL_free, void *a, a, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if  OPENSSL_VERSION_NUMBER < 0x00908000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,6 +298,22 @@ DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(int, RSA_bits,  const RSA *rsa, rsa, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef Q_OS_SYMBIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RESOLVEFUNC(func, ordinal, lib) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -801,6 +825,7 @@ bool q_resolveOpenSslSymbols()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_CTX_use_PrivateKey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(SSL_CTX_get_cert_store)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_accept)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_clear)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -823,6 +848,23 @@ bool q_resolveOpenSslSymbols()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_set_connect_state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_shutdown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSL_write)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(X509_get_serialNumber)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(SSL_CTX_ctrl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(EVP_PKEY_id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(EVP_PKEY_base_id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(SSL_CIPHER_get_bits)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(SSL_CTX_set_options)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(X509_get_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(X509_get_X509_PUBKEY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(RSA_bits)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(DSA_security_bits)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(DSA_get0_pqg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(X509_get_notAfter)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    RESOLVEFUNC(X509_get_notBefore)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef OPENSSL_NO_SSL2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RESOLVEFUNC(SSLv2_client_method)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/network/ssl/qsslsocket_openssl_symbols_p.h src/network/ssl/qsslsocket_openssl_symbols_p.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2bfe0632..3054df01 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/network/ssl/qsslsocket_openssl_symbols_p.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/network/ssl/qsslsocket_openssl_symbols_p.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,6 +59,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QT_BEGIN_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DUMMYARG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef OPENSSL_NO_SSL2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define OPENSSL_NO_SSL2 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined QT_LINKED_OPENSSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // **************** Shared declarations ******************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,16 +210,24 @@ int q_ASN1_STRING_length(ASN1_STRING *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long q_BIO_ctrl(BIO *a, int b, long c, void *d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_BIO_free(BIO *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++BIO *q_BIO_new(const BIO_METHOD *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BIO *q_BIO_new(BIO_METHOD *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BIO *q_BIO_new_mem_buf(void *a, int b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_BIO_read(BIO *a, void *b, int c);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const BIO_METHOD *q_BIO_s_mem();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BIO_METHOD *q_BIO_s_mem();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_BIO_write(BIO *a, const void *b, int c);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_BN_num_bits(const BIGNUM *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_CRYPTO_num_locks();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void q_CRYPTO_set_id_callback(unsigned long (*a)());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void q_CRYPTO_free(void *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void q_OPENSSL_free(void *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void q_DSA_free(DSA *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if OPENSSL_VERSION_NUMBER >= 0x00908000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // 0.9.8 broke SC and BC by changing this function's signature.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,7 +337,6 @@ void q_SSL_set_accept_state(SSL *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void q_SSL_set_connect_state(SSL *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int q_SSL_shutdown(SSL *a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-const SSL_METHOD *q_SSLv2_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const SSL_METHOD *q_SSLv3_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const SSL_METHOD *q_SSLv23_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const SSL_METHOD *q_TLSv1_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -335,7 +345,6 @@ const SSL_METHOD *q_SSLv3_server_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const SSL_METHOD *q_SSLv23_server_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const SSL_METHOD *q_TLSv1_server_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-SSL_METHOD *q_SSLv2_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SSL_METHOD *q_SSLv3_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SSL_METHOD *q_SSLv23_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SSL_METHOD *q_TLSv1_client_method();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -399,7 +408,25 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   bp,(char *)x,enc,kstr,klen,cb,u)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ASN1_INTEGER * q_X509_get_serialNumber(X509 *x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define q_X509_get_version(x) X509_get_version(x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int q_EVP_PKEY_id(const EVP_PKEY *pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int q_EVP_PKEY_base_id(const EVP_PKEY *pkey);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++long q_SSL_CTX_set_options(SSL_CTX *ctx, long options);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++long q_X509_get_version(X509 *x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int q_RSA_bits(const RSA *rsa);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int q_DSA_security_bits(const DSA *dsa);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -410,8 +437,15 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if OPENSSL_VERSION_NUMBER < 0x10100000L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_X509_get_notAfter(x) X509_get_notAfter(x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_X509_get_notBefore(x) X509_get_notBefore(x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ASN1_TIME *q_X509_get_notAfter(X509 *x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ASN1_TIME *q_X509_get_notBefore(X509 *x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   (char *)(rsa))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
</span></pre><pre style='margin:0'>

</pre>