Problema decodifica fattura elettronica P7M di E-DISTRIBUZIONE

Salve a tutti
Non riesco ad aprire questa fattura elettronica per estrarre l’XML dal file P7M
Il file è questo Fattura Elettronica

Premesso che i nostri clienti hanno ricevuto più di 200.000 fatture elettroniche con estensione .P7M in “chiaro” o in Base64 senza problemi

Utilizzando le librerie OpenSSL con Delphi ritorna l’errore:
UNABLE TO READ PKCS7 FILE

Aprendo il file XML con Dike o Assosoftware ovviamente viene letta senza errori
Eliminando la “testata” e il “footer” dal file P7M e salvandolo con la sola estensione XML il file è completo e viene letto correttamente
A qualcuno è già capitato un file con una firma di questo tipo?
Visto che chi la emesssa è E-DISTRIBUZIONE SPA il problema si verificherà anche da altri clienti che ricevono fatture da ENEL
Grazie

In un altro thread avevo suggerito di usare il comando “cms” di openssl invece di “smime” (eseguendolo a riga di comando). Prova a fare l’equivalente usando la libreria.

2 Mi Piace

Grazie, mi è stato molto utile.

Ciao Sergio, hai qualche indicazione riguardo a questi benedetti file dell’enel, su quale procedura usare nella procedura TPKCS7.Open() di OpenSSLUtils ?

Ti ringrazio in anticipo.

Ho provato a verificarlo con openssl cms ma la verifica fallisce comunque. Potete postare cosa bisogna scrivere sulla riga di comando?

openssl cms -verify -in 1.xml.p7m -inform DER -noverify -out 1.xml

Buonasera Gianni.
Qualche dritta su come modificare la procedura TPKCS7.Open() ?
Anche modificando il file togliendo le righe iniziali e finali si incorre in qualche carattere aggiunto a caso dalla firma. Quindi togliere la firma manualmente non è consigliabile.
Grazie.

Condivido lo stesso problema, da qualche mese. Tutti i miei clienti che ricevono fatture ENEL non riescono a leggerle, mentre leggono senza problemi tutte le altre (direi senza eccezioni).
Il gestionale è scritto (versioni differenti) su Delphi 6 oppure su Delphi DX 10.3.3, la lettura fallisce indifferentemente in entrambi gli ambienti.
Se qualcuno ha qualche dritta da suggerire, lo propongo per un monumento equestre :wink:
Federico
PS: utilizzo libeay32.dll versione 10.0.2.21 del 21/12/2019, dovrebbe essere l’ultima versione disponibile

Ciao Federico
Il problema è che la firma si estrae con il comando CMS e non con SMIME
Christian Cristofori ha modificato la sua libreria PKCS7Extractor https://github.com/DelphiClubItalia/PKCS7Extractor
Solo che la versione è in beta e non ancora pubblicata su GitHUB ma a me sembra funzionare, ho decodificato + di 100 fatture di ENEL e l’ha messa in produzione.

Io se vuoi ti posso inviare l beta che uso io
Per XE funziona correttamente, per Delhi 2007 e precedenti c’è da remmare qualche riga di codice
Fammi saapere

1 Mi Piace

Caro Gianni, GRAZIE! Sarei molto contento se tu potessi inviarmi le tue beta.
Le puoi pubblicare qui? Devo darti la mia mail? Come preferisci.
Federico

Meglio se mi dai la tua mail

federico chiocciola feaci punto it
grazie

Salve Francesco
volevo sapere se possibile dove trovare l’applicativo openssl e se è gratuito. Grazie