Details

Description

This is a first version of a signing interface for pdfbox. There are some design issues i could not handle without rewriting too much of the code.

Here we go:

incremental update support (tested for signatures with pdf/a compatibility), not compatible with encrypted documents nor with xref-streams

cos object improvment

COSString with ability to force writing hexbin for given string

COSBase with ability to write direct into a dictionary (that means if this is set, no indirect object will be wrote) (sry hard to explain what i mean, actualy needed for incremental update to lower the rate of indirect objects)

COSDocument some getter and setter for handling new signature and incremental features

SignatureException with some exceptions for handling the bunch of new possible errors

-Parser improvments
– PDFParser saves now the position of the last startxref
– VisualSignatureParser (hook for parsing visual signature templates) (it's only for prepared visualisation that should be merged with the document)

-IO improvments
– COSFilterInput helps to find the proper content that should be hashed / signed
– COSStandardOutputStream is tricky, it helps the writer to jump to the right place in the document
– COSWriter got some improvments for incremental update
– COSWriterXRefEntry needed for incremental updates and writing the new Xref table

PDDocument

got a new method addSignature with the needed implementation (do the whole signature stuff)