tbz — TIBET-zip for Python
Block-level authenticated compression for the Zero-Trust era.
Every block carries its own TIBET provenance envelope and Ed25519 signature. Tampered blocks are rejected before decompression touches memory. Built as a response to CVE-2026-0866 (Zombie ZIP) — where a single header flip fools 50 out of 51 antivirus engines.
Install
pip install tbz
What you get
| Feature | Pure Python | With Rust CLI |
|---|---|---|
| Read block headers | yes | yes |
| Inspect archive structure | yes | yes |
| SHA-256 hash verification | yes | yes |
| Ed25519 signature verification | — | yes |
| Pack files into .tza | — | yes |
| Unpack via TIBET Airlock | — | yes |
| Transparency Mirror client | yes | yes |
Pure Python works standalone — no binary needed. Add the Rust CLI for full cryptographic verification and pack/unpack.
Quick Start
Inspect and verify
from tbz import TBZArchive
archive = TBZArchive("release.tza")
# Inspect: read block headers (pure Python)
info = archive.inspect()
print(f"Blocks: {info['block_count']}")
print(f"Hash: {info['content_hash']}")
for block in info["blocks"]:
sig = "signed" if block["signed"] else "unsigned"
print(f" [{block['index']}] {block['type']} — {block['compressed_size']} bytes, {sig}")
# Verify: SHA-256 + Ed25519 (uses Rust CLI if available)
result = archive.verify()
print(result) # TBZ VERIFIED: 3 blocks (hash + Ed25519), 0 errors
Transparency Mirror — supply chain lookup
from tbz import Mirror
mirror = Mirror() # connects to bootstrap node
# Look up any TBZ archive by its hash (public, no auth)
entry = mirror.lookup("sha256:abc123...")
if entry:
print(f"Source: {entry['source_repo']}")
print(f"Attestations: {len(entry['attestations'])}")
# Search by publisher
results = mirror.search(jis_id="jis:ed25519:77214ce9c262843e")
# Search by verdict
safe_packages = mirror.search(verdict="safe")
# Mirror node stats
stats = mirror.stats()
print(f"Node: {stats['node']}, entries: {stats['total_entries']}")
Pack and unpack (requires Rust CLI)
# Pack
archive = TBZArchive.pack("./src", output="release.tza")
# Unpack through TIBET Airlock (quarantine buffer, 0x00 wipe on failure)
archive.unpack("./extracted")
Rust CLI
For full features, install the Rust CLI:
cargo install tbz-cli
Then you get short aliases and smart mode:
tbz p ./src -o release.tza # pack
tbz x release.tza # extract
tbz v release.tza # verify
tbz i release.tza # inspect
tbz release.tza # smart: verify + unpack
tbz ./src # smart: pack
Transparency Mirror
The Mirror is a distributed trust database for verifying TBZ package provenance. The bootstrap node runs at brein.jaspervandemeent.nl.
from tbz import Mirror
# Default: bootstrap node
mirror = Mirror()
# Custom node
mirror = Mirror(node_url="https://your-mirror.example.com")
# Public endpoints (no auth required)
mirror.lookup("sha256:...") # look up by content hash
mirror.search(verdict="safe") # search attestations
mirror.search(signing_key="77") # search by key prefix
mirror.stats() # node statistics
Why TBZ?
ZIP, tar.gz, and 7z have no cryptographic binding between headers and data. CVE-2026-0866 proves this: flip one byte in a ZIP header, and 50 out of 51 antivirus engines see noise instead of malware.
TBZ fixes this by design:
- Ed25519 signature covers header + envelope + payload together
- SHA-256 hash in TIBET envelope is the source of truth
- Quarantine buffer wipes to 0x00 on verification failure
No header trust. Verify first, decompress second.
Links
License
MIT / Apache-2.0
Metadata
Release files for tbz 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tbz-1.1.0.tar.gz | 15.0 kB | Without provenance | Details for tbz-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tbz-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for tbz-1.1.0-py3-none-any.whl |
Total release size: 29.5 kB
Release files / tbz-1.1.0.tar.gz
| Download URL | tbz-1.1.0.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9617a0b7ef1b9eff72ceb376401ea5ec491f56e71d8ee322c3433562adadc837
|
|
BLAKE2b-256 checksum How to use checksums |
9a70679abd656d084f8bca40d5e0439efebbb4e4396eff305f934db108548128
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / tbz-1.1.0-py3-none-any.whl
| Download URL | tbz-1.1.0-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
312b6b44ab9d91a0da5d87b1bda75cb5de93dbe4de91bf9f777d7b072f87b8bf
|
|
BLAKE2b-256 checksum How to use checksums |
f9e79afd9de440987d598f87d314ae4ead132f7a2f15e71a774177ba8b0370dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for tbz 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.