Expand description
Port ElectronicSignatureProvider — Story 4.4 (ADR-0014).
Le domaine connaît la signature électronique qualifiée
(domain::plateforme::QualifiedSignature) ; il ne connaît ni FAS
(eID belge), ni itsme, ni Universign. Ce port est le seul point de
contact entre l’application et ces trois prestataires — trois
aujourd’hui, un quatrième probable demain (ADR-0014 §4).
§Contrat en deux temps
request_signature envoie le document et rend une référence prestataire
plus le condensat HMAC-SHA256 calculé avant l’envoi (AC @security).
fetch_signature interroge le prestataire et vérifie que le
condensat qu’il rend correspond à celui calculé à l’aller — sans cette
vérification, on signerait la parole du prestataire sur ce qu’il a reçu,
et non le document envoyé.
§Persistance de l’audit
Ce port ne persiste rien lui-même : chaque QualifiedSignature rendue
par fetch_signature, ainsi que chaque échec typé, sont destinés à
AuditLogRepository (cf. application::ports::audit_log_repository) —
câblage laissé au use-case appelant. Hors périmètre de cette story (Files
listés dans l’issue #579 : port + 3 adapters + tests d’intégration).
Structs§
- Electronic
Signature Provider Registry - Détient les adaptateurs enregistrés, un par
SignatureProviderKind, et résout lequel solliciter. - Signature
Request - Ce qui part vers le prestataire.
- Signature
Request Ack - Accusé de réception d’une demande de signature.
Enums§
- Signature
Provider Error - Erreurs typées du port — jamais de
Result<_, String>(CRITICAL.md #4). Cluster coord Story 4.4 :NEW → AppError natif— le bridge versAppErrorse fera au use-case appelant, hors périmètre de cette story.
Traits§
- Electronic
Signature Provider - Port hexagonal vers un prestataire de signature électronique qualifiée.