libcurl for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2503
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

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

Игорь Столяров писал(а):
02 Октябрь 2020, 14:58
сейчас буду исправлять и тестировать ...
Держите в курсе...
С уважением, ДП

IKSoft
Посетитель
Сообщения: 34
Зарегистрирован: 27 Май 2010, 12:38

libcurl for Clarion

Сообщение IKSoft »

Доброго всем дня!

Читаю доку по одному сайту (RestAPI, JSON)
При вызове любого метода сервиса для установления защищенного по ГОСТ https-соединения необходимо передавать сведения о сертификате инициатора запроса (тот же сертификат, который используется для входа в защищенный Личный кабинет на официальном сайте ).
Например, на языке программирования C# это будет выглядеть следующим образом:

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

public HttpClient CreateHttpClient (X509Certificate2 cert) {
  var handler = new WebRequestHandler();
  handler.ClientCertificates.add(cert);
  return new HttpClient(handler);
}

В curl это будет так?:

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

curl.SetOpt(CURLOPT_POSTFIELDS, 'Двоичное DER-представление X.509-сертификата пользователя')
curl.SetOpt(CURLOPT_POSTFIELDSIZE, LEN(CLIP('Двоичное DER-представление X.509-сертификата пользователя')))
Это я выискал в этой ветке...

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2503
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

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

Не пробовал, но логичнее использовать CURLOPT_SSLCERT, CURLOPT_SSLCERTTYPE:

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

sCertFile  STRING(256), AUTO
sCertType STRING(20), AUTO
  sCertFile = 'estcert.pem'
  sCertType = 'PEM'
  curl.SetOpt(CURLOPT_SSLCERT, sCertFile)
  curl.SetOpt(CURLOPT_SSLCERTTYPE, sCertType)
С уважением, ДП

IKSoft
Посетитель
Сообщения: 34
Зарегистрирован: 27 Май 2010, 12:38

libcurl for Clarion

Сообщение IKSoft »

Cgfcb,j
Дед Пахом писал(а):
14 Октябрь 2020, 15:56
Не пробовал, но логичнее использовать CURLOPT_SSLCERT, CURLOPT_SSLCERTTYPE:

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

sCertFile  STRING(256), AUTO
sCertType STRING(20), AUTO
  sCertFile = 'estcert.pem'
  sCertType = 'PEM'
  curl.SetOpt(CURLOPT_SSLCERT, sCertFile)
  curl.SetOpt(CURLOPT_SSLCERTTYPE, sCertType)
Спасибо, просто меня смутила фраза "передавать сведения "
Если бы просто написали, надо использовать свой сертификат для SSL, тогда понятно

Если смогу подключиться - отпишу (не скоро, рутины много...)

IKSoft
Посетитель
Сообщения: 34
Зарегистрирован: 27 Май 2010, 12:38

libcurl for Clarion

Сообщение IKSoft »

на
CURLOPT_SSLCERT
unable to set private key file: 'SSL\MyCert.pem' type PEM

Ведь для SSL нужен и секретный ключ, кроме самого сертификата
получается, надо и
CURLOPT_SSLKey

Ответить