Openssl 什么可能导致CMS例程:CMS\u签名信息\u验证\u证书:证书验证错误?

Openssl 什么可能导致CMS例程:CMS\u签名信息\u验证\u证书:证书验证错误?,openssl,cryptography,x509certificate,x509,x509certificatevalidator,Openssl,Cryptography,X509certificate,X509,X509certificatevalidator,我正在尝试基于其颁发者CA证书验证签名者证书。我正在使用以下OpenSSL API验证证书 int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, unsigned int flags); 第一个参数包含base64编码的消息。 第二个参数是CA和签名者证书的堆栈, 第三个参数是指向证书存储的指针, 第四个和第五个参数是BIO指针。 最后一个参数设

我正在尝试基于其颁发者CA证书验证签名者证书。我正在使用以下OpenSSL API验证证书

int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, unsigned int flags);
第一个参数包含base64编码的消息。 第二个参数是CA和签名者证书的堆栈, 第三个参数是指向证书存储的指针, 第四个和第五个参数是BIO指针。 最后一个参数设置为0

当我尝试根据我获得的CA证书验证签名者证书时

CMS routines:CMS_SIGNERINFO_VERIFY_CERT:certificate verify error
签名者证书的颁发者证书为CA证书,CA和签名者证书均有效

有人知道是什么导致了验证失败吗?(1)第1个参数也不应该是b64或“der”(二进制)格式的消息,它应该是指向通过解析消息创建的内部结构的指针(2)在任何情况下都不需要第4个和第5个参数为非空(3)如果正确打印errstack/errentry,它应该包括verify错误,如果在不到一个月的时间内有太多可能的原因要在堆栈答案中列出(1)第1个参数也不应该是b64或“der”(二进制)中的消息,它应该是指向通过解析消息创建的内部结构的指针(2)在任何情况下都不需要第4个和第5个参数nonnull(3)如果您正确打印了errstack/errentry,它应该包括verify错误,因为在不到一个月的时间内,堆栈答案中可能会列出太多的原因