bplist00Ñ_WebMainResourceÕ _WebResourceFrameName_WebResourceData_WebResourceMIMEType_WebResourceTextEncodingName^WebResourceURLPO
--- a/src/network/ssl/qsslsocket_mac.cpp +++ b/src/network/ssl/qsslsocket_mac.cpp @@ -879,6 +879,96 @@ QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSLCipherSuite(SSLCipherSui } return ciph; } +SSLCipherSuite QSslSocketBackendPrivate::SSLCipherSuite_from_QSslCipher(const QSslCipher &ciph) +{ + if (ciph.d->name == QLatin1String("NULL-MD5")) + return SSL_RSA_WITH_NULL_MD5; + if (ciph.d->name == QLatin1String("NULL-SHA")) + return SSL_RSA_WITH_NULL_SHA; + if (ciph.d->name == QLatin1String("RC4-MD5")) + return SSL_RSA_WITH_RC4_128_MD5; + if (ciph.d->name == QLatin1String("RC4-SHA")) + return SSL_RSA_WITH_RC4_128_SHA; + if (ciph.d->name == QLatin1String("AES128-SHA")) + return TLS_RSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("DHE-RSA-AES128-SHA")) + return TLS_DHE_RSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("AES256-SHA")) + return TLS_RSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("DHE-RSA-AES256-SHA")) + return TLS_DHE_RSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-NULL-SHA")) + return TLS_ECDH_ECDSA_WITH_NULL_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-RC4-SHA")) + return TLS_ECDH_ECDSA_WITH_RC4_128_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-DES-CBC3-SHA")) + return TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES128-SHA")) + return TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES256-SHA")) + return TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-NULL-SHA")) + return TLS_ECDHE_ECDSA_WITH_NULL_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-RC4-SHA")) + return TLS_ECDHE_ECDSA_WITH_RC4_128_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-DES-CBC3-SHA")) + return TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES128-SHA")) + return TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES256-SHA")) + return TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-NULL-SHA")) + return TLS_ECDH_RSA_WITH_NULL_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-RC4-SHA")) + return TLS_ECDH_RSA_WITH_RC4_128_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-DES-CBC3-SHA")) + return TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-AES128-SHA")) + return TLS_ECDH_RSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-AES256-SHA")) + return TLS_ECDH_RSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-NULL-SHA")) + return TLS_ECDHE_RSA_WITH_NULL_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-RC4-SHA")) + return TLS_ECDHE_RSA_WITH_RC4_128_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-DES-CBC3-SHA")) + return TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-AES128-SHA")) + return TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA; + if (ciph.d->name == QLatin1String("ECDH-RSA-AES256-SHA")) + return TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA; + if (ciph.d->name == QLatin1String("DES-CBC3-SHA")) + return TLS_RSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("AES128-SHA256")) + return TLS_RSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("AES256-SHA256")) + return TLS_RSA_WITH_AES_256_CBC_SHA256; + if (ciph.d->name == QLatin1String("DHE-RSA-DES-CBC3-SHA")) + return TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA; + if (ciph.d->name == QLatin1String("DHE-RSA-AES128-SHA256")) + return TLS_DHE_RSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("DHE-RSA-AES256-SHA256")) + return TLS_DHE_RSA_WITH_AES_256_CBC_SHA256; + if (ciph.d->name == QLatin1String("AES256-GCM-SHA384")) + return TLS_RSA_WITH_AES_256_GCM_SHA384; + if (ciph.d->name == QLatin1String("ECDHE-ECDSA-AES128-SHA256")) + return TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("ECDHE-ECDSA-AES256-SHA384")) + return TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES128-SHA256")) + return TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("ECDH-ECDSA-AES256-SHA384")) + return TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384; + if (ciph.d->name == QLatin1String("ECDHE-RSA-AES128-SHA256")) + return TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("ECDHE-RSA-AES256-SHA384")) + return TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384; + if (ciph.d->name == QLatin1String("ECDHE-RSA-AES256-SHA384")) + return TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256; + if (ciph.d->name == QLatin1String("ECDHE-RSA-AES256-GCM-SHA384")) + return TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384; + return 0; +} bool QSslSocketBackendPrivate::initSslContext() { @@ -994,6 +1084,10 @@ bool QSslSocketBackendPrivate::initSslContext() SSLSetDiffieHellmanParams(context, dhparam, sizeof(dhparam)); #endif } + QVector<SSLCipherSuite> cfCiphers; + for (const QSslCipher &cipher : configuration.ciphers) + cfCiphers << QSslSocketBackendPrivate::SSLCipherSuite_from_QSslCipher(cipher); + SSLSetEnabledCiphers(context, cfCiphers.data(), cfCiphers.size()); return true; } diff --git a/src/network/ssl/qsslsocket_mac_p.h b/src/network/ssl/qsslsocket_mac_p.h index 48aca964a1..dcd4f4de72 100644 --- a/src/network/ssl/qsslsocket_mac_p.h +++ b/src/network/ssl/qsslsocket_mac_p.h @@ -104,6 +104,7 @@ public: const QByteArray &passPhrase); static QSslCipher QSslCipher_from_SSLCipherSuite(SSLCipherSuite cipher); + static SSLCipherSuite SSLCipherSuite_from_QSslCipher(const QSslCipher &cipher); private: // SSL context management/properties:Ztext/plainUUTF-8_(https://paste.qt.io/pdzsxgd3h/jch9ok/raw ( ? Q g … ” •¹ÄÊ õ