Go to file
Timur Pocheptsov ac583b686d 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>
2018-06-18 19:54:16 +00:00
bin Merge remote-tracking branch 'origin/5.11.0' into 5.11 2018-05-09 13:48:42 +02:00
config.tests qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
dist Add changes file for Qt 5.11.0 2018-04-30 11:54:51 +00:00
doc Doc: Use index.html as the home page reference 2018-06-05 15:48:46 +00:00
examples Spice up QOpenGLWindow example 2018-06-15 09:35:03 +00:00
lib
mkspecs GCC: Disable the -Wmissing-field-initializers in GCC 4 2018-06-18 01:51:37 +00:00
qmake Merge remote-tracking branch 'origin/5.11' into dev 2018-06-07 19:10:53 +02:00
src Let's encrypt datagrams 2018-06-18 19:54:16 +00:00
tests QTreeWidget: Keep items hidden even if their parents are reparented 2018-06-15 09:19:23 +00:00
util Provide presets for QGradient 2018-05-31 15:50:50 +00:00
.gitattributes
.gitignore gitignore: don't ignore Info.plist templates for libraries 2017-11-23 07:07:48 +00:00
.qmake.conf Bump version 2018-06-01 10:37:15 +00:00
.tag
config_help.txt Make the use of -fdata-sections and --gc-sections more generic in Qt 2018-04-27 06:47:35 +00:00
configure configure: Detect Cocoa instead of Carbon 2018-04-05 21:04:22 +00:00
configure.bat configure: Prefer cl.exe over clang-cl.exe 2018-01-04 21:22:42 +00:00
configure.json configure: change convention of passing libraries to config tests 2018-05-08 18:17:29 +00:00
configure.pri configure: centralize shell-quoting of tests' .literal_args field 2018-05-08 12:50:04 +00:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
INSTALL
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.PREVIEW.COMMERCIAL
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Testlib: Rename qtest_global.h to qttestglobal.h 2018-03-21 10:31:01 +00:00