dovrei estrarre il XML dal/i file firmato con p7m relativo alla fattura elettronica.
Ho trovato una funzione scritta da Marco Trevisan e che usa il modulo pyopenssl , ma mi dice che è pkcs7 è deprecato.
il codice della funzione è questo e la riga incriminata è quella che inizia con p7=crypto ....:
def check_and_extract_p7m_invoice(filename, file_contents):
try:
from OpenSSL import crypto
from OpenSSL._util import (
ffi as _ffi,
lib as _lib,
)
except:
return extract_p7m_invoice(file_contents)
p7 = crypto.load_pkcs7_data(crypto.FILETYPE_ASN1, file_contents)
bio_out =crypto._new_mem_buf()
res = _lib.PKCS7_verify(
p7._pkcs7, _ffi.NULL, _ffi.NULL, _ffi.NULL, bio_out, _lib.PKCS7_NOVERIFY)
if res == 1:
return crypto._bio_to_string(bio_out)
print('Failed to load and verify invoice {} p7m data, using manual extraction'.format(
filename))
return extract_p7m_invoice(file_contents)
il messaggio è questo:
DeprecationWarning: PKCS#7 support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
come posso fare ad eliminare questo errore, tenendo presente che non sono esperto del liguaggio.
Saluti
Franco