diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-08-14 10:56:48 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-08-17 10:23:08 +0000 |
commit | 8553650468e30579faba4ff97fafaf3b1cfea3c2 (patch) | |
tree | 4c23a0c318bf5272e641fee16b2a18827122ff4b | |
parent | 6bb8b288527871730b1aaedebd3cad9613ac8aa9 (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.pro | 3 | ||||
-rw-r--r-- | src/knx/ssl/qssl.cpp | 2 | ||||
-rw-r--r-- | src/knx/ssl/qsslsocket_openssl_symbols_p.h | 35 | ||||
-rw-r--r-- | src/knx/ssl/ssl.pri | 123 |
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 } |