Skip to main content

TBZ (TIBET-zip) — Block-level authenticated compression for the Zero-Trust era

Project description

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

# 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.tbz")

# 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.tbz    # pack
tbz x release.tbz             # extract
tbz v release.tbz             # verify
tbz i release.tbz             # inspect

tbz release.tbz               # 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tbz-0.1.2.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tbz-0.1.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file tbz-0.1.2.tar.gz.

File metadata

  • Download URL: tbz-0.1.2.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tbz-0.1.2.tar.gz
Algorithm Hash digest
SHA256 67d9c0f790246d8a898a0b94f8f08d0f7fc9f9e2c1a56c045ea57fce077599ea
MD5 e8fbff040225f8109b9d8034793f3889
BLAKE2b-256 0f19348282fdf13007f8ec3920bcb5bf2d42753fbadb152c6f4a418076decdae

See more details on using hashes here.

File details

Details for the file tbz-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tbz-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tbz-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ed524a6103ecde05480f9fdc4739af4065eca9e3b0625be7da105c8d30e703a3
MD5 98b43828e7e8ab8f35dccafefbe974b2
BLAKE2b-256 234444ff273e2213b42c1ed1313f87f4a3133f44d7c2f1410e7960c8af6eca9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page