- 2026-05-09: verifier mismatch found and fixed
-
- A reader running the recipe on this page got an argparse error instead of a verification. The verifier we'd shipped didn't match the bundle we'd shipped. The hashes were correct, but the script next to them read JSON, not the zip the page describes.
-
-
- Replaced with a verifier that opens the zip, recomputes every per-file SHA-256, and rebuilds the Merkle root using the same algorithm RegEngine ships in services/shared/merkle_tree.py. Added the EPCIS payload to manifest.json, added a build block (commit, generated_at, release), and published audit-bundle-tampered.zip so anyone can watch the new verifier fail closed.
-
-
- If you found the original bug before we did, thank you. That's the system working.
+
+
Run it yourself
+
Inspect the Python verifier.
+
+ verify_chain.py reads the manifest, recomputes each declared file's SHA-256, and rebuilds the Merkle root using the same algorithm RegEngine ships in services/shared/merkle_tree.py. If those values disagree with the included manifest, the script exits non-zero. These checks establish internal consistency; they do not authenticate the issuer or establish that the source data is accurate.
-
+
+