diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-01-26 17:20:29 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-02-18 17:13:30 +0000 |
commit | 64a878e36b178ddb3834c6ca782a6ebefed6aed8 (patch) | |
tree | 71b972c44c9b309abc2892b2f53ea044ee9ebb33 /src/network/ssl/qsslsocket_openssl.cpp | |
parent | 0d4fb41e8c00263a0d385b70cc066776cbf6cc37 (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.cpp | 77 |
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) { |