4#ifndef QTLS_SCHANNEL_P_H
5#define QTLS_SCHANNEL_P_H
18#include <QtNetwork/private/qtnetworkglobal_p.h>
22#include "../shared/qwincrypt_p.h"
26#include <QtNetwork/private/qsslsocket_p.h>
29#define SCHANNEL_USE_BLACKLISTS 1
33#undef SCHANNEL_USE_BLACKLISTS
60 enum class SchannelState {
66 } schannelState = SchannelState::InitializeHandshake;
69 bool acquireCredentialsHandle();
70 ULONG getContextRequirements();
73 bool performHandshake();
74 bool verifyHandshake();
77 bool sendToken(
void *
token,
unsigned long tokenLength,
bool emitError =
true);
80 bool checkSslErrors();
81 void deallocateContext();
82 void freeCredentialsHandle();
83 void closeCertificateStores();
86 void initializeCertificateStores();
87 bool verifyCertContext(CERT_CONTEXT *certContext);
89 bool rootCertOnDemandLoadingAllowed();
96 SecPkgContext_CipherInfo cipherInfo = {};
97 SecPkgContext_ConnectionInfo connectionInfo = {};
98 SecPkgContext_StreamSizes streamSizes = {};
100 CredHandle credentialHandle;
101 CtxtHandle contextHandle;
109 const CERT_CONTEXT *localCertContext =
nullptr;
111 ULONG contextAttributes = 0;
114 bool renegotiating =
false;
115 bool shutdown =
false;
qsizetype size() const noexcept
Returns the number of bytes in this byte array.
The QSslCipher class represents an SSL cryptographic cipher.
The QSslSocket class provides an SSL encrypted socket for both clients and servers.
\macro QT_RESTRICTED_CAST_FROM_ASCII
void startClientEncryption() override
void disconnected() override
void continueHandshake() override
void init(QSslSocket *q, QSslSocketPrivate *d) override
void startServerEncryption() override
QSsl::SslProtocol sessionProtocol() const override
void disconnectFromHost() override
~TlsCryptographSchannel()
bool hasUndecryptedData() const override
QSslCipher sessionCipher() const override
QList< QSslError > tlsErrors() const override
SslProtocol
Describes the protocol of the cipher.
Combined button and popup list for selecting options.
Namespace containing onternal types that TLS backends implement.
GLdouble GLdouble GLdouble GLdouble q
#define QT_REQUIRE_CONFIG(feature)
std::unique_ptr< void, QHCertStoreDeleter > QHCertStorePointer