diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-01-14 13:54:18 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-01-21 23:01:33 +0100 |
commit | ee89f3a6e39e53013f132f3721332d433817a546 (patch) | |
tree | b34ce4cb9c03e5e42d559704f78abcb8fb463cb5 /src/network/ssl/qssl.cpp | |
parent | 509196b1d9c1ec9c483d3b7c84168494ef804f95 (diff) |
QSslSocket - introduce the API providing information about backends
This API gives the names of available backends and provides a basic
information about features/protocols supported by those backends.
Also, it has the 'loadBackend' functions which allow to select
a particular backend (which are becoming plugins).
At the moment, the implementation is still 'hardcoded', the
follow-up patch will allow to select different backends in runtime.
Task-number: QTBUG-65922
Change-Id: I05877de9c02857594e76b24d52e7578bdb01df69
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/ssl/qssl.cpp')
-rw-r--r-- | src/network/ssl/qssl.cpp | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp index ffa211630e..fffb30fafb 100644 --- a/src/network/ssl/qssl.cpp +++ b/src/network/ssl/qssl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtNetwork module of the Qt Toolkit. @@ -243,4 +243,51 @@ Q_LOGGING_CATEGORY(lcSsl, "qt.network.ssl"); \value UnknownAlertMessage */ +/*! + \enum QSsl::ImplementedClass + \brief Enumerates classes that a TLS backend implements + \relates QSslSocket + \since 6.1 + + \ingroup network + \ingroup ssl + \inmodule QtNetwork + + In QtNetwork, some classes have backend-specific implementation and thus + can be left unimplemented. Enumerators in this enum indicate, which class + has a working implementation in the backend. + + \value Key Class QSslKey. + \value Certificate Class QSslCertificate. + \value Socket Class QSslSocket. + \value DiffieHellman Class QSslDiffieHellmanParameters + \value EllipticCurve Class QSslEllipticCurve + \value Dtls Classes QDtls and QDtlsClientVerifier +*/ + +/*! + \enum QSsl::SupportedFeature + \brief Enumerates possible features that a TLS backend supports + \relates QSslSocket + \since 6.1 + + \ingroup network + \ingroup ssl + \inmodule QtNetwork + + In QtNetwork TLS-related classes have public API, that may be left unimplemented + by some backend, for example, our SecureTransport backend does not support + server-side ALPN. Enumerators from SupportedFeature enum indicate that a particular + feature is supported. + + \value CertificateVerification Indicates that QSslCertificate::verify() is + implemented by the backend. + \value ClientSideAlpn Client-side ALPN (Application Layer Protocol Negotiation). + \value ServerSideAlpn Server-side ALPN. + \value Ocsp OCSP stapling (Online Certificate Status Protocol). + \value Psk Pre-shared keys. + \value SessionTicket Session tickets. + \value Alerts Information about alert messages sent and received. +*/ + QT_END_NAMESPACE |