agent-evidence-vectors v0.17.9

Release verification

Verify a release without trusting us

Check the corpus bytes, the maintainer's signature and the two timestamp proofs at the release you intend to cite. The commands below select the published v0.17.7 release.

git clone https://github.com/probityai/agent-evidence-vectors && cd agent-evidence-vectors
git checkout v0.17.7

# 1. the digest list is what the vector files on disk hash to, recomputed
python3 scripts/release-digests.py --check

# 2. the maintainer signed exactly those bytes
cosign verify-blob --key release/cosign.pub \
  --signature release/CORPUS-DIGESTS.txt.sig \
  --insecure-ignore-tlog=true release/CORPUS-DIGESTS.txt

# 3. an RFC 3161 authority saw that signature at a stated time
openssl ts -verify -in release/CORPUS-DIGESTS.txt.sig.tsr \
  -digest "$(base64 -d release/CORPUS-DIGESTS.txt.sig | sha256sum | cut -d' ' -f1)" \
  -CAfile spec/tsa-roots.pem

# 4. so did a public calendar nobody here controls
ots verify -d "$(base64 -d release/CORPUS-DIGESTS.txt.sig | sha256sum | cut -d' ' -f1)" \
  release/CORPUS-DIGESTS.txt.sig.ots
Check What it establishes
release-digests.py --check Recomputed corpus bytes match the generated digest list, including each manifest, count and revision
cosign verify-blob The committed public key verifies the signature over that digest list
openssl ts -verify The RFC 3161 authority timestamp covers the raw signature bytes and chains to the pinned TSA root
ots verify The proof binds the same signature bytes to a Bitcoin block verified through the configured Bitcoin node

The signature was not submitted to a transparency log; --insecure-ignore-tlog selects offline signature verification. A verified timestamp dates the signature's commitment to the corpus. A key stored beside the corpus must still be selected through the consumer's own trust process.

Timestamp status

An OpenTimestamps proof can remain pending until Bitcoin confirmation. The weekly ots-upgrade workflow fetches updated calendar proofs. A successful upgrade does not establish Bitcoin chain verification.

The release gate checks digests and signatures on each tag. Its optional --with-timestamps path verifies the RFC 3161 token and OpenTimestamps signature binding offline, then reports the separate chain state. RFC 3161 verification uses spec/tsa-roots.pem. A proof that covers the wrong signature fails offline.

OpenTimestamps may contact a calendar for an incomplete proof. Full verification also needs a Bitcoin Core node. An offline binding pass does not establish chain verification. Record the reported chain state when the calendar or Bitcoin node cannot be reached.

Signing

The Ed25519 key is generated by cosign. The maintainer signs locally at tag time; the private key is absent from this repository and CI secrets. CI can verify releases but cannot sign them.

Signing precedent records the compared projects, the commands used to inspect them and a positive control.