Aller au contenu principal

Journal des modifications

Toutes les modifications notables de l’API de la plateforme Audact, y compris les changements incompatibles et les nouveaux points de terminaison.

Toutes les modifications notables de l’API de la plateforme Audact sont documentées dans ce fichier.

[Unreleased]

⚠️ Changement incompatible — les manifestes C2PA sont désormais réellement signés (générateur 2.0.0)

  • Supprimé : C2PAManifest.signature (l’HMAC en hexadécimal). Le manifeste est désormais un véritable justificatif de contenu C2PA 2.x : un magasin de manifestes JUMBF .c2pa dont la déclaration est signée en ES256 (COSE, ECDSA P-256) avec une chaîne de certificats X.509, lié de façon stricte (c2pa.hash.data) à l’enregistrement de l’appel ou, lorsqu’il n’y a pas d’enregistrement, à l’export JSON de l’article 50 de l’appel, lui aussi signé. signature_algorithm vaut "ES256". Tout ce qui lisait .signature doit télécharger le magasin de manifestes et la ressource, puis les vérifier avec c2patool <asset> --external-manifest <file>.c2pa.

  • Nouveaux champs dans le résumé de POST /v1/calls/{call_id}/c2pa : manifest_id ; asset (kind recording|evidence_export, media_type, sha256, url) ; manifest_store (media_type application/c2pa, sha256, url) ; signing_credential (subject, issuer, serial, not_before, not_after, fingerprint_sha256, trust self_signed|ca_issued). Les champs url sont des chemins d’API relatifs qui exigent le même jeton Bearer — ce ne sont pas des URL présignées. assertions gagne c2pa.hash.data après com.audact.compliance et c2pa.actions.

  • Nouveaux points de terminaison :

    • GET /v1/calls/{call_id}/c2pa — liste les manifestes d’un appel, du plus récent au plus ancien (listC2PAManifests). Les éléments forment un sous-ensemble du résumé du POST (sans claim/assertions ; seulement l’empreinte et la confiance du signataire).
    • GET /v1/calls/{call_id}/c2pa/{manifest_id}/manifest.c2pa — le magasin de manifestes stocké, diffusé en flux avec 200 application/c2pa (getC2PAManifestStore).
    • GET /v1/calls/{call_id}/c2pa/{manifest_id}/asset — la ressource liée (getC2PAAsset) : les ressources evidence_export sont diffusées en flux avec 200 ; les ressources recording répondent 302 vers une URL S3 présignée valable 15 minutes (à récupérer sans l’en-tête Authorization). Un enregistrement supprimé depuis l’émission renvoie 410 c2pa_artefact_gone.
    • GET /v1/c2pa/trust-anchor — public ; la racine auto-signée au sommet de la chaîne de signature actuelle (la racine d’Audact tant qu’elle s’émet elle-même, la racine de l’autorité de certification une fois une chaîne d’AC importée) (getC2PATrustAnchor).
  • POST /v1/calls/{call_id}/c2pa émet un nouveau justificatif à chaque appel et ajoute un événement C2PA_MANIFEST_ISSUED à la chaîne de preuves de l’appel (en ajout seul). Envoyez un en-tête Idempotency-Key pour que les nouvelles tentatives rejouent la réponse d’origine.

  • Erreurs : 503 c2pa_signing_unavailable (aucun justificatif de signature — il n’y a pas de repli), 503 c2pa_storage_unavailable, 404 pour un appel ou un manifeste inconnu ou appartenant à un autre tenant (réponse identique), 410 c2pa_artefact_gone, 400 pour un curseur de liste mal formé.

  • Fichier annexe, non intégré : le magasin .c2pa est stocké à côté de la ressource dans S3 et téléchargé séparément. L’émission ne se trouve pas sur le chemin du Validator.

  • Vérification : téléchargez la ressource et le .c2pa, puis c2patool <asset> --external-manifest <file>.c2pa, éventuellement suivi de trust --trust_anchors <pem> avec le PEM obtenu via GET /v1/c2pa/trust-anchor. La vérification n’exige aucun accès à l’API après le téléchargement.

  • Validité liée au certificat du signataire : les horodatages RFC 3161 ne sont pas encore inclus ; un manifeste ne se vérifie donc que tant que le certificat de son signataire est valide. Il n’existe aucun mécanisme de révocation (ni CRL ni OCSP) dans cette version.

Source mise à jour: 19 octobre 2026