Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/afilini/cie-mrtd-python-sdk
Libreria leggera e portabile in Python per l'estrazione delle informazioni contenute nella CIE 3.0, con e senza autenticazione EAC.
https://github.com/afilini/cie-mrtd-python-sdk
cie hackathon hackdev17 italia mrz nfc opencv python
Last synced: about 1 month ago
JSON representation
Libreria leggera e portabile in Python per l'estrazione delle informazioni contenute nella CIE 3.0, con e senza autenticazione EAC.
- Host: GitHub
- URL: https://github.com/afilini/cie-mrtd-python-sdk
- Owner: afilini
- License: bsd-3-clause
- Created: 2017-10-07T12:34:46.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-30T14:38:06.000Z (about 6 years ago)
- Last Synced: 2024-10-12T20:35:27.737Z (2 months ago)
- Topics: cie, hackathon, hackdev17, italia, mrz, nfc, opencv, python
- Language: Python
- Homepage:
- Size: 70.3 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Python CIE3 SDK [![Build Status](https://travis-ci.org/afilini/cie-mrtd-python-sdk.svg?branch=master)](https://travis-ci.org/afilini/cie-mrtd-python-sdk)
Libreria leggera e portabile in Python per l'estrazione delle informazioni contenute nella CIE 3.0, con e senza autenticazione EAC.
## Installazione
Per iniziare installa tutte le dipendenze tramite il gestore di pacchetti `pip`, con il comando:
```
pip install -r requirements.txt
```## Esempio
Il file `main.py` contiene un brevissimo esempio che mostra l'estrazione dei dati dalla CIE tramite autenticazione EAC.
## Struttura
L'intera libreria è strutturata attorno alla classe `CIEInterface` che espone molti metodi utili per inviare comandi alla CIE.
Al momento della creazione di un'istanza di `CIEInterface`, il costruttore tenterà di aprire una connessione con un lettore NFC compatibile e si metterà in attesa di rilevare una carta. Il massimo tempo di attesa è attualmente di 3 secondi.
Una volta rilevata la carta il costruttore termina l'esecuzione.
I metodi a disposizione dell'utilizzatore sono i seguenti:
* `CIEInterface.readNIS()`: Legge la sezione `EF.ID_Servizi` della carta, ovvero l'id univoco della carta.
* `CIEInterface.randomNumber()`: Invia un APDU alla carta chiedendo al microprocessore di generare un numero casuale.
* `CIEInterface.mrtdAuth(birthStr, expireStr, pnStr)`: esegue l'autenticazione tramite i dati contenuti nell'MRZ, per poter accedere alle informazioni aggiuntive presenti sulla carta. I parametri sono stringhe, nel caso delle date in formato `YYMMDD`, mentre `pnStr` è semplicemente il numero della CIE.
* `CIEInterface.extractData()`: estrae i dati aggiuntivi disponibili dopo l'unlock della carta. A secodna delle informazioni disponibili vengono estratti:
* `mrz`: Stringa identica all'`MRZ` stampato sulla carta
* `additional_details`: Informazioni aggiuntive sul cittadino, come ad esempio l'indirizzo di residenza
* `photo`: `bytearray` contenete l'immagine in formato JPEG2000. Per comodità l'immagine viene anche salvata su disco nel file `img.jpeg`.## Supporto
La libreria è stata testata con successo su Python `2.7.14` su sistema `macOS`, ma vista la semplicità è molto probabile che funzioni nativamente anche su altre versioni.