con la libreria attualmente in uso sul mio software non mi è possibile decodificare il formato CADES-bes generato dalla firma di Zucchetti,
quindi non mi è possibile aprire i file p7m delle fatture fornitori.
Qualcuno ha affrontato il problema?
Sembrerebbe un problema simile a quello che mi è stato segnalato da chi usa il software di Aruba: se la fattura è firmata da firma non Aruba per loro la firma non è valida.
Workaround: scarica un qualsiasi software per la firma digitale che non sia di Aruba (FirmaOk! di Poste, Dike di infocert, […] ce n’è a bizeffe), sfirma il p7m ed apri l’xml.
Grazie Federico ma non è un problema di client che mi permetta di aprire dei p7m, quello è abbastanza semplice, ma quella di integrare una libreria (ora usiamo bouncycastle) dove sia possibile decodare il p7m si zucchetti che pare sia encodato in modo non standard.
Il formato CAdES, basato su CMS, basato su PKCS#7, basato su ASN.1 è un formato abbastanza complicato che offre parecchia flessibilità. In particolare non è detto che il file firmato sia in unico blocco. Escludendo i caratteri non stampabili (sequenze utf8 non valide) forse ottieni il file pulito, ma solo se hai la fortuna che i dati dei header che non fanno parte del file generino sequenze utf8 non valide o caratteri unicode sballati. Ho visto fatture elettroniche (in particolare quelle firmate da Infocert) dove il file era spezzato in blocchi da 1000 byte e in quel caso te la cavi, ma io personalmente non mi fiderei che funzioni sempre.
Se l’unica cosa di cui avete bisogno è estrarre il file xml liscio dal file .p7m (senza nessuna verifica sulla validità della firma), potete anche farlo da soli, seguendo le specifiche del formato.
Vi consiglio di partire da qui: A Layman's Guide to a Subset of ASN.1, BER, and DER e poi usare gli RFC per avere gli identificatori necessari. Se riuscite a farvi un programmino che stampa la struttura del file p7m, diventa abbastanza facile identificare ed estrarre il file xml.