static STACK_OF(CMS_RevocationInfoChoice)
**cms_get0_revocation_choices(CMS_ContentInfo *cms)
{
switch (OBJ_obj2nid(cms->contentType)) {
case NID_pkcs7_signed:
return &cms->d.signedData->crls;
来源另一个问题说是
#define STACK_OF(type) struct stack_st_##type
但是当我用regex#defines*STACK_OF
搜索openssl代码时,我没有找到任何条目。
STACK_OF
是什么?
对于 根据OpenSSL Wiki: 堆栈API 堆栈库提供了处理类的集合的通用方法对象在OpenSSL。可以注册比较函数来排序收集。 接口分为两个头,和& lt; openssl/safestack.h>。前者声明了C函数对象上执行插入、删除、弹出、推送和其他操作栈,而后者声明了一堆宏来强制执行由编译器进行类型检查;这些宏大多是自动生成的mkstack.pl。STACK_OF()
宏定义为:# define STACK_OF(type) struct stack_st_##type
X509
类型,结构定义为:struct x509_st {
X509_CINF cert_info;
X509_ALGOR sig_alg;
.
.
.
char *propq;
} /* X509 */ ;
基本使用
堆栈类型是用DECLARE_STACK_OF()宏及其实例是用STACK_OF()宏声明的。
…