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
。
備註
此方法會根據IETF RFC 3161 附錄 A 使用CM) SignerInfoS) 的 IETF RFC 3161 附錄 A (簽章時間戳屬性,驗證時間戳令牌對密碼編譯訊息語法 (有效。
此方法要求 TSA 憑證具有必要的擴充密鑰使用值, (1.3.6.1.5.5.5.5.7.3.8) ,符合令牌的內嵌 ESSCertID 或 ESSCertID2 標識符、包含令牌時間戳值的有效範圍,且具有成功驗證令牌簽章的公鑰。
判斷適當的 TSA 憑證之後,這個方法會判斷提供的 signerInfo
簽章值是否符合令牌中的摘要和演算法識別碼。
signerInfo
如果簽章符合令牌的摘要和演算法識別碼,則會透過 signerCertificate
報告憑證,而方法會true
傳回 。
signerInfo
如果簽章不相符,或無法判斷 TSA 憑證,則方法會回報signerCertificate
為 null
並傳false
回 。
這個方法不會考慮 UnsignedAttributes 考慮的 signerInfo
,也不會判斷簽章是否 signerInfo
適合簽章所簽署的數據。