2012-12-14 61 views
0

我有一個數字證書,我想用它來數字簽名PDF文件,因此,我正在用C#開發軟件......我正在使用iTextSharp和BouncyCastle的API以及.NET的核心庫...C#密鑰在簽署時無法在指定狀態下使用pdf

我x509Certificate2名爲X509的證書對象與我需要找出這樣

Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair cert = DotNetUtilities.GetKeyPair(x509.PrivateKey); 
一個Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair對象

然後我將它添加到iTextSharp提供的以下行

PrivateKeySignature pks = new PrivateKeySignature(cert.Private,DigestAlgorithms.SHA256); 

但是包含'GetKeyPair'的上一行收到一個異常,指出密鑰在指定狀態下無效。

無法弄清楚背後的原因。

+0

您可以查看http://bo.lt/7x2j3或讓我們看看您的代碼的詳細信息 –

+0

這不是我正在尋找的答案 – habibalsaki

+0

請澄清「我有一個數字證書,我想簽署PDF數字文件「。並非所有數字證書都有效簽署文檔。也許錯誤是正確的。用一個比喻:如果你試圖用你房子的鑰匙開車,你也會遇到麻煩。我從與我編寫的文檔一起發佈的示例中識別代碼http://itextpdf.com/book/digitalsignatures所有這些示例都使用有效密鑰在Java和C#中成功進行了測試。 –

回答

0

需要檢查的一件事是,當證書被加載到證書存儲中時,允許導出選項被選中。這不是導致這種失敗的唯一原因,但這是一個原因。

相關問題