Package eu.europa.esig.dss.pdf
Class AbstractPDFSignatureService
java.lang.Object
eu.europa.esig.dss.pdf.AbstractPDFSignatureService
- All Implemented Interfaces:
PDFSignatureService
- Direct Known Subclasses:
ITextPDFSignatureService,PdfBoxSignatureService
The abstract implementation of a PDF signature service
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PdfDifferencesFinderUsed to find differences occurred between PDF revisions (e.g.protected PdfObjectModificationsFinderUsed to find differences within internal PDF objects occurred between PDF revisions .protected PdfPermissionsCheckerUsed to verify PDF document permissions regarding a new signature creationprotected PdfSignatureFieldPositionCheckerUsed to verify the signature field position placement validityprotected DSSResourcesHandlerBuilderThe builder to be used to create a newDSSResourcesHandlerfor each internal call, defining a way working with internal resources (e.g. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractPDFSignatureService(PDFServiceMode serviceMode, SignatureDrawerFactory signatureDrawerFactory) Constructor for the PDFSignatureService -
Method Summary
Modifier and TypeMethodDescriptionaddDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion) This method adds the DSS dictionary (Baseline-LT) to a document without password-protection and without VRI dictionary.addDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion, char[] pwd) This method adds the DSS dictionary (Baseline-LT) to a password-protected document without inclusion of VRI dictionary.addDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion, String pwd) Deprecated.addNewSignatureField(DSSDocument document, SignatureFieldParameters parameters) This method allows to add a new signature field to an existing pdf documentaddNewSignatureField(DSSDocument document, SignatureFieldParameters parameters, String pwd) Deprecated.protected voidanalyzePdfModifications(DSSDocument document, PdfCMSRevision pdfRevision, PdfDocumentReader finalRevisionReader, char[] pwd) This method performs a modification analysis for a single givenpdfRevisionvoidanalyzePdfModifications(DSSDocument document, List<AdvancedSignature> signatures, char[] pwd) Analyze the PDF revision and try to detect any modification (shadow attacks) for signaturesvoidanalyzePdfModifications(DSSDocument document, List<AdvancedSignature> signatures, String pwd) Deprecated.voidanalyzeTimestampPdfModifications(DSSDocument document, List<TimestampToken> timestamps, char[] pwd) Analyze the PDF revision and try to detect any modification (shadow attacks) for PDf document timestampsprotected voidassertSignatureFieldPositionValid(PdfDocumentReader documentReader, AnnotationBox annotationBox, int pageNumber) This method verifies validity of the signature field box configuration calling the providedpdfSignatureFieldPositionCheckerprotected AnnotationBoxbuildSignatureFieldBox(SignatureDrawer signatureDrawer) Returns a SignatureFieldBox.protected voidcheckPdfPermissions(PdfDocumentReader documentReader, SignatureFieldParameters fieldParameters) This method verifies the PDF permissions dictionariesprotected abstract DSSMessageDigestcomputeDigest(DSSDocument toSignDocument, PAdESCommonParameters parameters) Computes digest on to be signed data computed on thetoSignDocumentrespectively to the givenparametersbyte[]digest(DSSDocument toSignDocument, PAdESCommonParameters parameters) Deprecated.getAvailableSignatureFields(DSSDocument document) This method returns not signed signature-fieldsgetAvailableSignatureFields(DSSDocument document, String pwd) Deprecated.getRevisions(DSSDocument document, char[] pwd) Retrieves revisions from a PDF documentgetRevisions(DSSDocument document, String pwd) Deprecated.protected StringgetType()Gets the type of the signature dictionaryprotected AnnotationBoxgetVisibleSignatureFieldBoxPosition(PdfDocumentReader reader, SignatureFieldParameters parameters) Checks if the signatureFieldBox overlaps with any existing annotations on the given page and returns the respectful signature field boxprotected AnnotationBoxgetVisibleSignatureFieldBoxPosition(SignatureDrawer signatureDrawer, PdfDocumentReader documentReader, SignatureFieldParameters fieldParameters) Checks validity of the SignatureField position and returns the calculated signature field boxprotected List<PdfModification>getVisualDifferences(PdfDocumentReader signedRevisionReader, PdfDocumentReader finalRevisionReader) Returns a list of visual differences between the provided PDF and the signed contentprotected DSSResourcesHandlerThis method instantiates a newDSSResourcesFactoryprotected booleanisDocTimestamp(PdfSignatureDictionary pdfSigDict) Checks if the given signature dictionary represents a DocTimeStampprotected booleanChecks if a DocumentTimestamp has to be added in the current modeprotected booleanisSignature(PdfSignatureDictionary pdfSigDict) Checks if the given signature dictionary represents a Signatureprotected abstract PdfDocumentReaderloadPdfDocumentReader(DSSDocument dssDocument, char[] passwordProtection) LoadsPdfDocumentReaderinstanceprotected SignatureDrawerloadSignatureDrawer(SignatureImageParameters imageParameters) Returns a SignatureDrawer initialized from a providedsignatureDrawerFactorymessageDigest(DSSDocument toSignDocument, PAdESCommonParameters parameters) Returns the message-digest computed on PDF signature revision's ByteRangevoidsetAlertOnForbiddenSignatureCreation(StatusAlert alertOnForbiddenSignatureCreation) Deprecated.since DSS 5.12.voidsetAlertOnSignatureFieldOutsidePageDimensions(StatusAlert alertOnSignatureFieldOutsidePageDimensions) Deprecated.since DSS 5.12.voidsetAlertOnSignatureFieldOverlap(StatusAlert alertOnSignatureFieldOverlap) Deprecated.since DSS 5.12.voidsetPdfDifferencesFinder(PdfDifferencesFinder pdfDifferencesFinder) Sets thePdfDifferencesFinderused to find the differences on pages between given PDF revisions.voidsetPdfObjectModificationsFinder(PdfObjectModificationsFinder pdfObjectModificationsFinder) Sets thePdfObjectModificationsFinderused to find the differences between internal PDF objects occurred between given PDF revisions.voidsetPdfPermissionsChecker(PdfPermissionsChecker pdfPermissionsChecker) Sets thePdfPermissionsCheckerused to verify the PDF document rules for a new signature creationvoidsetPdfSignatureFieldPositionChecker(PdfSignatureFieldPositionChecker pdfSignatureFieldPositionChecker) Sets thePdfSignatureFieldPositionCheckerused to verify the validity of new signature field placement.voidsetResourcesHandlerBuilder(DSSResourcesHandlerBuilder resourcesHandlerBuilder) SetsDSSResourcesFactoryBuilderto be used for aDSSResourcesHandlercreation in internal methods.sign(DSSDocument toSignDocument, byte[] cmsSignedData, PAdESCommonParameters parameters) Signs a PDF documentprotected abstract DSSDocumentsignDocument(DSSDocument toSignDocument, byte[] cmsSignedData, PAdESCommonParameters parameters) This method creates a signed document from the originaltoSignDocument, incorporating a new revision, enveloping the providedcmsSignedDataprotected AnnotationBoxtoPdfPageCoordinates(AnnotationBox fieldAnnotationBox, AnnotationBox pageBox) This method transforms afieldAnnotationBox's positions and dimensions according to the given pageprotected booleanvalidateByteRange(ByteRange byteRange, DSSDocument document, byte[] cms) This method verifies the validity of /ByteRange field against the extracted from /Contents fieldcmsand the current pdfdocumentMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface eu.europa.esig.dss.pdf.PDFSignatureService
addDssDictionary, addNewSignatureField, getAvailableSignatureFields, previewPageWithVisualSignature, previewSignatureField
-
Field Details
-
resourcesHandlerBuilder
The builder to be used to create a newDSSResourcesHandlerfor each internal call, defining a way working with internal resources (e.g. in memory or by using temporary files). The resources are used on a document creation Default :eu.europa.esig.dss.signature.resources.InMemoryResourcesHandler, working with data in memory -
pdfDifferencesFinder
Used to find differences occurred between PDF revisions (e.g. visible changes). Default :DefaultPdfDifferencesFinder -
pdfObjectModificationsFinder
Used to find differences within internal PDF objects occurred between PDF revisions . Default :DefaultPdfModificationsFinder -
pdfPermissionsChecker
Used to verify PDF document permissions regarding a new signature creation -
pdfSignatureFieldPositionChecker
Used to verify the signature field position placement validity
-
-
Constructor Details
-
AbstractPDFSignatureService
protected AbstractPDFSignatureService(PDFServiceMode serviceMode, SignatureDrawerFactory signatureDrawerFactory) Constructor for the PDFSignatureService- Parameters:
serviceMode- current instance is used to generate Signature or DocumentTimeStamp revisionsignatureDrawerFactory- the factory ofSignatureDrawer
-
-
Method Details
-
setResourcesHandlerBuilder
Description copied from interface:PDFSignatureServiceSetsDSSResourcesFactoryBuilderto be used for aDSSResourcesHandlercreation in internal methods.DSSResourcesHandlerdefines a way to operate with OutputStreams and createDSSDocuments. Default :eu.europa.esig.dss.signature.resources.InMemoryResourcesHandler. Works with data in memory.- Specified by:
setResourcesHandlerBuilderin interfacePDFSignatureService- Parameters:
resourcesHandlerBuilder-DSSResourcesHandlerBuilder
-
setPdfDifferencesFinder
Description copied from interface:PDFSignatureServiceSets thePdfDifferencesFinderused to find the differences on pages between given PDF revisions. Default :eu.europa.esig.dss.pdf.modifications.DefaultPdfDifferencesFinder- Specified by:
setPdfDifferencesFinderin interfacePDFSignatureService- Parameters:
pdfDifferencesFinder-PdfDifferencesFinder
-
setPdfObjectModificationsFinder
public void setPdfObjectModificationsFinder(PdfObjectModificationsFinder pdfObjectModificationsFinder) Description copied from interface:PDFSignatureServiceSets thePdfObjectModificationsFinderused to find the differences between internal PDF objects occurred between given PDF revisions. Default :eu.europa.esig.dss.pdf.modifications.DefaultPdfObjectModificationsFinder- Specified by:
setPdfObjectModificationsFinderin interfacePDFSignatureService- Parameters:
pdfObjectModificationsFinder-PdfObjectModificationsFinder
-
setPdfPermissionsChecker
Description copied from interface:PDFSignatureServiceSets thePdfPermissionsCheckerused to verify the PDF document rules for a new signature creation- Specified by:
setPdfPermissionsCheckerin interfacePDFSignatureService- Parameters:
pdfPermissionsChecker-PdfPermissionsChecker
-
setPdfSignatureFieldPositionChecker
public void setPdfSignatureFieldPositionChecker(PdfSignatureFieldPositionChecker pdfSignatureFieldPositionChecker) Description copied from interface:PDFSignatureServiceSets thePdfSignatureFieldPositionCheckerused to verify the validity of new signature field placement. For example to ensure the new signature field lies within PDF page borders and/or it does not overlap with existing signature fields.- Specified by:
setPdfSignatureFieldPositionCheckerin interfacePDFSignatureService- Parameters:
pdfSignatureFieldPositionChecker-PdfPermissionsChecker
-
setAlertOnSignatureFieldOverlap
Deprecated.since DSS 5.12. UsePdfSignatureFieldPositionChecker pdfSignatureFieldPositionChecker = new PdfSignatureFieldPositionChecker(); pdfSignatureFieldPositionChecker.setAlertOnSignatureFieldOverlap(alertOnSignatureFieldOutsidePageDimensions); pdfObjFactory.setPdfSignatureFieldPositionChecker(pdfSignatureFieldPositionChecker);Sets alert on a signature field overlap with existing fields or/and annotations Default : ExceptionOnStatusAlert - throw the exception- Parameters:
alertOnSignatureFieldOverlap-StatusAlertto execute
-
setAlertOnSignatureFieldOutsidePageDimensions
@Deprecated public void setAlertOnSignatureFieldOutsidePageDimensions(StatusAlert alertOnSignatureFieldOutsidePageDimensions) Deprecated.since DSS 5.12. UsePdfSignatureFieldPositionChecker pdfSignatureFieldPositionChecker = new PdfSignatureFieldPositionChecker(); pdfSignatureFieldPositionChecker.setAlertOnSignatureFieldOutsidePageDimensions(alertOnSignatureFieldOutsidePageDimensions); pdfObjFactory.setPdfSignatureFieldPositionChecker(pdfSignatureFieldPositionChecker);Sets a behavior to follow when a new signature field is created outside the page's dimensions Default : ExceptionOnStatusAlert - throw the exception- Parameters:
alertOnSignatureFieldOutsidePageDimensions-StatusAlertto execute
-
setAlertOnForbiddenSignatureCreation
@Deprecated public void setAlertOnForbiddenSignatureCreation(StatusAlert alertOnForbiddenSignatureCreation) Deprecated.since DSS 5.12. UsePdfPermissionsChecker pdfPermissionsChecker = new PdfPermissionsChecker(); pdfPermissionsChecker.setAlertOnForbiddenSignatureCreation(alertOnForbiddenSignatureCreation); pdfObjFactory.setPdfPermissionsChecker(pdfPermissionsChecker);Sets a behavior to follow when creating a new signature in a document that forbids creation of new signatures Default : ProtectedDocumentExceptionOnStatusAlert - throws theeu.europa.esig.dss.pades.exception.ProtectedDocumentExceptionexception- Parameters:
alertOnForbiddenSignatureCreation-StatusAlertto execute
-
loadSignatureDrawer
Returns a SignatureDrawer initialized from a providedsignatureDrawerFactory- Parameters:
imageParameters-SignatureImageParametersto use- Returns:
SignatureDrawer
-
instantiateResourcesHandler
This method instantiates a newDSSResourcesFactory- Returns:
DSSResourcesHandler- Throws:
IOException- if an error occurs on DSSResourcesHandler instantiation
-
digest
Deprecated.Description copied from interface:PDFSignatureServiceReturns the digest value of a PDF document.- Specified by:
digestin interfacePDFSignatureService- Parameters:
toSignDocument- the document to be signedparameters- the signature/timestamp parameters- Returns:
- the digest value
-
messageDigest
Description copied from interface:PDFSignatureServiceReturns the message-digest computed on PDF signature revision's ByteRange- Specified by:
messageDigestin interfacePDFSignatureService- Parameters:
toSignDocument- the document to be signedparameters- the signature/timestamp parameters- Returns:
DSSMessageDigest
-
computeDigest
protected abstract DSSMessageDigest computeDigest(DSSDocument toSignDocument, PAdESCommonParameters parameters) Computes digest on to be signed data computed on thetoSignDocumentrespectively to the givenparameters- Parameters:
toSignDocument-DSSDocumentto be signedparameters-PAdESCommonParameters- Returns:
DSSMessageDigest
-
sign
public DSSDocument sign(DSSDocument toSignDocument, byte[] cmsSignedData, PAdESCommonParameters parameters) Description copied from interface:PDFSignatureServiceSigns a PDF document- Specified by:
signin interfacePDFSignatureService- Parameters:
toSignDocument- the pdf document to be signedcmsSignedData- the encoded CMS Signed dataparameters- the signature/timestamp parameters- Returns:
DSSDocument
-
signDocument
protected abstract DSSDocument signDocument(DSSDocument toSignDocument, byte[] cmsSignedData, PAdESCommonParameters parameters) This method creates a signed document from the originaltoSignDocument, incorporating a new revision, enveloping the providedcmsSignedData- Parameters:
toSignDocument-DSSDocumentto be signedcmsSignedData- byte array representing the encoded CMS signed data's binariesparameters-PAdESCommonParameters- Returns:
DSSDocument
-
isDocumentTimestampLayer
protected boolean isDocumentTimestampLayer()Checks if a DocumentTimestamp has to be added in the current mode- Returns:
- TRUE if it is a DocumentTimestamp layer, FALSE otherwise
-
getType
Gets the type of the signature dictionary- Returns:
String
-
getRevisions
Deprecated.Description copied from interface:PDFSignatureServiceRetrieves revisions from a PDF document- Specified by:
getRevisionsin interfacePDFSignatureService- Parameters:
document- the document to extract revisions frompwd- the password protection phrase used to encrypt the PDF document use 'null' value for not an encrypted document- Returns:
- list of extracted
PdfRevisions
-
getRevisions
Description copied from interface:PDFSignatureServiceRetrieves revisions from a PDF document- Specified by:
getRevisionsin interfacePDFSignatureService- Parameters:
document- the document to extract revisions frompwd- the password protection phrase used to encrypt the PDF document use 'null' value for not an encrypted document- Returns:
- list of extracted
PdfRevisions
-
addDssDictionary
public DSSDocument addDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion) Description copied from interface:PDFSignatureServiceThis method adds the DSS dictionary (Baseline-LT) to a document without password-protection and without VRI dictionary.- Specified by:
addDssDictionaryin interfacePDFSignatureService- Parameters:
document- the document to be extendedvalidationDataForInclusion-PdfValidationDataContainer- Returns:
- the pdf document with the added dss dictionary
-
addDssDictionary
@Deprecated public DSSDocument addDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion, String pwd) Deprecated.Description copied from interface:PDFSignatureServiceThis method adds the DSS dictionary (Baseline-LT) to a password-protected document- Specified by:
addDssDictionaryin interfacePDFSignatureService- Parameters:
document- the document to be extendedvalidationDataForInclusion-PdfValidationDataContainerpwd- the password protection used to create the encrypted document (optional)- Returns:
- the pdf document with the added dss dictionary
-
addDssDictionary
public DSSDocument addDssDictionary(DSSDocument document, PdfValidationDataContainer validationDataForInclusion, char[] pwd) Description copied from interface:PDFSignatureServiceThis method adds the DSS dictionary (Baseline-LT) to a password-protected document without inclusion of VRI dictionary.- Specified by:
addDssDictionaryin interfacePDFSignatureService- Parameters:
document- the document to be extendedvalidationDataForInclusion-PdfValidationDataContainerpwd- the password protection used to create the encrypted document (optional)- Returns:
- the pdf document with the added dss dictionary
-
getAvailableSignatureFields
Description copied from interface:PDFSignatureServiceThis method returns not signed signature-fields- Specified by:
getAvailableSignatureFieldsin interfacePDFSignatureService- Parameters:
document- the pdf document- Returns:
- the list of empty signature fields
-
getAvailableSignatureFields
Deprecated.Description copied from interface:PDFSignatureServiceReturns not-signed signature fields from an encrypted document- Specified by:
getAvailableSignatureFieldsin interfacePDFSignatureService- Parameters:
document- the pdf documentpwd- the password protection phrase used to encrypt the document- Returns:
- the list of not signed signature field names
-
addNewSignatureField
Description copied from interface:PDFSignatureServiceThis method allows to add a new signature field to an existing pdf document- Specified by:
addNewSignatureFieldin interfacePDFSignatureService- Parameters:
document- the pdf documentparameters- the parameters with the coordinates,... of the signature field- Returns:
- the pdf document with the new added signature field
-
addNewSignatureField
@Deprecated public DSSDocument addNewSignatureField(DSSDocument document, SignatureFieldParameters parameters, String pwd) Deprecated.Description copied from interface:PDFSignatureServiceThis method allows to add a new signature field to an existing encrypted pdf document- Specified by:
addNewSignatureFieldin interfacePDFSignatureService- Parameters:
document- the pdf documentparameters- the parameters with the coordinates,... of the signature fieldpwd- the password protection used to create the encrypted document (optional)- Returns:
- the pdf document with the new added signature field
-
loadPdfDocumentReader
protected abstract PdfDocumentReader loadPdfDocumentReader(DSSDocument dssDocument, char[] passwordProtection) throws IOException, InvalidPasswordException LoadsPdfDocumentReaderinstance- Parameters:
dssDocument-DSSDocumentto readpasswordProtection- the password used to protect the document- Returns:
PdfDocumentReader- Throws:
IOException- in case of loading errorInvalidPasswordException- if the password is not provided or invalid for a protected document
-
validateByteRange
This method verifies the validity of /ByteRange field against the extracted from /Contents fieldcmsand the current pdfdocument- Parameters:
byteRange-ByteRangeto be validateddocument-DSSDocumentcurrent PDF documentcms- byte array representing the binaries extracted from /Contents field- Returns:
- TRUE if the /ByteRange is valid, FALSE otherwise
-
isDocTimestamp
Checks if the given signature dictionary represents a DocTimeStamp- Parameters:
pdfSigDict-PdfSignatureDictionaryto check- Returns:
- TRUE if the signature dictionary represents a DocTimeStamp, FALSE otherwise
-
isSignature
Checks if the given signature dictionary represents a Signature- Parameters:
pdfSigDict-PdfSignatureDictionaryto check- Returns:
- TRUE if the signature dictionary represents a Signature, FALSE otherwise
-
getVisibleSignatureFieldBoxPosition
protected AnnotationBox getVisibleSignatureFieldBoxPosition(SignatureDrawer signatureDrawer, PdfDocumentReader documentReader, SignatureFieldParameters fieldParameters) throws IOException Checks validity of the SignatureField position and returns the calculated signature field box- Parameters:
signatureDrawer-SignatureDrawerdocumentReader-PdfDocumentReaderfieldParameters-SignatureFieldParameters- Returns:
AnnotationBox- Throws:
IOException- if an exception occurs
-
buildSignatureFieldBox
Returns a SignatureFieldBox. Used for a SignatureField position validation.- Parameters:
signatureDrawer-SignatureDrawer- Returns:
AnnotationBox- Throws:
IOException- if an exception occurs
-
getVisibleSignatureFieldBoxPosition
protected AnnotationBox getVisibleSignatureFieldBoxPosition(PdfDocumentReader reader, SignatureFieldParameters parameters) throws IOException Checks if the signatureFieldBox overlaps with any existing annotations on the given page and returns the respectful signature field box- Parameters:
reader-PdfDocumentReaderto be validatedparameters-SignatureFieldParameters- Returns:
AnnotationBoxcomputed signature field box- Throws:
IOException- if an exception occurs
-
assertSignatureFieldPositionValid
protected void assertSignatureFieldPositionValid(PdfDocumentReader documentReader, AnnotationBox annotationBox, int pageNumber) This method verifies validity of the signature field box configuration calling the providedpdfSignatureFieldPositionChecker- Parameters:
documentReader-PdfDocumentReaderdocument where the new signature field should be createdannotationBox-AnnotationBoxdefining position and dimensions of the new signature fieldpageNumber- the number of a page where the new signature should be created
-
toPdfPageCoordinates
protected AnnotationBox toPdfPageCoordinates(AnnotationBox fieldAnnotationBox, AnnotationBox pageBox) This method transforms afieldAnnotationBox's positions and dimensions according to the given page- Parameters:
fieldAnnotationBox-AnnotationBoxcomputed field of a signaturepageBox-AnnotationBoxpage's box- Returns:
AnnotationBox
-
analyzePdfModifications
@Deprecated public void analyzePdfModifications(DSSDocument document, List<AdvancedSignature> signatures, String pwd) Deprecated.Description copied from interface:PDFSignatureServiceAnalyze the PDF revision and try to detect any modification (shadow attacks)- Specified by:
analyzePdfModificationsin interfacePDFSignatureService- Parameters:
document-DSSDocumentthe documentsignatures- the different signatures to analysepwd-Stringpassword protection
-
analyzePdfModifications
public void analyzePdfModifications(DSSDocument document, List<AdvancedSignature> signatures, char[] pwd) Description copied from interface:PDFSignatureServiceAnalyze the PDF revision and try to detect any modification (shadow attacks) for signatures- Specified by:
analyzePdfModificationsin interfacePDFSignatureService- Parameters:
document-DSSDocumentthe documentsignatures- the different signatures to be analysedpwd-Stringpassword protection
-
analyzeTimestampPdfModifications
public void analyzeTimestampPdfModifications(DSSDocument document, List<TimestampToken> timestamps, char[] pwd) Description copied from interface:PDFSignatureServiceAnalyze the PDF revision and try to detect any modification (shadow attacks) for PDf document timestamps- Specified by:
analyzeTimestampPdfModificationsin interfacePDFSignatureService- Parameters:
document-DSSDocumentthe documenttimestamps- the detached document timestamps to be analysedpwd-Stringpassword protection
-
analyzePdfModifications
protected void analyzePdfModifications(DSSDocument document, PdfCMSRevision pdfRevision, PdfDocumentReader finalRevisionReader, char[] pwd) throws IOException This method performs a modification analysis for a single givenpdfRevision- Parameters:
document-DSSDocumentthe validating documentpdfRevision-PdfCMSRevisionsignature revision to be validatedfinalRevisionReader-PdfDocumentReaderfinal document revisionpwd- char array representing the password string- Throws:
IOException- if an exception occurs while reading the PDF document
-
getVisualDifferences
protected List<PdfModification> getVisualDifferences(PdfDocumentReader signedRevisionReader, PdfDocumentReader finalRevisionReader) Returns a list of visual differences between the provided PDF and the signed content- Parameters:
signedRevisionReader-PdfDocumentReaderfor the signed revision contentfinalRevisionReader-PdfDocumentReaderfor the input PDF document- Returns:
- a list of
PdfModifications
-
checkPdfPermissions
protected void checkPdfPermissions(PdfDocumentReader documentReader, SignatureFieldParameters fieldParameters) This method verifies the PDF permissions dictionaries- Parameters:
documentReader-PdfDocumentReaderdocument to be checkedfieldParameters-SignatureFieldParametersidentifying a new signature field configuration
-