Hi,

After a couple hours of debugging, I understand how and why which objects are 
written.

I use PDFBox for both signatures and started playing around with 
org.apache.pdfbox.pdfwriter.COSWriter#COSWriter(java.io.OutputStream, 
org.apache.pdfbox.io.RandomAccessRead, 
java.util.Set<org.apache.pdfbox.cos.COSDictionary>)
without success.

If I don’t write the AcroForm or Page, then Acrobat seams to not find the 
signature at all.
If I write them, then it shows a modification.

I start having the feeling, that I am looking at the wrong place.

Are there any flags, which could disallow further changes to the PDF document, 
even if these are just another signature?
Tried changing AcroForm /SigFlags from SIGNATURE_EXISTS and APPEND_ONLY to just 
SIGNATURE_EXISTS, which doesn’t change Acrobats behaviour.

As always a debug log from Acrobat would be nice.

For the PDF: I have to remove the content, before I can share it. Will try to 
do it as soon as possible. Right now, it is difficult to debug.


Waldemar




> On 17. 02 2021, at 18:02, Tilman Hausherr <[email protected]> wrote:
> 
> Hi,
> 
> page is set updated because the annotations array is updated and the array is 
> always saved inside (not as an object).
> 
> acroform is updated because fields is a direct object and fields is modified.
> 
> Yes, it might make sense to fine-tune this, i.e. to set the update flag only 
> if fields / annotations are added.
> The problem is that this code segment is very difficult, we have seen many 
> weird problems (similar to yours!) that can't be discovered in automated 
> tests.
> 
> One risk I remember/suspect is that when we don't mark certain parts as 
> updated, then dependent modified objects aren't updated either. There must be 
> a "path" to the modified objects.
> 
> Could you share the PDF files? (upload to sharehoster) Are you signing both 
> with PDFBox or only one with it and the other with another product?
> 
> 
> Tilman
> 
> Am 17.02.2021 um 11:01 schrieb Waldemar Dick:
>> Dear all,
>> 
>> I have a problem when signing a PDF document twice, which already has 
>> signature form fields pre-placed on the document.
>> 
>> The problem is visible, when the document is signed the second time. The 
>> signatures are correct, but Acrobat says, that there was a change in the 
>> document structure before the second signature was created.
>> 
>> Message is something like this: “Form Fields with Property Changes > Field 
>> Person_1 on page 5”.
>> 
>> I know, that this doesn’t change the validity of the signature itself, but 
>> still it is not nice and people are insecure, what it exactly means.
>> 
>> Looking into the COS structure of the PDF, I see that there are more objects 
>> written (in the incremental save), than actually changed.
>> 
>> Two objects stand out:
>> a) the AcroForm dictionary
>> b) the Page dictionary
>> 
>> Both objects are the exactly the same from the beginning, but still are 
>> written with every signature applied.
>> 
>> I had a working workaround in the past, where I changed the AcroForm /Annots 
>> entry to a object reference. This worked some time ago, but not anymore.
>> We currently use PDFBox 2.0.19, I updated to 2.0.22 with no success.
>> 
>> Two questions:
>> a) Why are the AcroForm and Pages objects marked as changed, when there are 
>> no changes?
>> 
>> b) Can I somehow try to remove the “needToBeUpdated” flag, before a 
>> incremental save. I tried, but fail to find the right time to do so.
>> 
>> c) When I mark the COSArray referenced by AcroForm /Annots to 
>> "direct=false”, it is ignored in the COSWriter.
>> 
>> COSWriter#visitFromArray never checks, if the array is direct or not. But I 
>> am pretty sure, that this worked some time ago.
>> 
>> 
>> Happy about any pointers, what I can try next to fix the problem.
>> 
>> 
>> Kind regards,
>> Waldemar
> 
> 

 





Waldemar Dick
signing & security

Mobile +49 (0)179 1106735
Support +41 (0)44 505 16 64
E-Mail [email protected] <mailto:[email protected]>

Pforzheimer Straße 128a, 76275 Ettlingen, Deutschland

Qualified electronic signing made easy.
Skribble.com <https://www.skribble.com/>

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to