2.8 KiB
2.8 KiB
VEX Attestation Predicate Pipeline
Module
Attestor
Status
IMPLEMENTED
Description
Complete VEX attestation pipeline from predicate creation through proof integration to verdict statements.
Implementation Details
- VEX Attestation Predicate:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs-- predicate model for VEX attestations containing per-component/CVE verdicts with proof references. - VEX Predicate:
Predicates/VexPredicate.cs-- base VEX predicate with status, justification, and impact statement. - VEX Verdict Summary:
Predicates/VexVerdictSummary.cs-- summary of VEX verdicts per subject. - VEX Status Counts:
Predicates/VexStatusCounts.cs-- aggregate counts by VEX status (affected, not_affected, fixed, under_investigation). - VEX Document Reference:
Predicates/VexDocumentReference.cs-- reference linking to the source VEX document. - VEX Proof Integrator:
Generators/VexProofIntegrator.cs(with.Helpers,.Metadata) -- embeds cryptographic proof references (proof_ref, proof_method, proof_confidence) into VEX predicates. - VEX Verdict Proof Payload:
Generators/VexVerdictProofPayload.cs-- payload binding VEX verdicts to proof chain evidence. - VEX Verdict Statement:
Statements/VexVerdictStatement.cs-- in-toto statement wrapping the VEX verdict as an attestation. - VEX Verdict ID:
Identifiers/VexVerdictId.cs-- content-addressed identifier for VEX verdicts. - Statement Builder:
Builders/StatementBuilder.cs(with.Extended) -- builds in-toto statements for VEX predicates. - Predicate Schema Validator:
Json/PredicateSchemaValidator.cs(with.Validators) -- validates VEX predicates against JSON schemas. - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/
E2E Test Plan
- Create a
VexAttestationPredicatewith 3 CVE verdicts (affected, not_affected, fixed) and verify each status is correctly set - Integrate proof references via
VexProofIntegratorand verify each verdict contains proof_ref, proof_method, and proof_confidence fields - Build a
VexVerdictStatementviaStatementBuilderand verify it is a valid in-toto statement with the correct predicate type URI - Validate the VEX predicate against
PredicateSchemaValidatorand verify it passes schema validation - Generate a
VexVerdictIdfrom the verdict content and verify it is deterministic (same content produces same ID) - Create a VEX attestation with status counts and verify
VexStatusCountsmatches: 1 affected, 1 not_affected, 1 fixed - Create a malformed VEX predicate (missing required justification for not_affected) and verify schema validation fails
- Build a VEX verdict proof payload and verify it contains the VEX document reference linking to the source VEX document