List of usage examples for org.apache.pdfbox.pdmodel PDDocument getSignatureDictionaries
public List<PDSignature> getSignatureDictionaries()
From source file:se.tillvaxtverket.ttsigvalws.ttwssigvalidation.pdf.PdfSignatureVerifier.java
License:Open Source License
/** * Verifies the signature on a PDF document * * @param pdfFile The PDF file to verify * @param verifyPades If this is set to false, signature validation will * ignore any errors in any present PAdES Signed signature certificate data. * This should normally always be true. If this is set to true, signature * validation will still succeed if PAdES data is absent. * @return Signature verification result data. * @throws IOException/*from ww w .j a v a 2 s . c om*/ */ public static PdfSigVerifyResult verifyPdfSignatures(File pdfFile, boolean verifyPades) throws IOException { PDDocument doc = PDDocument.load(pdfFile); PdfSigVerifyResult result = new PdfSigVerifyResult(); List<PDSignature> signatureDicts = doc.getSignatureDictionaries(); for (PDSignature sig : signatureDicts) { byte[] signedContent = sig.getSignedContent(new FileInputStream(pdfFile)); byte[] sigBytes = sig.getContents(new FileInputStream(pdfFile)); CMSSigVerifyResult sigResult = result.addNewIndividualSignatureResult(); try { verifySign(sigBytes, signedContent, sigResult, verifyPades); } catch (Exception ex) { sigResult.setStatus("Failed with exception: " + ex.getMessage()); } } result.consolidateResults(); return result; }