Example usage for org.apache.pdfbox.pdmodel PDDocument getSignatureDictionaries

List of usage examples for org.apache.pdfbox.pdmodel PDDocument getSignatureDictionaries

Introduction

In this page you can find the example usage for org.apache.pdfbox.pdmodel PDDocument getSignatureDictionaries.

Prototype

public List<PDSignature> getSignatureDictionaries() 

Source Link

Document

Retrieve all signature dictionaries from the document.

Usage

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