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

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

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 und neuer
3.8+Python 3.8 und neuer
Laufzeitabhängigkeiten des Kerns: nur die Standardbibliothek
0Laufzeitabhängigkeiten des Kerns: nur die Standardbibliothek
Gelesene Bytes pro Chip: Seiten 0x04 bis 0x27, Daten und Signatur
144Gelesene Bytes pro Chip: Seiten 0x04 bis 0x27, Daten und Signatur
TigerTag+-Katalog im Paket enthalten, zusammen mit den Referenztabellen, für die Offline-Nutzung
~1 MBTigerTag+-Katalog im Paket enthalten, zusammen mit den Referenztabellen, für die Offline-Nutzung

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.

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.

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.

Signaturen, ohne Server geprüft

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

A TigerTag chip

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.

TigerTag

Kommandozeile und Einzeldatei

Der Befehl tigertag liest einen Chip-Dump, gibt ihn als Text, JSON oder Rohfelder aus und aktualisiert die Referenzdaten. 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.

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 und NTAG216 sowie jeden ISO-14443-3-kompatiblen Chip. TigerTag- und TigerTag+-Chips liest es auf dieselbe Weise, ebenso leere Chips, die zur Programmierung bereit sind.

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

Lesen Sie Ihren ersten TigerTag mit Python

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

tigertag auf PyPI