我使用CryptVerifyDetachedMessageSignature和CryptVerifyMessageSignature函数检查PKCS7签名。 他们都可以使用我在PCCERT_CONTEXT结构中提供的证书来验证pkcs7文件。我使用CertCreateCertificateContext函数获得了PCCERT_CONTEXT。
但现在我还有其他任务。我必须从pkcs7文件中提取certiticateS并验证所有这些的签名。 你能帮我理解我怎么做这件事:
我必须使用C ++和CryptoApi来完成这项任务。
答案 0 :(得分:1)
如果我查看API,您似乎可以使用dwSignerIndex
来验证所有签名。用于创建签名的证书将在ppSignerCert
中返回。
API说明以下关于dwSignerIndex
:
所需签名的索引。可以有多个签名。可以重复调用CryptVerifyMessageSignature,每次递增dwSignerIndex。对于第一个签名者,或者如果只有一个签名者,将此参数设置为零。如果函数返回FALSE,并且GetLastError返回CRYPT_E_NO_SIGNER,则前一个调用处理了消息的最后一个签名者。