From ec99166bc7057eaa70aedcb183e0409ae0bee028 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Tue, 16 Feb 2016 14:32:13 +0100 Subject: configurable signature buffer size --- .../at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java | 5 +++++ .../pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java index c1fd4fe5..a73a4846 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java @@ -96,4 +96,9 @@ public interface IConfigurationConstants { public static final String SL_REQUEST_TYPE = "sl.request.type"; public static final String SL_REQUEST_TYPE_BASE64 = "b64"; public static final String SL_REQUEST_TYPE_UPLOAD = "upload"; + + /** + * Signature object Prefix + */ + public static final String SIG_RESERVED_SIZE = "signatureSize"; } diff --git a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java index 8556ae9f..c853ee17 100644 --- a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java +++ b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java @@ -209,7 +209,17 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { signer.setPDSignature(signature); - options.setPreferedSignatureSize(0x1000); + int signatureSize = 0x1000; + try { + String reservedSignatureSizeString = pdfObject.getStatus().getSettings().getValue(SIG_RESERVED_SIZE); + if(reservedSignatureSizeString != null) { + signatureSize = Integer.parseInt(reservedSignatureSizeString); + } + logger.debug("Reserving {} bytes for signature", signatureSize); + } catch(NumberFormatException e) { + logger.warn("Invalid configuration value: {} should be a number using 0x1000", SIG_RESERVED_SIZE); + } + options.setPreferedSignatureSize(signatureSize); // Is visible Signature if (requestedSignature.isVisual()) { -- cgit v1.2.3