Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Using QSslSocket with custom OpenSSL

Using QSslSocket with custom OpenSSL

Scheduled Pinned Locked Moved Unsolved General and Desktop
c++ qtopensslsslwindows 10
41 Posts 9 Posters 33.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    MChelik
    wrote on last edited by
    #7

    @VRonin Yes, there is libcrypto-1_1-x64.dll and libssl-1_1-x64.dll in it.

    raven-worxR 1 Reply Last reply
    0
    • M MChelik

      @VRonin Yes, there is libcrypto-1_1-x64.dll and libssl-1_1-x64.dll in it.

      raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #8

      @MChelik
      on windows they are called ssleay32.dll and libeay32.dll

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      M R 2 Replies Last reply
      2
      • raven-worxR raven-worx

        @MChelik
        on windows they are called ssleay32.dll and libeay32.dll

        M Offline
        M Offline
        MChelik
        wrote on last edited by
        #9

        @raven-worx Since QSslSocket::sslLibraryBuildVersionString() returns "OpenSSL 1.0.2g 1 Mar 2016", I downloaded OpenSSL_1.0.2g source code and compiled it, but inside bin directory there was only openssl.exe. So I copied ssleay32.dll and libeay32.dll from C:\Qt\Tools\QtCreator\bin to C:\Windows. But still I get same error, nothing changed.
        What should I do use QSslSocket? I'm really confused. I searched a lot but nothing helped.

        raven-worxR 1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #10

          Hi and welcome to devnet,

          Don't copy .dlls like that in the Windows folder, that's very bad practice.

          If Qt shows you a different version of OpenSSL, it likely means that you have an application that also provides these files and can be found before yours.

          I've successfully used the prebuilt packages from Shining Lights Production.

          Hope it helps

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          3
          • M MChelik

            @raven-worx Since QSslSocket::sslLibraryBuildVersionString() returns "OpenSSL 1.0.2g 1 Mar 2016", I downloaded OpenSSL_1.0.2g source code and compiled it, but inside bin directory there was only openssl.exe. So I copied ssleay32.dll and libeay32.dll from C:\Qt\Tools\QtCreator\bin to C:\Windows. But still I get same error, nothing changed.
            What should I do use QSslSocket? I'm really confused. I searched a lot but nothing helped.

            raven-worxR Offline
            raven-worxR Offline
            raven-worx
            Moderators
            wrote on last edited by
            #11

            @MChelik said in Using QSslSocket with custom OpenSSL:

            So I copied ssleay32.dll and libeay32.dll from C:\Qt\Tools\QtCreator\bin to C:\Windows

            don't do that, as @SGaist said. Copy them next to your application exe instead.

            --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
            If you have a question please use the forum so others can benefit from the solution in the future

            1 Reply Last reply
            0
            • M Offline
              M Offline
              MChelik
              wrote on last edited by
              #12

              Thank you SGaist. Copying next to application executable didn't help either.
              Gentlemen, let's forget my OpenSSL; forget everything. Just assume that I want to use QSslSocket and QSslCertificate. What should I do? Should I compile Qt myself? Should I install OpenSSL? What should I do exactly? Qt documents doesn't say any specific thing about this. Documents say only how to use mentioned two classes.
              Thank you

              1 Reply Last reply
              0
              • hskoglundH Offline
                hskoglundH Offline
                hskoglund
                wrote on last edited by hskoglund
                #13

                Hi, just a quick note on OpenSSL with Qt, I think because you're building a 64-bit Qt app that's why you're having problems. Because those 2 DLLs s stored in C:\Qt\Tools\QtCreator\bin are built with MSVC2013 32-bit compiler (same as for Qt Creator itself) so they are not kosher for 64-bit :-(

                1 Reply Last reply
                2
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #14

                  To add to @hskoglund, the prebuilt packages I've mentioned earlier also provide "OpenSSL-Win64" which are pre-built for 64bit development.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  1
                  • M Offline
                    M Offline
                    MChelik
                    wrote on last edited by
                    #15

                    @hskoglund That was my problem! I didn't pay attention to that. But I a have a question: The only libeay32.dll and ssleay32.dll files that are in my %PATH% is C:\Win64-OpenSSL\bin directory. So why my application only works when mentioned DLLs are beside my application (doesn't work when are in %PATH)?

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #16

                      Are you sure you don't have any other application that has these libraries and that can be found in your PATH environment variable ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      M 1 Reply Last reply
                      1
                      • SGaistS SGaist

                        Are you sure you don't have any other application that has these libraries and that can be found in your PATH environment variable ?

                        M Offline
                        M Offline
                        MChelik
                        wrote on last edited by
                        #17

                        @SGaist No, I searched my whole disk for these DLLs. Every directory that contains these DLLs is not in %PATH.

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #18

                          How did you modify PATH ? In your Windows settings or in Qt Creator ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          M 1 Reply Last reply
                          0
                          • hskoglundH Offline
                            hskoglundH Offline
                            hskoglund
                            wrote on last edited by
                            #19

                            Hi, also, they could be loaded via some other means than their directories being listed in %PATH%, either that some other dll that your .exe loads explicitly pulls in the bad (i.e. 32-bit) ones, or perhaps they're hiding in c:\windows or c:\windows\system32.

                            To debug this. you could try download Dependency Walker and load your app into it. Then start profiling with F7, that'll get you a trace of all the dlls loaded.

                            1 Reply Last reply
                            1
                            • N Offline
                              N Offline
                              Nalnalital
                              wrote on last edited by
                              #20
                              This post is deleted!
                              N 1 Reply Last reply
                              0
                              • N Nalnalital

                                This post is deleted!

                                N Offline
                                N Offline
                                Nalnalital
                                wrote on last edited by
                                #21
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • N Offline
                                  N Offline
                                  Nalnalital
                                  wrote on last edited by Nalnalital
                                  #22

                                  Using Qt5.7+msvc2015+W8

                                  Solved, in Qt_naming dll respect, without openssl compilation :
                                  http://www.npcglib.org/~stathis/downloads/openssl-1.0.1t-vs2015.7z

                                  1 Reply Last reply
                                  1
                                  • SGaistS SGaist

                                    How did you modify PATH ? In your Windows settings or in Qt Creator ?

                                    M Offline
                                    M Offline
                                    MChelik
                                    wrote on last edited by
                                    #23

                                    @SGaist I modified it via Windows settings and I don't know even khow how to change %PATH in Qt. Can you tell me? ( ͡° ͜ʖ ͡°)
                                    @hskoglund I'll try it at work. Thank you for your solution.

                                    1 Reply Last reply
                                    0
                                    • SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #24

                                      Not in Qt but within Qt Creator. Go to the Run part of the Project panel. There you can modify your environment for your application only.

                                      Interested in AI ? www.idiap.ch
                                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      1 Reply Last reply
                                      0
                                      • raven-worxR raven-worx

                                        @MChelik
                                        on windows they are called ssleay32.dll and libeay32.dll

                                        R Offline
                                        R Offline
                                        RMcFatter
                                        wrote on last edited by
                                        #25

                                        @raven-worx Not any more. As of OpenSSL 1.1.0, following OpenSSL's build instructions on Windows (and with shared libraries enabled), we get:

                                        bin/libcrypto-1_1.dll
                                        bin/libssl-1_1.dll
                                        lib/libcrypto.lib
                                        lib/libssl.lib

                                        The names "ssleay32" and "libeay32" were deprecated. So does Qt only look for the old names despite any attempts at configuring it otherwise?

                                        Qt's docs on the topic, for some reason, only describe building OpenSSL for Android.

                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by SGaist
                                          #26

                                          @RMcFatter
                                          Hi and welcome to devnet,

                                          From a quick look at Qt's sources, it doesn't search yet for libcrypto/ssl-1_1.

                                          That something you should check in the bug report system to see if there's already something planned for that.

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved