Open amusarra opened 3 years ago
Ciao @danielabrozzoni , @astagi e @afilini riuscireste a dare un feedback su questo problema da me riscontrato? Immagino che il problema si di carattere generale. Grazie.
Non guardo il progetto da anni ormai quindi non ho ben idea di cosa stia succedendo. Il problema risiede in queste due righe: https://github.com/italia/cie-nis-python-sdk/blob/master/pkg/lib/CIEInterface.py#L417-L418, un qualche controllo che i dati siano validi. Il mio ignorante consiglio è di commentare le due righe e vedere che succede...
Grazie @danielabrozzoni Chiedo maggiori info a @afilini che dal blame vedo che il commit dell'eccezione è proprio il suo. Sapresti dirmi esattamente il significato dell'eccezione?
Credo che in quel caso si stia facendo un check di versione: la sezione 4.6.1 di questo documento https://www.icao.int/publications/Documents/9303_p10_cons_en.pdf lo descrive.
A pagina 99 dello stesso documento vengono mostrati alcuni esempi di risposte in esadecimale, e le costanti che mostrano loro sono identiche a quelle controllate dal codice.
Quindi direi che il codice python controlla che la carta usi la versione LDS 1.7 e Unicode 4.0.0. Può essere che in alcune carte più recenti questo sia stato cambiato, e quindi quel controllo fallisce.
Se la versione LDS è corretta ma cambia solo quella Unicode forse puoi completamente saltare il check, immagino che Python possa gestire versioni Unicode recenti correttamente. Dovresti stampare i valori di risposta e vedere quale dei due non corrisponde.
Ti ringrazio per la tua risposta di chiarimento. Farò delle attività di debug ed eventualmente vedrò di fare delle contribuzioni.
@amusarra ciao, scusami, sei riuscito a trovare una soluzione? Anche io ho il tuo stesso problema, ma non so come risolvere
@amusarra ciao, scusami, sei riuscito a trovare una soluzione? Anche io ho il tuo stesso problema, ma non so come risolvere
Ciao @Saifer707 purtroppo no, mi sarei aspettato una risposta dai manutentori del progetto ma così non è stato e francamente non mi andava mi mettermi a fare RE sul codice, quindi ho lasciato perdere.
Grazie mille per la risposta! Ti auguro una buona giornata!
@amusarra ciao di nuovo! Non so se sei ancora interessato, ma sono riuscito a trovare una soluzione, anzi 2. Cerco di spiegarle brevemente qui in modo che possano essere utili a te e a tutta la community.
Primo Metodo
Modificare il main.py commentando la riga data = interface.extractData()
e aggiungendo la riga interface.extractAdditionalDetails()
. In questo modo si hanno le informazioni base della CIE: card_id, full_name, vat_code, birth_date, birth_place, address
. Si possono utilizzare anche gli altri metodi dell'interfaccia per ottenere la foto (interface.extractPhoto()
) e l'MRZ (interface.extractMRZ()
).
Secondo Metodo
Come si dice qui: https://github.com/italia/cie-nis-python-sdk/issues/11#issuecomment-916089129, il problema sta nella verifica che viene effettuata dal metodo interface.extractData()
. Andando in modalità debug, ho visto che la variabile verifyChild0
mi veniva settata a false, mentre la variabile verifyChild1
era true: quindi il problema dipendeva dalla prima variabile. Ho così eliminato dall'if successivo il controllo sulla variabile verifyChild0 ed ho così ottenuto i dati della CIE senza alcun problema.
Molto probabilmente il primo metodo è più safe del secondo. Inoltre, la foto non viene estratta correttamente in formato jpeg, quindi rimando alla soluzione mostrata in un'altra issue: https://github.com/italia/cie-nis-python-sdk/issues/13
Ottima notiza @Saifer707 Non appena avrò la possibilità farò un test delle due soluzioni. Proverei a fare una pull request.
Sì, sistemo un po' il codice e chiedo la Pull Request!
Ciao. Sto provando il vostro progetto, purtroppo ho riscontrato l'eccezione in oggetto di cui riporto lo stack trace. Sapreste darmi indicazioni in merito?
Il mio ambiente di esecuzione è il seguente:
Grazie.