slovensko-digital / autogram

Nový, krajší a lepší nástroj na podpisovanie.
European Union Public License 1.2
109 stars 20 forks source link

Chyba: "The creation of new signatures is not permitted in the current document." #495

Open nekromoff opened 1 month ago

nekromoff commented 1 month ago

PDF asi bolo chranene heslom ci co (to vyhlasila ina podpisovacia aplikacia). Po Print to PDF podpisat kopiu ide. Ale skor tu ide o UX, ked iba pouzivatel dostane genericku chybu - "nejde podpisat", bez uvedenia dovodu.

digital.slovensko.autogram.core.errors.UnrecognizedException: eu.europa.esig.dss.pades.exception.ProtectedDocumentException: The creation of new signatures is not permitted in the current document. Reason : PDF Permissions dictionary does not allow modification or creation interactive form fields, including signature fields when document is open with user-access!
    at digital.slovensko.autogram.core.errors.AutogramException.createFromDSSException(AutogramException.java:70)
    at digital.slovensko.autogram.core.Autogram.signCommonAndThen(Autogram.java:106)
    at digital.slovensko.autogram.core.Autogram.lambda$sign$13(Autogram.java:117)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: eu.europa.esig.dss.pades.exception.ProtectedDocumentException: The creation of new signatures is not permitted in the current document. Reason : PDF Permissions dictionary does not allow modification or creation interactive form fields, including signature fields when document is open with user-access!
    at eu.europa.esig.dss.pades.alerts.ProtectedDocumentExceptionOnStatusAlert$1.process(ProtectedDocumentExceptionOnStatusAlert.java:43)
    at eu.europa.esig.dss.pades.alerts.ProtectedDocumentExceptionOnStatusAlert$1.process(ProtectedDocumentExceptionOnStatusAlert.java:39)
    at eu.europa.esig.dss.alert.AbstractAlert.alert(AbstractAlert.java:62)
    at eu.europa.esig.dss.pdf.PdfPermissionsChecker.alertOnForbiddenSignatureCreation(PdfPermissionsChecker.java:153)
    at eu.europa.esig.dss.pdf.PdfPermissionsChecker.checkDocumentPermissions(PdfPermissionsChecker.java:90)
    at eu.europa.esig.dss.pdf.AbstractPDFSignatureService.checkPdfPermissions(AbstractPDFSignatureService.java:758)
    at eu.europa.esig.dss.pdf.pdfbox.PdfBoxSignatureService.computeDigest(PdfBoxSignatureService.java:138)
    at eu.europa.esig.dss.pdf.AbstractPDFSignatureService.messageDigest(AbstractPDFSignatureService.java:189)
    at eu.europa.esig.dss.pades.signature.PAdESService.computeDocumentDigest(PAdESService.java:195)
    at eu.europa.esig.dss.pades.signature.PAdESService.getDataToSign(PAdESService.java:182)
    at digital.slovensko.autogram.core.SigningJob.signDocumentAsPAdeS(SigningJob.java:150)
    at digital.slovensko.autogram.core.SigningJob.signWithKeyAndRespond(SigningJob.java:55)
    at digital.slovensko.autogram.core.Autogram.signCommonAndThen(Autogram.java:95)
    ... 2 more
celuchmarek commented 1 month ago

Aha, ak je PDF chránené heslo, že sa bez hesla nedá ani zobraziť, to v Autograme vyhodí príslučnú chybovú hlášku. Toto je ale iný prípad - dokument je chránený heslo proti zmenám. Bude to treba ošetriť.

Vieš nám poradiť, kde si presne takéto PDF získal? Alebo to bola komerčná vec mimo verejných služieb?

nekromoff commented 1 month ago

Nebolo chranene heslom, ale nejako uzamknute. V kazdom pripade tlac do PDF z neho vytvorila odomknute PDF, cize zjavne to az taky problem nebol (aj ked rozumiem, ze tlac nie je v naplni Autogramu).

Nejaka zmluva, cize komercna vec, nemozem poskytnut, pozriem sa ale na vlastnosti PDF a postnem ich.

xhyrom commented 1 month ago

Toto je ešte nejaký iný prípad ako hovorí @nekromoff. keďže pri pokuse podpísať PDF ktoré je chránené heslom a nedá sa bez neho ani zobraziť, dostaneme: image image related https://github.com/slovensko-digital/autogram/issues/395

test-protected.pdf (heslo123) test.pdf

presnejšie tu: https://github.com/slovensko-digital/autogram/blob/82aa5ae4b35d5dc79f216f222352a2c091240fe6/src/main/java/digital/slovensko/autogram/ui/gui/MainMenuController.java#L55-L64

mali by sme teda trochu lepšie ošetriť tieto chyby s uzamknutými PDF-kami.