Skip to content

docs(conformance): versions de normes, identifiants d'exigence et clauses vérifiées (D-3) - #61

Closed
PhilippeVienne wants to merge 2 commits into
docs/align-docs-with-codefrom
docs/matrix-versions-ids
Closed

PhilippeVienne wants to merge 2 commits into
docs/align-docs-with-codefrom
docs/matrix-versions-ids

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Objet

Constat D-3 de l'audit du 2026-09-25, tranche b du découpage D validé (a : #60 → b : cette PR → c : D-2). Empilée sur #60 (docs/align-docs-with-code, tête 1eb46c1 à l'ouverture) : merger #60 d'abord, puis git rebase --onto origin/dev 1eb46c1 et rebrancher sur dev.

Sources relues : chaque clause et identifiant a été vérifié dans le texte officiel, dernière version publiée sur etsi.org — EN 319 401 V3.2.1 (2026-01), EN 319 411-1 V1.5.1 (2025-04), EN 319 421 V1.3.1 (2025-07), EN 319 422 V1.1.1 (2016-03), TS 119 312 V2.1.1 (2026-06), EN 319 403-1 V2.3.1 (2020-06). Le tableau de l'audit est confirmé ; quatre renvois qu'il n'avait pas relus sont aussi faux et corrigés :

  • EN 319 412-1 §4 et §4.1 ne portent ni « structures communes du profil » ni le numéro de série → 411-1 §6.6.1 GEN-6.6.1-02 et §6.3.3 GEN-6.3.3-02A (412-1 sort de la matrice) ;
  • TS 119 312 V2.1.1 a renuméroté : longueur de clé §6.2 → §8.4 (RSA ≥ 3000 bits, le code impose 3072), suites §6.1 → §7.3 ; hachage §5.1 inchangé.

Changements

Vérifications

  • make conformance-doc (régénéré, jamais édité à la main) ; cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings (1.97 et 1.98.1), cargo test --workspace avec PostgreSQL, cargo audit --ignore RUSTSEC-2023-0071 : verts.
  • Nouveau test detects_missing_versions_ids_and_mismatched_clauses ; mutation des 4 nouveaux contrôles de validate() : tous tués.

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.

  • Revue d'architecture validée par l'humain
  • Code relu et tests unitaires/intégration vérifiés localement
  • Absence de dépendances tierces incompatibles avec la double licence EUPL-1.2 / AGPL-3.0 (make licenses)
  • Validation de l'apport intellectuel et de la paternité humaine sur la modification

Assistance par IA

  • Cette PR a été produite avec l'assistance de Claude Code : les commits concernés portent la remorque Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, et scripts/provenance.py archive a été lancé
  • Cette PR a été écrite sans assistance par IA

PhilippeVienne and others added 2 commits September 27, 2026 08:59
…D-1)

Constat D-1 de l'audit du 2026-09-25 : la documentation revendiquait des
mécanismes absents. Mieux vaut un écart déclaré qu'un contrôle revendiqué
et introuvable.

- Matrice : EN 319 401 §7.11 passe en écart (contreseing et réplication
  écrits mais appelés par aucun binaire, cible J-1) ; §7.10 aussi (durée de
  conservation contrôlée côté CA seulement). CONFORMITE-ETSI.md régénéré :
  22 couvertes, 4 écarts, 2 hors périmètre.
- ARCHITECTURE.md §7 et §8 : ce que le journal consigne réellement, l'écart
  J-3 en cours (PR #52), la limite du chaînage sans clé ; scellement,
  contreseing et réplication décrits comme non câblés.
- README : plus de contreseing FreeTSA/DigiCert revendiqué ni d'interface
  webui (reste d'OpenXPKI).
- CA.md (modèle de menace, continuité), API.md, docker-compose.yml,
  values.yaml : les variables de scellement et de réplication sont lues
  mais pas encore exploitées.
- oe-tsa-core : l'en-tête disait CheckTSUCertificate non portée, elle l'est.

Co-authored-by: Claude <noreply@anthropic.com>
…uses vérifiées (D-3)

Constat D-3 de l'audit du 2026-09-25 : la matrice ne citait aucune
version de norme ni identifiant d'exigence, et plusieurs lignes citaient
une clause qui ne porte pas l'exigence annoncée.

Chaque clause et identifiant a été relu dans le texte officiel, dernière
version publiée sur etsi.org : EN 319 401 V3.2.1, EN 319 411-1 V1.5.1,
EN 319 421 V1.3.1, EN 319 422 V1.1.1, TS 119 312 V2.1.1,
EN 319 403-1 V2.3.1.

- Requirement gagne `version` et `ids` ; validate() échoue si la version
  d'une norme ETSI manque, si une ligne de 401/411-1/421 n'a pas
  d'identifiant, si un identifiant ne relève pas de la clause citée, ou si
  une norme est citée en deux versions.
- Les 10 clauses signalées sont corrigées, plus 4 non relues par l'audit :
  EN 319 412-1 §4 et §4.1 ne portent pas les exigences citées (→ 411-1
  GEN-6.6.1-02, GEN-6.3.3-02A), TS 119 312 V2.1.1 a renuméroté (§6.2 →
  §8.4, §6.1 → §7.3).
- Nouvelles lignes, en écart avec leur cible (PR ouvertes ou constats) :
  ARL (C-1), OCSP non émis (O-1), MFA (R-1/R-2), exactitude (T-1),
  horloge (T-2), secondes intercalaires (T-4), expiration de la clé TSU
  (T-3), jetons affectés (J-3). Une ligne visée par une NC ouverte n'est
  plus déclarée couverte. 36 exigences : 17 couvertes, 17 écarts, 2 hors
  périmètre.
- Rendu : version dans le titre de section, identifiants dans la colonne
  Clause ; /api/v1/conformance expose `version` et `identifiants`.
- Renvois de clauses corrigés dans les commentaires et la doc (la
  migration 0001 n'est pas touchée : sqlx en contrôle la somme).

Co-authored-by: Claude <noreply@anthropic.com>
@PhilippeVienne

Copy link
Copy Markdown
Contributor Author

Remplacée par #75 (base dev) : GitHub a fermé cette PR à la suppression de sa branche de base après la fusion de #60, et refuse de rebrancher une PR d'une pile.

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