Fattura file p7m
« il: Gennaio 20, 2023, 09:25 »
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