SDK open source · protocollo TigerTag v2.2

Leggi, verifica e scrivi chip TigerTag da Python.

Il pacchetto tigertag trasforma i 144 byte di un chip TigerTag in materiale, colori, temperature e quantità, verifica la sua firma ECDSA-P256 e crea nuovi tag. I dati di riferimento sono inclusi nel pacchetto, quindi funziona offline subito dopo pip install.

PyPI ↗GitHub ↗

$ pip install tigertag

from tigertag import TigerTag

tag = TigerTag.from_pages(uid, payload)  # from your NFC SDK
print(tag.pretty())  # human-readable summary
print(tag.verify())  # VALID / NOT SIGNED / INVALID
print(tag.to_dict())  # JSON-ready dict
Python 3.8 e successivi
3.8+Python 3.8 e successivi
Dipendenze del nucleo in esecuzione: solo la libreria standard
0Dipendenze del nucleo in esecuzione: solo la libreria standard
Byte letti per chip: pagine da 0x04 a 0x27, dati e firma
144Byte letti per chip: pagine da 0x04 a 0x27, dati e firma
Catalogo TigerTag+ incluso nel pacchetto, insieme alle tabelle di riferimento, per lavorare offline
~1 MBCatalogo TigerTag+ incluso nel pacchetto, insieme alle tabelle di riferimento, per lavorare offline

Cosa fa l'SDK

Tutto ciò che documenta il README, in un unico pacchetto che funziona offline.

Prima di tutto offline

Le tabelle di riferimento e il catalogo TigerTag+ (circa 1 MB) sono inclusi nel pacchetto. offline=True o TIGERTAG_OFFLINE=1 disattiva ogni accesso alla rete.

Verifica della firma

ECDSA-P256, completamente offline, con la chiave pubblica del file id_version.json incluso. Installa tigertag[verify] per aggiungere il pacchetto cryptography.

Crea, modifica, cancella

TigerTag.create() crea un tag da zero, patch() restituisce un nuovo tag con campi modificati, erase() restituisce gli 80 byte a zero che cancellano un chip.

Catalogo TigerTag+

TigerTag.from_catalog() trasforma un ID prodotto TigerTag+ in un tag completo pronto da scrivere, dal catalogo ufficiale. catalog_entry() fornisce titolo, marca, SKU e foto.

Aggiornamento dei dati

Il primo TigerTagDB di un processo cerca nuovi dati al massimo una volta al giorno e non solleva mai errori: in caso di problemi usa i dati locali.

Qualsiasi SDK NFC

from_pages(uid, payload) accetta ciò che restituiscono Android, iOS, Flutter e nfcpy. Il README contiene un esempio completo per un lettore ACR122U con nfcpy.

Firme verificate senza server

Un TigerTag firmato contiene una firma ECDSA-P256 che lega l'UID del chip ai dati del prodotto. L'SDK la verifica senza chiamare alcun server. tag.verify() restituisce un SignatureResult: ok vale True solo per una firma valida, e status spiega altrimenti il motivo (nessuna firma, cryptography assente, nessuna chiave pubblica, nessun UID).

A TigerTag chip

Cosa legge l'SDK

from_pages() accetta 144 byte (pagine da 0x04 a 0x27, dati e firma) o 80 byte (solo dati). from_dump() accetta anche un dump completo di 180 byte e ne estrae l'UID.

TigerTag

Riga di comando e file singolo

Il comando tigertag legge il dump di un chip, lo mostra come testo, JSON o campi grezzi e aggiorna i dati di riferimento. parse_tigertag.py è una copia completa e autonoma dell'SDK per i progetti che non possono aggiungere dipendenze: copia il file e importa TigerTag da lì.

Domande

Che cos'è l'SDK Python TigerTag?

Un pacchetto Python, tigertag su PyPI, che legge, verifica, crea e modifica i chip NFC TigerTag di filamenti e resine per la stampa 3D. È open source con licenza Apache 2.0 e implementa il protocollo TigerTag v2.2.

Come si installa?

Esegui pip install tigertag con Python 3.8 o successivo. Aggiungi tigertag[verify] per le firme, tigertag[full] per tutte le dipendenze opzionali o tigertag[nfc] per i lettori PC/SC del playground.

Serve una connessione a internet?

No. I dati di riferimento sono inclusi nel pacchetto, quindi lettura e verifica funzionano offline. Dalla versione 1.3.0 l'SDK cerca nuovi dati al massimo una volta al giorno; offline=True, TIGERTAG_OFFLINE=1 o auto_update=False lo disattiva.

Quali chip legge?

NTAG213, NTAG215 e NTAG216, e qualsiasi chip compatibile ISO 14443-3. Legge allo stesso modo i chip TigerTag e TigerTag+ e i chip vergini pronti da programmare.

Come verifica che un chip sia autentico?

tag.verify() controlla la firma ECDSA-P256 del chip, che lega il suo UID ai dati del prodotto, con la chiave pubblica inclusa nel pacchetto e senza chiamare un server. Serve l'UID: leggi il chip con from_pages(uid, payload).

Leggi il tuo primo TigerTag in Python

pip install tigertag, poi TigerTag.from_pages(uid, payload).

tigertag su PyPI