
IText does not offer simple API functions, though, that check whether the changes in incremental updates to signed revisions are all allowed. IText furthermore determines whether a signature covers the whole file, i.e. IText offers an API to validate each integrated signature, in particular this validation checks whether that integrated signature correctly signs the bytes it applies to. this answer on stack overflow and the documents referenced from there. Thus, a signature of a former revision still correctly signs its byte ranges even if a later revision completely changes how the PDF is displayed.Īs in common signing use cases content someone signed should not be arbitrarily changed, the PDF specification only considers very few types of changes in incremental updates to signed revisions valid, cf.

Integrated PDF signatures sign the complete revision of the document in which they were added to the file with the obvious exception of the actual signature bytes. With each such incremental update a new revision of the file is added to the file. This mechanism only appends to the file leaving the original bytes unchanged.

PDFs can be changed by a mechanism called incremental updates. It does not check, though, whether changes in incremental updates are allowed changes.

IText offers an API to validate each integrated signature and to check whether it covers the whole document.
