1# OpenSSL support; compile in QSslSocket.
2
3HEADERS += ssl/qasn1element_p.h \
4           ssl/qssl.h \
5           ssl/qssl_p.h \
6           ssl/qsslcertificate.h \
7           ssl/qsslcertificate_p.h \
8           ssl/qsslcertificateextension.h \
9           ssl/qsslcertificateextension_p.h
10
11SOURCES += ssl/qasn1element.cpp \
12           ssl/qssl.cpp \
13           ssl/qsslcertificate.cpp \
14           ssl/qsslcertificateextension.cpp
15
16!qtConfig(openssl): SOURCES += ssl/qsslcertificate_qt.cpp
17
18qtConfig(ssl) {
19    HEADERS += ssl/qsslconfiguration.h \
20               ssl/qsslconfiguration_p.h \
21               ssl/qsslcipher.h \
22               ssl/qsslcipher_p.h \
23               ssl/qssldiffiehellmanparameters.h \
24               ssl/qssldiffiehellmanparameters_p.h \
25               ssl/qsslellipticcurve.h \
26               ssl/qsslerror.h \
27               ssl/qsslkey.h \
28               ssl/qsslkey_p.h \
29               ssl/qsslsocket.h \
30               ssl/qsslsocket_p.h \
31               ssl/qsslpresharedkeyauthenticator.h \
32               ssl/qsslpresharedkeyauthenticator_p.h \
33               ssl/qocspresponse.h \
34               ssl/qocspresponse_p.h
35    SOURCES += ssl/qsslconfiguration.cpp \
36               ssl/qsslcipher.cpp \
37               ssl/qssldiffiehellmanparameters.cpp \
38               ssl/qsslellipticcurve.cpp \
39               ssl/qsslkey_p.cpp \
40               ssl/qsslerror.cpp \
41               ssl/qsslsocket.cpp \
42               ssl/qsslpresharedkeyauthenticator.cpp \
43               ssl/qocspresponse.cpp
44
45    winrt {
46        HEADERS += ssl/qsslsocket_winrt_p.h
47        SOURCES += ssl/qsslcertificate_winrt.cpp \
48                   ssl/qssldiffiehellmanparameters_dummy.cpp \
49                   ssl/qsslkey_qt.cpp \
50                   ssl/qsslkey_winrt.cpp \
51                   ssl/qsslsocket_winrt.cpp \
52                   ssl/qsslellipticcurve_dummy.cpp
53    }
54
55    qtConfig(schannel) {
56        HEADERS += ssl/qsslsocket_schannel_p.h
57        SOURCES += ssl/qsslsocket_schannel.cpp \
58                   ssl/qsslcertificate_schannel.cpp \
59                   ssl/qsslkey_schannel.cpp \
60                   ssl/qsslkey_qt.cpp \
61                   ssl/qssldiffiehellmanparameters_dummy.cpp \
62                   ssl/qsslellipticcurve_dummy.cpp \
63                   ssl/qsslsocket_qt.cpp
64
65        LIBS_PRIVATE += "-lSecur32" "-lCrypt32" "-lbcrypt" "-lncrypt"
66    }
67
68    qtConfig(securetransport) {
69        HEADERS += ssl/qsslsocket_mac_p.h
70        SOURCES += ssl/qssldiffiehellmanparameters_dummy.cpp \
71                   ssl/qsslkey_qt.cpp \
72                   ssl/qsslkey_mac.cpp \
73                   ssl/qsslsocket_mac_shared.cpp \
74                   ssl/qsslsocket_mac.cpp \
75                   ssl/qsslsocket_qt.cpp \
76                   ssl/qsslellipticcurve_dummy.cpp
77    }
78
79    qtConfig(dtls) {
80        HEADERS += ssl/qdtls.h \
81                   ssl/qdtls_p.h
82
83        SOURCES += ssl/qdtls.cpp
84    }
85
86    qtConfig(openssl) {
87        HEADERS += ssl/qsslcontext_openssl_p.h \
88                   ssl/qsslsocket_openssl_p.h \
89                   ssl/qsslsocket_openssl_symbols_p.h
90        SOURCES += ssl/qsslsocket_openssl_symbols.cpp \
91                   ssl/qssldiffiehellmanparameters_openssl.cpp \
92                   ssl/qsslcertificate_openssl.cpp \
93                   ssl/qsslellipticcurve_openssl.cpp \
94                   ssl/qsslkey_openssl.cpp \
95                   ssl/qsslsocket_openssl.cpp \
96                   ssl/qsslcontext_openssl.cpp \
97
98        qtConfig(dtls) {
99            HEADERS += ssl/qdtls_openssl_p.h
100            SOURCES += ssl/qdtls_openssl.cpp
101        }
102
103        qtConfig(ocsp): HEADERS += ssl/qocsp_p.h
104
105        QMAKE_CXXFLAGS += -DOPENSSL_API_COMPAT=0x10100000L
106
107        darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
108
109        android:!android-embedded: SOURCES += ssl/qsslsocket_openssl_android.cpp
110
111        # Add optional SSL libs
112        # Static linking of OpenSSL with msvc:
113        #   - Binaries http://slproweb.com/products/Win32OpenSSL.html
114        #   - also needs -lUser32 -lAdvapi32 -lGdi32 -lCrypt32
115        #   - libs in <OPENSSL_DIR>\lib\VC\static
116        #   - 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"
117
118        qtConfig(openssl-linked): {
119            android {
120                build_pass|single_android_abi: LIBS_PRIVATE += -lssl_$${QT_ARCH} -lcrypto_$${QT_ARCH}
121            } else: QMAKE_USE_FOR_PRIVATE += openssl
122        } else: \
123            QMAKE_USE_FOR_PRIVATE += openssl/nolink
124        win32 {
125            LIBS_PRIVATE += -lcrypt32
126            HEADERS += ssl/qwindowscarootfetcher_p.h
127            SOURCES += ssl/qwindowscarootfetcher.cpp
128        }
129    }
130}
131
132HEADERS += ssl/qpassworddigestor.h
133SOURCES += ssl/qpassworddigestor.cpp
134