2
如何使用IText或BouncyCastle从PDF签名文件中提取编码的PKCS7软件包,以便我可以存储或验证另一个框架? 事实上,我怎样才能从pdf签名的文件中获得PKCS7编码的包?使用IText或ITextSharp或BouncyCastle从pdf文件中提取pkcs7(byte [])
如何使用IText或BouncyCastle从PDF签名文件中提取编码的PKCS7软件包,以便我可以存储或验证另一个框架? 事实上,我怎样才能从pdf签名的文件中获得PKCS7编码的包?使用IText或ITextSharp或BouncyCastle从pdf文件中提取pkcs7(byte [])
我的一位朋友帮助我获得答案。
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);
}
祝你好运!
正如问题标题所示,OP要pkcs7对象作为'byte []',但你的回答只是提供一个包装。 – mkl