Native Evidence package verification
The native package contains manifest.json, signature.json, bundle.json, checksums.txt and instructions.txt. Materials in the signed manifest are references; their original bytes are not added to the package when the snapshot did not supply them.
- Read
signature.jsonand base64-decode itspayloadverbatim topayload.binand itssignaturetosignature.raw. Signature verification uses those original bytes. - Require the JSON value in
manifest.jsonto equal the decoded signed payload. Inspect the signed bundle/tenant identity and material references against the expected evidence. - Supply independently trusted public custody for the signing key through the existing CLI trust policy. A key identifier in the archive is a selector, not a trust decision.
- Run the existing cryptographic verification command, substituting the expected key identifier and trusted policy file:
stella crypto verify --input payload.bin --signature signature.raw --key-id KEY_ID --trust-policy TRUST_POLICY --format raw
For the configured Ed25519 CapsuleSeal key, the existing policy shape is:
keys:
- id: evidence-locker-capsule-key
algorithm: ED25519
path: evidence-public.spki.b64
The referenced file contains base64 SubjectPublicKeyInfo obtained from the operator’s trusted public custody. Keep that trust input independent of the archive. Stella Ops cryptography’s existing Ed25519 provider performs verification; the command provisions no signing key.
The native snapshot’s original signature was verified with exit 0. Altering its payload or substituting the trusted public key caused exit 1. A provider override was unnecessary.
This command validates the detached payload signature. Recompute the material Merkle root and compare the expected bundle root separately. Validate referenced material bytes when available, and apply the configured TSA and transparency checks for any timestamp or checkpoint claims. It does not establish qualified timestamp status or verify a transparency checkpoint by itself.
Native package objects are immutable. Updated instructions apply to newly materialized packages; already retained objects keep their original bytes and receipts.
