Как читать оповещения openssl? - PullRequest
2 голосов
/ 14 февраля 2020

Я пытаюсь читать сообщения оповещения OpenSSL программно, но не могу найти способ, как это сделать. API OpenSSL предоставляет такие функции, как:

const char *SSL_alert_type_string(int value);
const char *SSL_alert_type_string_long(int value);

const char *SSL_alert_desc_string(int value);
const char *SSL_alert_desc_string_long(int value);

, но нет информации, откуда взять «значение int».

Например, когда соединение TLS сбрасывается из-за причины истекшего сертификата есть предупреждение (45). Как получить этот номер оповещения, чтобы я мог использовать вышеуказанный API для печати сообщения?

1 Ответ

1 голос
/ 15 февраля 2020

Вы можете получить код информации о предупреждении, установив функцию обратного вызова с помощью void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*callback)()); и обрабатывая эти коды так, как вам удобно.

Более подробная информация об этой функции содержится в документации OpenSSL, В разделе примеров этой страницы есть полная функция обратного вызова. Это объявление void apps_ssl_info_callback(SSL *s, int where, int ret), где ret - код (учитывая, что where также правильно установлен, пожалуйста, обратитесь к разделу Примечания для более подробного объяснения).

Примеры регистрации обратные вызовы находятся в приложениях s_client и s_server .

...