Repository navigation
feat(licensing): vendor ML-DSA-65 trust anchor + PLANS_TODO entry for shell hardening (#2042, #1926) - #2075
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
core/licensing/license-mldsa-pub-v1.pem, the filetrust_anchor.EMBEDDED_MLDSA_ANCHOR_RESOURCEalready expects and that was missing. It is byte-identical to the canonicalkeen-platypus/go/kp-license-check/trust/golden-mldsa.pub(sha25637faef8ff167cf01a0fc6a2bc8b7cfcac6bfe5651360051b1eb00a0a60fa85b8, 2717 bytes). It is shipped in the wheel (force-include) and allowed in.gitignorethe same way aslicense-pub-v1.pem. A test pins the hash and checks that the key loads as ML-DSA-65 and that no private block is present.core/licensing/*.pyis not touched: a token withoutdbmldsa_sigstill verifies with Ed25519 only, and a test pins that. Making the hybrid mandatory, the re-issue path and the dev-issuer test anchor (licensing: emissor de licença de dev (issue_dev_license_jwt.py) não emite ML-DSA — quebra o Maestro quando o híbrido for obrigatório #2043) are left for the operator's decision.docs/plans/PLANS_TODO.mdentry for the shell hardening plan. It was the last open acceptance line: shellcheck (severity=error) already runs incheck-alland inci.yml, and the plan, the 73-file inventory and the hub sync are already onmain.Gate files
No file under
.github/workflows/and none of the tripwire gate files is touched, so noGate-Change-Approved-Byis needed.Verification
./scripts/check-all.shexited 0 on this branch after the last commit (pre-commit, pytest, security scans).test_committed_mldsa_anchor_pem_matches_canonical_sha256fails withmissing packaged anchor PEM in source tree; restored, the 6 tests pass.uv build --wheel, 1.8.0rc0) and listed it: it containscore/licensing/license-mldsa-pub-v1.pem(2717 bytes, sha25637faef8f…, noPRIVATE) next tolicense-pub-v1.pem..gitattributesis untouched.Not verified
MANIFEST.inor a hash manifest to mirror, so none was changed.Closing
Closes #1926
Refs #2042
Refs #1462
Refs #2055
Refs #2021
🤖 Generated with Claude Code
https://claude.ai/code/session_0142QEjA7eEFcdXTpcTmcAZk