Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. [Need Help]: Qt5.15 support iOS TLS 1.3
Forum Updated to NodeBB v4.3 + New Features

[Need Help]: Qt5.15 support iOS TLS 1.3

Scheduled Pinned Locked Moved Solved Mobile and Embedded
9 Posts 4 Posters 536 Views 2 Watching
  • 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.
  • C Offline
    C Offline
    CellCS
    wrote last edited by
    #1

    Now is using Qt5.15.19, and using

    #if defined(Q_OS_IOS)
    #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
        sslConfig.setProtocol(QSsl::TlsV1_2OrLater);
    #else
        sslConfig.setProtocol(QSsl::TlsV1_3OrLater);
    #endif
    #elif defined(Q_OS_ANDROID)
        sslConfig.setProtocol(QSsl::TlsV1_3OrLater);
    #endif
    

    When when build by using Xcode and set mimi iOS as 13, get:

    QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
    qt.network.ssl: QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
    

    Any suggestions? thanks a lot.

    C 1 Reply Last reply
    0
    • JKSHJ Offline
      JKSHJ Offline
      JKSH
      Moderators
      wrote last edited by JKSH
      #2

      You could...

      1. Install the OpenSSL development libraries
      2. Rebuild the Qt libraries from source
      3. Add the OpenSSL library folder to your project's DYLD_LIBRARY_PATH

      See:

      • General information about building Qt 5.15 from source code on macOS: https://doc.qt.io/qt-5/macos-building.html
      • Instructions on how to make Qt Network use OpenSSL: https://doc.qt.io/qt-5/ssl.html#enabling-and-disabling-ssl-support

      Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

      1 Reply Last reply
      1
      • C CellCS

        Now is using Qt5.15.19, and using

        #if defined(Q_OS_IOS)
        #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
            sslConfig.setProtocol(QSsl::TlsV1_2OrLater);
        #else
            sslConfig.setProtocol(QSsl::TlsV1_3OrLater);
        #endif
        #elif defined(Q_OS_ANDROID)
            sslConfig.setProtocol(QSsl::TlsV1_3OrLater);
        #endif
        

        When when build by using Xcode and set mimi iOS as 13, get:

        QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
        qt.network.ssl: QTcpSocket(0x15c4c2430) SecureTransport does not support TLS 1.3
        

        Any suggestions? thanks a lot.

        C Offline
        C Offline
        CellCS
        wrote last edited by
        #3

        @JKSH

        Thanks a lot. here is my current steps.

        1. download qt source code.
        2. .configure with using open-ssl linked.
        3. make, make install
        4. qt creator link this qt.
        5. Xcode run, but meet some errors, even adding "QMAKE_CXXFLAGS += -DQML_DISABLE_JIT" in qtbase/mkspecs/common/ios.conf,
        "JSC::Yarr::digitsCreate()", referenced from:
              JSC::Yarr::YarrPattern::digitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
          "JSC::Yarr::spacesCreate()", referenced from:
              JSC::Yarr::YarrPattern::spacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
          "JSC::Yarr::newlineCreate()", referenced from:
              JSC::Yarr::YarrPattern::newlineCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
          "JSC::Yarr::wordcharCreate()", referenced from:
              JSC::Yarr::YarrPattern::wordcharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
          "JSC::Yarr::nondigitsCreate()", referenced from:
              JSC::Yarr::YarrPattern::nondigitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
          "JSC::Yarr::nonspacesCreate()", referenced from:
              JSC::Yarr::YarrPattern::nonspacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
          "JSC::Yarr::nonwordcharCreate()", referenced from:
              JSC::Yarr::YarrPattern::nonwordcharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
          "JSC::Yarr::wordUnicodeIgnoreCaseCharCreate()", referenced from:
              JSC::Yarr::YarrPattern::wordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
          "JSC::Yarr::nonwordUnicodeIgnoreCaseCharCreate()", referenced from:
              JSC::Yarr::YarrPattern::nonwordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
        ld: symbol(s) not found for architecture arm64
        clang++: error: linker command failed with exit code 1 (use -v to see invocation)
        

        any suggestions? thanks a lot

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

          Hi,

          How exactly did you configure Qt ?
          What kind of Mac are you using ? Intel or Apple Silicon ?

          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
          • C Offline
            C Offline
            CellCS
            wrote last edited by
            #5
            This post is deleted!
            1 Reply Last reply
            0
            • C CellCS

              @JKSH

              Thanks a lot. here is my current steps.

              1. download qt source code.
              2. .configure with using open-ssl linked.
              3. make, make install
              4. qt creator link this qt.
              5. Xcode run, but meet some errors, even adding "QMAKE_CXXFLAGS += -DQML_DISABLE_JIT" in qtbase/mkspecs/common/ios.conf,
              "JSC::Yarr::digitsCreate()", referenced from:
                    JSC::Yarr::YarrPattern::digitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
                "JSC::Yarr::spacesCreate()", referenced from:
                    JSC::Yarr::YarrPattern::spacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
                "JSC::Yarr::newlineCreate()", referenced from:
                    JSC::Yarr::YarrPattern::newlineCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
                "JSC::Yarr::wordcharCreate()", referenced from:
                    JSC::Yarr::YarrPattern::wordcharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
                "JSC::Yarr::nondigitsCreate()", referenced from:
                    JSC::Yarr::YarrPattern::nondigitsCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
                "JSC::Yarr::nonspacesCreate()", referenced from:
                    JSC::Yarr::YarrPattern::nonspacesCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
                "JSC::Yarr::nonwordcharCreate()", referenced from:
                    JSC::Yarr::YarrPattern::nonwordcharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
                "JSC::Yarr::wordUnicodeIgnoreCaseCharCreate()", referenced from:
                    JSC::Yarr::YarrPattern::wordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][198](YarrInterpreter.o)
                "JSC::Yarr::nonwordUnicodeIgnoreCaseCharCreate()", referenced from:
                    JSC::Yarr::YarrPattern::nonwordUnicodeIgnoreCaseCharCharacterClass() in libQt5Qml.a[arm64][200](YarrPattern.o)
              ld: symbol(s) not found for architecture arm64
              clang++: error: linker command failed with exit code 1 (use -v to see invocation)
              

              any suggestions? thanks a lot

              C Offline
              C Offline
              CellCS
              wrote last edited by
              #6
              This post is deleted!
              1 Reply Last reply
              0
              • C Offline
                C Offline
                CellCS
                wrote last edited by
                #7

                Thanks @SGaist @JKSH

                issue of "JSC::Yarr::digitsCreate()" is fixed by python path.

                Here is my env and steps:

                Env: Apple M4 Pro, macOS: Sequoia 15.5.

                Here are steps:

                OpenSSL Lib prepare:
                1-1: Download openssl-apple https://github.com/passepartoutvpn/openssl-apple?tab=readme-ov-file
                1-2: ./build-libssl.sh --version=3.4.1 --targets="ios64-cross-arm64", and get "iphoneos18.5-arm64.sdk"

                Download Qt source from Qt. (qt-everywhere-src-5.15.19)

                Build Qt:
                3-1: OPENSSL_LIBS='-L/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/lib -lssl -lcrypto' ./configure
                -xplatform macx-ios-clang
                -release
                -static
                -nomake tests -nomake examples
                -skip qtwebengine -skip qtscript -skip qtdoc -skip qtlocation
                -openssl-linked
                -I/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/include
                -L/Users/xxx/OpenSSL/iphoneos18.5-arm64.sdk/lib
                -no-securetransport
                -prefix /Users/xxx/Qt/5.15.19ios

                3-2: make -j1
                3-3: make install

                4: Qt creator link this /Users/xxx/Qt/5.15.19ios/bin

                5: build in Qt creator, run in Xcode

                1. ❌🚧 Issue: "SSL handshake failed" when tries to communicate with one TLS1.3 api.

                Any suggestions? thanks a lot.

                1 Reply Last reply
                1
                • hskoglundH Offline
                  hskoglundH Offline
                  hskoglund
                  wrote last edited by
                  #8

                  If you build the Qt example app "Secure Socket Client Example" do you get the same error?

                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    CellCS
                    wrote last edited by
                    #9

                    Thanks @hskoglund @SGaist @JKSH

                    Now solved, and build qt can communicate with TLS 1.3 server.

                    After link with OpenSSL, need load cert files to support, system default one will be blank.

                    Cheers. thanks all!

                    1 Reply Last reply
                    1
                    • C CellCS has marked this topic as solved

                    • Login

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