Rfc3161TimestampToken.VerifySignatureForSignerInfo 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
验证当前令牌是否为提供的 SignerInfo 的有效时间戳令牌。
public bool VerifySignatureForSignerInfo (System.Security.Cryptography.Pkcs.SignerInfo signerInfo, out System.Security.Cryptography.X509Certificates.X509Certificate2? signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection? extraCandidates = default);
public bool VerifySignatureForSignerInfo (System.Security.Cryptography.Pkcs.SignerInfo signerInfo, out System.Security.Cryptography.X509Certificates.X509Certificate2 signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraCandidates = default);
member this.VerifySignatureForSignerInfo : System.Security.Cryptography.Pkcs.SignerInfo * X509Certificate2 * System.Security.Cryptography.X509Certificates.X509Certificate2Collection -> bool
Public Function VerifySignatureForSignerInfo (signerInfo As SignerInfo, ByRef signerCertificate As X509Certificate2, Optional extraCandidates As X509Certificate2Collection = Nothing) As Boolean
参数
- signerInfo
- SignerInfo
用于验证所生成的时间戳的 CMS 签名者信息。
- signerCertificate
- X509Certificate2
此方法返回结果时,从签署此令牌的时间戳颁发机构 (TSA) 返回证书,如果无法确定签名者证书,则返回 null
。 该参数未经初始化即被处理。
- extraCandidates
- X509Certificate2Collection
除了令牌中可能包含的任何证书之外,还可以考虑作为时间戳颁发机构 (TSA) 证书的可选证书集合。
返回
如果找到了时间戳颁发机构(TSA)证书,证书公钥对令牌签名进行了验证,并且该令牌与 signerInfo
的签名匹配,则为 true
;否则,为 false
。
例外
signerInfo
为 null
。
注解
根据使用 CMS) SignerInfo (的 IETF RFC 3161 附录 A (签名时间戳属性,此方法验证时间戳令牌是否对 CMS) 的加密消息语法有效。
此方法要求 TSA 证书具有所需的扩展密钥使用值 (1.3.6.1.5.5.5.7.3.8) ,与令牌的嵌入 ESSCertID 或 ESSCertID2 标识符匹配,有效范围包含令牌的时间戳值,并且具有成功验证令牌签名的公钥。
确定相应的 TSA 证书后,此方法确定提供的 signerInfo
中的签名值是否与令牌中的摘要和算法标识符匹配。
signerInfo
如果签名与令牌的摘要和算法标识符匹配,则通过 signerCertificate
报告证书,方法返回 true
。
signerInfo
如果签名不匹配,或者无法确定 TSA 证书,方法将报告signerCertificate
为 null
并返回 false
。
此方法不考虑 UnsignedAttributes 正在考虑的 signerInfo
,也不会确定签名是否 signerInfo
适合签名声称已签名的数据。