Sem rede, à partida
As tabelas de referência e o catálogo TigerTag+ (cerca de 1 MB) vêm dentro do pacote. offline=True ou TIGERTAG_OFFLINE=1 desliga todo o acesso à rede.
SDK de código aberto · protocolo TigerTag v2.2
O pacote tigertag converte os 144 bytes de um chip TigerTag em material, cores, temperaturas e quantidade, verifica a respetiva assinatura ECDSA-P256 e cria novas etiquetas. Os dados de referência vêm dentro do pacote, por isso funciona sem rede logo após o 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 dictTudo o que o README documenta, num único pacote que funciona sem rede.
As tabelas de referência e o catálogo TigerTag+ (cerca de 1 MB) vêm dentro do pacote. offline=True ou TIGERTAG_OFFLINE=1 desliga todo o acesso à rede.
ECDSA-P256, totalmente sem rede, com a chave pública do ficheiro id_version.json incluído. Instale tigertag[verify] para acrescentar o pacote cryptography.
TigerTag.create() cria uma etiqueta de raiz, patch() devolve uma nova etiqueta com campos alterados, erase() devolve os 80 bytes a zero que apagam um chip.
TigerTag.from_catalog() converte um ID de produto TigerTag+ numa etiqueta completa pronta a escrever, a partir do catálogo oficial. catalog_entry() fornece título, marca, SKU e fotografia.
O primeiro TigerTagDB de um processo procura dados novos no máximo uma vez por dia e nunca lança erros: perante qualquer falha, usa os dados locais.
from_pages(uid, payload) aceita o que Android, iOS, Flutter e nfcpy devolvem. O README inclui um exemplo completo para um leitor ACR122U com nfcpy.
Uma TigerTag assinada contém uma assinatura ECDSA-P256 que associa o UID do chip aos dados do produto. O SDK verifica-a sem contactar qualquer servidor. tag.verify() devolve um SignatureResult: ok é True apenas para uma assinatura válida e, caso contrário, status indica o motivo (sem assinatura, cryptography em falta, sem chave pública, sem UID).

from_pages() aceita 144 bytes (páginas 0x04 a 0x27, dados e assinatura) ou 80 bytes (apenas dados). from_dump() aceita também um dump completo de 180 bytes e extrai dele o UID.

O comando tigertag lê o dump de um chip, apresenta-o em texto, JSON ou campos em bruto e atualiza os dados de referência. parse_tigertag.py é uma cópia completa e autónoma do SDK para projetos que não podem acrescentar dependências: coloque o ficheiro no projeto e importe TigerTag a partir dele.
Um pacote Python, tigertag no PyPI, que lê, verifica, cria e altera chips NFC TigerTag de filamentos e resinas para impressão 3D. É de código aberto, sob a licença Apache 2.0, e implementa o protocolo TigerTag v2.2.
Execute pip install tigertag com Python 3.8 ou posterior. Acrescente tigertag[verify] para assinaturas, tigertag[full] para todas as dependências opcionais ou tigertag[nfc] para os leitores PC/SC do playground.
Não. Os dados de referência vêm no pacote, pelo que a leitura e a verificação funcionam sem rede. Desde a versão 1.3.0, o SDK procura dados novos no máximo uma vez por dia; offline=True, TIGERTAG_OFFLINE=1 ou auto_update=False desativa-o.
NTAG213, NTAG215 e NTAG216, e qualquer chip compatível com ISO 14443-3. Lê da mesma forma chips TigerTag e TigerTag+ e chips virgens prontos a programar.
tag.verify() verifica a assinatura ECDSA-P256 do chip, que associa o seu UID aos dados do produto, com a chave pública incluída no pacote e sem contactar um servidor. É necessário o UID: leia o chip com from_pages(uid, payload).
pip install tigertag e, depois, TigerTag.from_pages(uid, payload).
tigertag no PyPI