Integrity Failure Drill: Tamper and Verify Failure¶
What you’re proving¶
Integrity tamper checks are implemented as integration tests.
The drill is prereq-gated (registry + cosign), fail-closed when prerequisites are missing.
Verification failure paths are explicitly encoded in test scenarios.
Prereqs¶
Repo root:
<repo-root>Go toolchain
For full tamper execution: local registry (
localhost:5000) andcosigninPATH
Steps¶
Run tamper verification integration tests.
GOCACHE=/tmp/go-build go test ./oci/sign \
-tags integration \
-run 'TestVerify_TamperedAgentDigest|TestVerify_TamperedFingerprint|TestVerify_UnsignedMainImage' -v
Inspect captured output.
sed -n '1,140p' docs/_generated/test-outputs/integrity-tamper-output.txt
Expected outputs (from real run)¶
=== RUN TestVerify_TamperedAgentDigest
... registry not available at localhost:5000 ...
--- SKIP: TestVerify_TamperedAgentDigest
=== RUN TestVerify_TamperedFingerprint
... registry not available at localhost:5000 ...
--- SKIP: TestVerify_TamperedFingerprint
=== RUN TestVerify_UnsignedMainImage
... registry not available at localhost:5000 ...
--- SKIP: TestVerify_UnsignedMainImage
PASS
Verification¶
Command exits
0.Tests are discovered and either execute or skip with explicit prereq reason.
Skip reason references real prerequisites (
demo-up/demo-registry-test).
Failure modes¶
Missing registry/cosign causes expected skip behavior.
Go cache permission errors: use
GOCACHE=/tmp/go-build.
Non-goals¶
This page does not claim tamper execution succeeded in this environment.
This page does not introduce new integrity features beyond existing integration tests.
Evidence¶
oci/sign/verify.gooci/sign/verify_tamper_test.go(TestVerify_TamperedAgentDigest,TestVerify_TamperedFingerprint,TestVerify_UnsignedMainImage)docs/_generated/test-outputs/integrity-tamper-output.txt