50 explicit QDtlsClientVerifier(QObject *parent =
nullptr);
51 ~QDtlsClientVerifier();
53 struct Q_NETWORK_EXPORT GeneratorParameters
55 GeneratorParameters();
56 GeneratorParameters(QCryptographicHash::Algorithm a,
const QByteArray &s);
57 QCryptographicHash::Algorithm hash = QCryptographicHash::Sha1;
61 bool setCookieGeneratorParameters(
const GeneratorParameters ¶ms);
62 GeneratorParameters cookieGeneratorParameters()
const;
64 bool verifyClient(QUdpSocket *socket,
const QByteArray &dgram,
65 const QHostAddress &address, quint16 port);
66 QByteArray verifiedHello()
const;
68 QDtlsError dtlsError()
const;
69 QString dtlsErrorString()
const;
73 Q_DECLARE_PRIVATE(QDtlsClientVerifier)
74 Q_DISABLE_COPY(QDtlsClientVerifier)
83class Q_NETWORK_EXPORT
QDtls :
public QObject
93 PeerVerificationFailed,
97 explicit QDtls(QSslSocket::SslMode mode, QObject *parent =
nullptr);
100 bool setPeer(
const QHostAddress &address, quint16 port,
101 const QString &verificationName = {});
102 bool setPeerVerificationName(
const QString &name);
103 QHostAddress peerAddress()
const;
104 quint16 peerPort()
const;
105 QString peerVerificationName()
const;
106 QSslSocket::SslMode sslMode()
const;
108 void setMtuHint(quint16 mtuHint);
109 quint16 mtuHint()
const;
111 using GeneratorParameters = QDtlsClientVerifier::GeneratorParameters;
112 bool setCookieGeneratorParameters(
const GeneratorParameters ¶ms);
113 GeneratorParameters cookieGeneratorParameters()
const;
115 bool setDtlsConfiguration(
const QSslConfiguration &configuration);
116 QSslConfiguration dtlsConfiguration()
const;
118 HandshakeState handshakeState()
const;
120 bool doHandshake(QUdpSocket *socket,
const QByteArray &dgram = {});
121 bool handleTimeout(QUdpSocket *socket);
122 bool resumeHandshake(QUdpSocket *socket);
123 bool abortHandshake(QUdpSocket *socket);
124 bool shutdown(QUdpSocket *socket);
126 bool isConnectionEncrypted()
const;
127 QSslCipher sessionCipher()
const;
128 QSsl::SslProtocol sessionProtocol()
const;
130 qint64 writeDatagramEncrypted(QUdpSocket *socket,
const QByteArray &dgram);
131 QByteArray decryptDatagram(QUdpSocket *socket,
const QByteArray &dgram);
133 QDtlsError dtlsError()
const;
134 QString dtlsErrorString()
const;
136 QList<QSslError> peerVerificationErrors()
const;
137 void ignoreVerificationErrors(
const QList<QSslError> &errorsToIgnore);
141 void pskRequired(QSslPreSharedKeyAuthenticator *authenticator);
142 void handshakeTimeout();
146 bool startHandshake(QUdpSocket *socket,
const QByteArray &dgram);
147 bool continueHandshake(QUdpSocket *socket,
const QByteArray &dgram);
149 Q_DECLARE_PRIVATE(QDtls)
150 Q_DISABLE_COPY_MOVE(QDtls)