List of usage examples for org.apache.pdfbox.pdmodel.interactive.digitalsignature PDSignature setName
public void setName(String name)
From source file:com.itdhq.poc.ocrsign.CreateSignature.java
License:Apache License
public void signDetached(PDDocument document, OutputStream output, TSAClient tsaClient) throws IOException { setTsaClient(tsaClient);//from w w w .j a v a2s .com // 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()); // register signature dictionary and sign interface // FIXME //document.addSignature(signature, this); // write incremental (only for signing purpose) // FIXME //document.saveIncremental(output); }
From source file:com.itdhq.poc.ocrsign.CreateVisibleSignature.java
License:Apache License
/** * Sign pdf file and create new file that ends with "_signed.pdf". * * @param inputFile The source pdf document file. * @param signedFile The file to be signed. * @throws IOException/* w w w .java2 s. co m*/ */ public void signPDF(File inputFile, File signedFile) throws IOException { if (inputFile == null || !inputFile.exists()) { throw new IOException("Document for signing does not exist"); } // creating output document and prepare the IO streams. FileOutputStream fos = new FileOutputStream(signedFile); // load document PDDocument doc = PDDocument.load(inputFile); // create signature dictionary PDSignature signature = new PDSignature(); signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); // default filter // subfilter for basic and PAdES Part 2 signatures signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED); signature.setName("signer name"); signature.setLocation("signer location"); signature.setReason("reason for signature"); // the signing date, needed for valid signature signature.setSignDate(Calendar.getInstance()); // register signature dictionary and sign interface if (visibleSignatureProperties != null && visibleSignatureProperties.isVisualSignEnabled()) { options = new SignatureOptions(); options.setVisualSignature(visibleSignatureProperties); options.setPage(visibleSignatureProperties.getPage() - 1); // FIXME //doc.addSignature(signature, this, options); } else { // FIXME //doc.addSignature(signature, this); } // write incremental (only for signing purpose) // FIXME //doc.saveIncremental(fos); doc.close(); // do not close options before saving, because some COSStream objects within options // are transferred to the signed document. // FIXME //IOUtils.closeQuietly(options); }
From source file:eu.europa.ec.markt.dss.signature.pdf.pdfbox.PdfBoxSignatureService.java
License:Open Source License
private PDSignature createSignatureDictionary(final SignatureParameters parameters) { final PDSignature signature = new PDSignature(); signature.setName(String.format("SD-DSS Signature %s", parameters.getDeterministicId())); signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); // default filter // sub-filter for basic and PAdES Part 2 signatures signature.setSubFilter(getSubFilter()); // the signing date, needed for valid signature final Calendar cal = Calendar.getInstance(); final Date signingDate = parameters.bLevel().getSigningDate(); cal.setTime(signingDate);//w w w .j av a 2 s . c o m signature.setSignDate(cal); return signature; }
From source file:eu.europa.esig.dss.pdf.pdfbox.PdfBoxSignatureService.java
License:Open Source License
private PDSignature createSignatureDictionary(final PAdESSignatureParameters parameters) { final PDSignature signature = new PDSignature(); signature.setType(getType());//from www. j a v a 2 s . c o m // signature.setName(String.format("SD-DSS Signature %s", parameters.getDeterministicId())); Date date = parameters.bLevel().getSigningDate(); String encodedDate = " " + Hex .encodeHexString(DSSUtils.digest(DigestAlgorithm.SHA1, Long.toString(date.getTime()).getBytes())); CertificateToken token = parameters.getSigningCertificate(); if (token == null) { signature.setName("Unknown signer" + encodedDate); } else { if (parameters.getSigningCertificate().getSubjectShortName() != null) { String shortName = parameters.getSigningCertificate().getSubjectShortName() + encodedDate; signature.setName(shortName); } else { signature.setName("Unknown signer" + encodedDate); } } signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); // default filter // sub-filter for basic and PAdES Part 2 signatures signature.setSubFilter(getSubFilter()); if (COSName.SIG.equals(getType())) { if (StringUtils.isNotEmpty(parameters.getContactInfo())) { signature.setContactInfo(parameters.getContactInfo()); } if (StringUtils.isNotEmpty(parameters.getLocation())) { signature.setLocation(parameters.getLocation()); } if (StringUtils.isNotEmpty(parameters.getReason())) { signature.setReason(parameters.getReason()); } } // the signing date, needed for valid signature final Calendar cal = Calendar.getInstance(); final Date signingDate = parameters.bLevel().getSigningDate(); cal.setTime(signingDate); signature.setSignDate(cal); return signature; }
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);/* ww w.jav a 2 s . com*/ 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); } }
From source file:se.tillvaxtverket.ttsigvalws.ttwssigvalidation.pdf.PdfBoxSigUtil.java
License:Open Source License
/** * Sets the signer name and location from the signer certificate subject DN * * @param signature The signature object to be updated * @param sigCert The certificate being source of data * @throws CertificateEncodingException/*from w ww. ja va 2 s . c om*/ * @throws IOException */ public static void setSubjectNameAndLocality(PDSignature signature, Certificate sigCert) throws CertificateEncodingException, IOException { Map<SubjectDnAttribute, String> subjectDnAttributeMap = getSubjectAttributes(sigCert); signature.setName(getName(subjectDnAttributeMap)); signature.setLocation(getLocation(subjectDnAttributeMap)); }