PDF signing interface and improvments
-------------------------------------

                 Key: PDFBOX-912
                 URL: https://issues.apache.org/jira/browse/PDFBOX-912
             Project: PDFBox
          Issue Type: Improvement
          Components: PDFReader, PDModel, PDModel.AcroForm, Writing
    Affects Versions: 1.4.0
            Reporter: Thomas Chojecki
            Priority: Minor
             Fix For: 1.4.0


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)
  -- COSBase with ability to force writing object (this hook help the COSWriter 
write needed objects for inkremental update)
  -- COSName added new names
  -- 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)
 -- cleanup

- Fields and Annotations
 -- PDSignature represent the signature dictionary 
 -- PDSignatureFild / Annotation are the visible & unvisible signature 
representations

- Signature Interface and options
 -- SignatureInterface the interface that shall be implemented for proper 
signing
 -- SignatureOptions, some additional options for signing

Patch splited into pieces

sry for spelling, didn't include a spellchecker for english.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to