Статус: Новичок
Группы: Участники
Зарегистрирован: 01.08.2022(UTC) Сообщений: 3 
|
Здравствуйте, не могли бы подсказать как правильно использовать curl в iOS вместе с библиотекой CSP? У нас есть файл расширения cer от нашего сервера, который нужно использовать для подключения по ГОСТ TLS. Я скачал пример SimpleHttpsSample и пытаюсь с помощью него сделать запросы на наш сервер, для сертификатов я нашел параметры CURLOPT_SSLCERT и CURLOPT_SSLCERTTYPE, но я получаю ошибку сертификата, на сколько я понял типа CER нет у CURLOPT_SSLCERTTYPE. Может есть какой то пример подключения сертификата? В идеале просто передать путь до файла. Отредактировано пользователем 2 августа 2022 г. 14:34:57(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,568
Сказал(а) «Спасибо»: 44 раз Поблагодарили: 656 раз в 453 постах
|
Здравствуйте. Надо задавать отпечаток сертификата, установленного в личное хранилище со ссылкой на закрытый ключ (это важно!). В духе: Код:code = curl_easy_setopt(curlHandle, CURLOPT_SSLCERTTYPE, "CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:MY");
if (code != CURLE_OK)
goto fin;
code = curl_easy_setopt(curlHandle, CURLOPT_SSLCERT, "727C1E1EA2B397CBC5D00712E2EF2CE2C876BD7E"));
if (code != CURLE_OK)
goto fin;
|
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.08.2022(UTC) Сообщений: 3 
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,568
Сказал(а) «Спасибо»: 44 раз Поблагодарили: 656 раз в 453 постах
|
Самое простое - это воспользоваться нашей панелью управления - она умеет запрашивать сертификаты в том числе на тестовых УЦ, они сразу будут установлены в личное хранилище со ссылкой на закрытый ключ. Пример работы в демо-проекте CreateFile из состава нашего фреймворка, см. PaneViewController. А вообще это делается с помощью CertSetCertificateContextProperty(CERT_KEY_PROV_INFO_PROP_ID). |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 01.08.2022(UTC) Сообщений: 3 
|
Спасибо. В целом логика работы понятна. Нужно добавить сертификат в хранилище и привязать его к ключу. Я правильно понял, что речь идет про ключ контейнера? У нас стоит задача реализовать подключение сертификата вручную, то есть без использования PaneViewController. Если речь идет про ключ контейнера, то для реализации пока нет понимания кто и когда создает контейнер и как получить информацию о контейнере, который необходимо привязать к сертификату с помощью вызова CertSetCertificateContextProperty. Не могли бы подсказать по этим двум моментам? (кто и когда создает контейнер и как получить по нему информацию). На сколько я понял тут нужно просто правильно заполнить структуру CRYPT_KEY_PROV_INFO. P.S. При попытки добавить сертификат в root хранилище, библиотека пытается выкинуть алерт с помощью UIAlertView. Этот класс deprecated c 9 iOS. Соответсвенно это крашит приложение при каждой попытки библиотеки вызвать алерт с ошибкой "UIAlertView is deprecated and unavailable for UIScene based applications, please use UIAlertController!". Отредактировано пользователем 4 августа 2022 г. 13:08:25(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close