2.2 KiB
2.2 KiB
DSSE + in-toto Event Spine (Attestation Pipeline)
Module
Attestor
Status
IMPLEMENTED
Description
DSSE envelope signing and verification across the pipeline. Scanner emits policy decision and human approval attestations; Attestor ProofChain provides DSSE envelope/signature models and verification.
Implementation Details
- ProofSpine System:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/--IProofSpineAssembler.cs,ProofSpineRequest.cs,ProofSpineResult.cs,ProofSpineSubject.cs,SpineVerificationCheck.cs,SpineVerificationResult.cs-- assembles proof spines from multiple attestation events. - Proof Spine Statement:
Statements/ProofSpineStatement.cs-- in-toto statement for proof spine.Predicates/ProofSpinePredicate.cs-- spine predicate model. - Merkle Tree Assembly:
Assembly/MerkleTree.cs-- Merkle tree for spine root computation. - DSSE Signing:
Signing/ProofChainSigner.cs(with.Verification) signs spine attestations. - Policy Decision Predicate:
Predicates/PolicyDecisionPredicate.cs,PolicyDecision.cs-- policy decision attestation. - Pipeline:
Pipeline/IProofChainPipeline.cs,ProofChainRequest.cs,ProofChainResult.cs,PipelineSubject.cs,RekorEntry.cs-- proof chain pipeline processing. - Statement Builder:
Builders/StatementBuilder.cs(with.Extended) -- builds in-toto statements for pipeline events. - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/ProofSpineAssemblyIntegrationTests.cs
E2E Test Plan
- Assemble a proof spine from 5 attestation events via
IProofSpineAssemblerand verify the spine root hash aggregates all events - Sign the proof spine via
ProofChainSignerand verify the DSSE envelope - Verify the spine via
SpineVerificationCheckand confirm all constituent attestations are valid - Create a
PolicyDecisionPredicatefor a pass/fail decision and include it in the spine - Process a
ProofChainRequestthrough the pipeline and verify aProofChainResultis produced with Rekor entry - Verify the Merkle tree root of the spine matches recomputation from individual event hashes
- Build in-toto statements for each pipeline event via
StatementBuilderand verify correct predicate types