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