【问题标题】:Extract pkcs7 (byte[]) from a pdf file using IText or ITextSharp or BouncyCastle使用 IText 或 ITextSharp 或 BouncyCastle 从 pdf 文件中提取 pkcs7 (byte[])
【发布时间】:2011-05-13 20:20:53
【问题描述】:

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

【问题讨论】:

    标签: c# java itextsharp itext pkcs#7


    【解决方案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;
    }
    

    很简单,不是吗?

    【讨论】:

      【解决方案2】:

      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[] 但您的回答仅提供了一个包装器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多