Example usage for org.apache.pdfbox.pdmodel.interactive.digitalsignature ExternalSigningSupport getContent

List of usage examples for org.apache.pdfbox.pdmodel.interactive.digitalsignature ExternalSigningSupport getContent

Introduction

In this page you can find the example usage for org.apache.pdfbox.pdmodel.interactive.digitalsignature ExternalSigningSupport getContent.

Prototype

InputStream getContent() throws IOException;

Source Link

Document

Get PDF content to be signed.

Usage

From source file:com.ackpdfbox.app.CreateSignature.java

License:Apache License

public void signDetached(PDDocument document, OutputStream output, TSAClient tsaClient) throws IOException {
    setTsaClient(tsaClient);//from w  w w.j  ava2s . co  m

    // create signature dictionary
    PDSignature signature = new PDSignature();
    signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
    signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
    signature.setName("Example User");
    signature.setLocation("Los Angeles, CA");
    signature.setReason("Testing");
    // TODO extract the above details from the signing certificate? Reason as a parameter?

    // the signing date, needed for valid signature
    signature.setSignDate(Calendar.getInstance());

    if (isExternalSigning()) {
        System.out.println("Sign externally...");
        document.addSignature(signature);
        ExternalSigningSupport externalSigning = document.saveIncrementalForExternalSigning(output);
        // invoke external signature service
        byte[] cmsSignature = sign(externalSigning.getContent());
        // set signature bytes received from the service
        externalSigning.setSignature(cmsSignature);
    } else {
        // register signature dictionary and sign interface
        document.addSignature(signature, this);

        // write incremental (only for signing purpose)
        document.saveIncremental(output);
    }
}

From source file:fixture.pdfboxeg.CreateSignature.java

License:Apache License

public void signDetached(PDDocument document, OutputStream output, TSAClient tsaClient, boolean certify)
        throws IOException {
    setTsaClient(tsaClient);//from w w w  .  j a  v  a 2  s  .c  om

    int accessPermissions = getMDPPermission(document);
    if (accessPermissions == 1) {
        throw new IllegalStateException(
                "No changes to the document are permitted due to DocMDP transform parameters dictionary");
    }

    // create signature dictionary
    PDSignature signature = new PDSignature();
    signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
    signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
    signature.setName("Example User");
    signature.setLocation("Los Angeles, CA");
    signature.setReason("Testing");
    // TODO extract the above details from the signing certificate? Reason as a parameter?

    // the signing date, needed for valid signature
    signature.setSignDate(Calendar.getInstance());

    // Optional: certify 
    if (certify && accessPermissions == 0) {
        setMDPPermission(document, signature, 2);
    }

    if (isExternalSigning()) {
        //System.out.println("Sign externally...");
        document.addSignature(signature);
        ExternalSigningSupport externalSigning = document.saveIncrementalForExternalSigning(output);
        // invoke external signature service
        byte[] cmsSignature = sign(externalSigning.getContent());
        // set signature bytes received from the service
        externalSigning.setSignature(cmsSignature);
    } else {
        // register signature dictionary and sign interface
        document.addSignature(signature, this);

        // write incremental (only for signing purpose)
        document.saveIncremental(output);
    }
}