Opensource-SDK · TigerTag-protocol v2.2

Lees, controleer en schrijf TigerTag-chips met Python.

Het pakket tigertag zet de 144 bytes van een TigerTag-chip om in materiaal, kleuren, temperaturen en hoeveelheid, controleert de ECDSA-P256-handtekening en maakt nieuwe tags. De referentiegegevens zitten in het pakket, dus het werkt offline meteen na 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 en nieuwer
3.8+Python 3.8 en nieuwer
Runtime-afhankelijkheden van de kern: alleen de standaardbibliotheek
0Runtime-afhankelijkheden van de kern: alleen de standaardbibliotheek
Bytes gelezen per chip: pagina's 0x04 tot 0x27, gegevens en handtekening
144Bytes gelezen per chip: pagina's 0x04 tot 0x27, gegevens en handtekening
TigerTag+-catalogus in het pakket, samen met de referentietabellen, voor offline gebruik
~1 MBTigerTag+-catalogus in het pakket, samen met de referentietabellen, voor offline gebruik

Wat de SDK doet

Alles wat de README beschrijft, in één pakket dat offline werkt.

Offline eerst

De referentietabellen en de TigerTag+-catalogus (ongeveer 1 MB) zitten in het pakket. offline=True of TIGERTAG_OFFLINE=1 schakelt elke netwerkverbinding uit.

Handtekeningcontrole

ECDSA-P256, volledig offline, met de publieke sleutel uit het meegeleverde id_version.json. Installeer tigertag[verify] om het pakket cryptography toe te voegen.

Aanmaken, wijzigen, wissen

TigerTag.create() bouwt een tag vanaf nul, patch() geeft een nieuwe tag met gewijzigde velden terug, erase() geeft de 80 nulbytes die een chip wissen.

TigerTag+-catalogus

TigerTag.from_catalog() maakt van een TigerTag+-product-ID een volledige tag die klaar is om te schrijven, uit de officiële catalogus. catalog_entry() geeft titel, merk, SKU en foto.

Bijwerken van referentiegegevens

De eerste TigerTagDB van een proces zoekt hooguit eenmaal per dag naar nieuwe gegevens en geeft nooit een fout: bij elk probleem worden de lokale gegevens gebruikt.

Elke NFC-SDK

from_pages(uid, payload) neemt wat Android, iOS, Flutter en nfcpy teruggeven. De README bevat een volledig voorbeeld voor een ACR122U-lezer met nfcpy.

Handtekeningen gecontroleerd zonder server

Een ondertekende TigerTag draagt een ECDSA-P256-handtekening die de UID van de chip aan de productgegevens koppelt. De SDK controleert die zonder een server aan te roepen. tag.verify() geeft een SignatureResult terug: ok is alleen True bij een geldige handtekening, en status zegt anders waarom (geen handtekening, cryptography ontbreekt, geen publieke sleutel, geen UID).

A TigerTag chip

Wat de SDK leest

from_pages() neemt 144 bytes (pagina's 0x04 tot 0x27, gegevens en handtekening) of 80 bytes (alleen gegevens). from_dump() accepteert ook een volledige dump van 180 bytes en haalt daar de UID uit.

TigerTag

Opdrachtregel en één bestand

De opdracht tigertag leest een chipdump, toont die als tekst, JSON of ruwe velden en werkt de referentiegegevens bij. parse_tigertag.py is een volledige, zelfstandige kopie van de SDK voor projecten die geen afhankelijkheid kunnen toevoegen: zet het bestand erbij en importeer TigerTag eruit.

Vragen

Wat is de TigerTag Python SDK?

Een Python-pakket, tigertag op PyPI, dat TigerTag-NFC-chips voor 3D-printfilament en -hars leest, controleert, aanmaakt en wijzigt. Het is open source onder de Apache-licentie 2.0 en implementeert TigerTag-protocol v2.2.

Hoe installeer ik het?

Voer pip install tigertag uit op Python 3.8 of nieuwer. Voeg tigertag[verify] toe voor handtekeningen, tigertag[full] voor alle optionele afhankelijkheden of tigertag[nfc] voor PC/SC-lezers in de playground.

Is een internetverbinding nodig?

Nee. De referentiegegevens zitten in het pakket, dus lezen en controleren werken offline. Sinds versie 1.3.0 zoekt de SDK hooguit eenmaal per dag naar nieuwe referentiegegevens; offline=True, TIGERTAG_OFFLINE=1 of auto_update=False zet dat uit.

Welke chips leest het?

NTAG213, NTAG215 en NTAG216, en elke ISO 14443-3-compatibele chip. TigerTag- en TigerTag+-chips en lege chips die klaar zijn om te programmeren, leest het op dezelfde manier.

Hoe controleert het of een chip echt is?

tag.verify() controleert de ECDSA-P256-handtekening van de chip, die de UID aan de productgegevens koppelt, met de publieke sleutel uit het pakket en zonder serveraanroep. Daarvoor is de UID nodig: lees de chip met from_pages(uid, payload).

Lees je eerste TigerTag met Python

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

tigertag op PyPI