feat(ra-console): révocation d'un certificat, première signature (étape 4a) - #66
Open
PhilippeVienne wants to merge 1 commit into
Open
PhilippeVienne wants to merge 1 commit into
PhilippeVienne wants to merge 1 commit into
Conversation
…pe 4a)
docs/WEBUI.md §15 étape 4, §8 : la console prépare `revoke_certificate`
et relaie la signature par `POST /api/v1/certificates/{serial}/revoke`.
La politique de ca-server exige deux ca_operateur distincts : la
première signature est enregistrée, rien n'est révoqué
(AWAITING_QUORUM, 1/2). La co-signature est l'étape 4b.
- oe_actions::Expect gagne `serial` : ca-server compare le certificat de
la route au corps figé avant toute consommation, comme pour une
décision ; une cible sans rapport avec le type d'action est refusée.
- ra-console : relay_assertion factorise le relais d'une assertion
(décisions et révocation) ; numéro de série exigé sous forme
canonique (hexadécimal minuscule, 20 octets au plus) avant relais.
- Tests : harnais doté d'une vraie CA sur PostgreSQL et du révocateur de
ca-server ; première signature sans révocation, mauvaise cible,
forme non canonique, refus pour un ra_operateur. Deux mutations tuées.
Co-authored-by: Claude <noreply@anthropic.com>
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.
Objet
docs/WEBUI.md§15 étape 4 (révocation et double contrôle), tranche 4a du découpage validé (4a : première signature → 4b : co-signature et salle d'attente). Empilée sur #65 (feat/ra-console-action-execute, tête457dc7eà l'ouverture), elle-même sur #64. Ordre de merge : #64, #65, cette PR (rebase--onto origin/dev <tête de #65>à chaque étape).revoke_certificate(en plus d'approve/reject) et relaie la signature parPOST /api/v1/certificates/{serial}/revoke.ca_operateurdistincts, par la politique deca-server(jamais un champ de la console, §8) : la première signature est enregistrée parca-serveret rien n'est révoqué — réponse{"status": "AWAITING_QUORUM", "signatures": 1, "required": 2, "action_id", "signed_by"}. La co-signature arrive en 4b.oe_actions::Expectgagneserial:ca-servercompare le certificat de la route au corps figé avant toute consommation, comme pour une décision ; une cible sans rapport avec le type d'action (transaction_idsur une révocation) est refusée.ra-console:relay_assertionfactorise le relais d'une assertion (décisions, révocation) ; le numéro de série doit être sous forme canonique (hexadécimal minuscule, ≤ 20 octets) avant relais.docs/RA-CONSOLE.mdà jour.Écart assumé avec le §8 (décision de l'utilisateur, appliquée en 4b)
Le §8 prévoyait que
ra-consolestocke les assertions dans ses propres tables de collecte et relaie le lot au seuil. Le code d'oe-actionsfait mieux :ca-serverenregistre chaque signature au fil de l'eau (decision_evidence) et n'exécute qu'au seuil. La console n'a donc jamais à conserver d'assertion ; en 4b, la salle d'attente lira la tableactionsdeca-server(SELECT ajouté au rôle en lecture seule) et le §8 sera mis à jour pour décrire ce qui est construit.Vérifications
bin/ra-console/tests/action_challenge.rs, harnais doté d'une vraie CA sur PostgreSQL et du révocateur deca-server: première signature enregistrée sans révocation ; assertion présentée pour un autre certificat refusée (action_mismatch), rien de consommé ; formes non canoniques refusées ; unra_operateurne peut pas préparer de révocation. Test unitaire d'Expectétendu.Expect; validation de forme retirée de la console.cargo fmt --check,cargo clippy --workspace --all-targets -- -D warnings(1.97 et 1.98.1),cargo test --workspaceavec PostgreSQL,cargo audit --ignore RUSTSEC-2023-0071: verts.Revue humaine obligatoire
Voir PROVENANCE.md. Chaque case est cochée par le
contributeur humain qui valide la PR, après l'avoir fait lui-même.
make licenses)Assistance par IA
Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, etscripts/provenance.py archivea été lancé