| INV-282-01 | Enveloppe finalisee contient envelopeSeal valide crypto | FAIL | src/modules/legal-pre/services/envelope-seal.service.ts signe avec SignatureAlgorithm.ECDSA_SHA384 alors que l’etiquette impose ECDSA-P384-SHA3-384; src/modules/legal-pre/services/offline-verification.service.ts reverifie via createVerify('SHA3-384') sur un hash deja calcule (double-hash probable), risque de verification nominale invalide. |
| INV-282-02 | Calcul du sceau exclut strictement envelopeSeal | PASS | Exclusion explicite dans seal() et computeHash() (const { envelopeSeal, ...payloadWithoutSeal }) dans src/modules/legal-pre/services/envelope-seal.service.ts. |
| INV-282-03 | Mutation 1 octet invalide la verification | FAIL | Le pipeline sign/verify n’est pas coherent (algo/hash/encoding), donc l’invariant d’integrite n’est pas demontre de maniere fiable sur implementation actuelle (envelope-seal.service.ts, offline-verification.service.ts). |
| INV-282-04 | verificationMaterial suffisant pour Mode A | FAIL | generateProof() appelle assemble(..., ocspRequests=[]) dans src/modules/legal-pre/services/legal-composite-proof.service.ts; verification-material-assembler.service.ts peut produire validationPolicy=GENERATION_TIME_SNAPSHOT avec ocspResponses=[] (non aligne ERR-05 degrade). |
| INV-282-05 | validationPolicy explicite et presente | PASS | validationPolicy toujours renseigne et valide via regex enum dans src/modules/legal-pre/services/envelope-format-validator.service.ts. |
| INV-282-06 | Heuristique anti-secrets obligatoire | PASS | Scan obligatoire avant scellement avec patterns minimaux (privateKey, secretKey, sessionToken, hmacSecret, dek) dans src/modules/legal-pre/services/secret-detection.service.ts. |
| INV-282-07 | Artefacts crypto temporaires chiffres au repos | RESERVE | Verifiable seulement partiellement par lecture statique: aucun chemin evident de persistance temporaire, mais absence de preuve runtime/HSM et stockage infra. |
| INV-282-08 | Immutabilite post-persistance | RESERVE | Depend du trigger PD-272 externe (non fourni dans le livrable); migration mentionne la protection mais preuve executable absente. |
| INV-282-09 | SEALED terminal (SEALED -> * interdit) | RESERVE | Meme reserve: enforce via trigger DB PD-272 non auditable ici. |
| INV-282-10 | SEALED -> UNSEALED interdit | RESERVE | Aucune API d’unseal visible; blocage DB revendique via PD-272 non verifiable dans corpus fourni. |
| INV-282-11 | Verification historique apres rotation via kid + chaine | PASS | kid transporte et verification basee sur certificateChain embarquee dans src/modules/legal-pre/services/offline-verification.service.ts. |
| INV-282-12 | Format/longueur invalides => rejet explicite | PASS | Validation regex/tailles complete sur envelopeSeal et verificationMaterial avec exception ERR-282-FORMAT-INVALID dans src/modules/legal-pre/services/envelope-format-validator.service.ts. |
| ## 2. Verification des code contracts | | | |
| CC | Fichier | Sections | Diagrammes |
| ---- | --------- | ---------- | ------------ |
| CC-01 | Ensemble PD-282 | N/A | N/A |
| CC-02 | Ensemble PD-282 | N/A | N/A |
| CC-03 | Ensemble PD-282 | N/A | N/A |
| CC-04 | Ensemble PD-282 | N/A | N/A |
| CC-05 | Ensemble PD-282 | N/A | N/A |
| CC-06 | Ensemble PD-282 | N/A | N/A |
| CC-07 | Ensemble PD-282 | N/A | N/A |
| CC-08 | Ensemble PD-282 | N/A | N/A |
| CC-09 | Ensemble PD-282 | N/A | N/A |
| CC-10 | Ensemble PD-282 | N/A | N/A |
| CC-11 | Ensemble PD-282 | N/A | N/A |
| CC-12 | Ensemble PD-282 | N/A | N/A |
| Notes: le fichier de contrat YAML PD-282 n’est pas present dans le corpus fourni (impossible de comparer structure reelle vs contrat par CC individuellement). | | | |
| ## 3. Coherence inter-chapitres | | | |
| Verification | Resultat | | |
| ------------- | ---------- | | |
Statuts et regles OCSP revoked entre specification/tests/plan | Coherent au niveau documentaire (ERR-09, tests dedies, plan d’action explicite). | | |
| Coherence plan vs code sur pipeline crypto (raw vs algo effectif) | Incoherent: plan annonce pre-hash + raw sign; code utilise ECDSA_SHA384 et verification SHA3-384 non alignee. | | |
| Coherence structure d’enveloppe entre interfaces/service/verifier | Incoherent: SealedProofEnvelope stocke sous envelopeSeal en DB (legal-composite-proof.service.ts), alors que le verificateur attend envelope.envelopeSeal de type EnvelopeSeal. | | |
| Liens relatifs inter-chapitres | RESERVE: documents sources injectes hors arborescence documentaire complete, validation de liens non exhaustive impossible. | | |
| ## 4. Ecarts identifies | | | |
| ID | Type | Criticite | Description |
| ---- | ------ | ----------- | ------------- |
| E-01 | ECT | BLOQUANT | Incoherence crypto sign/verify (algo/hash) entre envelope-seal.service.ts et offline-verification.service.ts, compromettant CA-01/CA-02/CA-03. |
| E-02 | ECT | BLOQUANT | Structure persistee envelope_seal non alignee avec consommation du verificateur (objet imbrique vs attendu plat). |
| E-03 | DIV | MAJEUR | Politique OCSP degradee non strictement appliquee: GENERATION_TIME_SNAPSHOT possible avec ocspResponses=[]. |
| E-04 | AMB | MAJEUR | Code contracts PD-282 YAML absents: verification CC-01..CC-NN non auditables individuellement. |
| E-05 | ECT | MAJEUR | verificationMaterial persiste en version legacy (buildVerificationMaterial) pendant que l’enveloppe scellee embarque une autre structure. |
| E-06 | AMB | MINEUR | Validation structurelle outillage docs incomplete (markdownlint indisponible localement; mkdocs.yml absent dans ce repo). |
| ## 5. Verdict | | | |
| Verdict : REJETE | | | |
| Justification : presence de 2 ecarts BLOQUANTS (coherence cryptographique et structure de donnees envelope/verifier) empechant la validation probatoire de base; reserves documentaires supplementaires sur les code contracts et la validation structurelle outillee. | | | |