summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslsocket_openssl.cpp
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2021-01-26 17:20:29 +0100
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2021-02-18 17:13:30 +0000
commit64a878e36b178ddb3834c6ca782a6ebefed6aed8 (patch)
tree71b972c44c9b309abc2892b2f53ea044ee9ebb33 /src/network/ssl/qsslsocket_openssl.cpp
parent0d4fb41e8c00263a0d385b70cc066776cbf6cc37 (diff)
Introduce QSsl::X509Certificate interface and its implementations
To enable QSslCertificate to use TLS plugins. All backend-specific code is to be moved from QSslCertificate(Private) making them backend-neutral. Task-number: QTBUG-90954 Task-number: QTBUG-65922 Change-Id: Ic9d5abf91e42ce81fe56239f95ae97b64035e950 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 405337ee7276be4b76e86745c0694c51283b6b07) Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/ssl/qsslsocket_openssl.cpp')
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp77
1 files changed, 3 insertions, 74 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index c73c2fc235..72cde16dce 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -67,7 +67,7 @@
#include "qsslpresharedkeyauthenticator_p.h"
#include "qocspresponse_p.h"
#include "qsslkey.h"
-#include "qtlsbackend_p.h"
+#include "qtlsbackend_openssl_p.h"
#include "qtlskey_openssl_p.h"
#ifdef Q_OS_WIN
@@ -101,80 +101,9 @@
QT_BEGIN_NAMESPACE
-namespace {
+Q_GLOBAL_STATIC(QTlsBackendOpenSSL, backend)
-// These two classes are ad-hoc temporary solution, to be replaced
-// by the real things soon.
-class OpenSSLBackend : public QTlsBackend
-{
-private:
- QString backendName() const override
- {
- return builtinBackendNames[nameIndexOpenSSL];
- }
- QSsl::TlsKey *createKey() const override
- {
- return new QSsl::TlsKeyOpenSSL;
- }
- QList<QSsl::SslProtocol> supportedProtocols() const override
- {
- QList<QSsl::SslProtocol> protocols;
-
- protocols << QSsl::AnyProtocol;
- protocols << QSsl::SecureProtocols;
- protocols << QSsl::TlsV1_0;
- protocols << QSsl::TlsV1_0OrLater;
- protocols << QSsl::TlsV1_1;
- protocols << QSsl::TlsV1_1OrLater;
- protocols << QSsl::TlsV1_2;
- protocols << QSsl::TlsV1_2OrLater;
-
-#ifdef TLS1_3_VERSION
- protocols << QSsl::TlsV1_3;
- protocols << QSsl::TlsV1_3OrLater;
-#endif // TLS1_3_VERSION
-
-#if QT_CONFIG(dtls)
- protocols << QSsl::DtlsV1_0;
- protocols << QSsl::DtlsV1_0OrLater;
- protocols << QSsl::DtlsV1_2;
- protocols << QSsl::DtlsV1_2OrLater;
-#endif // dtls
-
- return protocols;
- }
-
- QList<QSsl::SupportedFeature> supportedFeatures() const override
- {
- QList<QSsl::SupportedFeature> features;
-
- features << QSsl::SupportedFeature::CertificateVerification;
- features << QSsl::SupportedFeature::ClientSideAlpn;
- features << QSsl::SupportedFeature::ServerSideAlpn;
- features << QSsl::SupportedFeature::Ocsp;
- features << QSsl::SupportedFeature::Psk;
- features << QSsl::SupportedFeature::SessionTicket;
- features << QSsl::SupportedFeature::Alerts;
-
- return features;
- }
-
- QList<QSsl::ImplementedClass> implementedClasses() const override
- {
- QList<QSsl::ImplementedClass> classes;
-
- classes << QSsl::ImplementedClass::Key;
- classes << QSsl::ImplementedClass::Certificate;
- classes << QSsl::ImplementedClass::Socket;
- classes << QSsl::ImplementedClass::Dtls;
- classes << QSsl::ImplementedClass::EllipticCurve;
- classes << QSsl::ImplementedClass::DiffieHellman;
-
- return classes;
- }
-};
-
-Q_GLOBAL_STATIC(OpenSSLBackend, backend)
+namespace {
QSsl::AlertLevel tlsAlertLevel(int value)
{