Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtlsbackend_schannel_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QTLSBACKEND_ST_P_H
6#define QTLSBACKEND_ST_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <private/qtnetworkglobal_p.h>
20
21#include <QtNetwork/private/qtlsbackend_p.h>
22
23#include <QtCore/qglobal.h>
24
25
26QT_BEGIN_NAMESPACE
27
28class QSchannelBackend : public QTlsBackend
29{
30 Q_OBJECT
31 Q_PLUGIN_METADATA(IID QTlsBackend_iid)
32 Q_INTERFACES(QTlsBackend)
33
34public:
35 static void ensureInitializedImplementation();
36
37private:
38 long tlsLibraryVersionNumber() const override;
39 QString tlsLibraryVersionString() const override;
40 long tlsLibraryBuildVersionNumber() const override;
41 QString tlsLibraryBuildVersionString() const override;
42 void ensureInitialized() const override;
43
44 static void resetDefaultCiphers();
45
46 QString backendName() const override;
47 QList<QSsl::SslProtocol> supportedProtocols() const override;
48 QList<QSsl::SupportedFeature> supportedFeatures() const override;
49 QList<QSsl::ImplementedClass> implementedClasses() const override;
50
51 QTlsPrivate::TlsKey *createKey() const override;
52 QTlsPrivate::X509Certificate *createCertificate() const override;
53
54 QTlsPrivate::TlsCryptograph * createTlsCryptograph() const override;
55
56 QList<QSslCertificate> systemCaCertificates() const override;
57 static QList<QSslCertificate> systemCaCertificatesImplementation();
58
59 QTlsPrivate::X509PemReaderPtr X509PemReader() const override;
60 QTlsPrivate::X509DerReaderPtr X509DerReader() const override;
61 QTlsPrivate::X509Pkcs12ReaderPtr X509Pkcs12Reader() const override;
62
63 static bool s_loadedCiphersAndCerts;
64};
65
66Q_DECLARE_LOGGING_CATEGORY(lcTlsBackendSchannel)
67
68QT_END_NAMESPACE
69
70#endif // QTLSBACKEND_ST_P_H
void init(QSslSocket *q, QSslSocketPrivate *d) override
QSsl::SslProtocol sessionProtocol() const override
bool hasUndecryptedData() const override
QSslCipher sessionCipher() const override
QList< QSslError > tlsErrors() const override
Q_DISABLE_COPY_MOVE(X509CertificateSchannel)
Namespace containing onternal types that TLS backends implement.
QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED std::array< SchannelCipherInfo, 44 > schannelCipherInfo
QList< QSslCipher > defaultCiphers()
UNICODE_STRING cbcChainingMode
QList< CRYPTO_SETTINGS > cryptoSettingsForCiphers(const QList< QSslCipher > &ciphers)
bool containsTls13Cipher(const QList< QSslCipher > &ciphers)
UNICODE_STRING gcmChainingMode
QList< QSslCipher > ciphersByName(QStringView schannelSuiteName)
static void attachPrivateKeyToCertificate(const QSslCertificate &certificate, const QSslKey &privateKey)
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
Q_GLOBAL_STATIC(QReadWriteLock, g_updateMutex)
#define SP_PROT_TLS1_0_SERVER
#define SP_PROT_TLS1_1_SERVER
#define SP_PROT_TLS1_2_SERVER
#define BCRYPT_ECDSA_ALGORITHM
#define SP_PROT_TLS1_2
#define SP_PROT_TLS1_3_SERVER
#define MAP_PROTOCOL(sp_protocol, q_protocol)
#define SP_PROT_TLS1_0
#define SP_PROT_TLS1_3
#define CHECK_STATUS(status)
#define CHECK_ATTRIBUTE(attributeName)
#define DEBUG_WARN(message)
QByteArray _q_makePkcs12(const QList< QSslCertificate > &certs, const QSslKey &key, const QString &passPhrase)
#define SP_PROT_TLS1_1_CLIENT
#define SP_PROT_TLS1_SERVER
QAsn1Element _q_PKCS12_key(const QSslKey &key)
#define BCRYPT_ECDH_ALGORITHM
#define SP_PROT_TLS1_3_CLIENT
#define SP_PROT_TLS1_1
#define SEC_E_APPLICATION_PROTOCOL_MISMATCH
#define SP_PROT_TLS1_CLIENT
#define SP_PROT_TLS1_0_CLIENT
#define SECBUFFER_ALERT
#define SP_PROT_TLS1_2_CLIENT
QList< QSsl::SslProtocol > protocols