我一直在开发一些逻辑,以便在cms签名数据中获取证书及其吊销列表。证书格式为X509v3,吊销列表为OCSP响应。
根据RFC 5652:“可以使用OtherRevocationInfoFormat支持联机证书状态协议(OCSP)响应。”
所以我#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)
但是,我不知道如何在C ++中通过openssl获得OCSP响应。只有:
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;
};
但是,我找不到办法。我需要导入其他库吗?