0
我在.NET框架中使用System.Security.Cryptography.Pkcs.SignedCms
類來讀取和驗證簽名數據。如何找出哪個證書用於簽署PKCS7消息?
爲此我有一個有效的證書列表,我通過了CheckSignature
方法。
這很好用,如果簽名證書不包含在列表中,該方法會拋出異常。
但是我想檢索用於驗證消息的確切證書。 CheckSignature
方法返回void,並且SignedCms
上的Certificates
屬性在我的數據集中始終爲null
。
我不想蠻橫強制所有可能的證書,特別是如果證書無效,並且列表中可能有很多證書,該方法會引發異常。
任何想法如何做到這一點?
相關問題:是否有一種方法來檢查證書,如果沒有找到有效證書(我寧願布爾返回值)不會導致異常。
謝謝!
好的,我找到了!它包含在SignerInfos中,但它有點複雜。您必須檢查SignerIdentifier並將包含的「Value」轉換爲適當的類型,在我的情況下是X509IssuerSerial。該對象不包含頒發者的專有名稱和證書的序列號,它們是唯一的,可用於執行查找。 – aKzenT