/** * Prepares the TimeStamp-Signature and starts the saving-process. * * @param document given Pdf * @param output Where the file will be written * @throws IOException */ public void signDetached(PDDocument document, OutputStream output) throws IOException { int accessPermissions = SigUtils.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.setType(COSName.DOC_TIME_STAMP); signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); signature.setSubFilter(COSName.getPDFName("ETSI.RFC3161")); // No certification allowed because /Reference not allowed in signature directory // see ETSI EN 319 142-1 Part 1 and ETSI TS 102 778-4 // http://www.etsi.org/deliver/etsi_en%5C319100_319199%5C31914201%5C01.01.00_30%5Cen_31914201v010100v.pdf // http://www.etsi.org/deliver/etsi_ts/102700_102799/10277804/01.01.01_60/ts_10277804v010101p.pdf // register signature dictionary and sign interface document.addSignature(signature, this); // write incremental (only for signing purpose) document.saveIncremental(output); }
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED); signature.setName("Example User");
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
PDSignature signature = new PDSignature(); signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); signature.setSubFilter(COSName.getPDFName("ETSI.RFC3161")); signature.setSignDate(Calendar.getInstance());
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); signature.setSignDate(cal); return signature; }
/** * Prepares the TimeStamp-Signature and starts the saving-process. * * @param document given Pdf * @param output Where the file will be written * @throws IOException */ public void signDetached(PDDocument document, OutputStream output) throws IOException { int accessPermissions = SigUtils.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.setType(COSName.DOC_TIME_STAMP); signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); signature.setSubFilter(COSName.getPDFName("ETSI.RFC3161")); // No certification allowed because /Reference not allowed in signature directory // see ETSI EN 319 142-1 Part 1 and ETSI TS 102 778-4 // http://www.etsi.org/deliver/etsi_en%5C319100_319199%5C31914201%5C01.01.00_30%5Cen_31914201v010100v.pdf // http://www.etsi.org/deliver/etsi_ts/102700_102799/10277804/01.01.01_60/ts_10277804v010101p.pdf // register signature dictionary and sign interface document.addSignature(signature, this); // write incremental (only for signing purpose) document.saveIncremental(output); }
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE); signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED); signature.setName("Example User");
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);