From 43d7f0093005d40a321326beaf3dd42727e9fd23 Mon Sep 17 00:00:00 2001 From: mrwulf Date: Sun, 16 Aug 2026 20:47:07 +0200 Subject: [PATCH] =?UTF-8?q?site:=20the=20key=20section's=20heading=20now?= =?UTF-8?q?=20matches=20its=20content=20=E2=80=94=20two=20anchors,=20one?= =?UTF-8?q?=20required,=20one=20additive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator-caught logical fallacy: the h2 said 'pin this key' (singular) and the card said 'sole identity anchor' while the same section presents a second, additive post-quantum key ('sole' + 'Second anchor' in one breath). The heading is now plural with the hierarchy stated; 'sole' became 'required' in both places it appeared; and 'exactly three files' now names the optional fourth (the additive PQ key). Root cause: the SLH-DSA block was APPENDED to the section in August without re-reading the section against its own heading — local edit, no whole-unit re-read. --- provider/src/pacta_provider/webdocs.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/provider/src/pacta_provider/webdocs.py b/provider/src/pacta_provider/webdocs.py index 634b5a0..1637f56 100644 --- a/provider/src/pacta_provider/webdocs.py +++ b/provider/src/pacta_provider/webdocs.py @@ -162,7 +162,7 @@ proof subject of leaf 18.

else: slh_block = "" return f"""
-

This key is the sole cryptographic identity anchor: it +

This key is the required cryptographic identity anchor — the one every consumer must check: it authenticates that these statements were made by the operator (the same party the artifacts call “the provider”). It does not, by itself, make those statements true — each attestation's truth additionally rests on the replay, theorem, extraction and toolchain assumptions stated in that leaf (one signed entry of the tree below). Every tree head and attestation is @@ -228,7 +228,7 @@ their documented assumptions — so that you can trust a proof result by ch one required signature (Ed25519) and ~{max(1,(latest.get('tree_size') or 1).bit_length())} hashes in milliseconds, instead of running a theorem prover for hours.

-

The trust anchor — pin this key

+

The trust anchors — pin these keys (one required, one additive)

{_trust_anchor_html(log, metadata, base, mirror)}

The accumulator, live

@@ -250,11 +250,12 @@ log id {escape(str(metadata.get('log_id',''))[:16])}….

What do I download? — the three artifacts, unambiguously

To benefit from the accumulator you need exactly three files per -library, plus optionally the whole mirror. Nothing else.

+library, plus optionally the additive post-quantum key +(provider.slhdsa.pub) and the whole mirror. Nothing else.

-
#ArtifactWhat it isWhere
1provider.ed25519.pubThe identity anchor. The provider's public key — the sole cryptographic +The identity anchor. The provider's public key — the required cryptographic identity you pin. It authenticates the operator's statements; their truth rests on each leaf's stated assumptions. Fetch it from BOTH independent locations and compare; the copies must be identical.