Results 1 to 17 of 17

Thread: Qssl

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Aug 2008
    Location
    Ukraine, Krivoy Rog
    Posts
    1,963
    Thanked 370 Times in 336 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Qssl

    if server uses ssl connection then you have to use QSsl* classes and for using them you have to build Qt with OpenSSL.
    Qt Assistant -- rocks!
    please, use tags [CODE] & [/CODE].

  2. #2
    Join Date
    Jan 2008
    Location
    Poland
    Posts
    687
    Thanks
    4
    Thanked 140 Times in 132 Posts
    Qt products
    Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Qssl

    Here is a part of httpwindow.cpp from Qt Examples:
    Qt Code:
    1. #ifndef QT_NO_OPENSSL
    2. void HttpWindow::sslErrors(const QList<QSslError> &errors)
    3. {
    4. QString errorString;
    5. foreach (const QSslError &error, errors) {
    6. if (!errorString.isEmpty())
    7. errorString += ", ";
    8. errorString += error.errorString();
    9. }
    10.  
    11. if (QMessageBox::warning(this, tr("HTTP Example"),
    12. tr("One or more SSL errors has occurred: %1").arg(errorString),
    13. QMessageBox::Ignore | QMessageBox::Abort) == QMessageBox::Ignore) {
    14. http->ignoreSslErrors();
    15. }
    16. }
    17. #endif
    To copy to clipboard, switch view to plain text mode 

    as you see it's surrounded by
    Qt Code:
    1. #ifndef QT_NO_OPENSSL
    2. // . . .
    3. #endif
    To copy to clipboard, switch view to plain text mode 

    so if you compile Qt without SSL support then this example still work but can't handle SSL connections (QT_NO_OPENSSL will be defined so that code would be, let's say, cut out). You said that you need to download files from server with SSL - and it's not working, but it's working for non-SSL connections, so the reason would be in QT_NO_OPENSSL is defined == Qt built without OpenSSL.
    I would like to be a "Guru"

    Useful hints (try them before asking):
    1. Use Qt Assistant
    2. Search the forum

    If you haven't found solution yet then create new topic with smart question.

  3. #3
    Join Date
    Jan 2008
    Location
    Poland
    Posts
    687
    Thanks
    4
    Thanked 140 Times in 132 Posts
    Qt products
    Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Qssl

    What's more, same thing you can see in qsslsocket.h:
    Qt Code:
    1. #ifndef QT_NO_OPENSSL
    2.  
    3. class QDir;
    4. class QSslCipher;
    5. class QSslCertificate;
    6. class QSslConfiguration;
    7.  
    8. class QSslSocketPrivate;
    9. class Q_NETWORK_EXPORT QSslSocket : public QTcpSocket
    10. {
    11. // . . .
    12. };
    13.  
    14. #endif // QT_NO_OPENSSL
    To copy to clipboard, switch view to plain text mode 

    So there is no class QSslSocket if you didn't build your Qt with OpenSSL.
    I would like to be a "Guru"

    Useful hints (try them before asking):
    1. Use Qt Assistant
    2. Search the forum

    If you haven't found solution yet then create new topic with smart question.

  4. #4
    Join Date
    Feb 2009
    Posts
    19
    Qt products
    Qt4
    Platforms
    Windows

    Post Re: Qssl

    that mean if i build qt with openssl , can i download files from server with out change of http example program..(../qt/4.4.1/examples/network/http).

    i am new to qt. could u plz tell me how to buid qt with openssl?

  5. #5
    Join Date
    Aug 2008
    Location
    Ukraine, Krivoy Rog
    Posts
    1,963
    Thanked 370 Times in 336 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Qssl

    yes, there is no needed to change your example, just rebuild it.
    there are to options how to build it:
    -- download sources and then build them.
    -- download www.openssl.org/related/binaries.html.

    the second option is easier.
    then all you need it's set environment variables for OpenSSL.
    SET LIB=D:\develop\OpenSSL\lib\VC;%LIB% -- if you use MS VS or
    SET LIB=D:\develop\OpenSSL\lib\MinGW;%LIB% -- if you use MinGW
    SET INCLUDE=D:\develop\OpenSSL\include;%INCLUDE%
    the next step -- you need to configure your Qt.
    there are to configure options:
    -openssl ........... Compile in run-time OpenSSL support
    -openssl-linked .... Compile in linked OpenSSL support
    I preferred then first option.
    that's all.
    Qt Assistant -- rocks!
    please, use tags [CODE] & [/CODE].

  6. #6
    Join Date
    Feb 2009
    Posts
    19
    Qt products
    Qt4
    Platforms
    Windows

    Post Re: Qssl

    thank you very much, thanks a lot for u r great infromation. i'll try as u told

  7. #7
    Join Date
    Jun 2009
    Posts
    14
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Qssl

    Hi,

    Im also facing the similar problem from a couple of days. I want to set openssl support for qt 4.5 on winxp sp2 machine

    I configured as
    configure -openssl -I C:\OpenSSL\include\openssl -L C:\OpenSSL\lib\MinGW -webkit

    then did mingw32-make

    still i get errors when make is done on ssl folder of qt
    meanwhile after configure is done, if i open makefile in C:\Qt\2009.01\qt, it still doest show openssl includes and libs i supplied with configure.

    Im a newbie and im facing this issue for quite some time now.
    Kindly let me know where im getting wrong. I followed the above mentioned steps (previous posts)
    Please provide me exact steps of building qt 4.5 with openssl.

    Thanks,
    Srikanth

  8. #8
    Join Date
    Aug 2008
    Location
    Ukraine, Krivoy Rog
    Posts
    1,963
    Thanked 370 Times in 336 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Qssl

    try to set path to OpenSSL includes using
    SET INCLUDE=D:\develop\OpenSSL\include;%INCLUDE%
    not using
    configure -openssl -I C:\OpenSSL\include\openssl -L C:\OpenSSL\lib\MinGW
    .
    Qt Assistant -- rocks!
    please, use tags [CODE] & [/CODE].

  9. #9
    Join Date
    Jun 2009
    Posts
    14
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Qssl

    Hi,

    Im also facing the similar problem from a couple of days. I want to set openssl support for qt 4.5 on winxp sp2 machine

    I configured as
    configure -openssl -I C:\OpenSSL\include\openssl -L C:\OpenSSL\lib\MinGW -webkit

    then did mingw32-make

    still i get errors when make is done on ssl folder of qt
    meanwhile after configure is done, if i open makefile in C:\Qt\2009.01\qt, it still doest show openssl includes and libs i supplied with configure.

    Im a newbie and im facing this issue for quite some time now.
    Kindly let me know where im getting wrong. I followed the above mentioned steps (previous posts)
    Please provide me exact steps of building qt 4.5 with openssl.

    Thanks,
    Srikanth

  10. #10
    Join Date
    Jun 2009
    Posts
    14
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Qssl

    UPDATE:
    i paste here some errors when mingw32-make is executed after configure


    ssl\qsslcertificate.cpp:441: error: `X509_PUBKEY' undeclared (first use this fun
    ction)
    ssl\qsslcertificate.cpp:441: error: `xkey' undeclared (first use this function)
    ssl\qsslcertificate.cpp:441: error: invalid use of undefined type `struct x509_s
    t'
    ../../include/QtNetwork/../../src/network/ssl/qsslcertificate.h:52: error: forwa
    rd declaration of `struct x509_st'
    ssl\qsslcertificate.cpp:442: error: `EVP_PKEY' undeclared (first use this functi
    on)
    ssl\qsslcertificate.cpp:442: error: `pkey' undeclared (first use this function)
    ssl\qsslcertificate.cpp:442: error: `q_X509_PUBKEY_get' undeclared (first use th
    is function)
    ssl\qsslcertificate.cpp:445: error: `EVP_PKEY_RSA' undeclared (first use this fu
    nction)
    ssl\qsslcertificate.cpp:446: error: 'class QSslKeyPrivate' has no member named '
    rsa'
    ssl\qsslcertificate.cpp:446: error: `q_EVP_PKEY_get1_RSA' undeclared (first use
    this function)
    ssl\qsslcertificate.cpp:449: error: `EVP_PKEY_DSA' undeclared (first use this fu
    nction)
    ssl\qsslcertificate.cpp:450: error: 'class QSslKeyPrivate' has no member named '
    dsa'
    ssl\qsslcertificate.cpp:450: error: `q_EVP_PKEY_get1_DSA' undeclared (first use
    this function)
    ssl\qsslcertificate.cpp:453: error: `EVP_PKEY_DH' undeclared (first use this fun
    ction)
    ssl\qsslcertificate.cpp:459: error: `q_EVP_PKEY_free' cannot be used as a functi
    on
    ssl\qsslcertificate.cpp: In static member function `static QSslCertificate QSslC
    ertificatePrivate::QSslCertificate_from_X509(X509* )':
    ssl\qsslcertificate.cpp:666: error: `q_X509_get_issuer_name' undeclared (first u
    se this function)
    ssl\qsslcertificate.cpp:666: error: `q_X509_NAME_oneline' cannot be used as a fu
    nction
    ssl\qsslcertificate.cpp:668: error: `q_X509_get_subject_name' undeclared (first
    use this function)
    ssl\qsslcertificate.cpp:668: error: `q_X509_NAME_oneline' cannot be used as a fu
    nction
    ssl\qsslcertificate.cpp:670: error: `ASN1_TIME' undeclared (first use this funct
    ion)
    ssl\qsslcertificate.cpp:670: error: `nbef' undeclared (first use this function)
    ssl\qsslcertificate.cpp:670: error: `X509_get_notBefore' undeclared (first use t
    his function)
    ssl\qsslcertificate.cpp:671: error: `naft' undeclared (first use this function)
    ssl\qsslcertificate.cpp:671: error: `X509_get_notAfter' undeclared (first use th
    is function)
    mingw32-make[2]: *** [tmp/obj/debug_shared/qsslcertificate.o] Error 1
    mingw32-make[2]: Leaving directory `C:/Qt/2009.02/qt/src/network'
    mingw32-make[1]: *** [debug-all] Error 2
    mingw32-make[1]: Leaving directory `C:/Qt/2009.02/qt/src/network'
    mingw32-make: *** [sub-network-make_default-ordered] Error 2

  11. #11
    Join Date
    Jun 2009
    Posts
    14
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Qssl

    Hi spirit,

    Thanks for the reply, I did as you mentioned.

    added include path to INCLUDE and executed configure as

    configure -openssl -L C:\OpenSSL\lib\MinGW -webkit

    when im done with configure, i executed mingw32-make ans i still get those compilation errors as i mentioned. I still dont see any openssl rules in makefile

    Thanks,
    Srikanth

Similar Threads

  1. Qt4.4 QSsl Won't Compile with MSVC2008
    By Surye in forum Installation and Deployment
    Replies: 2
    Last Post: 9th May 2008, 17:52

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.