2012-09-18 67 views
4

我使用ITextSharp從數字簽名的pdf文檔讀取證書信息。從pdf讀取證書

ITextSharp.Text.Pdf.PdfPKCS7類公開三個屬性:

  • Certificates(如表)
  • SignCertificate(如單個對象)
  • SignCertificateChain(如表)

我怎樣才能將這些三個屬性爲了實現關於單個證書的所有信息?

我將能夠顯示所有證書路徑(所有嵌套證書)。

回答

2

Certificates爲您提供沒有特定順序的列表,包括未用於主簽名的證書。

SignCertificate爲您提供實際簽名者的證書。

SignCertificateChain爲您提供第一個證書是SignCertificate的列表,下一個是頒發SignCertificate的實例的證書,下一個是頒發先前證書的實例的證書等等。這可以返回比Certificates少的證書,因爲只有用於主簽名的證書纔會被返回。

所以你不需要'結合'屬性來顯示證書路徑,你只需要SignCertificateChain。請注意,你的問題是不完全清楚:

一種相矛盾與

「顯示所有證書路徑 '關於證書的所有信息'(所有嵌套證書)'

如果要顯示導致簽名證書的鏈,則需要查看多個證書(除非證書是自簽名的,在這種情況下鏈中只有一個元素)。

+0

好的你的回答正是我所期待的。所以,通過SigncertificateChain我可以恢復主要的證書鏈,例如我的目的。非常感謝你。 – bit

+0

uhmmm ..只有一件事:是否存在任何方式來檢索證書的公鑰?我偷看了pdfPkcs7類,但我還沒找到任何方法。 – bit

+0

我只知道如何在Java中做到這一點。這是證書或X509Certificate類中的一種方法。 –