mirror of
https://github.com/saymrwulf/proof-aware-crypto-tooling-agent.git
synced 2026-09-04 20:03:40 +00:00
web: publish the SLH-DSA verification key the same way as the Ed25519 one
/v1/log-slhdsa-public-key, mirroring /v1/log-public-key exactly: same route shape, same two-independent-locations TOFU rule (site copy + git mirror copy). The operator decision of 2026-08-06 required the SLH-DSA public key published like the Ed25519 key; the mirror half shipped with the tree-19 publication, this is the site half. Suite 152/0/0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b232265264
commit
0d83dc3ec1
1 changed files with 8 additions and 2 deletions
|
|
@ -65,11 +65,16 @@ def make_handler(log: TransparencyLog, base_path: str, docs_html: str, paper_pdf
|
||||||
self.send_header("Content-Length", str(len(body)))
|
self.send_header("Content-Length", str(len(body)))
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
self.wfile.write(body)
|
self.wfile.write(body)
|
||||||
elif route == "/log-public-key":
|
elif route in ("/log-public-key", "/log-slhdsa-public-key"):
|
||||||
# TOFU mitigation depends on the key being published in two
|
# TOFU mitigation depends on the key being published in two
|
||||||
# independent locations; this is the site's copy (the mirror
|
# independent locations; this is the site's copy (the mirror
|
||||||
# carries the other). Serving only a fingerprint would not do.
|
# carries the other). Serving only a fingerprint would not do.
|
||||||
key_path = Path(log.log_dir) / "provider.ed25519.pub"
|
# The SLH-DSA key (additive post-quantum signature, 2026-08)
|
||||||
|
# is published THE SAME WAY as the Ed25519 one — same route
|
||||||
|
# shape, same two-location rule.
|
||||||
|
fname = ("provider.ed25519.pub" if route == "/log-public-key"
|
||||||
|
else "provider.slhdsa.pub")
|
||||||
|
key_path = Path(log.log_dir) / fname
|
||||||
if not key_path.is_file():
|
if not key_path.is_file():
|
||||||
self._send(404, {"error": "log public key not present in this log directory"})
|
self._send(404, {"error": "log public key not present in this log directory"})
|
||||||
return
|
return
|
||||||
|
|
@ -152,6 +157,7 @@ def make_handler(log: TransparencyLog, base_path: str, docs_html: str, paper_pdf
|
||||||
f"{base}/docs",
|
f"{base}/docs",
|
||||||
f"{base}/paper",
|
f"{base}/paper",
|
||||||
f"{base}/log-public-key",
|
f"{base}/log-public-key",
|
||||||
|
f"{base}/log-slhdsa-public-key",
|
||||||
f"{base}/healthz",
|
f"{base}/healthz",
|
||||||
f"{base}/{API_VERSION}/metadata",
|
f"{base}/{API_VERSION}/metadata",
|
||||||
f"{base}/{API_VERSION}/sth",
|
f"{base}/{API_VERSION}/sth",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue