summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/ssl.pri
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2018-02-19 15:19:16 +0100
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2018-06-18 19:54:16 +0000
commitac583b686d0677517e7f8a10ce4e79c7fe227ccf (patch)
treeaa8f7d8c3801d31b34e4cc5a222e091ef24dea33 /src/network/ssl/ssl.pri
parent48d6990e418cffb09cd76c0d48b8ffa63490d6cf (diff)
Let's encrypt datagrams
This patch adds DTLS support to QtNetwork module (and its OpenSSL back-end). DTLS over UDP is defined by RFC 6347. The new API consists of 1) QDtlsClientVerifier which checks if a client that sent us ClientHello is a real DTLS client by generating a cookie, sending a HelloVerifyRequest with this cookie attached, and then verifiying a cookie received back. To be deployed in combination with a server-side QUdpSocket. 2) QDtls - initiates and proceeds with a TLS handshake (client or server side), with certificates and/or pre-shared key (PSK), and encrypts/decrypts datagrams after the handshake has finished. This patch does not implement yet another UDP socket, instead it allows use of existing QUdpSocket(s), by adding DTLS support on top. OpenSSL back-end uses a custom BIO to make it work with QUdpSocket and give a finer control over IO operations. On the server side, demultiplexing is left to client code (could be done either by connecting QUdpSocket or by extracting address/port for an incoming datagram and then forwarding/dispatching them to the corresponding QDtls object). Task-number: QTPM-779 Change-Id: Ifcdf8586c70c3018b0c5549efc722e795f2c1c52 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/ssl/ssl.pri')
-rw-r--r--src/network/ssl/ssl.pri11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
index 3529c8828b..397005e14b 100644
--- a/src/network/ssl/ssl.pri
+++ b/src/network/ssl/ssl.pri
@@ -6,7 +6,7 @@ qtConfig(ssl) {
ssl/qsslcertificate.h \
ssl/qsslcertificate_p.h \
ssl/qsslconfiguration.h \
- ssl/qsslconfiguration_p.h \
+ ssl/qsslconfiguration_p.h \
ssl/qsslcipher.h \
ssl/qsslcipher_p.h \
ssl/qssldiffiehellmanparameters.h \
@@ -59,14 +59,19 @@ qtConfig(ssl) {
qtConfig(openssl) {
HEADERS += ssl/qsslcontext_openssl_p.h \
ssl/qsslsocket_openssl_p.h \
- ssl/qsslsocket_openssl_symbols_p.h
+ ssl/qsslsocket_openssl_symbols_p.h \
+ ssl/qdtls.h \
+ ssl/qdtls_p.h \
+ ssl/qdtls_openssl_p.h
SOURCES += ssl/qsslsocket_openssl_symbols.cpp \
ssl/qssldiffiehellmanparameters_openssl.cpp \
ssl/qsslcertificate_openssl.cpp \
ssl/qsslellipticcurve_openssl.cpp \
ssl/qsslkey_openssl.cpp \
ssl/qsslsocket_openssl.cpp \
- ssl/qsslcontext_openssl.cpp
+ ssl/qsslcontext_openssl.cpp \
+ ssl/qdtls.cpp \
+ ssl/qdtls_openssl.cpp
qtConfig(opensslv11) {
HEADERS += ssl/qsslsocket_openssl11_symbols_p.h