TigerTag Python SDK

Open-Source-SDK · TigerTag-Protokoll v2.2

TigerTag Python SDK

TigerTag-NFC-Chips mit Python lesen, prüfen und schreiben.

Das Paket tigertag macht aus den 144 Bytes eines TigerTag-Chips Material, Farben, Temperaturen und Menge, prüft seine ECDSA-P256-Signatur und erstellt neue Tags. Die Referenzdaten sind im Paket enthalten, daher funktioniert es direkt nach pip install offline.

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
Der Schnellstart, wie ihn die README zeigt: uid und payload kommen von Ihrem NFC-Lesegerät.
1.4.0Aktuelle Version ·
3.8+Python 3.8 und neuer
0Laufzeitabhängigkeiten des Kerns: nur die Standardbibliothek
144Gelesene Bytes pro Chip: Seiten 0x04 bis 0x27, Daten und Signatur

In drei Schritten loslegen

Das Paket tigertag liegt auf PyPI. Installieren, mit den Daten Ihres NFC-Lesegeräts aufrufen, Signatur prüfen.

  1. 1

    Installieren

    Ein Befehl. Der Kern nutzt nur die Standardbibliothek, die Referenzdaten sind enthalten: keine Konfiguration, kein Netzwerk beim ersten Start.

    pip install tigertag
  2. 2

    Einen Chip lesen

    Übergeben Sie die 7-Byte-UID und den 144-Byte-Payload aus Ihrem NFC-SDK. pretty(), to_dict() und validate() liefern dann eine Zusammenfassung, ein JSON-fähiges Dict und Warnungen.

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

    Signatur prüfen

    Das Extra verify fügt das Paket cryptography hinzu, damit tag.verify() die ECDSA-P256-Signatur offline mit dem im SDK enthaltenen öffentlichen Schlüssel prüft.

    pip install tigertag[verify]

Optionale Extras

sync fügt requests hinzu (Updates funktionieren schon mit der Standardbibliothek), verify fügt cryptography für Signaturen hinzu, full installiert beides, nfc fügt pyscard für PC/SC-Lesegeräte im Playground hinzu.

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)

Signaturen und Chip-Aufbau

Ein signierter TigerTag trägt eine ECDSA-P256-Signatur, die die Chip-UID an die Produktdaten bindet. Das SDK prüft sie ohne Serveraufruf.

tag.verify()

Liefert ein SignatureResult: ok ist nur bei gültiger Signatur True, status nennt sonst den Grund (keine Signatur, cryptography fehlt, kein öffentlicher Schlüssel, keine 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": "…"}
Mehr in der README

Was das SDK liest

from_pages() nimmt 144 Bytes (Seiten 0x04 bis 0x27, Daten und Signatur) oder 80 Bytes (nur Daten). from_dump() akzeptiert auch einen vollständigen 180-Byte-Dump und entnimmt ihm die UID.

Speicheraufbau eines TigerTag-NTAG-Chips, Seiten 0x04 bis 0x27, Feld für Feld Die TigerTag-Spezifikation

Was das SDK kann

Alles, was die README beschreibt, in einem Paket, das offline funktioniert.

Offline zuerst

Die Referenztabellen und der TigerTag+-Katalog (etwa 1 MB) sind im Paket enthalten. offline=True oder TIGERTAG_OFFLINE=1 schaltet jeden Netzwerkzugriff ab.

Signaturprüfung

ECDSA-P256, vollständig offline, mit dem öffentlichen Schlüssel aus der mitgelieferten id_version.json. Installieren Sie tigertag[verify] für das Paket cryptography.

Erstellen, ändern, löschen

TigerTag.create() baut ein Tag von Grund auf, patch() gibt ein neues Tag mit geänderten Feldern zurück, erase() liefert die 80 Null-Bytes zum Löschen eines Chips. Eine Änderung von UID oder Signatur löst ValueError aus.

TigerTag+-Katalog

TigerTag.from_catalog() macht aus einer TigerTag+-Produkt-ID ein vollständiges, schreibfertiges Tag aus dem offiziellen Katalog. catalog_entry() liefert Titel, Marke, SKU und Foto.

Aktualisierung der Referenzdaten

Die erste TigerTagDB eines Prozesses sucht höchstens einmal täglich nach neuen Daten und wirft nie einen Fehler: bei jedem Problem werden die lokalen Daten genutzt. tigertag update prüft sofort.

Jedes NFC-SDK

from_pages(uid, payload) nimmt, was Android, iOS, Flutter und nfcpy liefern. Die README enthält ein vollständiges Beispiel für ein ACR122U-Lesegerät mit nfcpy.

Kommandozeile und Einzeldatei

Der Befehl tigertag liest einen Chip-Dump, gibt ihn als Text, JSON oder Rohfelder aus und aktualisiert die Referenzdaten.

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
Mehr in der README

Eine Datei, kein Paket

parse_tigertag.py ist eine vollständige, eigenständige Kopie des SDK für Projekte ohne zusätzliche Abhängigkeit: Datei hineinlegen und TigerTag daraus importieren.

parse_tigertag.py

Playground

Eine lokale Webseite, die mit diesem SDK Tags erstellt, liest und prüft, ganz ohne Hardware. Mit einem ACS ACR122U oder einem anderen PC/SC-Lesegerät liest und schreibt sie auch echte Chips.

python3 tools/server.py 7432
Mehr in der README

Fragen

Was ist das TigerTag Python SDK?

Ein Python-Paket, tigertag auf PyPI, das TigerTag-NFC-Chips für 3D-Druck-Filament und -Harz liest, prüft, erstellt und ändert. Es ist Open Source unter der Apache-Lizenz 2.0 und implementiert das TigerTag-Protokoll v2.2.

Wie installiere ich es?

Führen Sie pip install tigertag mit Python 3.8 oder neuer aus. tigertag[verify] fügt die Signaturprüfung hinzu, tigertag[full] alle optionalen Abhängigkeiten, tigertag[nfc] PC/SC-Lesegeräte für den Playground.

Braucht es eine Internetverbindung?

Nein. Die Referenzdaten sind im Paket enthalten, Lesen und Prüfen funktionieren offline. Seit Version 1.3.0 sucht das SDK höchstens einmal täglich nach neuen Referenzdaten; offline=True, TIGERTAG_OFFLINE=1 oder auto_update=False schaltet das ab.

Welche Chips liest es?

NTAG213, NTAG215, NTAG216 und ISO-14443-3-kompatible Chips, mit den drei Tag-Typen TigerTag (Maker), TigerTag Init und TigerTag+. Das SDK liest alle drei auf dieselbe Weise.

Wie prüft es, ob ein Chip echt ist?

tag.verify() prüft die ECDSA-P256-Signatur des Chips, die seine UID an die Produktdaten bindet, mit dem im Paket enthaltenen öffentlichen Schlüssel und ohne Serveraufruf. Dafür wird die UID gebraucht: Lesen Sie den Chip mit from_pages(uid, payload).

Geht es auch ohne Paketinstallation?

Ja. parse_tigertag.py im Wurzelverzeichnis des Repositorys ist eine vollständige, eigenständige Kopie: Datei ins Projekt kopieren und TigerTag daraus importieren.

Gibt es ein Kommandozeilenwerkzeug?

Ja. tigertag dump.bin gibt eine lesbare Zusammenfassung aus, --json JSON und --raw die rohen Protokollfelder; tigertag update aktualisiert die Referenzdaten, und python -m tigertag funktioniert genauso.

Lesen Sie Ihren ersten TigerTag mit Python

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

tigertag auf PyPI