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.c2padont 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_algorithmvaut"ES256". Tout ce qui lisait.signaturedoit télécharger le magasin de manifestes et la ressource, puis les vérifier avecc2patool <asset> --external-manifest <file>.c2pa. -
Nouveaux champs dans le résumé de
POST /v1/calls/{call_id}/c2pa:manifest_id;asset(kindrecording|evidence_export,media_type,sha256,url) ;manifest_store(media_typeapplication/c2pa,sha256,url) ;signing_credential(subject,issuer,serial,not_before,not_after,fingerprint_sha256,trustself_signed|ca_issued). Les champsurlsont des chemins d’API relatifs qui exigent le même jeton Bearer — ce ne sont pas des URL présignées.assertionsgagnec2pa.hash.dataaprèscom.audact.complianceetc2pa.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 (sansclaim/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 200application/c2pa(getC2PAManifestStore).GET /v1/calls/{call_id}/c2pa/{manifest_id}/asset— la ressource liée (getC2PAAsset) : les ressourcesevidence_exportsont diffusées en flux avec 200 ; les ressourcesrecordingré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 410c2pa_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énementC2PA_MANIFEST_ISSUEDà la chaîne de preuves de l’appel (en ajout seul). Envoyez un en-têteIdempotency-Keypour 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), 503c2pa_storage_unavailable, 404 pour un appel ou un manifeste inconnu ou appartenant à un autre tenant (réponse identique), 410c2pa_artefact_gone, 400 pour un curseur de liste mal formé. -
Fichier annexe, non intégré : le magasin
.c2paest 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, puisc2patool <asset> --external-manifest <file>.c2pa, éventuellement suivi detrust --trust_anchors <pem>avec le PEM obtenu viaGET /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.