From 37b3c8f5d0ead21cea9a0f8148b7162efd04aa84 Mon Sep 17 00:00:00 2001 From: the_og Date: Sun, 12 Jul 2026 18:25:49 -0400 Subject: [PATCH] catalog: trust the real signing key Adds the Ed25519 public key generated by the Catalog Console (#62), replacing the b"\x00"*32 placeholder, and imports base64 (the key line referenced it without the import, so bcc_core failed to load at all). Verified end to end against the signature the Console pushed in b08cf21: signature verifies, catalog validates clean, resolve_catalog accepts the bundled copy (19 servers), and a single-byte tamper is rejected. --- bcc_core.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bcc_core.py b/bcc_core.py index d207ab4..699c8cf 100644 --- a/bcc_core.py +++ b/bcc_core.py @@ -13,6 +13,7 @@ in its original position. from __future__ import annotations +import base64 import contextlib import difflib import functools @@ -2168,7 +2169,7 @@ CATALOG_ALLOWED_COMMANDS = frozenset({"npx", "uvx", "docker", "node", "python", # still trust an older key: verify_catalog_signature() accepts a match # against ANY key in this list. CATALOG_PUBKEYS: list[bytes] = [ - b"\x00" * 32, # TODO: real key from Catalog Console (#62) + base64.b64decode("082NOwVB7uURkvfyS3+knJ+40Fk6C9unsF47+2uPKo4="), ] # Domain-separation prefix for the signed message. The signature covers