Details
-
Suggestion
-
Resolution: Done
-
P3: Somewhat important
-
4.7.1
-
None
-
82f9ad6295fb35e138841810a05075214a2f2690 (qtbase/master, 3.1.2012, 5.3)
Description
By default SSL classes of QtNetwork library are not using OpenSSL's dynamically loaded engines so one can not use, for example, GOST2001-GOST89-GOST89 and GOST94-GOST89-GOST89 ciphers.
To fix that, we may add OPENSSL_config(NULL) call just before SSL_library_init(). So we need to add: into qsslsocket_openssl_symbols_p.h - void q_OPENSSL_config(const char *a) before q_ssl_library_init() declaration into qsslsocket_openssl_symbols.cpp - DEFINEFUNC(void, OPENSSL_config, const char *a, a, return, DUMMYARG) before DEFINEFUNC(SSL_library_init ...) RESOLVEFUNC(OPENSSL_config, 0, libs.second) in #if defined Q_OS_SYMBIAN section (sorry, don't have symbian sdk - don't know ordinal for OPENSSL_config, use 0 instead - must be fixed) RESOLVEFUNC(OPENSSL_config) in other hand into qsslsocket_openssl.cpp q_OPENSSL_config(0); in bool QSSLSocketPrivate::ensureLibraryLoaded() just before if(q_SSL_library_init() ... )
After this modification QSslSocket::supportedCiphers() returns GOST2001-GOST89-GOST89 and GOST94-GOST89-GOST89 ciphers if OpenSSL is configured properly.
Attachments
Issue Links
- resulted in
-
QTBUG-43843 Windows: When compiling Qt with OpenSSL on a drive that at runtime maps to a removable drive with no medium, OpenSSL initalization code will terminate applications using exit()
-
- Closed
-