【发布时间】:2011-05-13 20:20:53
【问题描述】:
如何从 pdf 签名文件中提取使用 IText 或 BouncyCastle 编码的 PKCS7 包,以便我可以在另一个框架中存储或验证? 事实上,我如何才能从 pdf 签名文件中获取 PKCS7 编码包?
【问题讨论】:
标签: c# java itextsharp itext pkcs#7
如何从 pdf 签名文件中提取使用 IText 或 BouncyCastle 编码的 PKCS7 包,以便我可以在另一个框架中存储或验证? 事实上,我如何才能从 pdf 签名文件中获取 PKCS7 编码包?
【问题讨论】:
标签: c# java itextsharp itext pkcs#7
我的一个朋友帮助我得到了答案。
public static byte[] ExtractPKCS7From(string path)
{
AcroFields acroFields = new PdfReader(path).AcroFields;
List<string> names = acroFields.GetSignatureNames();
foreach(var name in names)
{
PdfDictionary dict = acroFields.GetSignatureDictionary(name);
PdfString contents =
(PdfString)PdfReader.GetPdfObject(dict.Get(PdfName.CONTENTS));
return contents.GetOriginalBytes();
}
return null;
}
很简单,不是吗?
【讨论】:
Java 代码,对 pkcs7 对象做任何你想做的事! :)
PdfReader r = new PdfReader(fOs);
AcroFields af = r.getAcroFields();
ArrayList<String> listNames = af.getSignatureNames();
for(String x : listNames){
PdfPKCS7 pkcs7 = af.verifySignature(signature);
}
祝你好运!
【讨论】:
byte[] 但您的回答仅提供了一个包装器。