#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