2013-07-08 15 views

risposta

1

Sembra che tu voglia firmare digitalmente un PDF utilizzando un token USB, una smart-card o un modulo di sicurezza hardware. Questo viene fatto tramite PKCS # 11 come spiegato in http://itextpdf.com/book/digitalsignatures È possibile trovare il codice sorgente here. This è un esempio che mostra come firmare utilizzando un token USB iKey 400 di SafeNet.

4

passaggi coinvolti in aggiunta di una firma digitale in un file PDF:

(I) Crea modello PDFDocument:

Crea PDFDocument con la firma del modello:

PDSignature pdSignature; 
pdSignature.setByteRange(new int[]{0, 0, 0, 0}); 
pdSignature.setContents(new byte[n*1024]); 

dove n è un numero intero, cioè mult pochi di kbs.

Nota: la dimensione del contenuto deve essere maggiore o uguale alla somma della lunghezza della firma e del file del certificato.

(II) aggiornare il modello PDF Docuement:

(a) l'aggiornamento/ByteRange [abcd]:
(i) a = Offset% in "% PDF" (= 0 , per impostazione predefinita)
(ii) b = Offset di < in "/ Contents < 000 ... 000>"
(iii) c = Offset di> in "/ Contents < 000 ... 000>"
(iv) d = Offset di F in "%% EOF" meno c di sopra

(b) sezione dell'aggiornamento riferimento esterno:
aggiornamento della tabella di riferimento incrociato (sezione xrif), che specifica la posizione degli oggetti e

(c) Aggiornamento startxref sezione:
aggiornamento startxref, che è l'offset dell'inizio della tabella di riferimenti incrociati (xrif).

(III) Generazione digitale Firma del Documento di Aggiornamento del template:
Genera del Documento di Aggiornamento del template Escludendo l'temporanea dati con segno ("000 ... 000) di"/Contents < 000 ... 000> "

(IV) aggiornamento dei contenuti <> Sezione:
sostituto Prima/"0" iniziale s di Firmato lunghezza dati in "/ Contents < 000 ... 000>" con dati firmati (Avvolto) del modello PDFFile.

Suggerimenti:

Uso SignatureInterface di PDFBox:

(a) implementare SignatureInterface al segnale di chiamata() Metodo (b) fornire l'input, i file di output, chiavi, alias, perno (c) non salvare incrment

(o) utilizzare qualsiasi libreria Java PDF (come iText ...)

(o) Implementare i gradini I-IV in Java te stesso.

+0

La domanda non sembra concentrarsi sulle modifiche al documento PDF ma su come utilizzare * la chiave privata memorizzata sul token USB *. – mkl

Problemi correlati