zloi
zloi26 февраля 2019 г. 9:30

SSL на Android

SSL, Android, qt

Добрый день! Подскажите пожалуйста, при запуске андроид приложения пишет: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed, но когда запускаю на компе все отлично.

P.S. вывод qDebug() « QSslSocket::supportsSsl() « QSslSocket::sslLibraryBuildVersionString() « QSslSocket::sslLibraryVersionString();
(android) false "OpenSSL 1.0.2p 14 Aug 2018" ""
(desktop) true "OpenSSL 1.0.2p 14 Aug 2018" "OpenSSL 1.0.2n 7 Dec 2017"

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

19
Evgenii Legotckoi
  • 26 февраля 2019 г. 9:34
  • (ред.)

Добрый день.

OpenSSL хоть и используется в Qt, но не является частью библиотеки и не поставляется в пакете разработки Qt. Как я понимаю, это связано с некоторыми юридическими моментами.

В документации Qt имеется описание настройки OpenSSL для использования в Android APK.

Посмотрите эту документацию на Qt

    zloi
    • 26 февраля 2019 г. 9:43

    Смотерл эту статью, но честно говоря мало, что понял и как видимо на описываются действия для linux,а у меня windows

      Evgenii Legotckoi
      • 26 февраля 2019 г. 9:53

      Я думаю, что скрипт универсальный, там есть пометки с информацией для Windows

      Посмотрите вот эту часть

      ANDROID_NDK_ROOT: /home/user1/android-ndk-r10d
      ANDROID_ARCH: arch-arm64
      ANDROID_EABI: aarch64-linux-android-4.9
      ANDROID_API: android-21
      ANDROID_SYSROOT: /home/user1/android-ndk-r10d/platforms/android-21/arch-arm64
      ANDROID_TOOLCHAIN: /home/user1/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
      FIPS_SIG:
      CROSS_COMPILE: aarch64-linux-androideabi-
      ANDROID_DEV: /home/user1/android-ndk-r10d/platforms/android-21/arch-arm64/usr
      

      Полагаю, что здесь просто нужно заменить пути (В скрипте там переменные именованные, думаю, что можно просто переписать все эти переменные для пути NDK)

      ANDROID_NDK_ROOT: C:/path/to/ndk/android-ndk-r10d
      ANDROID_ARCH: arch-arm64
      ANDROID_EABI: aarch64-linux-android-4.9
      ANDROID_API: android-21
      ANDROID_SYSROOT: C:/path/to/ndk/android-ndk-r10d/platforms/android-21/arch-arm64
      ANDROID_TOOLCHAIN: C:/path/to/ndk/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
      FIPS_SIG:
      CROSS_COMPILE: aarch64-linux-androideabi-
      ANDROID_DEV: C:/path/to/ndk/android-ndk-r10d/platforms/android-21/arch-arm64/usr
      

      Также для сборки OpenSLL нужно использовать perl v5.14 c библиотекой msys.

      Ещё есть инофрмация о hosts на 107 строке, полагаю, что имелся ввиду этот скрипт. То есть должно быть достаточно внимательно просмотреть весь скрипт, установить необходимые пакеты и поправить переменные в нужных местах.

        Михаиллл
        • 30 июля 2019 г. 1:57

        еще тут есть сборка для андроид https://github.com/lynx570/android_openssl/tree/5.12.4_5.13.0

          ВС
          • 8 августа 2019 г. 9:35
          • (ред.)

          Всем Привет. Намучался я с этим openssl. Пробую перекомпилировать свое приложение на 5.13 , и вылазит QSslSocket::connectToHostEncrypted: TLS initialization failed.
          OpenSSl в проект подключил от сюда .
          Эта строка
          qDebug() << QSslSocket::supportsSsl() << QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString();
          выводит false "OpenSSL 1.1.1b 26 Feb 2019" ""
          Хотя если рапоковать свою апк и посмотреть версию openssl то получим OpenSSL 1.1.1c 28 May 2019
          Может кто сталкивался с такой проблеммой.
          OS Ubuntu 18.04 компилирую под андройд

            Evgenii Legotckoi
            • 9 августа 2019 г. 3:35

            Видимо ему нужна конкретная версия за февраль, стоит как-то подсунуть ту версию.

              ВС
              • 9 августа 2019 г. 6:28

              ПРоверил приложение на андройд 6 -работает. А на 5.1 не работает. Видимо андрой 5.1 уже не потдерживает openssl 1.1.1c

                Evgenii Legotckoi
                • 9 августа 2019 г. 6:31

                Скорее, ещё не поддерживат. версия b является более ранней.

                  Михаиллл
                  • 24 апреля 2020 г. 3:36

                  Попробовал старое решение https://github.com/lynx570/android_openssl/tree/5.12.4_5.13.0 но оно почему-то не работает. Что же делать?

                    Evgenii Legotckoi
                    • 24 апреля 2020 г. 3:40
                    • (ред.)

                    А у вас какая версия Qt? В репозитории написано, что это для Qt 5.12.4 и 5.13.0, причём в изначальном репозитории, форком которого является тот, что вы указали. А тот, что указали вы так вообще уже 10 месяцев как не обновлялся. Вам следует посмотртеь изначальный репозиторий

                      Михаиллл
                      • 24 апреля 2020 г. 3:48

                      У меня 5,14. Похоже нужно или установить старую версию, или найти новую сборку

                        Михаиллл
                        • 24 апреля 2020 г. 6:03

                        А с новой андроид студией старые версии qt не работаю, но я читал что у людей подобное решение работает с 14 версией qt. Я поместил папку android_openssl-master в свой проект и добавил в проект файл openssl.pri. Скажите пожалуйста, что я упускаю.

                          Михаиллл
                          • 24 апреля 2020 г. 7:16

                          Может быть вы знаете как правильно собрать OpenSSL из исходников

                            Evgenii Legotckoi
                            • 24 апреля 2020 г. 7:19

                            ни разу не собирал ((

                              A
                              • 1 июня 2020 г. 11:02

                              Возьмите этот репозиторий, он предлагается в официальной документации qt
                              https://github.com/KDAB/android_openssl

                                Михаиллл
                                • 1 июня 2020 г. 11:12

                                Я видел его, только там макс 13-й, а сейчас вышел уже 15,0, но они не спешет сделать сборки.
                                Помогло только добавление других сборок, но не могу их прикрепить, т.к. они весят больше 1 мб.

                                  A
                                  • 1 июня 2020 г. 11:26
                                  • (ред.)
                                  • Ответ был помечен как решение.

                                  у меня стоит версия Qt 5.14.2. В настройках android поставил openssl из коробки, и этот прроект автоматически стянулся.
                                  Достаточно было только добавить в .pro-файл строку после этого и все работает
                                  android: include($$(HOME)/Android/Sdk/android_openssl/openssl.pri)

                                    zloi
                                    • 16 августа 2020 г. 10:22

                                    Наконец-то удалось решить проблему. Проблема была в суфиксах библиотек, обзятельно нужно добавлять суфик _1_1.so иначе andorid будет загружать версию _1_0.so, что естественно не подходит. Вопрос закрыт, всем спасибо)

                                      zloi
                                      • 18 августа 2020 г. 21:57
                                      • (ред.)

                                      Решил проблему, взял данный репозиторий (https://github.com/KDAB/android_openssl), но необходимо указавать суфикс _1_1 в имени файлах библиотек (например: libssl_1_1.so), без этого суфикса android будет подгружать свои библиотеки.

                                        Комментарии

                                        Только авторизованные пользователи могут публиковать комментарии.
                                        Пожалуйста, авторизуйтесь или зарегистрируйтесь
                                        d
                                        • dsfs
                                        • 26 апреля 2024 г. 11:56

                                        C++ - Тест 004. Указатели, Массивы и Циклы

                                        • Результат:80баллов,
                                        • Очки рейтинга4
                                        d
                                        • dsfs
                                        • 26 апреля 2024 г. 11:45

                                        C++ - Тест 002. Константы

                                        • Результат:50баллов,
                                        • Очки рейтинга-4
                                        d
                                        • dsfs
                                        • 26 апреля 2024 г. 11:35

                                        C++ - Тест 001. Первая программа и типы данных

                                        • Результат:73баллов,
                                        • Очки рейтинга1
                                        Последние комментарии
                                        k
                                        kmssr9 февраля 2024 г. 2:43
                                        Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                        АК
                                        Анатолий Кононенко5 февраля 2024 г. 9:50
                                        Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                        EVA
                                        EVA25 декабря 2023 г. 18:30
                                        Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                        J
                                        JonnyJo25 декабря 2023 г. 16:38
                                        Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                        G
                                        Gvozdik19 декабря 2023 г. 5:01
                                        Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                        Сейчас обсуждают на форуме
                                        G
                                        Gar22 апреля 2024 г. 12:46
                                        Clipboard Как скопировать окно целиком в clipb?
                                        DA
                                        Dr Gangil Academics20 апреля 2024 г. 14:45
                                        Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                                        a
                                        a_vlasov14 апреля 2024 г. 13:41
                                        Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                                        Павел Дорофеев
                                        Павел Дорофеев14 апреля 2024 г. 9:35
                                        QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                                        f
                                        fastrex4 апреля 2024 г. 11:47
                                        Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                                        Следите за нами в социальных сетях