Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qtls_st_p.h
Go to the documentation of this file.
1
// Copyright (C) 2014 Jeremy Lainé <jeremy.laine@m4x.org>
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
QTLS_ST_P_H
6
#
define
QTLS_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 for the convenience
13
// of the QtNetwork library. This header file may change from
14
// version to version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtNetwork
/
private
/
qtnetworkglobal_p
.
h
>
20
21
#
include
"qtlsbackend_st_p.h"
22
23
#
include
<
QtCore
/
qobject
.
h
>
24
#
include
<
QtCore
/
qstring
.
h
>
25
#
include
<
QtCore
/
qglobal
.
h
>
26
#
include
<
QtCore
/
qlist
.
h
>
27
28
#
include
<
QtNetwork
/
qabstractsocket
.
h
>
29
#
include
<
QtNetwork
/
private
/
qsslsocket_p
.
h
>
30
31
// SecureTransport was deprecated in macOS 10.15 and iOS 13, and is no
32
// longer supported. We should be using Network.framework instead.
33
// See QTBUG-119171 for more information.
34
QT_WARNING_DISABLE_DEPRECATED
35
36
#
include
<
Security
/
Security
.
h
>
37
#
include
<
Security
/
SecureTransport
.
h
>
38
39
QT_BEGIN_NAMESPACE
40
41
namespace
QTlsPrivate
{
42
43
class
QSecureTransportContext
44
{
45
public
:
46
explicit
QSecureTransportContext
(SSLContextRef context);
47
~
QSecureTransportContext
();
48
49
operator
SSLContextRef
()
const
;
50
void
reset
(SSLContextRef newContext);
51
private
:
52
SSLContextRef context;
53
54
Q_DISABLE_COPY_MOVE
(
QSecureTransportContext
)
55
};
56
57
class
TlsCryptographSecureTransport
:
public
TlsCryptograph
58
{
59
public
:
60
TlsCryptographSecureTransport
();
61
~
TlsCryptographSecureTransport
()
override
;
62
63
void
init
(QSslSocket *qObj, QSslSocketPrivate *dObj)
override
;
64
void
continueHandshake
()
override
;
65
void
disconnected
()
override
;
66
void
disconnectFromHost
()
override
;
67
QSslCipher
sessionCipher
()
const
override
;
68
QSsl
::
SslProtocol
sessionProtocol
()
const
override
;
69
void
startClientEncryption
()
override
;
70
void
startServerEncryption
()
override
;
71
void
transmit
()
override
;
72
QList
<
QSslError
>
tlsErrors
()
const
override
;
73
74
SSLCipherSuite
SSLCipherSuite_from_QSslCipher
(
const
QSslCipher &ciph);
75
76
private
:
77
// SSL context management/properties:
78
bool
initSslContext();
79
void
destroySslContext();
80
bool
setSessionCertificate(QString &errorDescription,
81
QAbstractSocket::SocketError &errorCode);
82
bool
setSessionProtocol();
83
// Aux. functions to do a verification during handshake phase:
84
bool
canIgnoreTrustVerificationFailure()
const
;
85
bool
verifySessionProtocol()
const
;
86
bool
verifyPeerTrust();
87
88
bool
checkSslErrors();
89
bool
startHandshake();
90
91
bool
isHandshakeComplete()
const
;
92
93
// IO callbacks:
94
static
OSStatus ReadCallback(
TlsCryptographSecureTransport
*socket,
char
*data, size_t *dataLength);
95
static
OSStatus WriteCallback(
TlsCryptographSecureTransport
*plainSocket,
const
char
*data, size_t *dataLength);
96
97
QSecureTransportContext
context;
98
bool
renegotiating =
false
;
99
QSslSocket *q =
nullptr
;
100
QSslSocketPrivate *d =
nullptr
;
101
bool
shutdown =
false
;
102
QList<QSslError> sslErrors;
103
104
Q_DISABLE_COPY_MOVE
(
TlsCryptographSecureTransport
)
105
};
106
107
}
// namespace QTlsPrivate
108
109
QT_END_NAMESPACE
110
111
#
endif
// QTLS_ST_P_H
QTlsPrivate::QSecureTransportContext
Definition
qtls_st_p.h:44
QTlsPrivate::QSecureTransportContext::~QSecureTransportContext
~QSecureTransportContext()
Definition
qtls_st.cpp:183
QTlsPrivate::QSecureTransportContext::reset
void reset(SSLContextRef newContext)
Definition
qtls_st.cpp:193
QTlsPrivate::QSecureTransportContext::QSecureTransportContext
QSecureTransportContext(SSLContextRef context)
Definition
qtls_st.cpp:178
QTlsPrivate::TlsCryptographSecureTransport
Definition
qtls_st_p.h:58
QTlsPrivate::TlsCryptographSecureTransport::disconnectFromHost
void disconnectFromHost() override
Definition
qtls_st.cpp:371
QTlsPrivate::TlsCryptographSecureTransport::TlsCryptographSecureTransport
TlsCryptographSecureTransport()
Definition
qtls_st.cpp:289
QTlsPrivate::TlsCryptographSecureTransport::transmit
void transmit() override
Definition
qtls_st.cpp:451
QTlsPrivate::TlsCryptographSecureTransport::startClientEncryption
void startClientEncryption() override
Definition
qtls_st.cpp:424
QTlsPrivate::TlsCryptographSecureTransport::continueHandshake
void continueHandshake() override
Definition
qtls_st.cpp:310
QTlsPrivate::TlsCryptographSecureTransport::sessionCipher
QSslCipher sessionCipher() const override
Definition
qtls_st.cpp:386
QTlsPrivate::TlsCryptographSecureTransport::tlsErrors
QList< QSslError > tlsErrors() const override
Definition
qtls_st.cpp:1332
QTlsPrivate::TlsCryptographSecureTransport::init
void init(QSslSocket *qObj, QSslSocketPrivate *dObj) override
Definition
qtls_st.cpp:299
QTlsPrivate::TlsCryptographSecureTransport::sessionProtocol
QSsl::SslProtocol sessionProtocol() const override
Definition
qtls_st.cpp:395
QTlsPrivate::TlsCryptographSecureTransport::startServerEncryption
void startServerEncryption() override
Definition
qtls_st.cpp:438
QTlsPrivate::TlsCryptographSecureTransport::SSLCipherSuite_from_QSslCipher
SSLCipherSuite SSLCipherSuite_from_QSslCipher(const QSslCipher &ciph)
Definition
qtls_st.cpp:542
QTlsPrivate::TlsCryptographSecureTransport::~TlsCryptographSecureTransport
~TlsCryptographSecureTransport() override
Definition
qtls_st.cpp:294
QTlsPrivate::TlsCryptographSecureTransport::disconnected
void disconnected() override
Definition
qtls_st.cpp:361
QTlsPrivate
Namespace containing onternal types that TLS backends implement.
Definition
qocspresponse.h:41
QTlsPrivate::QSslCipher_from_SSLCipherSuite
QSslCipher QSslCipher_from_SSLCipherSuite(SSLCipherSuite cipher)
Definition
qtlsbackend_st.cpp:27
QTlsPrivate::dhparam
static const uint8_t dhparam[]
Definition
qtls_st.cpp:200
QTlsPrivate::qt_createSecureTransportContext
SSLContextRef qt_createSecureTransportContext(QSslSocket::SslMode mode)
Definition
qtls_st.cpp:167
_q_makePkcs12
QByteArray _q_makePkcs12(const QList< QSslCertificate > &certs, const QSslKey &key, const QString &passPhrase)
Definition
qsslsocket_qt.cpp:250
qtbase
src
plugins
tls
securetransport
qtls_st_p.h
Generated on
for Qt by
1.18.0