Lettura file P7m

mercoledì 20 marzo 2024 - 09.41
Tag Elenco Tags  C#

AntCiar Profilo | Expert

Buongiorno a tutti.

Sono alle prese con la lettura dei file p7m relativi alle fatture elettroniche.
Ho usato questo codice (trovato sulla rete) per convertire i file p7m in file xml in modo da poterne leggere il contenuto

byte[] FileFirmatoP7m = File.ReadAllBytes(p7mFilePath);
SignedCms cmsFirmato = new SignedCms();
cmsFirmato.Decode(FileFirmatoP7m);

byte[] FileRilevato = cmsFirmato.ContentInfo.Content;

File.WriteAllBytes(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(p7mFilePath), fileNameConvertito), FileRilevato);
res = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(p7mFilePath), fileNameConvertito);
cmsFirmato = null;


Questo codice per ora ha sempre funzionato. Con alcuni file invece capita che quando viene chiamato il metodo .Decode solleva una eccezione.
Nel testo dell'eccezione mi da "Valore tag ASN1 non valido."

Ho cercato in rete qualcosa per risolvere il problema ma non ho trovato molto.
In molti usano openssl per "convertire" il file firmato in un altro formato "leggibile".
Ho provato con questo ad esempio

openssl smime -verify -noverify -in file.p7m -inform DER -out file.xml

ma ho errori del tipo

Error reading S/MIME message
B0130000:error:068000A8:asn1 encoding routines:asn1_check_tlen:wrong tag:crypto\asn1\tasn_dec.c:1188:
B0130000:error:0688010A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:crypto\asn1\tasn_dec.c:349:Type=PKCS7

Qualcuno di voi ha avuto problemi simili e in qualche modo superati?
Grazie a tutti
Cristian Barca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5