2

I want to use QNetworkAccessManager to access a page via https, but when I try it I get the following output:

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks  
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback  
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback  
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings  
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup  
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init   
qt.network.ssl: QSslSocket: cannot resolve sk_new_null  
qt.network.ssl: QSslSocket: cannot resolve sk_push  
qt.network.ssl: QSslSocket: cannot resolve sk_free  
qt.network.ssl: QSslSocket: cannot resolve sk_num  
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free  
qt.network.ssl: QSslSocket: cannot resolve sk_value  
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init  
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings  
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index  
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method  
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain      
qt.network.ssl: QSslSocket: cannot resolve  OPENSSL_add_all_algorithms_noconf  
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf      
qt.network.ssl: QSslSocket: cannot resolve SSLeay  
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version  
qt.network.ssl: QSslSocket: cannot call unresolved function    CRYPTO_num_locks   
qt.network.ssl: QSslSocket: cannot call unresolved function  CRYPTO_set_id_callback  
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback  
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init   
qt.network.ssl: QSslSocket: cannot call unresolved function SSLeay  
qt.network.ssl: QSslSocket: cannot call unresolved function  SSLeay_version

I'm using arch x86_64 and QT 5.9.

After typed in a terminal: openssl version -v I got
OpenSSL 1.1.0f 25 May 2017, so it's the newest.

I added to main.cpp also:

qDebug() << "SSL version use for build "
         << QSslSocket::sslLibraryBuildVersionString();
qDebug() <<"SSL version use for run-time "
         << QSslSocket::sslLibraryVersionNumber();

and I got the following:

SSL version use for build:  "OpenSSL 1.0.1e-fips 11 Feb 2013"
SSL version use for run-time:  0

Do you have any suggestions what can I do it to resolve this issue ?

funilrys
  • 787
  • 9
  • 20
bladzio
  • 414
  • 3
  • 15

1 Answers1

0

Check the version of OpenSSL installed on your host

QNetworkAccessManager tries to find the functions in the lib which is loaded at runtime.

Most probably you have old version of OpenSSL installed.

Also check this thread on Qt vs OpenSSL compile-time/run-time dependencies

deimus
  • 9,565
  • 12
  • 63
  • 107