共用方式為


Rfc3161TimestampToken.VerifySignatureForSignerInfo 方法

定義

驗證目前權杖是否為所提供 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

例外狀況

signerInfonull

備註

此方法會根據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 憑證,則方法會回報signerCertificatenull 並傳false回 。

這個方法不會考慮 UnsignedAttributes 考慮的 signerInfo ,也不會判斷簽章是否 signerInfo 適合簽章所簽署的數據。

適用於

另請參閱