OpenSSL 1.1.0:从STACK_OF()获取堆栈

时间:2019-10-02 15:05:49

标签: openssl

因为openssl 1.1.0使所有数据结构变得不透明,所以我正在重构代码并遇到以下问题:

STACK_OF(CMS_SignerInfo)* pSignatures = CMS_get0_SignerInfos(pCMS);
if (1 != M_sk_num(&pSignatures->stack)) 
{
//error
}

由于无法访问类型为stack的成员node**,因此无法编译。 我使用什么吸气剂功能来访问stack? 谢谢!

1 个答案:

答案 0 :(得分:1)

  

M_sk_num(&pSignatures->stack)

此代码似乎正在返回堆栈中的元素数。

可以通过调用sk_CMS_SignerInfo_num(pSignatures)

来代替

在此处查看手册页:

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