Firma digitale fattura in Java

Qualcuno ha implementato una soluzione di firma della fattura in Java? Sto utilizzando questa libreria: GitHub - luisgoncalves/xades4j: A Java library for XAdES signature services
Purtroppo SDI risponde sempre con firma non valida. Vorrei sapere della vostra esperienza per magari sbloccarmi da questa situazione data la mia scarsa conoscenza di crittografia e sicurezza.

Ho provato ora con un file firmato esternamente da un altro programma. Il file viene validato da un terzo servizio esterno e la firma Xades-bes risulta valida. Ma SDI continua a darmi l’errore File non integro (firma non valida).

    <Errore>
        <Codice>00102</Codice>
        <Descrizione>File non integro (firma non valida) : Errore di formato&#13;

Il file firmato p7m non risulta integro

Verificare che il file sia firmato correttamente o che non sia stato modificato dopo l’apposizione della firma

Non faccio altro che inviare il contenuto del file (già firmato) quindi non c’è alcun modo che possa accidentalente modificare il file

Perché dice “file firmato p7m” se usi la firma XAdES? L’estensione .p7m si usa per i file CAdES, quelli firmati XAdES dovrebbero mantenere l’estensione .xml.

Grazie per avermelo fatto notare. Ora riesco ad superare la validazione della firma sul file firmato manualmente usando un terzo servizio. Purtroppo ancora non riesco a farlo funzionare con la libreria java. Confrontando i file generati ci sono alcune differenze strutturali, per esempio il file che viene accettato fa utilizzo del tag SigningCertificateV2 invece che SigningCertificate

Intervengo per chiarire anche un mio dubbio: stai lavorando nell’ambiente di test o di produzione? Perché in ambiente di test non viene controllata la firma.
E infine firmi la fattura con un certificato rilasciato da una CA riconosciuta da SDI? questo, nella mia esperienza non è possibile, perché pare che le CA autorizzate non rilascino certificati a terzi, ma al massimo ti offrono un servizio che ti firma il file e te lo invia per al tuo posto. Se non è così vorrei essere smentito :slight_smile:

Ciao! mi trovo nella tua stessa situazione, sei riuscito a risolvere?

Ormai ho stabilito con un buon livello di certezza che puoi usare solo un certificato rilasciato da una CA riconosciuta da AdE, e queste sono una piccola ‘cricca’ che ha questo privilegio di poter generare i cert. accettati. E la cosa peggiore è che non vende il certificato, ma vende il servizio di firma, cioè tu devi pagare per ogni uso del servizio. Solo in italia si poteva concepire un sistema così corporativistico.