Domanda

Per dirla semplicemente: voglio aggiungere più firme su un PDF (usando iText), senza aggiungere una nuova revisione per ognuna.

Ho letto il il seguente thread e ha molto senso (dal momento che Bruno ha scritto la risposta)

È ovvio che se il documento ha 2 revisioni, la prima firma non copre la seconda revisione. Tuttavia, è possibile (secondo lo standard PDF e in iText) avere due firme per la stessa revisione? (Ho impostato un livello di certificazione su CERTIFIED_FORM_FILLING_AND_ANNOTATIONS ).

Il punto è che il documento viene creato una volta e non viene modificato affatto, tranne per l'aggiunta delle firme. E poiché i PDF firmati verranno inviati a persone non tecniche, vedendo il documento "il documento è stato modificato" può innescare un po 'di incredulità (a causa della mancanza di conoscenza del PDF, che purtroppo non posso aspettarmi da loro). Quindi, per dirla di nuovo, è possibile avere 2 firme in 1 revisione, aggiunte in momenti diversi da persone diverse.

È stato utile?

Soluzione

Ho ricevuto una risposta utile sulla mailing list di iText, che condividerò. Qui , un ragazzo soprannominato mkl spiega che con i prodotti Adobe si tratta di un problema di gallina e uovo.

  

ISO 32000-1: 2008, la sezione 12.8.1 dice: "Un digest di intervallo di byte deve essere calcolato su un intervallo di byte nel file, che deve essere indicato dalla voce ByteRange nel dizionario delle firme. Questo intervallo dovrebbe essere l'intero file, incluso il dizionario delle firme ma escludendo il valore della firma stessa (la voce Contenuti). È possibile utilizzare altri intervalli, ma poiché non controllano tutte le modifiche al documento, il loro uso non è raccomandato. Quando è presente un intervallo di byte, tutti i valori nel dizionario delle firme devono essere oggetti diretti. & Quot;

     

Pertanto, secondo questa norma, sono consentiti intervalli di byte più a tratti. Pertanto, in particolare è consentito avere più contenitori di firme esclusi dai byte da firmare.

     

MA ...

     

se desideri che i prodotti Adobe accettino le tue firme immediatamente, scoprirai che si aspettano che una firma firmi tutto nella sua revisione tranne se stessa. Per due firme ciò implicherebbe che ogni firma dovrebbe firmare un intervallo che include l'un l'altro, un problema di gallina o uovo.

     

Se le tue firme devono essere verificabili solo con il tuo software e i prodotti Adobe possono contrassegnare le tue firme come non valide, puoi facilmente creare tali doppie firme indipendenti. Cf.

     

http://old.nabble.com /Uncommon-ByteRange-entry-in-signature-dictionary-to23670277.html

     

per qualche ispirazione. iText può essere modificato per farlo senza troppi problemi. Ma tieni a mente le parole di Leonard lì:

     

" Adobe Acrobat e Reader invalidano IMMEDIATAMENTE un ByteRange che è più di 2 coppie. Quindi qualsiasi cosa con intervalli multipli non sarà convalidata. & Quot;

     

Come terzo modo puoi creare un plugin Adobe personalizzato che verifica le tue firme personalizzate.

     
     

solo un ripensamento ... se vuoi seriamente essere nel settore delle firme, dovresti non solo tenere presente l'attuale standard PDF semplice (cioè ISO-32000-1: 2008) ma anche standard aggiuntivi.

     

Ad esempio, conferire ETSI TS 102 778-1; la sezione 4.1 in v1.1.1 dice: "Come con altre implementazioni di firma basate su CMS, un digest viene calcolato su un intervallo di byte del file. Tuttavia, con PDF, poiché le informazioni sulla firma devono essere incorporate nel documento stesso, questo intervallo è l'intero file, incluso il dizionario delle firme ma esclusa la firma PDF stessa. L'intervallo viene quindi indicato dalla voce ByteRange del dizionario delle firme.

     

Limitando in questo modo la voce ByteRange, si assicura che non ci siano byte nel PDF che non siano coperti dal digest, a parte la firma PDF stessa.

     

NOTA: i profili definiti nelle parti 2 e 3 rendono normativo questo requisito che è una raccomandazione ISO 32000-1 [1], clausola 12.8.1. "

     

Pertanto, non appena prendi sul serio le firme, l'intervallo di byte con segno deve semplicemente coprire tutta la revisione tranne il contenitore di una sola firma che firma proprio questo intervallo di byte.

(Dalla mailing list iText, 1 dicembre 2009)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top