Skip to content

Plan: slice 024 signer seam, algorithm agility, chain scopes by kind - #10

Merged
HackTuah merged 1 commit into
mainfrom
plan/024-signer-and-chain-scopes
Sep 20, 2026
Merged

HackTuah merged 1 commit into
mainfrom
plan/024-signer-and-chain-scopes

Conversation

@HackTuah

Copy link
Copy Markdown
Member

Change 2 of the 2026-09-20 plan. The commit message carries the six amendments and the red they answer.

…opes by kind

Six amendments on top of the existing design, accepted 2026-09-20. The red
they answer: on an OTP built with FIPS mode enabled, crypto:sign(eddsa, ...)
returns notsup from OTP's own pkey.c, and the validated OpenSSL FIPS
provider lists Ed25519 as not approved; 024 as written pins Ed25519 and
denies on signing failure, so a FIPS build denies every effect.

A Trinity.Receipts.Signer behaviour (algorithm/0, sign/2, verify/3), one
custody module implementing it and the MCP core's sign/2; selection once at
boot (P-384 with SHA-384 when crypto:info_fips() is enabled, Ed25519
otherwise) recorded in the boot receipt; key_id inside the signed bytes with
the registry row binding the algorithm and no alg field in the envelope; a
scheme string carrying the family; chain scopes by kind (effect, decision,
boot and cap signed per receipt so AC5 stands; query receipts checkpointed
every N rows, T seconds and on shutdown, with N and T from measurement);
ML-DSA-87 compile-conditional on OpenSSL 3.5 or later at link time, never
the default.

Two criteria added (AC8 algorithm agility with two mutants, AC9 query
checkpoints with the AC5 mutant). AC8's FIPS half runs on the FIPS build
leg (slice 003, to be added) and this machine cannot run it:
crypto:info_fips() returns not_supported here. docs/05 and docs/07 carry the
same statements.

plan_check: PASS.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
@HackTuah
HackTuah merged commit ed85add into main Sep 20, 2026
2 checks passed
@HackTuah
HackTuah deleted the plan/024-signer-and-chain-scopes branch September 20, 2026 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant