Skip to main content

Offline verifier for Aegis evidence bundles (AEVF aevf/0.1.0). Zero network calls, single dep.

Project description

aegis-verify

Offline verifier for Aegis evidence bundles. Zero network calls. One pip dep (cryptography). Runs on an air-gapped machine.

Built for an EU AI Act auditor who wants to verify what your AI agents did — or were stopped from doing — without trusting Aegis or being connected to the internet.

Install

pip install cryptography           # the only runtime dependency
# or, from this repo:
pip install -e tools/aegis_verify

Use

# verifier reads the bundle file and prints a report
python -m aegis_verify --bundle evidence_bundle.json

# fail any check → exit 1; pass all → exit 0 (CI-friendly)
python -m aegis_verify --bundle evidence_bundle.json && echo OK

Output on a healthy bundle:

aegis-verify report
  bundle:     aegis-evidence-bundle/2026-06
  framework:  eu-ai-act
  tenant:     00000000-0000-0000-0000-000000000001
  records:    482
  keys:       1
  roots:      6

Checks:

*** PASS *** every signature, hash chain, and Merkle root in this bundle verifies.

Output on a tampered bundle:

Checks:
  [FAIL] V3_prev_hash_chain_per_shard — 1 prev_hash mismatch(es) (first: <uuid>)
*** FAIL *** at least one check failed.
             first broken row: <uuid>

What it verifies

Check What it proves
V1_bundle_format_recognized The bundle is a format the verifier understands
V2_event_hash_recompute Each row's event_hash recomputes from its content — no row was edited after the fact
V3_prev_hash_chain_per_shard The intra-day hash chain has zero breaks — no row was deleted
V4_merkle_root_signatures Each daily Merkle root was ed25519-signed by Aegis (the embedded public key proves it)
V5_prev_root_hash_chain The cross-day Merkle-root chain has zero breaks — no day was excised
V6_retention_metadata_consistent The bundle's claimed retention policy is honest given the rows actually present

Why this matters

The EU AI Act high-risk obligations reach full enforcement on August 2, 2026 (Article 12: tamper-evident record-keeping ≥ 6 months; Article 14: human oversight events). Penalties: 7% global turnover / €35M.

Every other AI-guardrail vendor's evidence story ends with "trust our dashboard." That doesn't survive an external auditor.

This verifier ends with: "the auditor ran a 16 KB Python script on their own laptop and got PASS. No trust required."

Bundle format

See verifier.py's module docstring for the full schema. In short: the bundle is one self-contained JSON file containing the public keys, the signed daily Merkle roots, every audit row in scope, and a per-row mapping to EU AI Act articles / NIST AI RMF controls / SOC 2 control IDs.

License

Apache 2.0. The verifier is and will remain open-source so auditors can fork it and run their own copy.

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

aegis_aevf-1.0.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

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

aegis_aevf-1.0.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file aegis_aevf-1.0.0.tar.gz.

File metadata

  • Download URL: aegis_aevf-1.0.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for aegis_aevf-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5e1c357ffa507b766962179aa1db6dfce55685d8399d562944fba7c72b8c4e76
MD5 ec0c4ccce925a2eb3e91810aa54082d2
BLAKE2b-256 ef564e85cb45fb8208b77681360446f2b8c58f7c9817c230ac96f1dd1c3c070d

See more details on using hashes here.

File details

Details for the file aegis_aevf-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aegis_aevf-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for aegis_aevf-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 221a50faec55b6a2f284c13faef0d735e9f62ef3ef23219f64f5ea45484e5221
MD5 1d82012f83cdef79eb2782befa2d981e
BLAKE2b-256 ac72c47b95aa0f07722f4e9e5e2cb08615b432e125b8010c671700022eef2f3d

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