Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline krq  
#1 Оставлено : 10 ноября 2023 г. 15:56:04(UTC)
krq

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.11.2023(UTC)
Сообщений: 2

Существую ли актуальные примеры настройки tls и желательно на котлине?
---

Есть сервер с "tls-сертификатом от криптопро"
Есть приложение flutter которое для запросов использует dio

Нужно чтобы приложение общалось с сервером через "tls-сертификат от криптопро"

---

Из данных примеров не ясно что именно мне нужно и как все интегрировать

Я отдельно запустил и потыкал ACSPClientApp. Это явно не то что мне нужно
Даже не представляю как оно должно работать вместе с сервером
https://docs.cryptopro.r...PClientApp/ACSPClientApp

https://docs.cryptopro.r...amples/gostTLS/TLSsample

Так же получал ошибки вроде "/Logger.java:19: error: cannot find symbol import ru.CryptoPro.AndroidTLSSample.R"

В каком направлении двигаться? Хотелось бы найти работающий пример



-

Отредактировано пользователем 10 ноября 2023 г. 15:57:33(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 10 ноября 2023 г. 18:03:46(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,962
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Здесь https://docs.cryptopro.r...PClientApp/ACSPClientApp изложено основное, что требуется сделать:
1. добавить в свой проект все aar-бибилиотеки из examples\ACSPClientApp\libs\
2. в своем коде при запуске приложения или позже сделать один раз инициализацию. Она состоит из нескольких частей, есть обязательная и не обязательная. Обе части изложены тут:
ru.CryptoPro.ACSPClientApp.MainViewModel.initCSPProviders
CSPConfig.init(context) - обязательный вызов (обрабатывайте ошибки от него, если будут), далее
initJavaProviders - в нем обязательной является регистрация провайдеров: JCSP, JTLS (ГОСТ TLS), RevCheck и большая часть System.setProperty-настроек, а AdES/CAdES/XML и финальный ystem.setProperty(javax.net.ssl*), скорее всего, вам не нужны.
3. Из примеров можно использовать на свой выбор:
* HttpsUrlConnection*Example на базе HttpsUrlConnection
* HttpTLSExample на базе apache http client
* OkHttpExample на базе okhttp
Всех их объединяет создание TLS контекста с помощью
Код:

SSLContext sslContext = createSSLContext();

Offline krq  
#3 Оставлено : 11 ноября 2023 г. 16:30:38(UTC)
krq

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.11.2023(UTC)
Сообщений: 2

Спасибо! Скопировал из MainViewModel в MainActivity.kt initJavaProviders
и в onCreate:

Код:

 initCSPProvidersFuture = CompletableFuture.runAsync {
          val initCode = CSPConfig.init(this)
          if (initCode == CSPConfig.CSP_INIT_OK) {
              initJavaProviders(this, false)
          }
      }


Как минимум flutter build работает без ошибок

Получается для запросов все вызовы dio придется заменить platform.invokeMethod('...') и использовать что-то из

Цитата:

* HttpsUrlConnection*Example на базе HttpsUrlConnection
* HttpTLSExample на базе apache http client
* OkHttpExample на базе okhttp
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.