Tersign evidence-bundle verifier — line v1 A frozen evidence bundle ships its own copy of verify/. That is fine for a worked example and wrong for evidence handed to you by an interested party: a bundle can ship a checker that blesses it. Fetch this copy instead, then diff the two — a difference is itself the finding. base=https://tersign.ai/verify/v1 mkdir -p oob && curl -fsSL "$base/SHA256SUMS" -o oob/SHA256SUMS for f in verify_bundle.py keccak.py secp256k1.py; do curl -fsSL "$base/$f" -o "oob/$f"; done ( cd oob && shasum -a 256 -c SHA256SUMS ) python3 oob/verify_bundle.py --signer
Python standard library only. No install, no account, and no network once fetched. Without --signer the verdict is explicitly integrity-only: the bundle is internally consistent and tamper-evident, but the signer identity was read from the bundle itself. The tool also prints an UNAUTHENTICATED line naming the fields nothing signs. A verdict is never stronger than its checks. This line is mutable, not frozen: ordinary fixes ship in place and move the digests below, which is what you diff; a change to what a PASS MEANS opens v2. 9952da9ad64715d19de688214115dda954556ec5ac5750fbc04b0e1c6d661438 verify_bundle.py (26889 bytes) f3fa3c35a309cc7d205b09b52c883a7fa9511f831800c514d5274e100bd0e8ce keccak.py (3197 bytes) 1022b2c904d266c0e6d6c1ede277f31b93b529d6f8f72217f84472b592f69cbf secp256k1.py (5177 bytes)