Android: Fix SSL 1.1 support on API-21
OpenSSL 1.1.x libs must be suffixed otherwise it will use the system ones which on API-21 are OpenSSL 1.0 not 1.1 Fixes: QTBUG-76884 Change-Id: I7d4052be68cf7dc65f74a48da8e1e37182056a5e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
6bc7309135
commit
698faf7b6d
@ -891,8 +891,25 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
|
||||
// macOS's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
|
||||
// attempt, _after_ <bundle>/Contents/Frameworks has been searched.
|
||||
// iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place.
|
||||
# if defined(Q_OS_ANDROID)
|
||||
// OpenSSL 1.1.x must be suffixed otherwise it will use the system libcrypto.so libssl.so which on API-21 are OpenSSL 1.0 not 1.1
|
||||
auto openSSLSuffix = [](const QByteArray &defaultSuffix = {}) {
|
||||
auto suffix = qgetenv("ANDROID_OPENSSL_SUFFIX");
|
||||
if (suffix.isEmpty())
|
||||
return defaultSuffix;
|
||||
return suffix;
|
||||
};
|
||||
# if QT_CONFIG(opensslv11)
|
||||
static QString suffix = QString::fromLatin1(openSSLSuffix("_1_1"));
|
||||
# else
|
||||
static QString suffix = QString::fromLatin1(openSSLSuffix());
|
||||
# endif
|
||||
libssl->setFileNameAndVersion(QLatin1String("ssl") + suffix, -1);
|
||||
libcrypto->setFileNameAndVersion(QLatin1String("crypto") + suffix, -1);
|
||||
# else
|
||||
libssl->setFileNameAndVersion(QLatin1String("ssl"), -1);
|
||||
libcrypto->setFileNameAndVersion(QLatin1String("crypto"), -1);
|
||||
# endif
|
||||
if (libcrypto->load() && libssl->load()) {
|
||||
// libssl.so.0 and libcrypto.so.0 found
|
||||
return pair;
|
||||
|
Loading…
x
Reference in New Issue
Block a user