2.9 KiB
2.9 KiB
Attestation Determinism Testing
Module
Attestor
Status
IMPLEMENTED
Description
Golden test vectors and determinism verification tests ensuring byte-for-byte reproducibility of attestations, DSSE envelopes, and policy engine evaluations.
Implementation Details
- Golden Samples Tests:
src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/AttestationGoldenSamplesTests.cs-- verifies attestations match golden test vectors byte-for-byte. - Attestation Determinism Tests:
__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.cs-- ensures repeated attestation generation produces identical output. - DSSE Envelope Determinism:
__Tests/StellaOps.Attestor.ProofChain.Tests/Envelope/DsseEnvelopeDeterminismTests.cs-- verifies DSSE envelope serialization is deterministic. - In-Toto Statement Snapshots:
__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/InTotoStatementSnapshotTests.cs-- snapshot tests for in-toto statement serialization stability. - Canonical JSON:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs(with.DecimalPoint,.NumberSerialization,.StringNormalization,.WriteMethodspartials) -- RFC 8785 canonical JSON serialization ensuring deterministic output. - CycloneDX Determinism:
__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxDeterminismTests.cs-- verifies CycloneDX SBOM output is deterministic. - SPDX Determinism:
__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxDeterminismTests.cs-- verifies SPDX SBOM output is deterministic. - Canonical JSON Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/JsonCanonicalizerTests.cs,__Tests/StellaOps.Attestor.StandardPredicates.Tests/JsonCanonicalizerTests.cs - Conformance Tests:
__Tests/StellaOps.Attestor.Conformance.Tests/--VerificationParityTests.cs,InclusionProofParityTests.cs,CheckpointParityTests.csverify cross-implementation consistency.
E2E Test Plan
- Generate an attestation from identical inputs twice and compare SHA-256 hashes of the serialized output to verify byte-for-byte equality
- Serialize a DSSE envelope, deserialize it, re-serialize, and verify the output bytes are identical (idempotent serialization)
- Run the RFC 8785 canonicalizer on JSON with out-of-order keys, varied whitespace, and Unicode escapes, then verify the output matches the canonical form
- Generate CycloneDX SBOM output from identical inputs on two separate runs and verify SHA-256 hash match
- Generate SPDX SBOM output from identical inputs on two separate runs and verify SHA-256 hash match
- Verify golden sample test vectors by comparing generated attestation against known-good fixtures stored in the test project
- Run conformance parity tests to verify Attestor output matches reference implementations for checkpoint parsing, inclusion proofs, and verification