LibCurl и выбор crypto engine

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Основной тред
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

LibCurl и выбор crypto engine

Сообщение Игорь Столяров »

Добрый день !

Сейчас при выполнении запроса, производится подключение файла с сертификатом:

Код: Выделить всё

     Self.Curl.SetOpt(CURLOPT_SSLCERT,     Self.CertFile) ! ИМЯ ФАЙЛА С СЕРТИФИКАТОМ
     Self.Curl.SetOpt(CURLOPT_SSLCERTTYPE, Self.CertType) ! 'P12'
     Self.Curl.SetOpt(CURLOPT_KEYPASSWD,   Self.CertPass)
     Self.Curl.SetCustomRequest('POST')
Если судить по тому, что происходит - Libcurl при такой подаче требует, что бы сертификат был в устаревшем формате 3DES.
Наверно это значение по умолчанию. Мы приспособились конвертировать сертификаты в этот формат. И вроде бы OK.

А можем ли мы как-то переключить сам обработчик и передать сертификат в другом (современном) формате ?
Судя по описанию - есть ведь выбор крипто-движка:

Код: Выделить всё

CURLOPT_SSLENGINE             EQUATE(89 + CURLOPTTYPE_STRINGPOINT)      !crypto engine for the SSL-sub system
CURLOPT_SSLENGINE_DEFAULT     EQUATE(90 + CURLOPTTYPE_LONG)             !set the crypto engine for the SSL-sub system as default. The param has no meaning...
Но какие могут быть значения - непонятно ... Спасибо !
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

LibCurl и выбор crypto engine

Сообщение Дед Пахом »

Получение списка доступных OpenSSL-движков: https://curl.se/libcurl/c/CURLINFO_SSL_ENGINES.html
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

LibCurl и выбор crypto engine

Сообщение Игорь Столяров »

Спасибо ! Это просто праздник какой-то !
Правильно ли я понимаю, что для работы со списками у нас предназначен отдельный класс TCurlSList ?
Мне срочно нужно посмотреть всех в списке крипто-движков ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

LibCurl и выбор crypto engine

Сообщение Дед Пахом »

Игорь Столяров писал(а): 18 Ноябрь 2024, 16:09 Правильно ли я понимаю, что для работы со списками у нас предназначен отдельный класс TCurlSList ?
Да. Правда, что-то не работает опция CURLINFO_SSL_ENGINES, пустой список возвращается. Здесь пишут, что надо libcurl.dll пересобрать "под себя".
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

LibCurl и выбор crypto engine

Сообщение Игорь Столяров »

В принципе, для знакомства, меня бы устроило просто наименование крипто-движка для сертификата.
Но я не знаю как его отжать из сертификата.
И я пытаюсь получить его из тех поддержки Сбера, но в последнее время там тупят страшно ... :(

Что-то вроде:

Код: Выделить всё

engine 0, id = "rdrand"
engine 1, id = "dynamic"
engine 2, id = "pkcs11"
Хоть садись и методом тыка подбирай ...
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

LibCurl и выбор crypto engine

Сообщение Дед Пахом »

Эти опции работают только в сборках с OpenSSL, а нынешние сборки вроде бы её не используют.
curl -V
curl 8.11.0 (i686-w64-mingw32) libcurl/8.11.0 LibreSSL/4.0.0 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 WinIDN libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.64.0 ngtcp2/1.8.1 nghttp3/1.6.0
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

LibCurl и выбор crypto engine

Сообщение Игорь Столяров »

Дед Пахом писал(а): 18 Ноябрь 2024, 17:33 Эти опции работают только в сборках с OpenSSL
И, как следствие, переключение движков OpenSSL нам наверно тоже будет недоступно ...
Ну тогда нужно порадоваться, что хоть старый 3DES работает. :)
Но я ещё попробую попереключать вслепую. ;)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

LibCurl и выбор crypto engine

Сообщение Игорь Столяров »

Теперь точно могу сказать, что крипто-движок (алгоритм) сертификата Сбера "rc2-40-cbc".
И я не могу раскрыть его в запросе через CURLOPT_SSLENGINE.
Ну и ладно ! Будем конвертировать в 3DES - хорошо, хоть так работает ... :)
Make Clarion Great Again ! 😎
Ответить