TigerTag Python SDK

Opensource-SDK · TigerTag-protocol v2.2

TigerTag Python SDK

Lees, controleer en schrijf TigerTag-NFC-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.

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
De snelstart zoals de README die geeft: uid en payload komen van je NFC-lezer.
1.4.0Nieuwste versie ·
3.8+Python 3.8 en nieuwer
0Runtime-afhankelijkheden van de kern: alleen de standaardbibliotheek
144Bytes gelezen per chip: pagina's 0x04 tot 0x27, gegevens en handtekening

Aan de slag in drie stappen

Het pakket tigertag staat op PyPI. Installeer het, geef het wat je NFC-lezer teruggeeft en controleer de handtekening.

  1. 1

    Installeren

    Eén opdracht. De kern gebruikt alleen de standaardbibliotheek en de referentiegegevens zijn meegeleverd: geen configuratie en geen netwerk bij de eerste start.

    pip install tigertag
  2. 2

    Een chip lezen

    Geef de UID van 7 bytes en de payload van 144 bytes die je NFC-SDK teruggeeft. pretty(), to_dict() en validate() geven dan een samenvatting, een JSON-klare dict en waarschuwingen.

    from tigertag import TigerTag
    tag = TigerTag.from_pages(uid, payload)
  3. 3

    De handtekening controleren

    De extra verify voegt het pakket cryptography toe, zodat tag.verify() de ECDSA-P256-handtekening offline controleert met de publieke sleutel uit de SDK.

    pip install tigertag[verify]

Optionele extra's

sync voegt requests toe (updates werken al met de standaardbibliotheek), verify voegt cryptography toe voor handtekeningen, full installeert beide en nfc voegt pyscard toe voor PC/SC-lezers in de playground.

pip install tigertag                    # core only — stdlib, works fully offline (data bundled)
pip install tigertag[sync]              # + requests (optional — updates use the standard library)
pip install tigertag[verify]            # + cryptography (ECDSA signature check)
pip install tigertag[full]              # everything
pip install "tigertag[nfc]"             # + pyscard (playground: ACR122U / PC/SC readers)

Handtekeningen en chipindeling

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).

result = tag.verify()    # fully autonomous — finds the public key from the bundled DB

result.ok       # True only for VALID
result.status   # "valid" | "invalid" | "unsigned" | "no_crypto" | "no_key" | "no_uid"
str(result)     # "VALID" | "INVALID" | "NOT SIGNED" | "NO CRYPTO — …" | "NO PUBLIC KEY — …" | "NO UID — …"
result.to_dict()# {"status": "valid", "ok": True, "detail": "…"}
Meer in de README

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.

Geheugenindeling van een TigerTag-NTAG-chip, pagina's 0x04 tot 0x27, veld voor veld De TigerTag-specificatie

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. De UID of handtekening wijzigen geeft ValueError.

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. tigertag update controleert meteen.

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.

Opdrachtregel en één bestand

De opdracht tigertag leest een chipdump, toont die als tekst, JSON of ruwe velden en werkt de referentiegegevens bij.

tigertag dump.bin              # parse + human-readable output
tigertag dump.bin --json       # output as JSON
tigertag dump.bin --raw        # raw protocol fields, no DB lookup
tigertag update [--force]      # check for new reference data now (--catalog, --data-dir)
tigertag dump.bin --offline    # no network access at all
tigertag --version             # show SDK version

python -m tigertag dump.bin    # same, via module runner
Meer in de README

Eén bestand, geen pakket

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.

parse_tigertag.py

Playground

Een lokale webpagina die met deze SDK tags maakt, leest en controleert, zonder hardware. Met een ACS ACR122U of een andere PC/SC-lezer leest en schrijft hij ook echte chips.

python3 tools/server.py 7432
Meer in de README

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, NTAG216 en ISO 14443-3-compatibele chips, met de drie tagtypen: TigerTag (Maker), TigerTag Init en TigerTag+. De SDK leest ze alle drie 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).

Kan ik het gebruiken zonder een pakket te installeren?

Ja. parse_tigertag.py in de hoofdmap van de repository is een volledige, zelfstandige kopie: kopieer het bestand naar je project en importeer TigerTag eruit.

Is er een opdrachtregelprogramma?

Ja. tigertag dump.bin toont een leesbare samenvatting, --json geeft JSON en --raw de ruwe protocolvelden; tigertag update werkt de referentiegegevens bij, en python -m tigertag werkt hetzelfde.

Lees je eerste TigerTag met Python

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

tigertag op PyPI