4using namespace Qt::StringLiterals;
9clientDtls.setPeer(address, port, peerName);
10clientDtls.doHandshake(&clientSocket);
17serverSocket.readDatagram(clientHello.data(), clientHello.size(), &address, &port);
20serverDtls.setPeer(address, port);
21serverDtls.doHandshake(&serverSocket, clientHello);
24void DtlsConnection::continueHandshake(
const QByteArray &datagram)
26 if (dtls.doHandshake(&udpSocket, datagram)) {
28 if (dtls.handshakeStatus() == QDlts::HandshakeComplete) {
39DtlsClient::DtlsClient()
42 connect(&clientDtls, &QDtls::handshakeTimeout,
this, &DtlsClient::handleTimeout);
45void DtlsClient::handleTimeout()
47 clientDtls.handleTimeout(&clientSocket);
53dtlsConnection.writeDatagramEncrypted(&clientSocket,
"Hello DTLS server!");
57socket.readDatagram(encryptedMessage.data(), dgramSize);
62DtlsClient::~DtlsClient()
64 clientDtls.shutdown(&clientSocket);
69auto config = QSslConfiguration::defaultDtlsConfiguration();
70config.setDtlsCookieVerificationEnabled(
false);
72dtlsConnection.setDtlsConfiguration(config);
76if (!dtls.doHandshake(&socket, dgram)) {
77 if (dtls.dtlsError() == QDtlsError::PeerVerificationError)
78 dtls.abortAfterError(&socket);
86expectedSslErrors.append(error);
89dtls.ignoreVerificationErrors(expectedSslErrors);
90dtls.doHandshake(udpSocket);
QList< QSslCertificate > cert
[0]
QList< QSslError > expectedSslErrors
const QByteArray plainText
QByteArray clientHello(serverSocket.pendingDatagramSize(), Qt::Uninitialized)
QUdpSocket clientSocket
[0]
QByteArray encryptedMessage(dgramSize)