Я разработал некоторую логику для получения сертификатов и списка отзыва в данных, подписанных cms.Формат сертификатов - X509v3, а список отзыва - ответы OCSP.
Согласно RFC 5652 : «Ответы протокола OCSP могут поддерживаться с помощью OtherRevocationInfoFormat».
Итак, я #include <openssl/cms.h>
и получаю сертификаты x509v3 через:
STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
(см .: https://www.openssl.org/docs/man1.1.0/crypto/CMS_get1_certs.html)
Но я не знаюкак получить ответы OCSP через openssl в C ++. Есть только:
STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
Но это получает список информации об аннулировании как crls, а не как ответ OCSP.
Я обнаружил, что в cms_lcl.h
, информация об аннулировании включена в CMS_RevocationInfoChoice
как тип объединения:
struct CMS_RevocationInfoChoice_st {
int type;
union {
X509_CRL *crl;
CMS_OtherRevocationInfoFormat *other;
} d;
};
Но я не могу найти способ получить его. Нужно ли мне импортировать другие библиотеки