Decodifica Firma CADES - BES zucchetti

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.

1 Mi Piace