Repository navigation
Replies: 1 comment 2 replies
|
Hmmm I know this will raise objections as is always the case but IMHO there should be NO second signing no adjustments of any sort the ONE combined document should be held in trust like the Magna Carta was !!!!! and that was not upheld by the pope of the time.
|
Uh oh!
There was an error while loading. Please reload this page.
This is a text and explanation created via AI > just more convenient than writing everything by yourself :)
Summary
Two related points about Sign Document in SumatraPDF 3.7 pre release:
signature then invalidates the earlier one in Adobe Acrobat, so multi-signature workflows
don't work. There is no setting to turn this off.
allowed" (Acrobat: Certify with Visible Signature), which fully locks the document.
Version: SumatraPDF 3.7 pre-release 3.7.22653 64-bit (behaviour also present in current master).
1. Bug: new signatures lock all form fields
Steps to reproduce
Actual result
The first signature is cryptographically intact, but Acrobat treats the second signature as a
change forbidden by the first signature's field lock. pyHanko's validator agrees: first signature
intact=True, valid=True, modification levelOTHER, "not allowed because the form field … islocked".
Expected result
A later approval signature should not invalidate an earlier one. Acrobat doesn't lock form fields
when signing unless explicitly asked to.
Cause
src/shared/PdfSign.cpp(EngineMupdfSignDocument) creates the field withpdf_create_signature_widget(), which in MuPDF (ext/mupdf/source/pdf/pdf-form.c) always adds:pdf_signature_set_value()copiesLock/Action /Allinto the signature's FieldMDPTransformParams, so every SumatraPDF signature formally locks all fields.When signing an existing empty signature field without
/Lock, MuPDF writes/Action /Include /Fields [](locks nothing), and signature chains validate correctly.Proposed fix
/Lockentry afterpdf_create_signature_widget()inEngineMupdfSignDocument, e.g.pdf_dict_del(ctx, pdf_annot_obj(ctx, widget), PDF_NAME(Lock));2. Feature request: certifying signatures ("No changes allowed")
Use case
Documents are signed with personal certificates (Windows certificate store / USB tokens) in
SumatraPDF. For final documents we need the protection of Acrobat's certification: after
certifying, any change – markups, form changes, further signatures – is reported as a violation.
We'd like this without requiring Acrobat on every PC.
Proposal
In the Sign Document dialog, a choice of signature type:
Behaviour:
the first one); otherwise it's disabled with a short explanation.
changes or signatures are possible."
Document warns before adding anything the certification doesn't permit.
[CmdSignDocument certify], for the toolbar.Implementation notes
In addition to what Sign Document writes today, a certifying signature needs:
/Perms << /DocMDP <signature dictionary> >>/Reference [ << /Type /SigRef /TransformMethod /DocMDP /TransformParams << /Type /TransformParams /P 1 /V /1.2 >> >> ]MuPDF's
pdf_signature_set_value()writes a FieldMDP reference only, so this needs an additionthere (as an
ext/patchesentry) plus the/Permsentry. Reference implementations: AdobeAcrobat; pyHanko (
PdfSignatureMetadata(certify=True, docmdp_permissions=MDPPerm.NO_CHANGES)).Related (smaller)
"No changes allowed" can't be used. The matching feature for chains is the PDF 2.0 field lock
"Lock document after signing" (
/Lockwith/P 1, plus/P 1in the FieldMDPTransformParams), applied by the last signer. It could share the confirmation and UI ofpart 2.
every earlier signature as soon as anything is appended
(
pdf_signature_incremental_change_since_signingcompares file length only). Distinguishing"later signatures added" from "content changed" would avoid alarming users in normal chains.
All reactions