2011-05-13 9 views

答えて

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

かなりまっすぐですね。

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

幸運!

+1

質問のタイトルが示すように、OPはpkcs7オブジェクトを 'byte []'として欲しましたが、あなたの答えは単にラッパーを提供するだけです。 – mkl

関連する問題