Caliper Discovery — Audit Packet Verification
================================================

This tarball contains a published Caliper finding bundle. To verify:

  1. SHA-256 of fragment.html must equal `bundle.fragment_sha256` in
     manifest.json and bundle.json.

  2. The canonical JSON of `bundle` (sorted keys, no whitespace) must SHA-256
     to `evidence_hash` in manifest.json. Compute with:

         python -c "import json,hashlib,sys;d=json.load(open('bundle.json'));print(hashlib.sha256(json.dumps(d,sort_keys=True,separators=(',',':')).encode()).hexdigest())"

  3. The Ed25519 signature `signature_b64` (base64-decoded) must verify
     against `evidence_hash.encode('utf-8')` using the Caliper signing
     public key.

  4. The signing public key's SHA-256 fingerprint (first 16 hex chars) must
     equal `signing_fingerprint` in manifest.json.

The public key is published at: https://rocsitediscovery.com/keys/

Bundle finding sha1 is the canonical identifier referenced in the published
Ledger. Any mutation of the fragment HTML or bundle metadata invalidates
the signature.
