структуры x509 больше недоступны в OpenSSL 1.1.1k

#openssl #x509

#openssl #x509

Вопрос:

Я переношу некоторый код с openssl 1.0.2n на 1.1.1k, и у меня возникли некоторые проблемы с доступом.

Например, я объявляю тип:

 X509 *certificate;

 

И позже я выполняю следующую обработку, которая выдает мне ошибки компиляции, такие как invalid use of incomplete type 'X509 {aka struct x509_st}' и forward declaration of 'X509 {aka struct x509_st}'

 if ((certificate->cert_info) amp;amp; (certificate->cert_info->signature) amp;amp; (certificate->cert_info->signature->algorithm))
{
...
}

 

Я понимаю, что теперь эти структуры непрозрачны, и я больше не могу получить к ним доступ с помощью указателей. Как я могу получить к ним доступ с помощью openssl 1.1.1k? Заранее спасибо!

Ответ №1:

Вы можете получить данные сертификата cert_info.signature с помощью X509_get0_tbs_sigalg() :

https://www.openssl.org/docs/man1.1.1/man3/X509_get0_tbs_sigalg.html

Это возвращает X509_ALGOR объект, к которому вы можете запросить информацию об алгоритме, используя X509_ALGOR_get0 :

https://www.openssl.org/docs/man1.1.1/man3/X509_ALGOR_get0.html