# Signed checkpoint validation — 25 October 2026

Private source/script/asset readiness. All Cedar history/checkpoint/trust inputs are synthetic; RFC seeds are public fixtures. No source authentication, real key custody, independent timestamp, live external anchor, full ledger verification or encoded/published video is claimed.

## Reproduce

Read [dependency instructions](../examples/dependencies/README.md) for pinned isolated installation, then from repository root:

```powershell
python algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/tests/run_parity.py
python -m unittest discover -s algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/tests -p test_signed.py
node algorithms/domains/D30-banking-ledger-and-reconciliation/D30-F05-tamper-evident-ledger-integrity/D30-F05-A06-signed-ledger-checkpoint/tests/visual-qa.mjs
```

## Full-output, primitive and strict-profile evidence

Initial 71 complete expected outputs were authored before Signed core; 17 later independent adversarial/general-key regressions bring the suite to 88. The oracle imports no production core. Complete Python/TS outputs match including all structural errors, scope, selected key, separate layer statuses and full C/E framing. Root independent C 300/E 524 bytes and SHA256(E)=8c3d6bb3a098a957a5b555064cda453528aff09995a63a944fd902076f523972 match literally. Public-demo signing reproduces the independent exact signature. Published RFC8032 TEST1/TEST2 sign/verify vectors run separately.

Actual runtime: Python3.11.3 with pinned PyNaCl1.6.2 patched libsodium point validation/detached verify; Node22.22.0 with pinned noble-curves2.4.0 strict canonical nonidentity main-subgroup A/R plus zip215:false AND actual WebCrypto. The earlier cryptography40.0.2 diagnostic is not the production Python path. Identity/order4/mixed-order/noncanonical A, identity/mixed/noncanonical R, scalar L/L−1/0 invalid equations, generated general third key, current rotation/revocation boundaries, stale trust, absent expected evidence, rewritten/resigned content, count maxima, malformed wire and all signed fields are tested. A verifiable invalid signature dominates another missing layer. Unavailable required backend never passes.

Six Python methods cover complete expected outputs, literal framing/demo signing, official RFC vectors/patched mixed-order regression, backend absence/detached mutation and all 66 available-backend captured browser outputs. Three additional lab captures deliberately simulate unavailable WebCrypto; Python's default available backend is not falsely compared as an equivalent runtime. TS strict typecheck passes before bundling. Both learner modules have no sibling runtime imports; declared pinned crypto dependencies are required. Actual library/source bundle is reproducible from tests/build.mjs and build_lab.py; compiled output lives in tests/.tmp-compiled.

## Actual browser and rendered QA

Chromium executes all 88 complete fixture outputs against their independent expected JSON plus both official RFC raw-message sign/verify vectors. The guided lab records108 layer observations,30 changed-field checks and 69 complete outputs at 390/768/1440, retaining all 11 fields and three diagnostics. Actual WebCrypto re-signing repairs mathematics while preserved expected binding fails. Async scenario changes cannot publish stale signing results. All controls/parameters/reset/keyboard/real Play/Pause/cancellation, reduced-motion one-step,44px targets, no document overflow and zero console warnings/errors pass. Both SVGs and Mermaid were rendered and inspected; a crowded static label was corrected and rerendered. Exact tables scroll locally.

Evidence: tests/parity-results.json, research/visual-qa-results.json, research/browser-reference-outputs.json and research/qa; public-safe parity/browser result and screenshots copied under examples. Source roles in [REFERENCES.md](../examples/REFERENCES.md); exact schemas in [data-contract.md](../examples/data-contract.md); dependencies/observed-artifacts.json and package-lock preserve installation provenance. Upstream library audits are not an audit of this tutorial. The coordinator separately appends actual visitor H1/route/asset/iframe acceptance.

Public-demo signing unavailability is also guarded: a modeled NotSupportedError leaves the existing verification result unchanged, gives a visible unavailable message and disables the signing action, with no unhandled console error.


## A2 resolved — native SHA256 refusal

Root found that the original Python framing digest could escape before the independent Ed25519 checks. The narrow repair preserves C/E bytes, sets digest null and continues signature/authority/binding; a definite invalid signature still wins. Native Python ValueError/RuntimeError and TS/actual-browser absent or NotSupportedError/OperationError/SecurityError providers are tested. Six additional actual-browser complete outputs (valid and invalid signatures under each native refusal) match independently prescribed output shapes; unexpected TypeError is preserved. The actual TS/noble lab bundle was regenerated and the full interaction/browser/RFC suite rerun. See native-sha256-unavailable-results.json beside the research receipt. Six Python methods now pass; normal fixture count remains88, initial71 before code. This is a runtime bug repair, not additional financial-model behavior.
