SSL: Add a feature for DTLS

For now the new feature depends on openssl as that is the only supported
implementation. Once we get an implementation for SecureTransport, we
can change the condition.

The feature needs to be public because qdtls.h is a public header.

Change-Id: Ie3e4acbeb2888f2fb13453b3ecdc19bacc83f6e6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
bb10
Ulf Hermann 2018-06-20 10:49:31 +02:00 committed by Timur Pocheptsov
parent d77d4fc548
commit d502d883fd
5 changed files with 27 additions and 8 deletions

View File

@ -216,6 +216,13 @@
"condition": "config.winrt || features.securetransport || features.openssl",
"output": [ "publicFeature", "feature" ]
},
"dtls": {
"label": "DTLS",
"purpose": "Provides a DTLS implementation",
"section": "Networking",
"condition": "features.openssl",
"output": [ "publicFeature" ]
},
"opensslv11": {
"label": "OpenSSL 1.1",
"condition": "features.openssl && tests.openssl11",

View File

@ -48,6 +48,8 @@
#include <QtCore/qcryptographichash.h>
#include <QtCore/qobject.h>
QT_REQUIRE_CONFIG(dtls);
QT_BEGIN_NAMESPACE
enum class QDtlsError : unsigned char

View File

@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
QT_REQUIRE_CONFIG(openssl);
#include <openssl/ossl_typ.h>
#include "qdtls_p.h"
@ -72,6 +70,9 @@ QT_REQUIRE_CONFIG(openssl);
// We mean it.
//
QT_REQUIRE_CONFIG(openssl);
QT_REQUIRE_CONFIG(dtls);
QT_BEGIN_NAMESPACE
class QDtlsPrivateOpenSSL;

View File

@ -68,6 +68,8 @@
// We mean it.
//
QT_REQUIRE_CONFIG(dtls);
QT_BEGIN_NAMESPACE
class QHostAddress;

View File

@ -56,13 +56,17 @@ qtConfig(ssl) {
ssl/qsslellipticcurve_dummy.cpp
}
qtConfig(dtls) {
HEADERS += ssl/qdtls.h \
ssl/qdtls_p.h
SOURCES += ssl/qdtls.cpp
}
qtConfig(openssl) {
HEADERS += ssl/qsslcontext_openssl_p.h \
ssl/qsslsocket_openssl_p.h \
ssl/qsslsocket_openssl_symbols_p.h \
ssl/qdtls.h \
ssl/qdtls_p.h \
ssl/qdtls_openssl_p.h
ssl/qsslsocket_openssl_symbols_p.h
SOURCES += ssl/qsslsocket_openssl_symbols.cpp \
ssl/qssldiffiehellmanparameters_openssl.cpp \
ssl/qsslcertificate_openssl.cpp \
@ -70,8 +74,11 @@ qtConfig(ssl) {
ssl/qsslkey_openssl.cpp \
ssl/qsslsocket_openssl.cpp \
ssl/qsslcontext_openssl.cpp \
ssl/qdtls.cpp \
ssl/qdtls_openssl.cpp
qtConfig(dtls) {
HEADERS += ssl/qdtls_openssl_p.h
SOURCES += ssl/qdtls_openssl.cpp
}
qtConfig(opensslv11) {
HEADERS += ssl/qsslsocket_openssl11_symbols_p.h