[
https://issues.apache.org/jira/browse/PDFBOX-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12998755#comment-12998755
]
Thomas Chojecki commented on PDFBOX-912:
----------------------------------------
Hi Adam,
sry for the late response.
I can't provide the original implementation due to the copyright. So i need to
write a new implementation.
I used for example the follow imports from BC:
import org.bouncycastle.asn1.cms.Attribute;
import org.bouncycastle.asn1.cms.AttributeTable;
import org.bouncycastle.asn1.ess.ESSCertID;
import org.bouncycastle.asn1.ess.ESSCertIDv2;
import org.bouncycastle.asn1.ess.SigningCertificate;
import org.bouncycastle.asn1.ess.SigningCertificateV2;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSProcessableByteArray;
import org.bouncycastle.cms.CMSSignedData;
import org.bouncycastle.cms.CMSSignedDataGenerator;
import org.bouncycastle.cms.SignerId;
import org.bouncycastle.cms.SignerInformation;
But the org.bouncycastle.asn1.ess.* imports are only need for CAdES / PAdES
signatures. So from BC you need the BCProvider and the SMIME jar.
Best regards
Thomas
PS:
I hope i can provide next days a small example for basic signatures. Maybe a
zip with all files (without libs) you need for doing a signature.
> 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
> Assignee: Adam Nichols
> Priority: Minor
> Attachments: cos_object_improvement_patch.txt,
> fields_annotations_patch.txt, interface_options_patch.txt, io_patch.txt,
> main_documents_patch.txt, parser_patch.txt, signature_exception_patch.txt,
> test.pdf, test_signed.pdf, writer_patch.txt
>
>
> 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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira