summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2018-08-14 10:56:48 +0200
committerKarsten Heimrich <karsten.heimrich@qt.io>2018-08-17 10:23:08 +0000
commit8553650468e30579faba4ff97fafaf3b1cfea3c2 (patch)
tree4c23a0c318bf5272e641fee16b2a18827122ff4b
parent6bb8b288527871730b1aaedebd3cad9613ac8aa9 (diff)
Adapt imported QtNetwork OpenSSL code so that it compiles
Change-Id: I05e9ab0a507fcc7341eefd7d3e85820ef9a78c2a Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--src/knx/knx.pro3
-rw-r--r--src/knx/ssl/qssl.cpp2
-rw-r--r--src/knx/ssl/qsslsocket_openssl_symbols_p.h35
-rw-r--r--src/knx/ssl/ssl.pri123
4 files changed, 60 insertions, 103 deletions
diff --git a/src/knx/knx.pro b/src/knx/knx.pro
index 96a36f0..a8739d8 100644
--- a/src/knx/knx.pro
+++ b/src/knx/knx.pro
@@ -2,7 +2,7 @@ TARGET = QtKnx
QT = core
CONFIG += c++11
-QT_FOR_PRIVATE += network core-private
+QT_FOR_PRIVATE += network core-private network-private
QMAKE_DOCS = $$PWD/doc/qtknx.qdocconf
@@ -10,6 +10,7 @@ include (core/core.pri)
include(dpt/dpt.pri)
include(knxproj/knxproj.pri)
include(netip/netip.pri)
+include(ssl/ssl.pri)
DEFINES += QT_NO_CAST_FROM_ASCII
diff --git a/src/knx/ssl/qssl.cpp b/src/knx/ssl/qssl.cpp
index 51779de..7cfa6c3 100644
--- a/src/knx/ssl/qssl.cpp
+++ b/src/knx/ssl/qssl.cpp
@@ -37,8 +37,6 @@
**
****************************************************************************/
-
-#include "qsslkey.h"
#include "qssl_p.h"
QT_BEGIN_NAMESPACE
diff --git a/src/knx/ssl/qsslsocket_openssl_symbols_p.h b/src/knx/ssl/qsslsocket_openssl_symbols_p.h
index 68b519d..7583a89 100644
--- a/src/knx/ssl/qsslsocket_openssl_symbols_p.h
+++ b/src/knx/ssl/qsslsocket_openssl_symbols_p.h
@@ -69,7 +69,40 @@
//
#include <QtNetwork/private/qtnetworkglobal_p.h>
-#include "qsslsocket_openssl_p.h"
+
+#ifdef Q_OS_WIN
+#include <qt_windows.h>
+#if defined(OCSP_RESPONSE)
+#undef OCSP_RESPONSE
+#endif
+#if defined(X509_NAME)
+#undef X509_NAME
+#endif
+#endif // Q_OS_WIN
+
+#include <openssl/asn1.h>
+#include <openssl/bio.h>
+#include <openssl/bn.h>
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/pkcs12.h>
+#include <openssl/pkcs7.h>
+#include <openssl/rand.h>
+#include <openssl/ssl.h>
+#include <openssl/stack.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include <openssl/x509_vfy.h>
+#include <openssl/dsa.h>
+#include <openssl/rsa.h>
+#include <openssl/crypto.h>
+#include <openssl/tls1.h>
+
+#if QT_CONFIG(opensslv11)
+#include <openssl/dh.h>
+#endif
+
#include <QtCore/qglobal.h>
QT_BEGIN_NAMESPACE
diff --git a/src/knx/ssl/ssl.pri b/src/knx/ssl/ssl.pri
index 2783eff..8299eec 100644
--- a/src/knx/ssl/ssl.pri
+++ b/src/knx/ssl/ssl.pri
@@ -1,100 +1,25 @@
-# OpenSSL support; compile in QSslSocket.
-qtConfig(ssl) {
- HEADERS += ssl/qasn1element_p.h \
- ssl/qssl.h \
- ssl/qssl_p.h \
- ssl/qsslcertificate.h \
- ssl/qsslcertificate_p.h \
- ssl/qsslconfiguration.h \
- ssl/qsslconfiguration_p.h \
- ssl/qsslcipher.h \
- ssl/qsslcipher_p.h \
- ssl/qssldiffiehellmanparameters.h \
- ssl/qssldiffiehellmanparameters_p.h \
- ssl/qsslellipticcurve.h \
- ssl/qsslerror.h \
- ssl/qsslkey.h \
- ssl/qsslkey_p.h \
- ssl/qsslsocket.h \
- ssl/qsslsocket_p.h \
- ssl/qsslpresharedkeyauthenticator.h \
- ssl/qsslpresharedkeyauthenticator_p.h \
- ssl/qsslcertificateextension.h \
- ssl/qsslcertificateextension_p.h
- SOURCES += ssl/qasn1element.cpp \
- ssl/qssl.cpp \
- ssl/qsslcertificate.cpp \
- ssl/qsslconfiguration.cpp \
- ssl/qsslcipher.cpp \
- ssl/qssldiffiehellmanparameters.cpp \
- ssl/qsslellipticcurve.cpp \
- ssl/qsslkey_p.cpp \
- ssl/qsslerror.cpp \
- ssl/qsslsocket.cpp \
- ssl/qsslpresharedkeyauthenticator.cpp \
- ssl/qsslcertificateextension.cpp
-
- winrt {
- HEADERS += ssl/qsslsocket_winrt_p.h
- SOURCES += ssl/qsslcertificate_qt.cpp \
- ssl/qsslcertificate_winrt.cpp \
- ssl/qssldiffiehellmanparameters_dummy.cpp \
- ssl/qsslkey_qt.cpp \
- ssl/qsslkey_winrt.cpp \
- ssl/qsslsocket_winrt.cpp \
- ssl/qsslellipticcurve_dummy.cpp
- }
-
- qtConfig(securetransport) {
- HEADERS += ssl/qsslsocket_mac_p.h
- SOURCES += ssl/qsslcertificate_qt.cpp \
- ssl/qssldiffiehellmanparameters_dummy.cpp \
- ssl/qsslkey_qt.cpp \
- ssl/qsslkey_mac.cpp \
- ssl/qsslsocket_mac_shared.cpp \
- ssl/qsslsocket_mac.cpp \
- ssl/qsslellipticcurve_dummy.cpp
- }
-
- qtConfig(openssl) {
- HEADERS += ssl/qsslcontext_openssl_p.h \
- ssl/qsslsocket_openssl_p.h \
- ssl/qsslsocket_openssl_symbols_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
-
- qtConfig(opensslv11) {
- HEADERS += ssl/qsslsocket_openssl11_symbols_p.h
- SOURCES += ssl/qsslsocket_openssl11.cpp \
- ssl/qsslcontext_openssl11.cpp
-
- QMAKE_CXXFLAGS += -DOPENSSL_API_COMPAT=0x10100000L
- } else {
- HEADERS += ssl/qsslsocket_opensslpre11_symbols_p.h
- SOURCES += ssl/qsslsocket_opensslpre11.cpp \
- ssl/qsslcontext_opensslpre11.cpp
- }
-
- darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
-
- android:!android-embedded: SOURCES += ssl/qsslsocket_openssl_android.cpp
-
- # Add optional SSL libs
- # Static linking of OpenSSL with msvc:
- # - Binaries http://slproweb.com/products/Win32OpenSSL.html
- # - also needs -lUser32 -lAdvapi32 -lGdi32 -lCrypt32
- # - libs in <OPENSSL_DIR>\lib\VC\static
- # - configure: -openssl -openssl-linked -I <OPENSSL_DIR>\include -L <OPENSSL_DIR>\lib\VC\static OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_DEBUG="-lssleay32MDd -llibeay32MDd" OPENSSL_LIBS_RELEASE="-lssleay32MD -llibeay32MD"
-
- qtConfig(openssl-linked): \
- QMAKE_USE_FOR_PRIVATE += openssl
- else: \
- QMAKE_USE_FOR_PRIVATE += openssl/nolink
- win32: LIBS_PRIVATE += -lcrypt32
- }
+qtConfig(opensslv11) { # OpenSSL 1.1 support is required.
+ HEADERS += ssl/qssl.h \
+ ssl/qssl_p.h
+ SOURCES += ssl/qssl.cpp
+
+ HEADERS += ssl/qsslsocket_openssl_symbols_p.h
+ SOURCES += ssl/qsslsocket_openssl_symbols.cpp
+
+ HEADERS += ssl/qsslsocket_openssl11_symbols_p.h
+
+ QMAKE_CXXFLAGS += -DOPENSSL_API_COMPAT=0x10100000L
+
+ # Add optional SSL libs
+ # Static linking of OpenSSL with msvc:
+ # - Binaries http://slproweb.com/products/Win32OpenSSL.html
+ # - also needs -lUser32 -lAdvapi32 -lGdi32 -lCrypt32
+ # - libs in <OPENSSL_DIR>\lib\VC\static
+ # - configure: -openssl -openssl-linked -I <OPENSSL_DIR>\include -L <OPENSSL_DIR>\lib\VC\static OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_DEBUG="-lssleay32MDd -llibeay32MDd" OPENSSL_LIBS_RELEASE="-lssleay32MD -llibeay32MD"
+
+ qtConfig(openssl-linked): \
+ QMAKE_USE_FOR_PRIVATE += openssl
+ else: \
+ QMAKE_USE_FOR_PRIVATE += openssl/nolink
+ win32: LIBS_PRIVATE += -lcrypt32
}