使用IText或ITextSharp或BouncyCastle从pdf文件中提取pkcs7(byte [])

时间:2011-05-13 20:20:53

标签: c# java itextsharp itext pkcs#7

如何使用IText或BouncyCastle从pdf签名文件中提取编码的PKCS7包,以便我可以在另一个框架中存储或验证? 实际上,我怎样才能从pdf签名文件中获得PKCS7编码的包呢?

2 个答案:

答案 0 :(得分:1)

我的一位朋友帮助我得到答案。

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;
}

非常直接,不是吗?

答案 1 :(得分:0)

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);
}
祝你好运!