From d14be54e171b13a012e0221288c11f91e6df5b88 Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Wed, 21 Oct 2026 04:25:52 -0400 Subject: [PATCH 1/9] =?UTF-8?q?wai:=20live=20provenance,=20C2PA=202.4=20?= =?UTF-8?q?=C2=A719=20for=20room=20tracks=20and=20takes,=20tied=20to=20the?= =?UTF-8?q?=20JWP=20receipts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The extension live-provenance.md registers wai.live.provenance: the per-segment C2PA Manifest Box method and the Verifiable Segment Info method, written as C2PA 2.4 §19 defines them for a CMAF track carried under draft-ietf-moq-cmsf-01, where a segment less its C2PA boxes is its MoQ group's objects, so the segment's hard binding and the group receipt's Merkle root commit to the same chunks. Session keys rotate in a segment's manifest and also sign the group receipts. wai-rs feature live_provenance writes and verifies it with no C2PA library: BMFF, JUMBF, COSE_Sign1 with EdDSA, the claim signer's X.509 chain, and the receipts through jwp_delivery. The corpus live-conformance/c2pa-live/ has five good streams and a negative for each of the thirty reasons. Co-Authored-By: Claude Opus 5.5 --- wai/extensions/live-provenance.md | 777 ++++++++ .../c2pa-live/ai-disclosure-missing/init.mp4 | Bin 0 -> 3207 bytes .../ai-disclosure-missing/seg-00.m4s | Bin 0 -> 3921 bytes .../ai-disclosure-missing/seg-01.m4s | Bin 0 -> 3921 bytes .../ai-disclosure-missing/seg-02.m4s | Bin 0 -> 5095 bytes wai/live-conformance/c2pa-live/anchor.der | Bin 0 -> 328 bytes .../c2pa-live/assertion-altered/seg-01.m4s | Bin 0 -> 3912 bytes .../c2pa-live/avatar-manifests/init.mp4 | Bin 0 -> 3612 bytes .../c2pa-live/avatar-manifests/receipts.json | 163 ++ .../c2pa-live/avatar-manifests/seg-00.m4s | Bin 0 -> 4326 bytes .../c2pa-live/avatar-manifests/seg-01.m4s | Bin 0 -> 4326 bytes .../c2pa-live/avatar-manifests/seg-02.m4s | Bin 0 -> 5500 bytes .../bytes-changed-manifests/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/bytes-changed-vsi/seg-01.m4s | Bin 0 -> 1563 bytes .../c2pa-live/camera-manifests/init.mp4 | Bin 0 -> 3215 bytes .../c2pa-live/camera-manifests/receipts.json | 262 +++ .../c2pa-live/camera-manifests/seg-00.m4s | Bin 0 -> 5728 bytes .../c2pa-live/camera-manifests/seg-01.m4s | Bin 0 -> 3912 bytes .../c2pa-live/camera-manifests/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/camera-manifests/seg-03.m4s | Bin 0 -> 3912 bytes .../c2pa-live/camera-vsi/init.mp4 | Bin 0 -> 3660 bytes .../c2pa-live/camera-vsi/receipts.json | 327 ++++ .../c2pa-live/camera-vsi/seg-00.m4s | Bin 0 -> 3379 bytes .../c2pa-live/camera-vsi/seg-01.m4s | Bin 0 -> 1563 bytes .../c2pa-live/camera-vsi/seg-02.m4s | Bin 0 -> 6222 bytes .../c2pa-live/camera-vsi/seg-03.m4s | Bin 0 -> 1563 bytes .../c2pa-live/camera-vsi/seg-04.m4s | Bin 0 -> 2737 bytes .../c2pa-live/cert-expired/init.mp4 | Bin 0 -> 3215 bytes .../c2pa-live/cert-expired/seg-00.m4s | Bin 0 -> 5728 bytes .../c2pa-live/cert-expired/seg-01.m4s | Bin 0 -> 3912 bytes .../c2pa-live/cert-expired/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/cert-expired/seg-03.m4s | Bin 0 -> 3912 bytes .../c2pa-live/cert-untrusted/init.mp4 | Bin 0 -> 3215 bytes .../c2pa-live/cert-untrusted/seg-00.m4s | Bin 0 -> 5728 bytes .../c2pa-live/cert-untrusted/seg-01.m4s | Bin 0 -> 3912 bytes .../c2pa-live/cert-untrusted/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/cert-untrusted/seg-03.m4s | Bin 0 -> 3912 bytes .../c2pa-live/cert-wrong-eku/init.mp4 | Bin 0 -> 3202 bytes .../c2pa-live/cert-wrong-eku/seg-00.m4s | Bin 0 -> 5715 bytes .../c2pa-live/cert-wrong-eku/seg-01.m4s | Bin 0 -> 3899 bytes .../c2pa-live/cert-wrong-eku/seg-02.m4s | Bin 0 -> 5510 bytes .../c2pa-live/cert-wrong-eku/seg-03.m4s | Bin 0 -> 3899 bytes .../c2pa-live/claim-signature/seg-01.m4s | Bin 0 -> 3912 bytes .../c2pa-live/composite-manifests/init.mp4 | Bin 0 -> 3953 bytes .../composite-manifests/receipts.json | 235 +++ .../c2pa-live/composite-manifests/seg-00.m4s | Bin 0 -> 5495 bytes .../c2pa-live/composite-manifests/seg-01.m4s | Bin 0 -> 6137 bytes .../c2pa-live/composite-manifests/seg-02.m4s | Bin 0 -> 5932 bytes .../c2pa-live/composite-source-type/init.mp4 | Bin 0 -> 3951 bytes .../composite-source-type/seg-00.m4s | Bin 0 -> 5493 bytes .../composite-source-type/seg-01.m4s | Bin 0 -> 6135 bytes .../composite-source-type/seg-02.m4s | Bin 0 -> 5930 bytes .../c2pa-live/continuity-method/seg-01.m4s | Bin 0 -> 3846 bytes .../c2pa-live/init-mdat/init.mp4 | Bin 0 -> 3257 bytes .../c2pa-live/manifest-malformed/init.mp4 | Bin 0 -> 3215 bytes .../c2pa-live/object-receipt/receipts.json | 262 +++ .../c2pa-live/provenance-missing/seg-01.m4s | Bin 0 -> 1077 bytes .../c2pa-live/receipt-forged/receipts.json | 262 +++ .../c2pa-live/receipt-missing/receipts.json | 248 +++ .../c2pa-live/receipt-signer/receipts.json | 327 ++++ .../c2pa-live/segment-truncated/seg-02.m4s | Bin 0 -> 5522 bytes .../c2pa-live/sequence-mismatch/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/session-key-binding/init.mp4 | Bin 0 -> 3660 bytes .../c2pa-live/session-key-binding/seg-02.m4s | Bin 0 -> 6222 bytes .../session-key-superseded/receipts.json | 327 ++++ .../session-key-superseded/seg-03.m4s | Bin 0 -> 1563 bytes .../c2pa-live/session-key-unknown/seg-01.m4s | Bin 0 -> 1563 bytes .../c2pa-live/stream-assertion-room/init.mp4 | Bin 0 -> 3215 bytes .../c2pa-live/stream-id-mismatch/seg-02.m4s | Bin 0 -> 5523 bytes .../c2pa-live/take-both/init.mp4 | Bin 0 -> 3551 bytes .../c2pa-live/take-both/seg-00.m4s | Bin 0 -> 6273 bytes .../c2pa-live/take-both/seg-01.m4s | Bin 0 -> 4457 bytes .../c2pa-live/take-both/seg-02.m4s | Bin 0 -> 6068 bytes wai/live-conformance/c2pa-live/vectors.json | 1251 +++++++++++++ .../c2pa-live/vsi-manifest-id/seg-03.m4s | Bin 0 -> 1563 bytes .../c2pa-live/vsi-signature/seg-02.m4s | Bin 0 -> 6222 bytes .../c2pa-live/wrong-receipt/seg-01.m4s | Bin 0 -> 3912 bytes wai/wai-rs/Cargo.toml | 20 + .../src/bin/wai_live_provenance_vectors.rs | 93 + wai/wai-rs/src/lib.rs | 9 + wai/wai-rs/src/live_provenance.rs | 1559 +++++++++++++++++ wai/wai-rs/src/live_provenance/bmff.rs | 452 +++++ wai/wai-rs/src/live_provenance/corpus.rs | 839 +++++++++ wai/wai-rs/src/live_provenance/cose.rs | 147 ++ wai/wai-rs/src/live_provenance/jumbf.rs | 189 ++ wai/wai-rs/src/live_provenance/x509.rs | 530 ++++++ wai/wai-rs/tests/live_provenance.rs | 78 + 87 files changed, 8357 insertions(+) create mode 100644 wai/extensions/live-provenance.md create mode 100644 wai/live-conformance/c2pa-live/ai-disclosure-missing/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/anchor.der create mode 100644 wai/live-conformance/c2pa-live/assertion-altered/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/avatar-manifests/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/avatar-manifests/receipts.json create mode 100644 wai/live-conformance/c2pa-live/avatar-manifests/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/avatar-manifests/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/avatar-manifests/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/bytes-changed-manifests/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/bytes-changed-vsi/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/receipts.json create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-manifests/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/receipts.json create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/camera-vsi/seg-04.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-expired/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/cert-expired/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-expired/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-expired/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-expired/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-untrusted/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/cert-untrusted/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-untrusted/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-untrusted/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-untrusted/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-wrong-eku/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/cert-wrong-eku/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-wrong-eku/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-wrong-eku/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/cert-wrong-eku/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/claim-signature/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-manifests/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/composite-manifests/receipts.json create mode 100644 wai/live-conformance/c2pa-live/composite-manifests/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-manifests/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-manifests/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-source-type/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/composite-source-type/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-source-type/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/composite-source-type/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/continuity-method/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/init-mdat/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/manifest-malformed/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/object-receipt/receipts.json create mode 100644 wai/live-conformance/c2pa-live/provenance-missing/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/receipt-forged/receipts.json create mode 100644 wai/live-conformance/c2pa-live/receipt-missing/receipts.json create mode 100644 wai/live-conformance/c2pa-live/receipt-signer/receipts.json create mode 100644 wai/live-conformance/c2pa-live/segment-truncated/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/sequence-mismatch/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/session-key-binding/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/session-key-binding/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/session-key-superseded/receipts.json create mode 100644 wai/live-conformance/c2pa-live/session-key-superseded/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/session-key-unknown/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/stream-assertion-room/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/stream-id-mismatch/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/take-both/init.mp4 create mode 100644 wai/live-conformance/c2pa-live/take-both/seg-00.m4s create mode 100644 wai/live-conformance/c2pa-live/take-both/seg-01.m4s create mode 100644 wai/live-conformance/c2pa-live/take-both/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/vectors.json create mode 100644 wai/live-conformance/c2pa-live/vsi-manifest-id/seg-03.m4s create mode 100644 wai/live-conformance/c2pa-live/vsi-signature/seg-02.m4s create mode 100644 wai/live-conformance/c2pa-live/wrong-receipt/seg-01.m4s create mode 100644 wai/wai-rs/src/bin/wai_live_provenance_vectors.rs create mode 100644 wai/wai-rs/src/live_provenance.rs create mode 100644 wai/wai-rs/src/live_provenance/bmff.rs create mode 100644 wai/wai-rs/src/live_provenance/corpus.rs create mode 100644 wai/wai-rs/src/live_provenance/cose.rs create mode 100644 wai/wai-rs/src/live_provenance/jumbf.rs create mode 100644 wai/wai-rs/src/live_provenance/x509.rs create mode 100644 wai/wai-rs/tests/live_provenance.rs diff --git a/wai/extensions/live-provenance.md b/wai/extensions/live-provenance.md new file mode 100644 index 000000000..7345fdc95 --- /dev/null +++ b/wai/extensions/live-provenance.md @@ -0,0 +1,777 @@ +# WAI Extension: Live Provenance + +> Status: Draft. Registers the record `wai.live.provenance`: the live video provenance of +> C2PA 2.4 §19 for a room's CMAF tracks and for a device's CMAF take, written exactly as §19 +> defines it and tied to WAI's own per-object commitments. A room track packaged as CMAF is +> carried over MoQ under `draft-ietf-moq-cmsf-01`: each MoQ group is one CMAF segment and each +> object one CMAF chunk. Its publisher signs a JWP group receipt for each group +> ([jwp-receipts](jwp-receipts.md)), and this extension makes the segment's C2PA hard binding +> and that receipt's Merkle root commit to the same bytes: the segment, less its C2PA boxes, +> **is** the group's objects in order. The per-segment C2PA Manifest Box method (§19.3 there) +> names the group's receipt inside the signed manifest; the Verifiable Segment Info method +> (§19.4 there) is signed by a session key that is also the key that signs the group's +> receipts. One verification then establishes the C2PA provenance of every segment and the +> receipt of every object. The C2PA boxes of each segment ride a **provenance track** beside +> the media track, as the receipts ride the receipts track. The machine-readable marking of +> machine-made content, the IPTC digital source type and the `c2pa.ai-disclosure` assertion, +> follows the stream's disclosure label, as [timed-text](timed-text.md) §10.3 has it for +> captions, and for a compositor's output, its inputs' labels. No new transport. The reference +> implementation is the `live_provenance` module of `wai-rs` (feature `live_provenance`); the +> corpus is [`live-conformance/c2pa-live/`](../live-conformance/c2pa-live/), and its second +> implementation is `live-conformance/c2pa_live_verify.py`. +> Keywords **MUST**, **MUST NOT**, **SHOULD**, **MAY** are RFC 2119/8174. +> +> Texts read for this revision, each pinned to the version named: the C2PA Technical +> Specification, version 2.4 (April 2026), §6.4, §8.1, §8.4.2, §10.2, §11.1, §11.2, §13.1, +> §13.2, §14.2, §14.4.1, §14.5, §15.5 to §15.12, §18.6, §18.15, §18.25, §18.28, §19 and +> Appendix A.5; RFC 9052 (COSE structures), RFC 9053 (EdDSA and OKP keys), RFC 9360 +> (`x5chain`), RFC 8949 §4.2.1, RFC 5280, RFC 8410, RFC 7093 and RFC 9562; +> `draft-ietf-moq-cmsf-01` §3; the Event Message box syntax of ISO/IEC 23009-1 §5.10.3.3.3 as +> AOM id3-emsg v1.0.0 §2.2.2 reproduces it; the IPTC Digital Source Type vocabulary as released +> on 2024-10-23; and Regulation (EU) 2024/1689, Article 50. ISO/IEC 14496-12, ISO/IEC 23000-19 +> and ISO/IEC 19566-5:2023 (JUMBF) were not read for this revision: the box layouts below are +> the ones C2PA 2.4 and [packaging](packaging.md) §7.6 state, and §11 says how the corpus is +> checked against an independent C2PA validator. A section number in this text is C2PA 2.4's +> unless it names another document. + +## 1. Scope + +In scope: what a stream is, how its segments correspond to a room track's groups or to a +take's chunks, its sequence numbers, its stream identifier and its presentation time (§3); +the C2PA structures this extension writes, which are a profile of C2PA 2.4: the manifest +store, the claim, its signature and the signer's certificates, the hard binding and the +actions (§4); the WAI assertions (§5); the per-segment C2PA Manifest Box method (§6); the +Verifiable Segment Info method, its session keys and their rotation (§7); the correspondence +with the group receipts and the object receipts (§8); the digital source type and AI +disclosure (§9); carriage over HTTP and over MoQ (§10); verification (§11); and the reasons +(§12). + +Out of scope: a transport; the media codecs; MPEG transport streams, which §19.1 excludes; a +track packaged as WAI envelopes (`packaging` `"wai"`, [moq-streaming-format](moq-streaming-format.md) +§3), which is not ISO BMFF and so has no §19 provenance; time-stamps (§10.3.2.5) and +revocation information (§14.5.2), which this revision neither writes nor reads; ingredients, +update manifests, compressed manifests, external manifests and the `manifestUri` of a +segment-info map; the Merkle form of the BMFF hash (Appendix A.5.4), which §19 does not use; +and what a party does with a verdict. + +Relationship to the core spec: `wai.live.provenance` is a **record** ([SPEC](../SPEC.md) §5): +a signed record a WAI tool emits and verifies. It names no payload format and is not +dispatchable. + +Relationship to [capture-binding](capture-binding.md): §11 there maps a take onto C2PA live +video. A take is a stream of this extension of kind `take` (§3.1), and this extension is +where that mapping is written and verified. + +## 2. Terms + +- **Room**, **principal**, **track**, **Full Track Name**: as in [live-rooms](live-rooms.md) + §2 and §6.1. **Group receipt**, **object receipt**, **link hash**: as in + [jwp-receipts](jwp-receipts.md) §2.4 and §3 step 3. +- **Stream**: one C2PA live video session (§19): an initialization segment and media + segments, of one CMAF track. +- **Chunk**: one `moof` box and the `mdat` box after it. +- **Segment**: a media segment of the stream: its **C2PA boxes** (§3.2), then one or more + chunks. +- **C2PA Manifest Box**: the `uuid` box of Appendix A.5.1, with `box_purpose` `manifest`. +- **VSI box**: an `emsg` box carrying a verifiable-segment-info (§19.4.2). +- **Claim signer**: the holder of the X.509 end-entity certificate that signs a manifest's + claim. **Session key**: a key of §19.4.4, which signs segment-info maps. +- **Label**: the stream's disclosure label (§5.1): its `origin` (1 human, 2 machine, 3 + machine-reviewed, as [timed-text](timed-text.md) §3.1 has them) and a model digest for 2 + and 3, or, for a compositor's output, its inputs' labels. +- *T*: the instant a verification is made, in microseconds since 1970-01-01T00:00:00Z. + +Integers in boxes are big-endian. A digest is SHA-256 (FIPS 180-4), 32 bytes, unless it is +named BLAKE3. CBOR is written in RFC 8949 §4.2.1's core deterministic encoding. + +## 3. The stream + +### 3.1 Kinds + +A stream is of one of two kinds: + +- **track**: a room track (live-rooms §6.1) of media kind `audio`, `video` or `screen`, + packaged as CMAF and published under `draft-ietf-moq-cmsf-01` (`packaging` `"cmaf"`). Each + MoQ group of the track is one segment and each object one chunk; `draft-ietf-moq-cmsf-01` + §3.3 lets an object hold more than one chunk, and this extension requires exactly one. The + publisher signs a group receipt for every group (jwp-receipts §2.4.1) and an object receipt + for every object (§2.4.2 there), and §8 ties them to the segments. +- **take**: the CMAF master of a take ([capture-binding](capture-binding.md) §3), whose chunk + *i* is the segment *i* of the stream, chunk 0 holding the initialization segment before it + (capture-binding §4.1, §11.1). The take's commitments in the room's events are its WAI + witness, and capture-binding §9 verifies them; this extension verifies the C2PA side and + the identity a take's manifests carry (§5.3). + +### 3.2 Layout + +The initialization segment is exactly three top-level boxes, in this order: `ftyp`, a C2PA +Manifest Box, and `moov`, holding one track (Appendix A.5.3; §19.2.3). It holds no `mdat` +(§19.7.1). + +A segment is, in this order: + +1. its C2PA boxes: a C2PA Manifest Box, a VSI box, or the first then the second; +2. one or more chunks. + +It holds no other top-level box. A chunk's `moof` holds an `mfhd`, then one `traf` holding a +`tfhd` with default-base-is-moof and the track's `track_ID`, a `tfdt` and a `trun` with a +data offset, as packaging §7.6 writes a fragment. The C2PA Manifest Box precedes the first +`mdat` (Appendix A.5.3) and the VSI box precedes the first `moof`, as an Event Message box +precedes the `moof` of its chunk in CMAF. + +**The bytes of a segment.** A segment is its C2PA boxes followed by its chunks, concatenated, +and nothing else. For a track, the chunks are the group's objects in object order, each +exactly as it travelled (§10.2), so a segment *is* `P ‖ O₀ ‖ … ‖ Oₙ₋₁`, *P* its C2PA boxes and +*O*ᵢ object *i*. + +### 3.3 Sequence numbers + +Every `moof` of the stream carries a `sequence_number` in its `mfhd`: 1 in the first chunk of +the stream's first segment, and one more in each chunk after it, across segments. A segment's +**sequence number** is the `sequence_number` of its first `moof`, and it is the +`sequenceNumber` of its live video segment assertion (§19.3.2) and of its segment-info map +(§19.4.1), each of which §19 requires to match `mfhd.sequence_number`. For a track, the +segment of group *g* therefore has the sequence number + + *s*(*g*) = 1 + Σ *n*(*h*), over the groups *h* of the stream before *g*, + +where *n*(*h*) is the `leaf_count` of group *h*'s receipt. + +Where a segment holds more than one chunk, the sequence numbers of consecutive segments +differ by the number of chunks of the earlier one. §19.4.1's note reads them as one apart, +which is the case of one chunk per segment; its normative text, that the number matches +`mfhd.sequence_number` and never decreases or repeats, holds either way. + +### 3.4 The stream identifier + +A stream's `streamId` (§19.3.2) is an RFC 9562 UUID of version 8, written in the 8-4-4-4-12 +lowercase form. Its 16 bytes are, before byte 6's high four bits are set to `1000` and byte +8's high two bits to `10`: + +- for a track: the first 16 bytes of SHA-256(`"wai:live-provenance:stream\x01"` ‖ `room` ‖ + u32(len(`track`)) ‖ `track` ‖ u64(`epoch`)), with the fields of the stream assertion + (§5.1); +- for a take: the take id's first 16 bytes (capture-binding §11.1). + +### 3.5 Presentation time + +The track's timescale is the `timescale` of its `mdhd`. A segment's presentation time is the +`baseMediaDecodeTime` of its first `tfdt`, in that timescale. For a track its instant is +`epoch` + ⌊`baseMediaDecodeTime` × 1 000 000 / `timescale`⌋ microseconds, with the `epoch` of +the stream assertion (§5.1) or, for a take, of the take assertion (§5.3). + +## 4. The C2PA structures + +Every C2PA structure this extension writes is the one C2PA 2.4 defines; this section fixes the +choices it leaves open, so that every conforming writer of a stream produces the same bytes +from the same inputs and keys. + +### 4.1 The manifest store + +A C2PA Manifest Box is a `uuid` box with extended type +`D8FEC3D6-1B0E-483C-9297-5828877EC481`, version 0 and flags 0, then `box_purpose` `manifest` +and a zero byte, then 8 zero bytes (the offset of the first merkle box, of which a stream has +none), then the manifest store (Appendix A.5.1 to A.5.3). It carries no padding. + +The store is a JUMBF superbox (`jumb`, holding a description box `jumd` and then its content +boxes) of a single manifest, the active one. Each description box is the JUMBF type UUID (16 +bytes), the toggles byte `0x03` (requestable, label present; §11.1.4.1.2), and the label in +UTF-8 followed by a zero byte. The boxes, with their type and label: + +| box | JUMBF type UUID | label | content | +|---|---|---|---| +| the store | `63327061-0011-0010-8000-00AA00389B71` (c2pa) | `c2pa` | the manifest | +| the manifest | `63326D61-0011-0010-8000-00AA00389B71` (c2ma) | its identifier (§4.2) | the assertion store, the claim, the claim signature | +| the assertion store | `63326173-0011-0010-8000-00AA00389B71` (c2as) | `c2pa.assertions` | one superbox per assertion, in the claim's order | +| an assertion | `63626F72-0011-0010-8000-00AA00389B71` (cbor) | the assertion's label | one `cbor` box of its CBOR | +| the claim | `6332636C-0011-0010-8000-00AA00389B71` (c2cl) | `c2pa.claim.v2` | one `cbor` box of the claim | +| the claim signature | `63326373-0011-0010-8000-00AA00389B71` (c2cs) | `c2pa.signature` | one `cbor` box of the COSE structure | + +Every box header is a 4-byte size, which includes the header, and a 4-byte type. + +### 4.2 The manifest identifier and the claim + +A manifest's identifier is `urn:c2pa:` followed by an RFC 9562 UUID of version 4 in the +8-4-4-4-12 lowercase form, with no claim generator identifier (§8.1). A writer draws its 122 +bits at random or derives them from a secret of its own; the corpus derives them from its +seeds (§13). No two manifests of a stream share an identifier. + +The claim is a `claim-map-v2` (§10.2.1) with exactly these fields: + +- `instanceID`: `xmp:iid:` followed by the manifest identifier's UUID; +- `claim_generator_info`: `{"name": "wai", "specVersion": "2.4.0"}`; +- `signature`: `self#jumbf=/c2pa/` ‖ the manifest identifier ‖ `/c2pa.signature`; +- `created_assertions`: one hashed URI (§8.4.2.1) per assertion, in the order of §6 and §7: + `url` `self#jumbf=/c2pa/` ‖ the manifest identifier ‖ `/c2pa.assertions/` ‖ the label, and + `hash` the SHA-256 of the assertion's superbox less its 8-byte header (§8.4.2.3); +- `alg`: `sha256`. + +### 4.3 The claim signature + +The claim signature is a `COSE_Sign1_Tagged` (CBOR tag 18; RFC 9052 §4.2) whose payload is +detached (`nil`) and whose Sig_structure payload is the claim's CBOR (§10.3.2.4, §13.2.2): + +- protected header: the map `{1: -8, 33: [EE, CA]}`: the algorithm EdDSA, the Ed25519 instance + (§13.2.1; RFC 9053 §2.2), and `x5chain` under its integer label (§14.5; RFC 9360) holding the + claim signer's end-entity certificate and then every intermediate certificate, the trust + anchor left out; +- unprotected header: the empty map; +- Sig_structure: `["Signature1", protected, h'', payload]` (§13.2.3); +- signature: the 64-byte Ed25519 signature (RFC 8032) of the claim signer over the + Sig_structure's CBOR. + +Ed25519 is deterministic, which §13.2.1 recommends for streaming so that equal segments +remain equal. Every signature this extension writes is Ed25519. + +### 4.4 Certificates + +The claim signer's chain meets §14.5.1.1 and RFC 5280: X.509 version 3; signature algorithm +`id-Ed25519` (RFC 8410 §3), no parameters; Ed25519 subject public keys; no unique +identifiers; a Basic Constraints extension, critical, asserting `cA` in a certificate +authority's certificate and absent `cA` in the end-entity's; a Key Usage extension, critical, +with `keyCertSign` (and `cRLSign`) in a certificate authority's and `digitalSignature` alone +in the end-entity's; a Subject Key Identifier in every certificate, the leftmost 160 bits of +the SHA-256 of the subject public key (RFC 7093 §2, method 1); an Authority Key Identifier, +its key identifier, in every certificate not self-signed; and, in the end-entity's, an +Extended Key Usage extension holding `c2pa-kp-claimSigning` (1.3.6.1.4.1.62558.2.1) and +`id-kp-documentSigning` (1.3.6.1.5.5.7.3.36), which §14.4.1 recommends for older validators. +Validity is written as UTCTime through 2049 and GeneralizedTime from 2050 (RFC 5280 +§4.1.2.5). + +A verifier of this profile accepts a chain under §14.5.1 and §15.7 (§11.2). + +### 4.5 The hard binding + +Every manifest holds exactly one hard binding, a `c2pa.hash.bmff.v3` assertion (§18.6), the +map: + +- `exclusions`: exactly these four, in this order: + 1. `{"xpath": "/uuid", "data": [{"offset": 8, "value": h'D8FEC3D61B0E483C92975828877EC481'}]}` + (Appendix A.5.6); + 2. `{"xpath": "/ftyp"}`; + 3. `{"xpath": "/mfra"}`; + 4. `{"xpath": "/emsg", "data": [{"offset": 12, "value": 'urn:c2pa:verifiable-segment-info' ‖ h'00'}]}` + (§19.4.1); +- `alg`: `sha256`; +- `hash`: the hash below; +- `sequenceNumber`: in a segment's manifest, the segment's sequence number (§3.3); absent in + the initialization segment's. + +**The hash** (§18.6.2, Example 6) is SHA-256 over, for each top-level box of the segment that +no exclusion matches, in order, the box's offset from the segment's first byte as a u64 +followed by every byte of the box. An exclusion matches a box when the box's type is the +xpath's and, at each `data` entry's offset from the box's first byte, the box holds the +entry's value. Every box the profile excludes is excluded whole, so no `subset` applies. In +the initialization segment the hash covers the `moov`, which §19.2.3 requires. + +The fourth exclusion is the VSI box. §19.4.1 writes its `data` offset as 0, where every box +holds its size; offsets count from a box's first byte (§18.6.2, as the first exclusion's 8 +shows), and the `scheme_id_uri` of an `emsg` of version 0 begins at 12. This extension writes +12, the entry that excludes the box. The same list is written in every manifest and every +segment-info map of a stream, whether or not the segment holds a VSI box, so a segment that +carries both methods has one hash under both. + +### 4.6 The actions + +Every manifest holds a `c2pa.actions.v2` assertion (§18.15.2) whose `actions` is one action: +`{"action": "c2pa.created", "digitalSourceType": DST}`, DST the IPTC term of §9 as a URI under +`http://cv.iptc.org/newscodes/digitalsourcetype/`. Each segment's manifest is a standard +manifest and so holds its own (§15.10.1.2). + +## 5. The WAI assertions + +The assertions in this section are CBOR maps under C2PA's entity-specific namespace (§6.2.1). + +### 5.1 The stream assertion + +A track's initialization manifest, and every manifest of a segment that holds no live video +segment assertion (§7.3), holds `science.transaction.wai.stream`: + +| key | value | +|---|---| +| `room` | the room id, 32 bytes | +| `track` | the track's Full Track Name in MOQT §8.8's rendering, as live-rooms §6.1 writes it: `----` | +| `trackAlias` | the `wai_receipt_alias` the track's receipts sign ([moq-streaming-format](moq-streaming-format.md) §4) | +| `epoch` | the instant of media time 0, in microseconds since 1970-01-01T00:00:00Z | +| `firstGroup` | the group id of the stream's first segment | +| `label` | `{"origin": O}` with `O` 1; `{"origin": O, "model": M}` with `O` 2 or 3 and `M` the model's 32-byte digest; or, for a compositor's output, `{"inputs": [I, …]}`, each `I` `{"streamId": S, "track": N, "origin": O}` or the same with `"model": M` | + +The `track`'s first field is `room` in lowercase hexadecimal, and its kind is `audio`, `video` +or `screen`. A stream assertion in a later manifest equals the initialization manifest's. + +### 5.2 The group assertion + +A track's per-segment manifest (§6) holds `science.transaction.wai.group`: + +| key | value | +|---|---| +| `groupId` | the group id of the segment's group | +| `receipt` | the link hash of the group's receipt (jwp-receipts §3 step 3), 32 bytes | +| `root` | the group receipt's `root_hash`, 32 bytes | +| `objects` | the group receipt's `leaf_count` | + +### 5.3 The take assertion + +Every manifest of a take holds `science.transaction.wai.take`, as capture-binding §11.2 has +it: `take` (the take id), `room` (the room id) and `device` (the device's key), each 32 bytes, +and `commit` (32 bytes), the digest of the device's last `take_commit` before the segment was +written, absent in the initialization manifest. The initialization manifest's also holds +`epoch`: the instant of the master's media time 0 on the room clock, in microseconds since +1970-01-01T00:00:00Z (capture-binding §10), which no later manifest holds. `take`, `room` and +`device` are the same in every manifest of the take. + +## 6. The per-segment C2PA Manifest Box method + +Under §19.3, every segment holds a C2PA Manifest Box whose manifest holds, in this order: + +1. `c2pa.hash.bmff.v3` over the segment (§4.5); +2. `c2pa.actions.v2` (§4.6); +3. `c2pa.livevideo.segment` (§19.3.2): `{"sequenceNumber": s, "streamId": S, "continuityMethod": + "c2pa.manifestId", "previousManifestId": P}`, `s` the segment's sequence number (§3.3), `S` + the stream's identifier (§3.4), and `P` the identifier of the manifest of the segment + before it, which for the first segment is the initialization segment's; +4. the AI disclosure assertions of §9, if any; +5. `science.transaction.wai.group` (§5.2) for a track, or `science.transaction.wai.take` + (§5.3) for a take. + +The initialization segment's manifest holds `c2pa.hash.bmff.v3` over it, `c2pa.actions.v2`, +`c2pa.session-keys` where §7 applies, the AI disclosure assertions, and the stream assertion +(§5.1) for a track or the take assertion for a take. + +The continuity chain makes each segment's manifest name the one before it. A segment that is +lost, inserted or moved breaks it at the next segment (§19.7.2). + +## 7. The Verifiable Segment Info method + +### 7.1 Session keys + +Under §19.4, the initialization manifest holds `c2pa.session-keys` (§18.25): `{"keys": [K, …]}`, +each `K`: + +- `key`: an OKP COSE_Key (RFC 9053 §7.2): `{1: 1, 2: kid, -1: 6, -2: x}`, the key type OKP, + its `kid`, the curve Ed25519 and the 32-byte public key `x`. `kid` is `x` itself, so a key + names itself; +- `minSequenceNumber`: the first sequence number it signs; +- `createdAt`: CBOR tag 0 over an RFC 3339 date-time in UTC with no fraction, + `YYYY-MM-DDTHH:MM:SSZ`; +- `validityPeriod`: seconds from `createdAt`; +- `signerBinding`: a `COSE_Sign1_Tagged` with protected header `{1: -8}`, an empty + unprotected header and a detached payload (`nil`), whose Sig_structure payload is the claim + signer's end-entity certificate, the first certificate of the manifest's `x5chain`. §18.25's + example shows the payload as `h''`; §13.2.3 reserves `nil` for detached content, and the + text calls the signature detached, so this extension writes `nil`. + +A key is valid from `createdAt` to `createdAt` + `validityPeriod` (excluded). For a track, the +session key that signs a segment's segment-info map is also the `signer_pubkey` of that +segment's group receipt (§8.3). For a take, the session key is the device's key +(capture-binding §11.3). + +### 7.2 The VSI box + +Every segment holds a VSI box (§19.4.2): an `emsg` of version 0 and flags 0 (ISO/IEC 23009-1 +§5.10.3.3.3) with: + +| field | value | +|---|---| +| `scheme_id_uri` | `urn:c2pa:verifiable-segment-info`, then a zero byte | +| `value` | `fseg`, then a zero byte | +| `timescale` | the track's timescale (§3.5) | +| `presentation_time_delta` | 0 | +| `event_duration` | the sum of the segment's sample durations, in the timescale | +| `id` | the segment's sequence number | +| `message_data` | the verifiable-segment-info | + +The verifiable-segment-info is a `COSE_Sign1_Tagged` with protected header `{1: -8}`, +unprotected header `{4: kid}`, the session key's `kid`, and the payload present: the CBOR of +the segment-info map `{"sequenceNumber": s, "bmffHash": H, "manifestId": M}`. `s` is the +segment's sequence number; `H` is the segment's hash as §4.5 writes it, with its +`sequenceNumber` and no `merkle`; `M` is the identifier of the active manifest: the manifest +of the segment's own C2PA Manifest Box where it has one, and otherwise the last manifest the +stream carried before it. The signature is the session key's over the Sig_structure +`["Signature1", protected, h'', payload]`. + +### 7.3 Rotation + +A new session key is delivered in a manifest carried in a segment's C2PA Manifest Box +(§19.4.3, §18.25), whose minimum sequence number is that segment's. Appendix A.5.3 requires +every initialization segment of a stream to carry the same manifest store, so this extension +rotates keys in a segment, not in a repeated initialization segment. That manifest holds, in +this order, the hard binding over its segment, the actions, `c2pa.session-keys` with the new +keys, the AI disclosure assertions, and the stream or take assertion; it holds no live video +segment assertion unless the stream also uses §6, and it becomes the active manifest. Its +segment's segment-info map names it and is signed by the new key. + +A segment is signed by the **current key** for its sequence number *s*: among the keys the +verifier holds, the one with the greatest `minSequenceNumber` not above *s*. A key's +`minSequenceNumber` is at least the sequence number of the segment that delivers it. + +## 8. The correspondence with WAI's receipts + +### 8.1 The same bytes + +For a track, the segment of group *g* and the group's receipts commit to the same objects: + +- the segment's chunks are the group's objects, one chunk an object, in object order (§3.2); +- object *i*'s `content_hash` is BLAKE3(`"moq-jwp:object\x01"` ‖ *O*ᵢ) (jwp-receipts §2.1), + over the chunk's bytes, its `moof` and its `mdat`, as the object travelled; +- the group receipt's `root_hash` is the Merkle root of jwp-receipts §2.2 over the objects' + leaves, and its `leaf_count` is the number of chunks; +- the segment's hard binding covers the same chunks at their offsets in the segment (§4.5). + +So no byte of an object can change without changing both the root the publisher signed and the +hash the claim signer or the session key signed, and each covers exactly the objects: the +C2PA boxes are what C2PA adds, and the group's objects are everything else. The objects carry +no energy label in this profile, so each leaf takes jwp-receipts §2.2's first form. + +### 8.2 The per-segment method + +A per-segment manifest names its group's receipt in its group assertion (§5.2): `groupId` is +the receipt's `group_id`, `receipt` its link hash, `root` its `root_hash` and `objects` its +`leaf_count`. The claim signer thereby signs which receipt the segment is, and the receipt's +signer signs which objects it holds. + +### 8.3 The Verifiable Segment Info method + +The session key that signs a segment's segment-info map is the `signer_pubkey` of the group's +receipt: one key signs both, over different structures. A Sig_structure's CBOR begins with +the byte `0x84` and a group signing payload with `moq-jwp:` (jwp-receipts §2.3), so no message +of one is a message of the other. A rotation (§7.3) changes the receipt key at the same group, +and the receipts of the new key start a chain of their own, whose first `parent_receipt_hash` +is `null` (jwp-receipts §2.4.1). + +### 8.4 Receipts + +The group receipt of every group of the stream, from `firstGroup` on, verifies under +jwp-receipts §3 steps 1 and 2, has the stream's `trackAlias`, and links to the receipt before +it under the same key (§3 step 3 there). Every object receipt of the group is accepted under +jwp-receipts §3 steps 1 to 5 against the group receipt and its chunk's bytes. The sequence +numbers of §3.3 follow from the receipts' `leaf_count`s. + +## 9. Digital source type and AI disclosure + +### 9.1 A stream's own label + +| label | digital source type | AI disclosure | +|---|---|---| +| `origin` 1, kind `audio` or `video` | `digitalCapture` | none | +| `origin` 1, kind `screen` | `screenCapture` | none | +| `origin` 2, model *M* | `trainedAlgorithmicMedia` | one, *M*, `fully_autonomous` | +| `origin` 3, model *M* | `compositeWithTrainedAlgorithmicMedia` | one, *M*, `human_validated` | +| a take | `digitalCapture` | none | + +An AI disclosure is a `c2pa.ai-disclosure` assertion (§18.28): `{"modelType": +"c2pa.types.model", "modelIdentifier": "tag:transaction.science,2026:wai/model/" ‖ M, +"contentProfile": {"humanOversightLevel": H}}`, `M` the model's digest in lowercase +hexadecimal, exactly as [timed-text](timed-text.md) §10.3 writes it for a caption model. +`c2pa.types.model` is Table 12's generic model type: an event names its model by digest and not +by type. Several are labelled `c2pa.ai-disclosure`, `c2pa.ai-disclosure__1`, … (§6.4). + +### 9.2 A compositor's output + +The output of a server compositor ([live-compose](live-compose.md)) is a stream whose label +lists its inputs. Its digital source type is `compositeCapture` when every input is of +`origin` 1 and kind `audio` or `video`; `compositeSynthetic` when any input is of `origin` 2 +or 3; and `composite` otherwise. It carries one AI disclosure per model of its inputs, in the +order models first appear among them, `fully_autonomous` when any input of that model is of +`origin` 2 and `human_validated` otherwise. This is timed-text §10.3's rule for a set of cues +of more than one origin, applied to inputs. + +### 9.3 What is checked + +Every manifest of a stream holds the digital source type and exactly the AI disclosures its +label gives, in that order; a verifier refuses a manifest whose `c2pa.created` action names +another source type (`source_type_mismatch`) or that lacks, adds or changes a disclosure +(`ai_disclosure_missing`). The check is against the label the stream states. Whether content +is machine-made is not decidable from its bytes: the label is the publisher's statement, +signed with the stream's other assertions, as a caption's `origin` is its producer's +(timed-text §14). What the check establishes is that a stream labelled machine-made carries +C2PA's machine-readable marking of it, in every manifest, and a stream labelled human carries +none. + +Regulation (EU) 2024/1689, Article 50(2), requires the outputs of AI systems that generate +synthetic audio, image, video or text to be marked in a machine-readable format and detectable +as artificially generated or manipulated; Article 50(4) requires a deployer to disclose a deep +fake. The digital source type and the AI disclosure assertion are such a marking, carried in +every segment's provenance. Writing them is an engineering requirement of this extension, and +meeting it is not a statement about the Regulation. + +## 10. Carriage + +### 10.1 HTTP + +Over HTTP the initialization segment and each segment are files as §3.2 lays them out, and a +playlist lists them as for any CMAF track ([live-recording](live-recording.md) §7). + +### 10.2 MoQ: the provenance track + +Over MoQ the track's objects are its chunks, exactly as `draft-ietf-moq-cmsf-01` §3.3 has +them, and the initialization segment, its C2PA Manifest Box included, is the catalog's inline +initialization data (§3.1 there). Each segment's C2PA boxes ride a **provenance track**: + +- it is in the media track's namespace and its Track Name is the media track's followed by + `_c2pa`, as `0_c2pa` (live-rooms §6.1's characters); +- its group *g* holds one object, the C2PA boxes of the media track's group *g*, exactly as + they lead the segment; +- the media track's catalog entry names it in `wai_c2pa_track`, and its own catalog entry has + `packaging` `"wai-c2pa"`; +- a relay forwards it as it forwards any track, unaltered. + +A subscriber that verifies reassembles the segment of group *g* as the provenance object of +group *g* followed by the media objects of group *g* in object order. + +**Why a track, not an object property.** A MOQT object property (MOQT §8.4, as +[moq-streaming-format](moq-streaming-format.md) §5 uses one) rides the header of every copy +of the object it is on, and a property of the first object would make every forwarded copy of +that object kilobytes larger, since a manifest holds a certificate chain. A track keeps the +media objects exactly the CMAF chunks a CMSF player plays and the receipts commit to (§8.1), +lets a subscriber that does not verify leave it out, lets one that does fetch a past group's +provenance by its group number (live-recording §8), and has the receipts track's form +(live-rooms §6.1), with which it shares group numbers. + +## 11. Verification + +### 11.1 Inputs + +A verifier holds: the trust anchors it accepts for `c2pa-kp-claimSigning` (§14.4.1); the +instant *T*; the stream's kind; its initialization segment; its segments in the order it +received them, each with its group id for a track (the MoQ group it came in, or the +playlist's); and, for a track, the group receipts and object receipts of the stream's groups. +It verifies in the order below and stops at the first refusal, which it reports with the +reason, where it was raised (`init`, `segment` *k* for the *k*-th segment received counting +from 0, or `group` *g*), and the two C2PA codes §12 gives it. A stream every step accepts is accepted. + +### 11.2 A manifest + +A C2PA Manifest Box of a segment (or of the initialization segment) is verified against that +segment's bytes, in C2PA's order (§15.6 to §15.12): + +1. The store, the manifest and its three parts read as §4.1 lays them out, the manifest + identifier as §4.2 has it, the claim as well-formed deterministic CBOR with the fields of + §4.2, and the claim signature as a `COSE_Sign1_Tagged` with an EdDSA algorithm, a detached + payload and exactly one `x5chain`, in the protected header (§14.2): otherwise + `manifest_malformed`. +2. The end-entity certificate and the intermediates meet §4.4's profile and §14.5.1.1, and the + end-entity's Extended Key Usage holds `c2pa-kp-claimSigning` and neither `id-kp-timeStamping` + nor `id-kp-OCSPSigning`: otherwise `credential_invalid` (`signingCredential.invalid`). +3. A chain is built from the end-entity through the intermediates to a trust anchor, each + certificate's issuer name equal to the next's subject, its Authority Key Identifier to the + next's Subject Key Identifier, and its signature verifying under the next's key: otherwise + `credential_untrusted` (`signingCredential.untrusted`). +4. The signature verifies under the end-entity's key over the claim (§4.3), with the strict + Ed25519 rule of jwp-receipts §3.1 step 3: otherwise `claim_signature_mismatch` + (`claimSignature.mismatch`). +5. *T* is within the validity of every certificate of the chain, the anchor's included; with + no time-stamp, §15.8 checks the current time: otherwise `credential_expired` + (`claimSignature.outsideValidity`). +6. Every hashed URI of `created_assertions` resolves to an assertion of the store whose hash it + holds: otherwise `assertion_hash_mismatch` (`assertion.hashedURI.mismatch`), or, for a URI + that resolves to nothing, `manifest_malformed`. +7. The assertions are the ones §6 or §7 lists for the manifest, in that order and no others, + the AI disclosures in any number at their place (§9.3 checks them), each readable with the + fields it defines: exactly one hard binding (§15.10.1.2), with §4.5's exclusions and `alg`; + the actions of §4.6, one `c2pa.created` action with a source type of the IPTC vocabulary; + and the rest as their sections give them: otherwise `manifest_malformed`. Which list + applies follows from where the manifest is and what it holds: the initialization segment's + (§6), a segment's with a live video segment assertion (§6), or a segment's without one + (§7.3). +8. The hard binding's `hash` is the segment's hash (§4.5): otherwise `hard_binding_mismatch` + (`assertion.bmffHash.mismatch`). + +A refusal at steps 1 to 8 in any segment, the initialization segment included, carries §19.7's +`livevideo.manifest.invalid`. + +### 11.3 The initialization segment + +1. Its boxes read: otherwise `segment_malformed`. It holds an `mdat`, or is not `ftyp`, a C2PA + Manifest Box and `moov` with one track whose `tkhd`, `mdhd` and `trex` read: otherwise + `init_invalid`. +2. Its manifest verifies (§11.2). +3. For a track, the stream assertion reads as §5.1 has it; for a take, the take assertion as + §5.3 has it: otherwise `stream_assertion_invalid`. The stream identifier follows from it + (§3.4). +4. The digital source type and the AI disclosures are the label's (§9.3). +5. Every session key reads as §7.1 has it, its `kid` is its `x`, and its `signerBinding` + verifies under it over the claim signer's end-entity certificate: otherwise + `session_key_invalid`. For a take, a session key is the + take assertion's `device`. + +### 11.4 Each segment + +For the segment *k* received, of group *g* for a track: + +1. Its boxes read, and after a leading C2PA Manifest Box and then a VSI box, each where present, + they are one or more chunks as §3.2 lays them out: otherwise `segment_malformed`. It holds + neither C2PA box: `provenance_missing`. Its `moof`s carry consecutive `sequence_number`s and + the track's `track_ID`: otherwise `segment_malformed`. +2. Its sequence number exceeds the previous segment's, and, for a track, *g* exceeds the + previous segment's group: otherwise `sequence_not_increasing`. +3. Where it holds a C2PA Manifest Box, the manifest verifies (§11.2), its hard binding's + `sequenceNumber` is the segment's sequence number (`sequence_mismatch`), and then: + - with a live video segment assertion (§6): its `sequenceNumber` is the segment's sequence + number (`sequence_mismatch`); its + `streamId` is the stream's (`stream_id_mismatch`); + `continuityMethod` is `c2pa.manifestId` and `previousManifestId` is present + (`continuity_invalid`); and `previousManifestId` + is the identifier of the previous segment's manifest, or the initialization segment's for + the first (`continuity_broken`). For a track the group + assertion reads (`manifest_malformed`) and is checked at step 6; for a take the take + assertion's `take`, `room` and `device` are the initialization manifest's + (`stream_assertion_invalid`); + - without one (§7.3): the segment holds a VSI box, as the method that delivers keys signs + its segments (`provenance_missing`); the manifest holds the stream or take assertion, + equal to the initialization manifest's (`stream_assertion_invalid`), and new session keys, each read as §11.3 step 5 + reads one (`session_key_invalid`) and with a + `minSequenceNumber` not below the segment's sequence number (`session_key_invalid`); + the keys are added to those held, and the manifest becomes the active one; + - its digital source type and AI disclosures are the label's (§9.3). +4. Where it holds a VSI box: + - the box has §7.2's fields, the verifiable-segment-info reads as a `COSE_Sign1_Tagged` + with an EdDSA algorithm, a `kid` and a payload present, and the payload as a segment-info + map with §4.5's exclusions and `alg`: otherwise `segment_info_invalid`; + - the verifier holds a session key of that `kid`: otherwise `session_key_unknown`; + - the signature verifies under it, by the strict rule: otherwise + `segment_info_signature_failed`; + - the key is the current key for the segment (§7.3), its `minSequenceNumber` is not above + the segment's sequence number, and the segment's presentation instant (§3.5) is within + its validity: otherwise `session_key_out_of_range`; + - the map's `sequenceNumber`, and its `bmffHash`'s, is the segment's sequence number: + otherwise `sequence_mismatch`; + - its `manifestId` is the active manifest's (§7.2): otherwise `segment_info_invalid`; + - its `bmffHash.hash` is the segment's hash (§4.5): otherwise `segment_hash_mismatch`. +5. For a track: the group receipt of every group from `firstGroup` to *g* is held + (`receipt_missing`), and the sequence number is *s*(*g*) (§3.3). For a take: the sequence + number is one more than the last `sequence_number` of the previous segment, or 1 for the + first. Otherwise `sequence_mismatch`. +6. For a track, of group *g*'s receipt (§8): it verifies, has the stream's `trackAlias` and + `group_id` *g*, and links to the held receipt of the group before it under the same key, or + has a `null` parent where that receipt is under another key or *g* is `firstGroup` + (`receipt_invalid`); its `leaf_count` is the number of chunks and its `root_hash` the root + over the chunks' leaves, and, for a per-segment manifest, the group assertion names it + (`receipt_mismatch`); for a segment with a VSI box, its `signer_pubkey` is the session key + that signed the segment-info map (`receipt_signer_mismatch`); and the group's object + receipts are one per chunk, each accepted against its chunk (`object_receipt_invalid`). + +### 11.5 The end of the stream + +For a track, every group from `firstGroup` to the last of which the verifier holds a receipt +has a segment: otherwise `segment_missing`, at the first group without one. + +### 11.6 What an accepted stream states + +The stream identifier; its digital source type; and, for each segment in order, its sequence +number, its group (a track) or chunk index (a take), the methods it carries (`manifest`, +`vsi` or both), the identifier of its active manifest, its number of chunks, and the root of +its group (a track) or the SHA-256 of its take chunk (a take: chunk 0 is the initialization +segment followed by segment 0). + +## 12. Reasons + +| reason | raised at | C2PA 2.4 §15 code | §19.7 code | +|---|---|---|---| +| `segment_malformed` | §11.3 step 1, §11.4 step 1 | — | `livevideo.segment.invalid` | +| `init_invalid` | §11.3 step 1 | — | `livevideo.init.invalid` | +| `provenance_missing` | §11.4 steps 1, 3 | — | `livevideo.segment.invalid` | +| `manifest_malformed` | §11.2 steps 1, 6, 7; §11.4 step 3 | `claim.malformed` | `livevideo.manifest.invalid` | +| `credential_invalid` | §11.2 step 2 | `signingCredential.invalid` | `livevideo.manifest.invalid` | +| `credential_untrusted` | §11.2 step 3 | `signingCredential.untrusted` | `livevideo.manifest.invalid` | +| `claim_signature_mismatch` | §11.2 step 4 | `claimSignature.mismatch` | `livevideo.manifest.invalid` | +| `credential_expired` | §11.2 step 5 | `claimSignature.outsideValidity` | `livevideo.manifest.invalid` | +| `assertion_hash_mismatch` | §11.2 step 6 | `assertion.hashedURI.mismatch` | `livevideo.manifest.invalid` | +| `hard_binding_mismatch` | §11.2 step 8 | `assertion.bmffHash.mismatch` | `livevideo.manifest.invalid` | +| `stream_assertion_invalid` | §11.3 step 3, §11.4 step 3 | — | — | +| `source_type_mismatch` | §9.3, §11.3 step 4, §11.4 step 3 | — | — | +| `ai_disclosure_missing` | §9.3, §11.3 step 4, §11.4 step 3 | — | — | +| `session_key_invalid` | §11.3 step 5, §11.4 step 3 | — | `livevideo.sessionkey.invalid` | +| `sequence_not_increasing` | §11.4 step 2 | — | `livevideo.assertion.invalid` | +| `sequence_mismatch` | §11.4 steps 3, 4, 5 | — | — | +| `stream_id_mismatch` | §11.4 step 3 | — | `livevideo.assertion.invalid` | +| `continuity_invalid` | §11.4 step 3 | — | `livevideo.continuityMethod.invalid` | +| `continuity_broken` | §11.4 step 3 | — | `livevideo.segment.invalid` | +| `segment_info_invalid` | §11.4 step 4 | — | `livevideo.segment.invalid` | +| `session_key_unknown` | §11.4 step 4 | — | `livevideo.segment.invalid` | +| `segment_info_signature_failed` | §11.4 step 4 | — | `livevideo.segment.invalid` | +| `session_key_out_of_range` | §11.4 step 4 | — | `livevideo.segment.invalid` | +| `segment_hash_mismatch` | §11.4 step 4 | `assertion.bmffHash.mismatch` | `livevideo.segment.invalid` | +| `receipt_missing` | §11.4 step 5 | — | — | +| `receipt_invalid` | §11.4 step 6 | — | — | +| `receipt_mismatch` | §11.4 step 6 | — | — | +| `receipt_signer_mismatch` | §11.4 step 6 | — | — | +| `object_receipt_invalid` | §11.4 step 6 | — | — | +| `segment_missing` | §11.5 | — | — | + +The two code columns are what a C2PA validator reports for the same defect where C2PA checks +it: §15's failure code for a check of a manifest, and §19.7's for a check of live video, which +for a manifest's own failure in a segment is `livevideo.manifest.invalid` (§19.7.1). A refusal +reports both. `—` marks a check C2PA does not make: the rules of this extension, and the +sequence numbers' match with `mfhd.sequence_number`, which §19.4.1 requires of a writer and +§19.7 does not check. `manifest_malformed` stands for every failure of a manifest's form, whose +§15 codes are many (`claim.malformed`, `claim.cbor.invalid`, `claimSignature.missing`, +`algorithm.unsupported`, `assertion.missing`, `claim.hardBindings.missing`, +`assertion.bmffHash.malformed`, …); it reports `claim.malformed`. Over the Verifiable Segment +Info method alone, §19.7.3 states no order check, and `sequence_not_increasing` there is this +extension's rule, reported with §19.7.2's code. + +## 13. Conformance + +[`live-conformance/c2pa-live/`](../live-conformance/c2pa-live/) holds the corpus, written from +fixed seeds by `wai_live_provenance_vectors gen`: `vectors.json`, the trust anchor, and for +each vector its initialization segment, its segments and, for a track, its receipts, each a +file of its own. Every key, certificate and manifest identifier is derived from the seeds; +none is a key anyone holds. The media are the AV1 floor of the packaging corpus's +`video-base-01` (packaging §7.6), its samples cut into chunks of at most 15 frames, each +group one of its pieces, so every segment begins at a key frame. + +- **Good streams**: a camera track under the per-segment method; the same track under the + Verifiable Segment Info method, with the session key rotated at its third segment by a + manifest in that segment, the receipts' chain restarting under the new key; a track + labelled machine-made, with its AI disclosure; a compositor's output of a camera and that + track; and a take under both methods at once, the device's key as its session key. +- **Negatives**, each a control of one defect: a segment whose bytes changed under each + method; a missing segment under each; a reordered segment; a manifest bound to the wrong + receipt; a stream identifier that differs; an end-entity certificate that has expired, one + whose Extended Key Usage is time-stamping, and one under an anchor the verifier does not + hold; a machine-made track without its AI disclosure, and a compositor's output that names + a source type of captures; and every other reason of §12. + +A conforming verifier gives every vector the outcome, the reason, the place, the two C2PA +codes and, for an accepted stream, what §11.6 states, as the corpus states them. +`wai_live_provenance_vectors verify` and the test `tests/live_provenance.rs` check that every +file regenerates byte for byte, that no other file is there, that `wai-rs` gives every vector +its outcome, that every reason of §12 refuses a vector, and that §12 lists exactly the +reference's codes. `live-conformance/c2pa_live_verify.py` is the second implementation, +written from this text: it shares no code with `wai-rs`; it reads CBOR, COSE, JUMBF, ISO BMFF +and X.509 DER itself, verifies signatures with WAI's strict rule written from RFC 8032 +(`claim-conformance/_ed25519.py`) and hashes with BLAKE3 from `claim-conformance/_blake3.py`; +gives every vector the same outcome; and mutates copies of the corpus and requires every copy +to fail. The README of the corpus records what an independent C2PA validator reports for the +corpus's files. + +## 14. Security and privacy considerations + +- **What is bound to what.** The claim signer's certificate names who stands behind a + manifest; a session key is bound to it by the `signerBinding` and, for a track, signs the + group receipts too, so the C2PA signer, the session key and the receipts' signer are one + chain of statements. Which principal of the room the receipts' key belongs to is the room's + (jwp-receipts §7, live-rooms §4) and is not checked here. +- **Signed is not trusted.** A chain to an anchor the verifier holds is a check of the chain, + not of the anchor: the corpus's anchor is a test anchor, and §14.4's trust lists are the + relying party's choice. +- **Order and loss.** Sequence numbers, the continuity chain and the receipts' chain each + detect a segment lost, repeated or moved; under the Verifiable Segment Info method alone a + segment-info map does not name the one before it, so a lost segment is found by the + receipts (§11.5), which a relay forwards for objects it did not forward (jwp-receipts §4.4). +- **Session keys.** A session key signs every segment of its range. Its validity bounds how + long a stolen key signs; rotation (§7.3) shortens it. §19.7.3 recommends that a verifier + of a very long session check the claim signer's certificate again; this revision checks it + once, at *T*. +- **No time-stamps.** Without a time-stamp a manifest is valid only while the signer's + certificate is (§15.8): a recording verified after the certificate expires is refused + `credential_expired`. A publisher that keeps recordings SHOULD time-stamp them, which a later + revision adds. +- **The label is a statement.** §9.3 checks that a stream labelled machine-made is marked as + C2PA marks it; it cannot detect a machine-made stream labelled human. The label is signed + with the stream, so a false one is attributable to its signer. +- **Privacy.** A manifest carries the claim signer's certificate and, for a take, the + device's key and the room's id; the stream assertion carries the room id and the publisher's + key in the track name. A stream is public provenance of its publisher; a take's manifests + link the device to the room, as capture-binding §14 says of a take. diff --git a/wai/live-conformance/c2pa-live/ai-disclosure-missing/init.mp4 b/wai/live-conformance/c2pa-live/ai-disclosure-missing/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9468ee748077fb30d4b6d98805c90d66db0a7ce3 GIT binary patch literal 3207 zcmcIn3vd(18NSom0zWVi8*q5oG6o{BC7oWD1cBnvfEgfx5MmK1?rCpNI{O~t?j*}e z3l?Tl(%7Uer6l8+f(Z{poMh4=(BMfSF{B~H1j0aRNt2ttB19V^*=&p1!GB_Eg zldk4&|9|)Y|NZuV?4AgM7|m%7VIXpVKn?f2DpxR3+D;JJ`H=|E{^jUNf8G$!5-ql^%N z^Y8U3Cv%(%wSh1eX0#BrVZU!qF*rcIjL0cWUt|7~Uav)=!gD+m5THecK@m!tg_k&) z(9P$jEJ9HYqK&=N$9etwf&mH7S)&f@i8%Je=Ab?pZ|9PffJ0^l3S>0ME@$~5uQ9?x zIidjgbVC@%W`;B^JlSRgQ7a$TfK^t4HVM|NKxUz8)8*BKJlZO>X$r$jkgXJgvchX2 zkq7f2%QGl?kLZZK{YFm(Jd^;mB7I3sLbKL0yj9f@G!bv$Jl?=IR*_}VZ?b>9wD#bj zw(^x%tLzs}Tq=8a*7`Yb&U?+haMk0-)^ts5f-o$D&?v&VY{r_BBLozf02JDxh)@fD zQ{bz2Kbh3A{_9tVu8SS7C=cHnb^ z3I@1o*2g-4hvQr>uhR~_tP2Jlfk1`J<8!+L40N$R;B>p4UWd!g+P&TYaQM7VOAQl6 zDWq7UJPT!ug|6jzMb&00awJUDCKjm_ct$l4gyE>}ChRU$ia@wO$$`M|Vlu3TP1q}2 z(-NFl`JlvT5e3HPsZiibu|0084aeEmn{5wLqX`vjuen-YQZ)v}X!eg|?`-^UMYzTrgONPDQ(0X9|QQNOv>o&W(K70P= z^6vdfEaDH0<@?J^ht_(y@zdg~|Gc?Itz3D#XYa|`w`~te1?Ias6zP|l2Es=ON zK`23m(PX6tA5iVA#E1}}TCG#V5Ih4Fd}>06)n%p8A>XX0vsq8)eh&HG3`0duEyekK zeDz`~r=5JHuw>O@@@0Az`4W1jZlVmN!9Y@UrjaUxVVbsE>2f2rD1*u!UtKxdB=Ava z3M+CHN;pkT8oK06yre-z#7B?@>7o&X92K-3{Sxh2#Cp!4A zIt;3W_~IbDVPWRJnWaZ=nBN%L^B%X4-FhK!chRAiL+8H?HH_X8kJBsZTx57mK1trm zFwg{@hq=L+%b*Mc8tG!pkIyKiha0oYjARDcbYYo+G!8^`X668D96bgL=7%H`_yS;cm1&x)y6Znx|i(pocX z-_N?s-Zby|{gqvRk5P-sFp7qNo+3RWhEzlz$bTp{AzA4s7ET0%(RF+#8TgnnIE28xzu)=JI|$ znh2Tha_L~?mTQDKtY&C_c4*qC&zgP1-FIF7Rma53-+cQ-qi6S!SD9<^r*>UAbIxc! zHRsrpkW$?dQCePJ^5pUTgU;=npV>TNYd|2W`LP|{|2UDe@zhdpd2fFM}rfOcKQOblLl9v?kew zZnru#wN$H1tVyMb-DB;0X6})kjz#fn941J=nE1jVOd{L=z7}<3IbuSH6_f;pUid0b z(YQ}s&8R1{MRcqoq97_Jtfj9#j!n*uW)+BKaKrPt=r%Ly^kG#C2#8*xYHG^MSVl^I zm?J8wlOTFu)6rh45QiV!(pOE6-1{!Pa|aC-GEw`CIFUBXc$gmCo literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-00.m4s b/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-00.m4s new file mode 100644 index 0000000000000000000000000000000000000000..2273da1cbc13d30261dc3420223284113a9659e9 GIT binary patch literal 3921 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-01.m4s b/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..ee9c6720a798c9d410082a7abdef9e38dcae8534 GIT binary patch literal 3921 zcmcIm3se(V8lK67M|mR;Srmw(f34E?OLs3v0B$^-Q#0*k6Is8J+4~UYP;3Su8(S4AB*U*uIui-$v^_qJ?yp}PRPCA z`TzfZ_xtXDCm0sm*X82bFPp~p^re+Yt107_Gr* zHfl}TaKtcXz|th0olWWCT1354Zm_o;Ej_cSj+P`K%Dmu^U;^G(NyzXdm<93K1S>6B zb!I!q>B_QU3U-TuVed1v&B94mn####QADw(RQhafdSc^uNFQ^P+Qy+fve| zH3%)?B{91L4$KE`#^#dH%C(IwOUrb1BPgS7E-_AIW#MaDbw*znb8TNCCdR8N{qk)DNBi$Jn?YrAWIf$-T~N=Hj5zgvenKrMS$gL zNZ_i%nEY`!ZG0Ih<5?i+6iE>AtsYCQk_=K$D6!@lTgddhhLgb?t=+A|=9{_R5%s+wT0=??g4#&KkS?&A-EDq!p@Z z9;y^$d$zY28_nCjr-z^rwI;v5;w9eVpktH#`f;n&s222Umk9Mb}Yo zKJSoZ8tPOy%AM)9JBRW-+oLN+R1R^8?-HqPWL%=nJ@4lr=&R}_?0@qpm&}o!r7JG$ z)>g!a&U{#1lN|iQM?1l|(zoW;ZoA*Sc+u)iFPpi)1RGzkD_pp*?i`r3l9{5>!Ocu*t&P=;YNIW^P}G1u8g?%R-19o=>D@a zmTlTKyh!%6LWu=9fJn=NSb}cqM%F>w0RuaDf#d|tG$5ka2cUEY9SIw(PHC`orNO#+ z+jX3I*!#q6)M4jpXAq%{cv?cgB{T5X$R+r4_!+*QP~j>SPLKhCLF2Vq^rGMWUISPz6-R*hDH*%J;%LT4>3iO5-TJkgn1MT?8#ee!Rvb~aJJKWlpf^@Q?8b|1WK6p? z|A)JNj-))9_T{8)ADo+eeqD29-0A91Pxjk1yYctv#Xg6hxrZA#P)J3hK>M8n`0 zvU&}Bq#gDB(xRZR%2Fe*j~*8Se@KSe1%ZQ27G>wGEPB(z2mOd@gRf!_E+bs!!EyLM zR_0h44V33s@cXzdx*Ql5gy2Y6GZucMake+jGaih4lhFUz9*kjAz({YMo{R_mkMZ5q z#7ph)*KG(?1ygPR$C?r{m>L+1r50dV6@;jS{1EcnIrDzA;M$&lJ-pS2Nc-E@Ymi0wCi1fe1G>IHH3=BiPjxZx2OUP zwoEK`e!FVG^~>2ehEMo(QLlrqUWvPWr6rlppBn)4d#M6nKHm|m#)=^pqYgg#$Pb$c ovDo0y#QZK;TvWK3?SjQ)6F#i#g7xmiM~zLSVyJ{J>mDfh4@g68!~g&Q literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-02.m4s b/wai/live-conformance/c2pa-live/ai-disclosure-missing/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..b3aab9fa0a4cb39354cee03d7861558688daf520 GIT binary patch literal 5095 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/avatar-manifests/init.mp4 b/wai/live-conformance/c2pa-live/avatar-manifests/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9ac8a62043458aa7912c02ed3059849508b3b167 GIT binary patch literal 3612 zcmcIn4{#LK8Q;CjA4oz75=aVxTm&JI+}+;)yHK125yAixOOZoj(sys)-fgmfj@`ZE zA`TG9C~bq-Qpz|f7J~cfiI!s63 z&Fy~Qd*A!sZ-3wWzPC$JR1v2&MWM(+3O91+RoM&TjDw=GcgA8o``4Z$XGiB&|M=G% zgQd?c?`$S^B9M3vsTz@umc6VYCWf#w7T;Oui~?#HmA8_jc2WMeC1$+?yIf#c%}iQ} z{jFk(R6#5&0`8ETbs%JQx>#s+`+RO|D1dxcrx!XL(1$pm2Lq(iiVSy?lJ0(q$rcVgT%DodJK#kZ!BFEX{EdCQNJz8=cMVTv8H9$ZSwSKtt>jmJjn95a!D<1)`re zMNwi#MAM=bb~}vQ_^1YLvJ$pSXsHTi7O8f_Ue)dKqawSe0A50Dl@OK{UW8-YG#@(lA#wip=o>+M-5c zcz@5sWU72PqRl~ZBt*HGAT-s3m?lfID92QM!Tx5kcpj!4DT%NK!W9^~q$WwRsgOq! zMCDG#>8)4_c)LEs?sXz2jw@$AEqi_DhS_`O{?0Rh)uX4@9GtWop{NWaqp6I#N7j^_ppXDUNN7j;!vrm% zi?1J_+_B-a7l*Bn&A0mC5%aTu%Kr3&k9GzJ@A7?oav6ss80IAt!f0S);&GP)20YLU zpod`ttP}b;&h7TQ9LUeQQOFqzdELH%#~lL5%?6+gv*LHUJ*>m;4?$vPw@OR5I&-k3E#QJxT^6+F-0SH)9| z9IL-m(^}eLOc4@4`#u2P@tOpjS_qAr7ZIxq2FJIbpXS`t^MLh|^RbdcT~i)>{?8u= zi%(hiUV1KxrtXJ8bEgy;Shx?by}964$Hp)`zj(x(O>J-QIB9>uy?%@P;9r(~v!wG- z5)1f2u%s3l1CH(RSA%PgUke8R)iFGNyk^N>&)8=pZFBeMb!QfQ^day+EAjU znN681nPQ?plvc=$%*ZOspwsBpSL#f3#vm-Gr)QeSGh>KBZraGSd|}4lrWEfjY^{2` z40&cxtNwaa+4bc7ab*6={M-}2X$+iwcU<{s~(fM$g)Pd2RJG4?NRZwx@L8 z?{DnBkT5Tzqc|D@{*N^xV(N{^ees856OokxV&Niz=?%^Q5#5xC6yJK{+~a@Pak}oz zOI<@pbT_|qtYmxbjdPh_oH+l+FV;S_bSq>4Gqf)t>5LgiqJK>2j1`%jhzMtbg0ez9ZHwa>3Vw$k@n-izRi=AZ1oasHEx(hp{zS{zXp zcEpsm>lV*DeQ3xh2Wrw=Cu|D|w7Dj+v-2NkvS0d@<*iX!X`8=r>4Fm8rJ(%J_7p58}hN5f9aB zjryAA6tla$eaFaMmX*YmT*ecD4vP9~A7v5QfuCzZC$Xa@L|8%5C43=o2E8)5>u(D9 zPG^a@tYINPF6!P=*B;L%$BI}55gXFTcn&^XErxtd)j|T6m#doE%QCT%l3z<$O3u-R zzDp&3mTIh#KWV9}CVTF_7T&&%y9zNLVY2-_$w_#n? lzuk<~#W+oWaB8aZ8 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 Jl?HBe{{sSlRnq_f literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/bytes-changed-vsi/seg-01.m4s b/wai/live-conformance/c2pa-live/bytes-changed-vsi/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..202535948a7a42bfab870a5b182d6cb35ad29ba1 GIT binary patch literal 1563 zcmZQzV0@OETb#}S1f@lJR>?*MiB@H)MVV=tiAg!By2YvKxv6<2x|w-t`3z}59!Q}i zhyVf*&3dWDc_E|vLY4>xucto)P9z=sY+t?8!t>8>$=-G+v4meyTc69YdaV9F!!DB1 zba6&fZd#g0VsXZjpWkWbnYbf@7;CzpUdQx&l+ES zJMc{E+M_)xLZu~HsTIjNrNx=~dBrV@Qc@C25*rt#mL=wtrUu;jcleq#pNGw)=@A<3 zbw?W0^3#BhE#XM5C`c^HNYyVb%}iMcshD9h64hV?xJTMbMA(&U3 zT3DKzmz?TXnwykb#F~|xn3tKBT3q6pQlSes(cC22$kfmtE z*B~u1#nLo6*~~J<6y2l?hm*etRj+tp4!cT-jMVM%xsO)QuP)0F^Ok0R8RS!05nm{>lBi>&xUHzt*d> zs*yI{Pq1AIT#R)X2riQgIETF$XBb4RqKqgz+FD9-zDI5vnqP zLcBnCxg%78g!oY11#}?81uTh=4Jf{Y$i(LjRNI4;_&`y21BgM13^{_46PylGLO~X% zge?j+^93jY0lmtP8r~Ve_!M{m3vUNdywCYyq-7+?$oy#oFx&(j7=T$ugyG71CY7gm zji1^2AFmeL-*I2`?)?XHi8gVpK>b2YY*km_YFQW}fMUWd9H)LDi3I?~L^!ymY|z9+ g1$dKE(8RE0ES;}LjV8( literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/camera-manifests/init.mp4 b/wai/live-conformance/c2pa-live/camera-manifests/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..cf2b7987009b3250b964cc904626bd91f01c34cd GIT binary patch literal 3215 zcmcIn4R9036~2>X0mc|o47h-8IR+yzl1|d;4`N~mg3SO4Ed&fWc2~Q5*4cMD(ncF`tvN1-2~$jZ1U)gpJiv@;W0?I+aQjo{)BwYbIAKWD zq^0D6QgJmpi%QOdJV4&CA2@^n@;G=NaSq`2AxGE^k-!5E3Z4*I%S;!ei%w6Q1KL*> zbplPpsxB%~jmWWihC)S3A*`rhRfqsB;tb1z;7oXl3UeM3u{{t-O@bBy9-kjki8|Ze zf-cjMc?n^Mv*xJdy?c9l%O3i0_VGi@=CodDJ8m2IWHU}eDX!6#H*_KdbkN?36F`dN zC4*xsD1xA2eK=0WfF8jv8u#59h62>b$bt$68mlYqi&_G!q9B5>gdG}gl5tdbh*3dd z4D)#zi&)m0$j0^!2;Pvf05BCfXTn1xk))B>-DC{5cM54rqL4YEih+*NQ%GzQbs#NO z;wr?;*2HkKGNS9TSuPh$IK`L_or>DzisDucDhO*XLtabClda;+$XpQ9<0>Yg1r0}O zkEjm=K+~XzqYyiF6-2ePN6uCtIyIemBvZftMRmH6swi@u&Ha9T^U+Z|X0H39)_vvd zUn_o7^WwsTi(m0AUH|CmjYp<;U>s9mWD;X-n7gsGm%$PUV`;absAOMJ7L!$AOLCLf z4MRTY2hhi%5c0r)An<(9>&8LE1ru&`T2A z#|MI5-pl#@&?5*Kgb)Y=kH8DahcVzoAnXod6vQy-^|`|Vx6cbvz#kC&L4o6WM?yqc zaX7eUK~y!pMpfc5ra9$ZwIl+KWf;>bBW}}Daq~cFK-|)(NkEj-@S1kfFzwAsbWszV zqJV;sT&!V9D5Lg-N*C31^<~}t)M`q_*=Mdk}oSBqkvqTZySIw(NmNoWQ zbw?+Rt5WiN--LtxR?`k=9|cC$yXG%gz5E}Wezfjt<-*#lt3LK!*w|WTNuK+IZ|ydz zcPL3S*n~ij~8|gg6Vc(Zwr0UJ}G@s9GSZN;F z$xbUQUB8mu%B^RgB~RrpvxzmCSTmPnHCNym$GM%{Osn|`i#c!Vis}V6Nlai{OjQy% zO4HP)lgrK~Ms=*p7>VSZc2Gk*C-|#FRngzT!u)i74t2Sa>Ng8EF0obh8jCxwHKIcV7SL znTE4FkBuI8viX&PTR5rre< zc55M%^?FNcO>>suAZuSUGf1+Eiqh8ve%x1(sPrMim423bUu&VW;TQVK-0q#q1S4Nyw>yhm1XV)8 zyOwbD0thm%p{=GEtmJ*Iv}#2tWf>Y25FCUD28#t~s(*;U-wz8BgoMB%fe1zYLU2qJ zn2Pv;T%2q=+*m_6MDtEkA)?XXYEr6HXn+IDjdt+SJESVr?>a~jjYOC#CkSCWl>>T! z0<*m+B1f?)`WWR>9Qh)j#e_pd3TBnS;o^6(55LP~I7s_uJwUI;Q%)%zkR)JWf8 zNyB=pmX52XgcM1Y;Q|ewCdU<|K&l{=5FOsKCn7G_q$xD`5-qMk@i;&mu4aLaR`e<6 zduxNB`brAZ#Z+Z7sLJd~qlH-|gkdG4C={Y<93gRR2_{XGl89`EQmaPsnVBj)BV0m~ zs!(5FG+iiFk*H9qPV-gZOEstx!!^FNy+&^jwvP8mCLk(OtHwdzyEIUEU=n50bUa;( z;YuN02@3B4J(Cg*382ZRVHqP+1JD35f)N7$prBwuFp-J~f`ec}fCLl%emE);A!1Sg zLa9)tf|M$>QZh3ZCnZWuso!qTNKC`jDm6&0)M{esDFK-Ty&R$b2
hzN)vOf2yC z$6x^>3cv)ZA`~P15f~-JArw@4i$U+*q6U>x)Coy7qR<$ME?kO8g=uP~Rz>Yprr#;1 zRw~IP{*79<>mQ9inck47ESkIUUv>%6gKaD4WZoIMWy2Pa6;}qO>D{JbP?|Dz5ss1? zZkifLallOyKfu)iv0v=U)`_Q4- z+E|CTk)C#C>el*3t5s|*Tr649@pbiK1Db_@1sdas(^#S|)h)}4edK;u*8U_C(|Qkn z`K)sCsm0}ON#3oM8Lb5dEcjo6<((;}Asv~HZyw|EFsG~Kc5_zTwd8>M6xXhXDN@f{ z8{2QqST@}NN%kj0`opQCk)>=HnlSBPMbJxK!ZE_1-1E7#JGY~<3g$+5ls^g(wv+l% zNKV5QxEdjq>SXGGF2NLt97n+fFV?7VbQZ3rZVg;4^cTWl!1Cw;^P&grJ(pZ>&x6_L z%%>)-DSHmbqJ%ZZdDyBstO9ryYd!dc7jxJwHk-wPO-wmHxC(|vLU^1hCy~ps95p*? z8lNgSU!_*2;|gkU_$0XG`BDXmtK~Q*1?M^J;bbKaghk*_|I7uiL5x?}TjT|gHbnFs zFd_vPSHs>k49+mM?gI_T2)4N;Ai-M2pOQI}u$>upJl*MJOzQ2&oGUb7_iHR9!Bb&pC<<>H{`g6pF6g-J4x}?{`hkv? zUrfDjeDcFQiF$U0R-Iok@6)Clt6!?)P4Y&UrOH^G_>BFvcduF${+<85i#fOWWm06Z z-`?2gUky1@A=x%W<>Oct^B?>0*b714u{ZLnMrR)Vyz^dLw4e2)FB~co2#-Q5_n*sJ zjvgB`d-JzvG`Dovb<=`}`t9@rT*Z1hNy*v0a(j}%NXmfm z)RSth0)osau?=vy2j5`LayGc><9V_SPSk%_#@d6ic44fCGS*CccZS?~fHl*XxprdM zzemo_lY<|%=H>t)`|z_}$uLj6j%^F=0={{yI|Ybk0U(OT?)v#?Th1xj+{-=<+_{qot}TP&1=q; ztuJn(drI5JvsT(k2X)n5wq=M10c@np+)4tI9EdWineest?miX}$a7{c~!>?l7lD2SKKnK|R2?4!YEC zRdu~P<<6;`ed0**P?*c&GSwGzoTev^Zxcm|-C$ETPsi|V@J<{Xnj6%d65g_3>TF5)Zv=AtWU@G3>}`+wn80{4`!L&LG|+WI*$haN}C>hPO+w#=tah&jaeg;tJW$WmlVH6)+`kCh- zhhm`c=DXC^8x=QRo!vb73za{WhxLj{3FxOl2ZB>Ff+h>m8BER& zu4|dGZv57xQ6e2EcGO0yi)tWB4M99;J4aS8_JE`Lj$!ejRaVh~Z{#8Oc8kZvgn7(c z*bRDPB2?IL8R&c5PWxS%^DWihli6lJ*)kM|Urbyg%}oa`Q@NJE8$J_e*~|@#I}T z*yeOPc@N%w7Ou76+@8ru%>&_ELXX5pShZyW)vSJ*OG~@FXFqz$1$#{Dmwc+_sM@jx zZUgivxP?CWm=yd$k1~6O*?&wq^Y~=;-#|Ue^c`r;^kw$wK=yRMvR2W@Fr>}vSan2 zi&CMj<2N!I?_zq``R0$myl@B*hOtdAF?F}ET|q+fD**_CYk8Zg2|c{y%tJQ-Lc+5v zVk*AazM-TB$QSiX6E?E$&@LdC^-EFmc1>C_NUfj~^fdPs_QJ~US7OkTDmp`trjWcj p8U#}JOHe&^$}1`{*)PG)>d7Z`pik2oJD^&)S$ptR-aV(9{{k7|Re1ma literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/camera-manifests/seg-01.m4s b/wai/live-conformance/c2pa-live/camera-manifests/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..38628e4cc30de07080c0054f28513616765695c9 GIT binary patch literal 3912 zcmcIm3se->8J^i$mX((%AQTmrqKLpQv%_nbh{e_yzA(`SOpG`?b7yyOcW0fM#l;u| z#A*y28?`l6V-+9qnb?O)wJ|m^L_Gwfaxm#pAw{F6^+naww8r$_-2oOPJ+w_`&+Od$ zo&W#ucmMDI?+k_oN4VWQ`{|PpT8D>C9k*^{aq_B)Q&kwe9JG_?fFz@_as_=+>ULP* zBo01VhH}x^5G=eB!}ejO&5H>yfMG!=6{{&eD@SiDx9H48mbn(zV$NczEIpgWvHDDo z=JY0WPL`fB0gf`0Cemy&!nKGRCEQqFI9hsYQ3EYWK$LmGDM1H(gyN9ub+8EH(+)OT zvKcH6jx&^HKo{&51I>0awB5={Hk!)HW|2j)?)|qL=B$@jh5zy51m=F)YZdmSbO!0G@_S1}O zhyie;dwV6b-`voQH5f+Z3ous}*z>?N-~+&bt&enPusw+P_69STwM+eNhV zWuS~_fnZQFf%xwCDru8sNX=2edPZ5Ym@JBBIelhMj!AFgEVSN~LvniB#ARjx#%QD| zW8Xx%7{Mv?PB$-?&jhkfUAN+`$ui}DY!jttESY9~ zW(I54o6V$AZ)BJZGhmI`78+IEer1a}{ccfWcqE-c7HOyCOS)kR%^R$u;C7*%+Pynv zMM02@b<#JJ4eGf^8!s;H+`4f~?ki_o&L@99KZ+<>IKuRU^J$B%Ubg}kw+fb0z{rxy zDgp*TZHjf7k2h)WKRi)TJ>Ix}<=muS{{G@>Z5ffhdZw)LGC;cqB zZKYh4aOumIx!Y8Ery6$5d~#%H=c_(83%(CFJuR+qnQ*RgS=G$HjqI@Bxtq_rQ-(ge zzi;xpi*{cxPHErgXHZhHIG@kOf( zTV-!6lvsfih_oz-CFp>zXPvYIFtCFcNiM)V4@C6V0F)uqK*9#ART?Z=X|R4?a@{o# zd!Lw(I_yHtJR-Or9}|;MJr7??R^zY1J8v7I!c{7qAOkc+DsYjc(LknYh@Yy7kkLgG z3UnypI+rMv0Vir4oeW>{I^HP*(E(Te(|kv|nfIrvOuKf^SP?P4 zi|qvLXidne<{L!tik(!#^4eR`$JUq67`eAJ`_V1On-9RYA3k%Z=of?HjfUomyv`?e zN5eOlOgX;nRO;KwM}OV9|EhXl4Mx${H!HU$s5oCd zw?ThK|G2rP#TB~m>WmKOrgu9g4mz-5-Q|O8mSny)|G|L+&kD;9pQg>#Qu(!ebE4Hd ze!kA|LEFpI4AVXy5<3WfKZZC2frCvJ?%-@Jdeg!SeLFpXuVODQBV6Uharhr8bF7R8 z$~6u?Ps^g)iD7{V9t>kf!Y3MM_}skXvAE9({YMU944VR4`r-^^ob+GX_Y)Ie?0_G& zK|yd;)jRh$mylX&bR?FTk71P%qGHAckzc;FaN444N56h_YdA6H^Q&);+>}Ng(NSY4 zyd9bmHpq8UC7zF+yVh25X?J|bUkw$x%Z6thDnD~vWjy#CHI!0e)rui>$j8<^fEaPlOC96fG90Q4WK(kyN1wpC-r5Q|W2&;G*?n+>r@ZE)T;0tv%FAm9c?DJUvh7hDh~nVBS#jY-0y76YhNz_soa zMck00wJvC}Dk=&prD_$miiJ|@QpKg>QpLVIA(Et$_xaw}4&P+%J#)^v|2_XXXYL0C zS@%_|#n|Ld@ykbPfUO)P{Gf+E}y0Up9e_^5y#0w(P6P$Gnl28Rc8 zvEXn4SHJ~pF&66F4e4@+D&Jd_gDRCcsS?X&N?<@6pfm8-8t~=h`vxLZDdO;@1i?uU z1}4xw0Z`j6KqW##DFV1cF-jwmwJGguUkgda%d(`aD=4A^N358LYWdzQ{yrLJ|579lNMm3 zyN!a`V{A}?HjVPzr%urV`84VpY~STqTlYa_x5Cl|&pyDoC)jT&*0Zs}ishyPG3E#t-LW2$zj< z35*>=pah#29>!%OJe)wnVICaL3!)qB3Py&^Z~Xm?I?RY6Z1Z ziFT(LDVM7fS)c8zyfQkkSKaYtFD-4F7fw1>U%TlcbbZzXG`?+59o$Q(HH*XOLOFj9 zE>J0%LJ}9?fSW{C>U~zN;A*b(E^qps#%r@*-Hfpw#vfGR)3SX%Ut_b@5!4{6gF09X z6%k0@FDZcp6-&F4hJjGfb{LeCSSc3DP>R~jaY|f5cv1d{;ek|G1H0q)Ass<$!s&K5 zM=VpSP!OlMQJDdmQbmMVjD1jNA$7T%tnVEQO9g6Dl9}>P0MvW!0&LiDbiJi4KQM6g z{>l+crJFxn+c7*kK%CY2_)?kh)DX#JMMHK?7n<4s1{!^d>##)qaCUyqxCd^nlJ-ZD znA-27=TFLGj-~EwOZ00l&um`Ng$4gNu)J5rI!FgCQuCTpo%`}G3~aTzGnO$(9kFQq z%Ow}G=Wqn|6YAQ!AW8mVNdL9!bjT__GyG~|PJCQcj|)BRw%v~#m~eObwerR8H{@>z zJID7|X-gqlh|6#iRmsU@szH}xGE|BSKn15N6}Vt3PEubD9N~m;U{GL%x&rgn6<7}+ zx$c|?wa=JERoLZ)(;3#Kw874vxzlMY;9Ob(xQCZ8=rlT=#(>St8UDBehJ!e8fH`9d zlVLMxT2vg13OGwa%F}TfRX8ja_{g)wG8IlraZC*QIqdG#8wrJjz@PS-0j6OFQ`j%a z7xwA$=wZ?$1s5k_KOGE)C)9KXTmPxq(HO7#SH2al4OPTZY{y;OL+)pnoxSt3C~LsB zoE&%oYy%v-^`+7NV$xv%0QaorpS8d+9>GoLYta~I}Gc*?TF`s!h23tUu4C*?Vc0*{GPP<8D27QX#2Fay*z?A z4cWt=zFl_Mt|OeNhwL_@ z9XXS}dV1?ubKh%YFU=H@({`)LWh-V*xLn=)*P{t$g+4p@5*i~Rv#h4|iuLAItP`$Q z%#!DcksIDLa z+d8U$i6R{8`le(gD>5Dy=eAga^P`PaE+;^d*+~fzMty0)MV+0VflskkuA=00t(*pa z9aIFSq6WHa3V7D3NVN=@QQ|(prvrF`G2Oe%j2c4@v@Rp+cc8)8Q0`?Q2SouiwSJ)f z2ICKrdzjF7Ga>ixk~5Y|!J*d53am>1`bkkTY>BL8+CfENY7NnwIIidO>ou<$w7-ng6uiqs?#R{c*5cu0LM2VL|1hgz-~+_TN2H({|c(&pe6!?r}N)^XnPPn&g2{o6V2H#jYD4&ORqsas%e( zOded-@aXv6G+Rs837%PDyF&JEl&l(|ng54*33pzzbc}=RzQz3(IeWj5xb^p_+`eYQ z$OCU!W{;c8%4?sB2HEr&CU~XzR?{eZ@0)F=qH2>%O^Sm!l*t9tN(W|NcE-{xo_XdsKIqcN}iw(=a-F*8z zZC#Q?-f@;YO}>t_eNAiWbL4pOn?p{^GsTrx7TuX>QRM%|eD&G`FR!7ViC$5*LlPnBDmS^@nh|u&tEjk+$owM64e-=J8}bkq%%m|5Ww&OfrFtIeK9vpxWG1c zj_?w_=sf%PSmnddBCCP6Ez7m~lKxdX(6)oNOmx+YY7cIGjWzBWwi0N6M6+lS=wC?? zH`sx0`J|#tqygKji5%)(;hn$=vW`znJ}PhqBB8; zUBul)S1^fq^&ErlU+NDxfm=w#(rk2Lw4EIlvup5xn)Wv|syJZ*T@58SVQ+%iiDL zuJS~jU|&1OkWBsCCZaOFnMrZ%$8xQy)4xanx&hFZDb9M)t&PuQX&9x;F~*dD^n>AU zOn`X}bd&!jmI5>pV=xJbGaO=!;6}X!6Wm)#xeYajkOGu>#t@nlw$KvnH%9{H2xAQ3 zRN7;{_4*(3jrwMGTc6z>7Y$Xp6kTYF5#tw5KAF1dp`3~8J^i$R$QI}D%A+9fFiKV?CkOs6YvT3g^w!6M4X+uvpc%Gv&_umQjGyL zF-IXDA8nFatzw{pvC*~(R%|s1!Dx&cYmIs|l7l2_8cp!gn4`A$?hddZ$)RmBduHd} z@BIINzx#jxe`hc(DAMib+4GOyJ2yNuKWEb`MTu)yHCJHpa?nnm1Cor!%BB5$soPFL6sxH|D@RW&x9H49mf1$eL>kjGGxQvnk)}6i zWia|o&dlmbD$8QF(112_EL@9Nql6pl3r9DK3+;%1I!}iG+^>Yv9mrPt2gR45G zpC2;Z;TW3y+->Jl;9=};39Y=QhGl7)uBZW}wA~E~d*_rBI8Fj`An>?o*#=Tk-gkCR zIJwN#HF0nv-7{Fx$gZrF0+Hu<+F}QK30NJ#DeHMBCtynW;LeD^Az7UgC~*TP17X7^?Q;dU$bfle zF5nq&lVw+SYARD|;9W9f5JYRL6D*e)fdx{kVlR2^;nqPXGLd%4ZV|wB+Z3YY_ls!f zOF=2m0>PkU0`cABRnjKOkeZ`_^~77!m^6xJIlVa}BNJAbh1O?gker@|#byGG(MVIq z-idNCf>Y+5ZeA{%0c4xN3f}E@wnPCdx@9qcWFey3NkamtfwqAqc_8e zJ}aFw>uFP#DUCH{F_03Xs%$Z%&n-#}kEAomBJGrXNjEH~d4p9H+%B|JyLYFoC(@@a#9N&-lGZar0(LGA#pA}OqO_)V<*h#_g4e~+6>cf-lw=y_sbG>P z#p7^g^E}(HlSNc&x48T4SX0BeMZ0Iok3q0Is*kY$fuo!)E7o6~v?BEF6J^6*FxSs3 z$u>1T*qw55V`MvjbpGuFEt`F87XK7%x?5b~l6R_QWyOqtj%c&ryp_wklOpbY(=g?) z%j(*Tl3E))ts8t?z)!*Du`X69)gD`ankd!moAk4avkg>b`s|vWTPhoaXO6n@u;|{X z!=rta>_0N4AM84X*{iilhaP^r<>UOieHTMs`+Mjd`~BLT|M<(sD)-%Y`1b2B%idNf zwgM**X;~19(E(kRiLZzE_#K1_SE+D<4A2nCz(tZq1DT>BexW9U6BgtZ=upCS zE>S22PSiL$8NTFoyi*3E1F$?i&&imfAyhhPgg@`~G@NGmP01u??Bvnx@2^xS#mOu#*S5Cbsrk=vy%@)h%CKv6VfstD=H@o(zV8M?~WI zztt)dBSXjp zxi~I%UvyR8JINqz+JyZ3!;)|L{Ns>+c~t0$Ez7dbeGr#&?A?4-W^LW{)satjvdzO9 z*9148{DKHt{W>-B`Ks$f4{k1-KB9hU`n~IpZFj(qQR8kd_|?Ezqv7PL@g0w<8^gC2 zPi=EiAx98RX@9Y7emrySeGCHBmtG^sR^#}OL?Ce z^-89s-1)xyfqAH7aPgo>t?kK=o=(gflGdH_*7~tGzq&QEJmanK*XX+ybM|yxx~fV1 zWZK7zY~q4?w^+Sl(X2B^LasIy22_o%wb*f@(6hU_?QGEYjk?3bwCWxAigKB-O@D0o zQ(NtY@VrN#y((^Bn=t7OZFEKLfv=`C9Kp}*|JU{%2Q#-#8~0woJoDy7!o=saP1mMs z3N`U3UM$I(Z3%|okHHQ>fG<5P+`-w<7bv>Wx6>W?D)!C;W!(hxP_(Wrq&&@j?i~F3=e^fuluqmLWFHV2PqyJ0$K4Rh}4){^4)xuR( zZ+^42m<*&6qOiDJ3@e8a6`i9cZ#=u?=gY1(KD>8*I5Fn4Pq&TuO$zn4jv7PZtLQ3dCmZuI{#4 zNySqGvDIJi_gYOp0(qPXU!}W+<1LpwwdHrpj-NWUFgO-EYH_vaT(_egLP3z&cirI; z6byMi)oo>iPzdBTwc83op*?v)g4pRkiVqegcA%fd_iJcdQl-+oOcQG;-zV;{_0crFH8CJH=8!1{-IKiLBglON}9dJ>TczTit zGxy#%_uhBsyYJq4i(%M!R;}^U0!w3XAj&C{o$?bThQ)p0^Kr}vw-23pJhABeuWTyI zSi9oOB!9k?l2N8#W-y=ZFe#@xK`9W&E3?nJ4(54Q4^&o zKvp?PRG83|x|Yzk!=l+$NX6vL?R;nqcQ>sJ4Tq_)1oBQ)Zi;K^kQSM`rm` ztN!F!x+w1-hjw)}Rc)SZT346gSUP4-!u8gzqo-DZ0L}Xpv~oi;!%!*}YzBUc_ksEM zV#-P^s{nO42zV*g4YCpLO#=c-(4Zi&GBwm$S=u0Kejsx!N4a=lR6wNwMAgWNtb}Rq z;|DwfL8*iQ|&Cj*$Y>~Bt* z0u+R_(F1Bwp0WN=s0}Vi8H^5(NA&7Zk2i1o8|{WH_<%RKv_B ze9HElWd%fB|4V1T6l3Q)%_qp9bz9F{$u&Y{PiAp$urj-W8)xh|~}13cvdd=o3la2tp?fUD4+ zz>5}=hGlD~XdA&e88e;3vR13ZLIMY41unD8Ww+)yZB`crtc;Vk*lZSu*=l1*hr>mi zoeqnU&9PZ?92TpEu-j=f%L2;DP%g^MT3N;h0A+PjF474Y2cR7m8|lg+Z5EozvFEUM z2TNG3MnA^@$!H|1SWZ^d*|OyG##V)*E95y!fw<|HYq(7b;bx}!A-IJ%IZtsyxEk~( z1XD{yU*J&QDYRz;^Ay0d6OlhQKO0$Q4;Jaew6>6mY0zC2Cn_ohlQ!oEfoTE3o6B*` zL$yd*+o=_In_xpT?UVVyv)@L5cfE!Kj_jOTlk}`b2H$UAy>s`;zuCmOF zy8{Ax-OuShxIulp!F>1H?@;af)L z>#JW2&D?k5g^CrH+;=)<>5|82q^fN$44H=kCRuch>YrR%n8Cr2Y;7dKY-(e5ZFGJOJs$q#ft{I;) zHmz<6zJaL2UxHWucD)YQ>2N&}9iz_zUVj93_Rxt2CppnfryI6 zpu&@iffH3A3xMI^M~av*Cc$hcNca~TDfXR>rTAj~`&$n3l_l`zEwEws(Kzt{J~07$jB`@z8O~C>*~Nr6VvR5lJJE z6s6Y6owIjc8pKM~p2CM9-m^f=EPoj9%Ik3~91%g(v=qoxl;TZrv%h(CP1TOU{d zx;bt2`YU4&{Iq6n%C0K=%`3vz>tOp6c|D6?{az|*I=(8u?{?$^J2Yj4K> zU-Y$J2zxFz`kxv-$b45a4&$ZkYNQv07dw_wjNPpvq; zt$oB}$Aj-5OWV1u@7%B(oge=0#m40;chCeyj2KKvG@*x?7@8A2CIa#YA{t7W2Dx~| z*KZvoJXZ0@s95*(KbL1XN89c~esR~-p8xcg)aL9P`E%+XsMp z^2v=Gmj39}!Gud~^P|^KZgKIretzJM!yliH+xD{I56Q7n=oArrulW7Ej?TXLh3BpM zC!2SFR(|B)fAQpB+FN?<1Lma%JgTVlgXy~8-DIN4mhzJ`gIGKk8w(}fo1bo}AcjM3q@t>!6R~CnWhL}mPm`0N f{9}zDAW(;v1_Vem1V0EsYJf*XMA1NT4TA_Eznx#T;q|zEVQ!!x_Ek*dzn$g=*N>L@MYFtWWN`|b4klHy zS_zpLPpf1k;pHurfg(!Sa>$(>?>=TGIJ@PUQ(t^X!h#2}-I-g@1*O$LS-7%`oj|2a z5;ZD$l2VmbEtQgLa!)mtMkZ>g@V<$Q*BloFi;GL6TyuA|?V*!sXjaXo(vwNGjCxO_ zkxQ$lKWKGE^2~>VP9ZqM?)$Domq@qf%K33Q{SjDV2JI zG+i{4aiyn(@bd5=MHKb^Dv@U#?IDVzyjO{Enw0u@NhIDrQZM67Q2~p*Hbty+acuu= z|8t&py(e8|WD~@>`bq%Sh753~C zOD-&VL@oDd?NsJH;@gj`BPWhr+I1)8(aDc}{WQaqW%!wl6l8x<>bw4BwDc)eQNwc3aEe7;nF3 zRV1>=S+>>r$)WES-99|}K=RY$(;W8;H|~FAJ1>PHW7QfCFcYYK-l9P76&zV z=GcA|=|AKVKse!MY_1lG{Lw9Pg>T-?H*6yL}V=>1v_=GKP!L_ao zFjTx8X?6JSl~|}{$rIpt2E(O-tIOWC9bW84IN}S04!WNVri<09U(w{i`5izu?V+=mUkHF<- z07%~ES|569h-jo;Ut9nPU3mh}bc4EK=jTh_SX2oHH=#pYhrw`tw6)~nds>2zzl&8w z+8GS>tDk-j?(Q=UO)jGef8H^)_6`_uq#qcu?2H{npP9XcMv2)C{gS;QaPA1`J!d+~ zXGnDdKXY)f0rcLp8|v@M4jqxh!dA`nGwENm?O=I5sC{P|nw;xfZuf8InV{gD|AT_g zzeB+{5xSti1{8iF;)Bx2)NjHG@i#>;RFBp|e=(@6uf-~xq~KCqtcU0#hPj@@T(R%_ zL)Y1_Tl=r7gqQeWZKgMzl74!yNbQu%MVt2i&HMaIPOtIM!e*~Iz_3V%F=hVzVFFt%?W zD5Q0u4>PKN(#dR?nW1o_@~x5Q?+Rg=AL)xv_j_WVV;h{?5lCq+r0@6rCfslSPzIQ` z7*(#R8F%~Z!~b$%jZsF$gDsc0efhDI368>F=uaP$qTk^t$`zDm=@ zMq^Qqn)284m9s3&1@oO99r)N8WMR8b({{e(}ooV9BeIaLl_!nw zG(mGL2T+Ueslyi@I6)IKu5|@!_@ZoowGQ+NMrFirwSRpC^od3#s$XZvS3+r}zQ8oO zd)eDhPK**j$z*+nY0EM7jkh6Ds!@UF;15Qb!fK-e<<0BQX@RF{$O;$=_h}kN3+~zK F{s$TaM|1!H literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/camera-vsi/seg-01.m4s b/wai/live-conformance/c2pa-live/camera-vsi/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..ca48ea2074b9bdd06b0fa21f2a9ac622a9c465da GIT binary patch literal 1563 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/camera-vsi/seg-03.m4s b/wai/live-conformance/c2pa-live/camera-vsi/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..01ff2cf9d83ea04916d4b1b1a1b1bfbc5fda6db5 GIT binary patch literal 1563 zcmZQzV0@OETb#}S1f@lJR>?*MiB@H)MVV=tiAg!By2YvKxv6<2x|w-t`3z}59!Q}i zhyVf*&3&oGc_E|vLY4@Hd2vz33VYZlTI*chX>oM^^I2DJOb~Ue7EA7OT#`~aH9V5h zba6&fZd#g0VsXZj>x&Yu{otJbJ#SgK`TK;+91zDTyVCjf+yt5_3vZ18)2~d`+6q!)DU-2#xl- zBaLbKX+X!8aHLigB$i~P>X(*grYwYU(n=}|;GEpFqC`}~A`}S+1jKkAn2Dee%qvbU zEKSWzPW3CzO-e1|&dN>9%S=lxF7ZsM(1n|5mX>5{YMz#+YiXKjqHB_3l&EW&WRa|E zo}6Z4Xk|i`Z8CtADH|7`|FKtJS%TmXEHPG1V$4hPi}sG8jvB7o0gFRq(Oiih`*E+ zC4$9EK;lebaYi61Qj(TZ0%AZxJCHt6QdFA9z`za?<_DT70;EA~V~92|Tayu@2}Ftz z!4^hRLkwGuMDpbMGSf1Dj}z+t2+!l3NHz|a5`GLo?2GI$l6;FbMk z``>RbrJ2=q`7J zDv%H#s=I&=WVnDO@$mq~cMzHQrUBLVASFIf)ZGALP$EN)VB`d+gOpH^#VKKnLd|>u zNBue0Tl0ZJ{V~k2{JN&+5ikU0S5+PmJwmNvYtuh>0RSzw*JSf zh4y#c7rlG`fn1_Z94k=25EEO~6}Va!h6tdTFbl`2A4p;WKrs;xZYdiyF;M~Dq!ctU aF$VutJ!oR$DDGil2rv>hl0dU}p926H2wMRF literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/camera-vsi/seg-04.m4s b/wai/live-conformance/c2pa-live/camera-vsi/seg-04.m4s new file mode 100644 index 0000000000000000000000000000000000000000..ef3238b35ba1243e1db5f16595326189e3dc0d91 GIT binary patch literal 2737 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-expired/seg-01.m4s b/wai/live-conformance/c2pa-live/cert-expired/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..cb911d820599d53b7c8b7c838cc7030848818f6f GIT binary patch literal 3912 zcmcIm3se->8J^i)mMsrO0inKFt0E%1%nq#VQnZk0A{vAm6^urlow>6+xVy8=%;IVk z0U??Q$D>Ibn;4H`@PYBsHZi2BN)k&9$7)m#CdU_vj~W|eq-xW~NAH~-*ab-sZIanD zJNJI)|Nr~l|NH+tgJI#(UN6Ud`ryO%VFRXRZFr?9X?6LLN(^2u%FVGrl+akY!mgHh zT{buw37-s2dMIoV7FB^^jhN-NQnd_VSXi@S^`zg*)ziu=xHFMurj4;#%?xQaFlLr9 zq_Y%juvjz92GRmp(n?qetHlJ@QdcYC#{0uj;v-gEvMADju(#>ym!#EEe?FZ<-%43q?o8Zp z{BNBJ$Nn@ld28_-oySUmk9K-Rv~qPl!%z}cSr5u6rxz6T&MC{YtOz6>@Odc70a8)k zw{}ffX{o1s;$j7=XRxAC-B~LG0>^Tc%?S)5u)Ba;GH`B|$CU69T@isxw7W%6>IH5Z z%!IN5Ap~x8SC3@&nH!3hGifX%QD%H7Gh6KnSXs~dM@}T6krn_Y0j8AU?3_e7pXR*+ z4Q4O(0N*5sBzZDZQ|U4z=aFb5FW6JvV2Mcc3=mTldr`KBTL)dpcm%jK?-lcuE`cip?qp z$~$EQo|lUB;=?D5n%VEPoL<(s`ISwXD_Yx5CVjpjR$aVkxaH?3Q%dc!TP}m!d0Ppf zB~fJ;01covMf&u6uj+2yIh0#9+4NG)?8M)`b$X4i4v%Z9$}GB3a-%W<_8_HD9Vb&I zY3HLYMLQ|Z(7ZGyBNE}m2hrR zqF|nKr}$EQE>9-MG5tDO1f_P117}BdJ?#~ozC}L)6Ik6A#p`^iy*F$dvwT*D1`V-+g!V(JyLOzHrp^ho7bX|3 z$#0kBRw%XuHxMX^7mCpVUC+2F7ocGWFBUz3o(lx@)&Qh2-AKR&t5q5-NolY?UUJUrw$dVE~`sH%DRI-&|+3-3u=)GA!1!nH(*Ry_fD2*P9}Qnczh8g<0j z!kk<^O1R!5@MXY_8b>d|m%N^HOF(b|hJ)uhF)}WaG!rKHldossbYjqyNH!%AiT;QQ z-y0Fp1p<+*&`^)U&T8Htcl&g{sc~}h21jF2&4$wODG95ae_3dr^LR`8`3u`BD~Xjv z1PnYP8pj`MR0Kv0K(m2prctXxD~JR%AFGKchG@ekXmJg`>e@oMR~;OOgoLWc5F?Pm z0L>6h%-N$)@hb_OY#R%|E+w#hmB% zeXGAmxL?nTC+3H~yXlMj`ws262A1!}=HVWwh7;Z+6-88Ciu5agP#Xs?$XWy^KQ1y2 z3DYIb|DkS>A_@2Ae)j7H^=+BbVC3H?P+p z9vY_Ea;1}>eN{QzNSg+{8JRddx!~%o*#}?VLr2cq?Yn+pUCFR~$NI+O z&H0DRuYT9?o4r??#JAT|dvi8Rx(N9F7~$f17B*Rwi*+#QO$#sd?Q|Qyie+3vxJt%x z_#Y#&jD!Ztl?9(iCBf^)uuudKgfU~_6OGgSZt{3M?sr1}G5r|Brhu0IIQ?46dr$ck8ucLPw5`!A56eSOtX0_^dGE`m>9sFTVWF{kvZdQ;+-n!s{bm zO(75H$#Ep!0nOA7$aiW5o{gQje6jq@_Jm7+HBsM>OnYXLgGm)ur5Hko zZ0yC`5L4rtY`?P~tALnBrCk$*t*#&kks%u0Cwh4i*{%jcT3vYjlmJu(q0p$vMUGX7 zifn}-9hSedE?~8s97FyLTlLNFWvi*pkjJU0a{WylZ#m~{sJOkf^~8yJ5ed*S4A=PD z1CCAzg+pTh4unTg1myLrfRzJ6k&xGu0V@Oz=*bHb#6Ibx__Ppj>SyuIfVQy4HXdF>cF1)c0fI&I=b?mjdb7i4Vg?1!quJoVcw#$ zG1xLOSld3;m@DVgu1?DT=()j%*IbM}f3agEm9;Pg`VUrVm$h}mJJf4=7M~z5oCK literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-expired/seg-02.m4s b/wai/live-conformance/c2pa-live/cert-expired/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..be6926c902dba7c71e78e60331b20062fb21ac15 GIT binary patch literal 5523 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-expired/seg-03.m4s b/wai/live-conformance/c2pa-live/cert-expired/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..6fc0b17550dbd999e0ad0c9d4a8a946c12daf2dd GIT binary patch literal 3912 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-untrusted/seg-01.m4s b/wai/live-conformance/c2pa-live/cert-untrusted/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..77c5ca90ec1127edd09044d4dc4f8a99d27fa889 GIT binary patch literal 3912 zcmcIm3se->8J^h}E21LcD+;Xfg~%?m1Is>&29jt*55cMx?6Jb^%$?oA-JNx27S} z?|1(Hzu*18|GzUB)<4?k*L3TGT*^A`m2w_lVE|A0<0X3OLw#;b{ja zB{~guH_IA|QlJZVmxgA$Xv*baMJGj?(imisr#tzFqjNS(t0O)w!w5I&?X z5qMt8(~0fV4632m-yX{Ou^SjQDiW=G{xcmh_1;MVULBgR2j(oOE|HsT*^;UJbHY_;ax7YH^uM=J`|0%d+ps-f(^MAcOHGMzuEA zPWy1to?Cf|jkW&94M8s8=iu^G7t55E7Qehccg0&LiVQJrBe$m3*X3{IwTlkS*n4j4 z_O!$6Rt71#equ^L+I2Fs8LjV)IsNx_D_=crJb3i+vE=WE*(>52*1t2ev0+N?nw)wm z&dz82n-tCR{{p}^IITBDo z*k)qw54X13Ds-bh1ly*Ti=QUUi&$xh-EMBWzc+5n+C~4I^Kb2z>WlMsRoXMl57H^e zO&jW$nI}5me0|V!BQg!M%lpm8y-*DoyyIj=6dj86DSuEKColA(MG6w8Lz@3V-4I1~ zr!*KYoxLp$9iLNpb!0(P*>3Y)e~HF)a8s1!$-DH5oisragE|FK6H2H=cTI3jNXmQ7 zXh1SK<<*WmDO*Ri`x>6KT;=O-zSe#&?7gm(pC4R>8PC3XD8IF_Em_^K<#JSY?)<73 z_Rc;QHKHM+F78t7sxOP5PrCk&^_R76Q$Cx1J$iroma_#%*e~X;q@rv4Rkh}2D61-? zmuF$^tw~o}zukP-`s|$MX(JA<-)TDe;I9dV`QOcHn{+DY{fe*e3;U{?e(|ZLO>NJO zRhdjXo2(Zq!wwCC-;WV)o@Zf`MY>rhgWk08Lf=l0;Hx-*O9)p4a2)=}NGv0vfqbRI z=V?jsc`z&t!6;@7e4=qm&@C{YhzFg}e@q|7uqmKrFiu~_f>Yi^W)HAZNBi|WF_w5hKL~<~$Y&ih)7MX#;mWjdY_AAET zx|(u(a?Z!gqK>b*HstEH#yBc{p&I%}DKty#I&D>09>k(m+B5$O!Dc}$M%(|H^d8ud f$N_ey2R0PTsa@9t8`h1F3Y$enlf!$gdo1HWk`;Sy literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-untrusted/seg-02.m4s b/wai/live-conformance/c2pa-live/cert-untrusted/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..f9c65a5084ba3565efe8b6e8f61bfe7313c91d44 GIT binary patch literal 5523 zcmcIo30M=?7M?8Zh#-h8fkrMs{CkC9;#Fllu9g@DS-i_x6Z&%Yao!&qMQVB{-icz72;3^4`l#r>oVi_ribnb26dnBYvkxWUXs0kTHOaQbIlm*!6Zlhp! z85kcUwOsv__dTr3i+P|4?VHH8tA=P8Kvp~)(h zB0L}fOXZ0bDvT$mL;*4)O^L~ILK&dbS8Daa)`|C$NK~OxQv_JIQ3n(@O`=4cN~DT$ zLeA4gg2wwVEtAPg6@Vsac(e) zl3YPpD4&Z62oec{1#p-kkcO(;VrZ9JRAOS9I-ZI`Wy+4A^U_c;PejSp3VNp!?M`t@ zE>|UR7VWFJHaf@ZLgg1PEp6);PdZUkwXqqxIrA|(uIZZ#u$4$_7K1ZIa^V~TQz_XZ ziogiKO#)}`BTf}|J=X-Cqq5E|MJgK`op#UdF>Q=2|sNl3_kv_Eoa03FtV&bWO_N6?z^I^E3?%ake< z#3^P}x_`P<5iSUG668d&lAuOifABll~5XdaoUT4I7TGx0L1u1dKjVF>JYX z%c6D9herB~=e4(9DHWX=B$=$ZlyR;D&Fp^yjlRTnSVsKx{lcvAk3AYCEl(nFwQrBM zr)5zm=I(4t@U1UPuV2-Hh4?41d{o6cNQW%u=G4t~aTHYdZM3~VmepS!o;%^?vg(XE zJgg@6LQ@AM$=?j=zgC?NS%p`c@42XxBRAC$A}{-Gk7D}9Jy?08Y>DSD^0xzB#<{Ds zrI08hWCVq(Ko_s`kIDuR*{xESctD58 zJ|;cVa0v?b)xltSLHl}TjC^|L{*vg_HSBUb#~*G76y8_^h07PIcV?B5ugkV&Wx<)S zEpY7N$Y8u}+oBXU^@<*R|+f1Iv=FsNHyFCl?=f3#-m1RNkmH6$s!V%dA zu%MItRkaI32PN-X-+j322;QV@t7!}cU_%0KPaPx7_l$f}`~Ww}a;gh1f@osiQ}chY zYrx2kpu4=Q)%R4+17hdYxhFMe?FfCCo?*^Eu(pTb&0%cOHVj7L?wy2~!7RXpF((Xj zgOGO_Q7vVyvpV^;-&Vh?vG`UW@}C@vpup-~hZ5WB-v*djJ-gAP zckb|NCnp!`QyTSNV zv(P#^J+A1sT+2B?0+{S z)v8>6c}%`@Zry>yI|+rA||b6vb&NIcy8RBZn$cKE?J z9JAK?(z2>&$^GqoM!mG3w6Oa4nj6on1hsKNf0PAP%s4YzT6kjd9^p0Vv9n2T=vj<= zxv{9h9c`RZwXblxASz{6?=|_>F?IYaX}{h+ZEf$e`bhX&QGemn4 zLfaZk>T^z9Z;$kgxY{^zLh^dz)N|{+erD~3X|ujsIy!UWqFFb6TaWcBzsAY?axg2E zfgX0{hJ?jFZci}vj@`H< z=|va0zeg*Z7e$-`+IAebQ&;q_Qh~NTv~{AJUQ~6c_%&Yp&5+eVy9dLf0n@*dARe$2 z)ADI~he!jqcP?VAYkN`YfFi=IB?MSFv%5Jw*IOhb?yw60n4uTdE%V!^c3mGSc&q{X zZUE{k{mW#eFWkEmVm`e>T@1@#Mpe&82U$6JXzskwfS7jKnJhtVerjjJfv$0 z7t#y%v3Cwm*T1bJE5_BcX^wq4Zs#uOU&H}je`xCz7rp4t*MG`Va9WpVj42N33B#S3 z0P`B?ws13^1T+z2FmZ?r9Bho>ml_Ff*pfA2}9&;(;q0=*AfwxXi$OGq~yFl3^Nf4AQ_*-c<@M(6yK8#sT3V zp76}hP-r{#fo#80uR)v0T}>IS-zR{r&+d$ihOS(iE;PxA@#@o0<2N?T>9`7^^}|=| Hxy}9$$){K* literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-untrusted/seg-03.m4s b/wai/live-conformance/c2pa-live/cert-untrusted/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..b2de5075e8f36cb1af7c243863e0090f471400bd GIT binary patch literal 3912 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-00.m4s b/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-00.m4s new file mode 100644 index 0000000000000000000000000000000000000000..2fb149447d13222dd6f1453b931bf95bd4ed273e GIT binary patch literal 5715 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-01.m4s b/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..f3ddd284b5e504e954801f1a5ec10884d0d3095b GIT binary patch literal 3899 zcmcIm3se(V8lFi)$O0nrULOz-K2S-R3e+|Yy*C*kAnjpy+u=;+ z-jDzP?{~ld|L+Wjg{nOsj`{NOAKFHR&&qydn`%2U-CyquJaV}U54v3!MGDe*Y1 zaFPI@3{AQzYy=ijg<%IU(~dHw55TaHqq5aZzm>DUl}B)8AKHY(x_vMETcgut!ny%NR35#}Aj9l&R zdT=SVwDr#Wv!oYFfR}c7M6~kSdWNASs=6MOQw|TvAE+tIv#bat4e+`t$qrJH?z?*? zthC(SJ8`lC)jybJY_DqNK;T%8vO0iH1U4sdNjlEO@|YYxtS2IHiZ+)B$~?eDgZVIR zKnQ{x-QQ2lLA9Z1pOX4=5-H_7GeAt0?M0tG+&bt%enq(@j{xAhw`8Kk_b1W8 zm4kAQ0lZ#T0`WcQ%cNbDAT?($;~i%;(ngYESY3K%rb%aFt(4A`Nw7M~#HObK+F+na z!$6_jH1Co)mxq&<&jXU3XL#Rsds-rw5!?b?n)itF3VaNX*6Ym3=^rNt?6c6 zdKzQanazYjXQ1gcGhhrERtih;`BCw_qfqc9lo71 z0?$hpt@vbyUbXPp=}RlRcWv95wW_7{Lh{X*Vw6S2qfI}*kWyyzx#cprjklHnS`rmD z0nh;E#-dGsv|V%W!HL|OX@)n~Eu66Rqf51#Iy~-pO_rszq_a8^_8=uwo#>-V(vGKF zigr+((_b`75>eX|&`zAl*<2J#t#_UX9BdMb$4*T}vZnUxHk1>==c4ZoSHihOiGn)i zKI={KI^9_u#|-IY5#-t}>N`8u*3%xr;Vu3#2=+zw6AnCZ+a1*k$KN|jcZ<-I^(M+WsS4*{cM)~6m0rhT;?+U-079o^KOs1<>8e z#_vn_er=iDe!$zl+0O<16kML_Vwuv4iurW~tM)aO>!Tl!dON+Xwdi$TQ+jyz{xfgy z%=mcYYCk2%k4)(YyG~{{`(Z;;^Pe}aezn=~;qiZ;Nc}F(x;Ei@-O)Mi*QXWK=Cw(_ zRw%Lo7Z50k7mCmUUC+2EC!k>mmx^vczX$~M)&QhFT~ELUTP-(OvfN;UyySXo9`?R6 z4|UkZwTl&x>+y;4V`~=UHAD?w32)+Er2;syKBl;Xmb8^&rjb)ISZ(?a_>^INM8@rl>Y zo}T$(Vd0`valwmmH%x#7-U)IN6g^28l4LL)c3v1n{xp<}o^1RN2@Oa>;-eR@JpaLO zE-q``b$WQr+3L?)#_oNo`%3VGGgptVuUlI29!*fha3q;82|@cK@|;@ z-1SG#qx3juOwov_5c{+*3X{#T#y-j0_fP8TyfeQl^S2T2P!FmX9PGZ@p-#R$=fV=Z zP_W-4)NNjpcd=<$$0zwg8z=0sI&fvaci*X7t)aVK*EWs}QN8=nk|TbR9aFHodFySR zc7yxm_;njBM_x_79J8uvt9^Py)Pg2uF9VfV03Qn%~Vgo`n0I&~Nk*#xMua(jR9i;|c$z{U9;%GAI0w4GDp(Dh}P-QAB9S z@zGdP4u(}hh>Xt;A^x_scy?*WvF{#!J4!k6=Jj8X*`7jvtR*Lscsn#x+9BWPs_-1_ zT*r;d%X<@V{as&~wQ^M2;pLxyqA+~0fQ%#+SdDB59dfYs_aUalRXKiVKUM`Xl|o$` zfW1;hjv#|nn)6!UB0jry5K?PG<}6TdClyzLQr^rUXUPmevsl*L;UycY?)}R^^juR*VoeiGBxkB zmm?c%Z^T@?(VjqMFAIYHkqY&S)?Ql`W`S6gO4IU>04yJ3(VEba*#oech+$S{02Yho X9oRSki|fZnh2@h`Wc+}2Pvrauo>Xw& literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-02.m4s b/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..3eaeff3733a50b382c64a62fc3cb241d66aad2e5 GIT binary patch literal 5510 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-03.m4s b/wai/live-conformance/c2pa-live/cert-wrong-eku/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..95503ab57d79e25a441fbc0c7cff72933349cd95 GIT binary patch literal 3899 zcmcIm4OA4@6`t8$7Q&w>h*TpiBB;nNv$OoI!30q&SP^1Pf?CDdnK!!wyEE(j;M#Bq zps5}eJ@H^#6O$?iqNE-*rZvVSYC<&K!B=4uRHE{f+^AjxQ~Ucu)|6_*W8 zV&RjaNjHTJ#UiROtO?6{eTmi!U|8^8)oO;%%GK9O5&22Ta*~<05ax`mOe4!?rW@0& znY1yBO=FA%X|<)ndH089jl7k}CGZ%l-^htlXre_x$$(kHaCT0noIe*7kp^>@ zxq)Z0Lzdl>Qd8-26X%v`lOWntd9YNX1qMi|s=eg3hg%2T$W+QLD&Zi#$Gbc=9lL6Hj7E`ciRlY*)4fvm5x0-vOnoe%vG|sT{%Ca?C!OW_gd{?_m86}Iw-oK9 zIG3+zv?QX|;MY!^#MyZYrPfm*0VkV);<1xck*ujbx(((;@Vc0K!j*EoBvVkQ{Ar#P zkIOxYvvE4Np)KjS(EW>{nomgeWA0*Tzgb}Z_L3Y zA0_7xOzA&%oyzPt4apxqx?guHuW|SJuuXpopW}Scu=UUTUsGIUo#J{A!_hScoSQ+8eF5nbwq$(I}x}E!fYZ^^xEfi+R(%orsNxt;0CuS zlmi|$jzNYmc>~AGKy(3ygXcLBJ0gtCAk6U3d(DT_Ous3SY#vV}`69-BZ$v~Fh(xkV zLmQ8MK$YemzI`@$!RB?tI&XA_oSwL;c;mg6Gp)1QG9qv8>D;Ce5)lgHj*i6ff9W&? zMuel;5H!->g=yd(vP25Sa2imlw)to;`tS8;)B-RIDY8-T*pc4#+S@7aTiYR{L_|Q;rQxzfBUWU zkPe5RjG-<;fbTgh!o@n!M<=?_=TaAZ`+9L1;TkWF!`~>GWn?r^ua)rmnJg+ih6N&c z2#gs8pJ;6Hxp~JEaGw+UjT*!l<^Wpy;tXb-^k3Q!5EEbGg5R;h!Eja0t~;-n5J6;O z6qb;KVO0pqwB!Ezmp4YgmO}o)K#n8vc4($`K)%zf@Eq*q z7k#99X^zEFt2Kgi;H722-#D?XIEFX4?!$3MaT1()JiDE|2WGajzS z{2CPy-0G0NdOKh~Big(5&Ov$Ke49)rhvM4K-B7oP91ONh6xOy&Gxo|w%ikv#9({4x z!Bv-rU%b>FOJy$#fd0cY`d_y7*y^xih(+pxTJHN{MG%V$3K^N*4;vm4W@Gwc(O6;A W+J4xGK74do5gAFw^jr7ioPPu0ws{`_ literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/claim-signature/seg-01.m4s b/wai/live-conformance/c2pa-live/claim-signature/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..906bfa38d6002cd4518298541872e31e3acd8579 GIT binary patch literal 3912 zcmcIm3se->8J^i$mX((%AQTmr;sb$QW{1}<5sR%ad?(s~i4kXK?(7ck?yNJjxEOWqqe4Mtl}d+6Z=r8G{z=|sE1%w4kkS+q-fN%zNmVd)|lSAJHUdZhqlS=nVoyT z^Z)<-?*IM&ox!l+2)CPOKYj8+>+rB?<2P(BOj=WRsse+TgLd*9kYqGguAnc9-3|+! z#K9-aP%au9f`yl3*a6J6bt&NmFf8b#Vl~xg<>+nY7M(fBGRMMN%$Y2esb@1eR-eJq zoZe*4&eT&Tz)@z>M4C-TxE4{Rgd67zM@vsFYM>UP#jXc4i-Ut+QCLk zHiN~%afXs~=z`s1pxJJQwp%&LMpKztEV3xnz5jOoyp8gj@IPLh$lOnTt;{}VL-UQ! z_@?8r$vca7cQzFR4`X*rXyvL}mZfF7q860Ub~l*YH>aGyaT1WVz~iE28%RTW-`O?c z7)eCX=FBPM?vTZPJ@K3#~V0lboJ5aT)1=F&b&g z*f&uwMsUi!)6L7Jvw&<9Si!s9u9nDWMVAPd7TnS-rAy#S`fiP~Gfmkb%S7oJONLpW zkz2>rR>4vX7+F$T zMZf^4O`$I1@fPj7$Q{ti{{srp^Bo*Wz6`Kpi2qVI!EPm3#DCZ20tQ8DXpBRlMO?&h)X!VpA3H^qqU{zbwRu2$n^b9 zZ*0ptR=v_k$^IQv`j1_wFq{794~eJ$QoZuk)5hP{|La8B*U^@$xT`h4o6&xCLc!WO zt+KZjimbp1L|PWaB6L94vQF9o7}&u}Bo|8qqevCYT126oTQu%mH}HH|mgY^5W1RaB5G$q*QL zWCV_XqgIg^8HQ$q(M(OK0?WyGG#{;wA%|&#QZ%?4Uv+bl3fE}iI3OU97)6dm24U)9 z>PY*PKR*+HB&K@epHe{Pj2}Qe1iyHwVO&C$+xeuX zE_`dz)P@zOQr=Fg`*r8Rs~%zj?t*IA;T@+aqUus)K>35(*aWd3Ez*%NUDEsy>iQ`X z|M>aOo<025g+(pf8wW=m80 z%KOczS288#&JW#>Gol?)MMENjY!g0yA;~-}vnS>4`^Vk6eRpm) z^9_a%+FqV+nEvsQSS|d13~>ko2b(P1!P!{!riB;!c6tC`#a>)SxXO#;@IO-KSQ!nJ zYdn0OmPNM{!vYaJ7{-i*Pc%;Vxp~LqaGw+Uj~u`lHU+fw#Tm$W%ztU$PfUEN1Af#7 z1;JHS@7&*7L~5zgkyv6LhLuBziWwh7e)-bk=}WHFef{XxaANG|SKl1DC6zj+qsCHr zJ2WF~kniMjJP$i}t*z|R-uRBc8p?833{O8&dZs~TJp3Frlu}`piXn8!!`3~37=f$v ze9k_s9AavfX00E#rkol=1*o;3=)8+~?N&obqYaLk)B{yQC@?&9v27Ki;;6bgAw?Xf~oSZ`jCAofW=#ixOI{Q!$^2DGjAD?TLMr|?Fl<1es( z!KL~Yia-AUjH8s8H&Fq>tq$&;ZyVGzyuB;mc}Vwd_o!rQ2u^e!fq4th!(huqVlD5e zMqR&>{zdMbk6s@7-rBaPD{bv@^!P;q(0`~(v%IC-R*e-xEJCe4`wu^CF2o|W!Lj4} hU{T?r7Pb#I44ZSHx(^oJi;o(cOGQvIebzmZ_ix5{cH#g4 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/composite-manifests/init.mp4 b/wai/live-conformance/c2pa-live/composite-manifests/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b556ec37512d925cb9677cf65189899206df49b2 GIT binary patch literal 3953 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 SQy%HiHBA^#Z(-!0R{k&K)Q^(@ literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/composite-manifests/seg-01.m4s b/wai/live-conformance/c2pa-live/composite-manifests/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..cd7308605a4fc3d805bcba6b904cadcf0c074328 GIT binary patch literal 6137 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 M(}vdt_k7F$2d}X1vj6}9 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/composite-manifests/seg-02.m4s b/wai/live-conformance/c2pa-live/composite-manifests/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..9cd410b9167bcb30e75305a8ba1f3171cbfd07df GIT binary patch literal 5932 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 Lqqi{fFDw5Sy77{d literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/composite-source-type/seg-01.m4s b/wai/live-conformance/c2pa-live/composite-source-type/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..2ca3a22be5cd1a1afbfd6d7acd005d725d122fbf GIT binary patch literal 6135 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 L+v}Wr0VV$fK%(x5 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/composite-source-type/seg-02.m4s b/wai/live-conformance/c2pa-live/composite-source-type/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..82c77f21707a55c7cd7bf8a5be7c3a2166d18c85 GIT binary patch literal 5930 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/init-mdat/init.mp4 b/wai/live-conformance/c2pa-live/init-mdat/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8d81de9fb157cfe005ecebc5b19e48ed460e6955 GIT binary patch literal 3257 zcmcIn4R9036~5ES28=PJ7;pjGatub;NIFTUKZvOv2sQ&Wv=A`h*j?T3S!dsma(9wN zngI(lEhR7vX)|dX_t*6%iJS}+Q9!yuXtRvE-Wrp`m?^<6aK}?js)M3NoiwHD z(o*tZshFnBCX%yx4nS|%4;(@OdK?@FSqE_Ypd;+&p}+x_7d#<67egi^lg><=1N!GC zbpl;Snjxx+j^*flQ=uxQ5LUI%D@1@EafW3Ti0waQ4B<_1M3<0R0kp&G5Hr7zqAGJ8rL_q{$2|0AsA|u6ch>D<6 zruqDgMI`Gjcwzeo1#j3`06rBtXWT;~ksy)S(_(feyM#0)5y+gphJbg&TaS&|Icxo=_3o?Z z{#Nzdy5|=iTJlrhvJH=&*>rSfCqhw`k4&L*o91mQ>!Xka!bsX9s2X0ELL)p2-DAN2a%;egxc?UE_m$lJF zU2IVR0U@zON0LxZ>TP*#b7Kyt^V=GNJ zm@?{vWAKG#IXw%?`|j9(G5ORHp$G1}TJUPg@vX|c~!ZzmF~RSWTA6MVmc>h1T&2-CISW4iPl1C!C&W; z{;Ft8?VDA|x9HLOJCmz!r1i^*en(+J-;dft=TDZ;dgrZrOK@NJ;?D7NGv3xxhd1W; zp1Q(}?tIx(wtmYelaBmw?c(D7t^V7e$U8qpyC0r&edY6`O5M&=>#A?v+j@B1j^?_a zXL_p+*$=;T>)?k8W)&U9Xh`@gF%hw35P6{ZVQeC*HVhVC0!#*)FM)0rBBgg%T=>>2 zKRerWZrAa#6HX;hyj#}YciNToAxmh6}HliuW z%#bU`Vt2Vo@`UDx#^*)m{$aH}G|@K@@=Ne_Pl&&SE04GVn!L2cO-Z9n+4nEzEQsO#qYiJ;?&nppTGLA z%A^e4E)!`d!@!OPF4#8+s@&y`?#wJ#NG3fR6doLhdIkHZ|-PjM`CK6ZW!e8 zoGF;sQ~xfQ9fg>GIx}dtScX@#`s{KXB`|Npk22DdLi`%)TcwO2%BeFJAGbE3;94|9 PAc;={@)EU~@7n(Y|6{m` literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/manifest-malformed/init.mp4 b/wai/live-conformance/c2pa-live/manifest-malformed/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..afe18155e51f7671ac21001efdd7ff42743bc3c8 GIT binary patch literal 3215 zcmcIn4R9036~5ES0*o=F7;pjGatuabbUI0=KZuDP2sQ&Gv=A`h*j?T3S!dtrl)IBG z+6>s3NhyJ0$j_t=fq)5afrfTEP03)==EwXb<3gd7hE5WgAsNV&LZJyQQwF*#oov~0 zGfXF4`EK9aeednt_r14!rYLH%Xsn3|iYQRHkzUeOKS*$Hiprf7k4x~wyYHQwlwbSM zb1&67ez>-$oyaL5Dv3xp2yM0z*P7!>7&FDVhk_>ts0XMqZ4|Yi3T}UjNexich!dt% zO7VDvxwv@fd|kV_5-IFfF38$L(U1@KIja)1t{`>6GTr4uf>qX$fDEJ=79c{ zMOmQhNHZigs$)4i&s3;LDTGz+s|pdIN7%3;ifqD*RjBg<7TY5Lxk=O`z~l2nB2j0* zThL`WGA|+SU~7&#-@CV`x9p)0XCFVbY)XdhC2&}3#xuU357gUIJmnpBOYodgGDl9SFr#Au@@wHO$>u+DjoBgps^kR5iS>D2?zcLQ8U! z*DZv6f*%Mz4u+sd2#6xj2fc0-gggp+!eKuj2>JLhKs*cyUZ2k!^zc6D4hF-5ClvJJ z#P;!lpqKY@e!t)mMFc_+gn>uoMd(8a@F5U(hY$=RA?WqF!vVL?E5Lw1Ao_zM$MepF z1d-}=a?PTo=|+vF#$!}-%DZY=0y<4mmQ!ZjrlsQM5##}JOQR+ONnsPDm@KvmUGo>LUjC0wKU#OSa$)V&RUi8>&E{1Z?$xNRyX6~{^Z52 zX$047YE9!i^@Jm9Y$K<4OoW)mq4nx8+vYXe-@urNKhmhGRM>XBabuDrq7X1@P!ttGg(Yf;D8IT>%OsY4s` zdQM(uMs~dBDP6bu^9hHaU$dxaU$g(#=gN*R(5?q(Ut96wh!Qt@a&6_!yIT&8+1^;w z{d7;oLC2w2Zyxw0$*iPf7!4Ue#U>(_3?laxKa5R8)rP>rOMuBh^FN@Qg-FSr<>$Zi z`cKa^oZWeB^thAl$3H0Ts=s-D*q6N@y}4=2ldXFM4sfIU0LkGPjKn}pXj@juhm2?n zGBf1SqwzcZ1Z7;~17mX|bAG?d5gPC75BbG?)35#Q`eSW@H^%$~eA)ip12;eV)aLl} z!qclG+KPQ~ZOhixkDqya)TiA`ayFOm4a+pMB>A(ROJ_&!+-CpX#9ZsHTXj_zJ;kT* z{PxF>{;6m=6Mt^@>ui46jqcZO?<}xZmrpCDau3^9y_3In&f8@>UVi4)mnXk@>fDuo zE-U}_rET*LJowp>$~=5m)G4Z(z(po2i3r4fcKddU!50wz>u&=XJUoc6>X#gfvS5WH z_;zc-ll4YRYE33faFDgHnHeNmMMTMK3L)q^1(!D_>#(72ZoN=Ey@@_NwWT!SBL*_wZ05NVw;=Q+ZTwF6J!1xUs#F8;+?lx?zxy q=S;)Ap89ve94Ns2_cN1bk7WckYs{e}P!jWY{82`F(uiLJeESbU@2S54 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/object-receipt/receipts.json b/wai/live-conformance/c2pa-live/object-receipt/receipts.json new file mode 100644 index 000000000..7d0e0e970 --- /dev/null +++ b/wai/live-conformance/c2pa-live/object-receipt/receipts.json @@ -0,0 +1,262 @@ +{ + "groups": [ + { + "kind": "group", + "track_alias": 1, + "group_id": 0, + "root_hash": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:00.000000Z", + "group_end": "2026-10-20T11:00:02.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "f6e30f65fceac9b6ada8dcac2cc2570dc0f995a47510f1f8a9b059df4c8078cd22f9dcadcfe9b6fe63e09cfb66456ee52ec95d888eb9ee97da9d7d9401ffd502", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:02.400000Z", + "group_end": "2026-10-20T11:00:03.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "726b6d73a220c9145b0dc85ef8b8f165d1dda249b61dac2f4e4182da953c5d7da1d05fccfbacdf4f16831898a019386175216a80f0bb61f65e1f66f8799bc80a", + "parent_receipt_hash": "351b15632022ea1de17b0625f29e1b5da5fd1f8062f08e2ac71592a3a06ed278" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 2, + "root_hash": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:03.400000Z", + "group_end": "2026-10-20T11:00:05.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "efb642334c4f1bd9e314cfa40b7ebad09b0a1bcf2755f9f53aff673d05c9e6b29447da8fd211ef0f7688f5fd66dc124b4a46f9ca6b41c92d04577c7239066004", + "parent_receipt_hash": "34fc9a08f1f5be49823e319385542696b4d388088d0117b8823a58ed6aed811f" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 3, + "root_hash": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:05.400000Z", + "group_end": "2026-10-20T11:00:06.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "0652205c00a64d57cf0e33d358c22319c3bb39e37d3d3a6186241bd9a35a46e040024ec8c5c7c17fa4c0ee3135bb229e7a46708651cf4b225266ded20b21bb09", + "parent_receipt_hash": "6bea20c763d58218a72402e7d6d75ef9db460b3c62258b26e1a49762800c9516" + } + ], + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 0, + "content_hash": "ed3e285f8b0590025be3a310fd384642973f7ab4cc2531ffb3767dc65decbc87", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "84bd9285e1a79ab4d31fc47abcc3d4d7385c4ee38be89090f67b3d0da066fe03", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 1, + "content_hash": "c3c0621e9c77910ba45e7c7d6060ca3baa48454877a3c2947c1327f0b5042960", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "476483f91e3ae73abe1fa7137178680a3350d30a86d619ccde04ce7b9d4672f1", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 2, + "content_hash": "313e889ebc1aaa08f347a248bae963fdb3ce7cb1ebffd13a0ea862d4833184de", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2212db8269bac3d91fd34abfda366d918d848c5d0b1f5b900b1421d22cbe0225", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 3, + "content_hash": "c9b87a65ceabd21a394a62f0b27677207fa40002294635bc4c19235dfdae2b35", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "b760b6cef18489c4db7a83675f09424498848a4e93f112700ac075dbb1ff05df", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "d26598db3232eabc5dd6f8e733f3c684a4ec2b7974b185d88ac3bcd3c020e167", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "0bae05deca890dcf94db748d801465bb0b62247cf070cd34016ed810b7b5e3b8" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "56421ee48deb82f5692315209c0be565c75fde7531c924e68ee0159515de135b", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "d22a0c40cbd68fa52e6afb9ecb920e80fabb689963214e037059b2c45ecfe151" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 0, + "content_hash": "7032e9f88dc8b7f736553b7a9c7236669833b4e633ca24d28ed5c839b692b716", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "5e4b0d6ce028d04f28ab23761ce1f3b0f3f5e4d014f4b4f9b2fdfbd9a6994a00", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 1, + "content_hash": "07508165a8199e0362b74c498999eea3b023cb67f89b663250ab0677dcb47966", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "df44809333587e5f04510b40dd099829f3214d783044dd56a5683f56a4a5dafd", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 2, + "content_hash": "b20995ab22a57bc11cfdc93867ba34e004a038fa39b8517e7b09354f9097e1cc", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "afcffc4feb8366e461d33125a05a371ffeeb6d52e8a66f823cd7682788ccd6fc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 3, + "content_hash": "c4156696922509b57ff04f290a8f880b2c7f9c567d72ac7ef8aa1dd4a3f9702d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "f0be86f54fbf3a67c5ba7b56d3efb346e7efc1dcd75eec634be99ae33afd52bc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 0, + "content_hash": "14400b38229ea3c7ba3a9df42a9ad39cc3a9d9a26cf086d1474237e3aaa4f0a3", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "1dd9e51b1130f7abaaa90a130e278f4a85e62f423e0ae95cb122a6b77cccd9f3" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 1, + "content_hash": "70dee7a8e6962e9ea7e80b4b8591bf565799fa0b835ad5e4933fc6ffcf83a81a", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "8fe3347c01ade8ed1f58502398c60ab6b8cc6b68017b2632bde4fd3631edb286" + ], + "direction_bits": 1, + "leaf_index": 1 + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/provenance-missing/seg-01.m4s b/wai/live-conformance/c2pa-live/provenance-missing/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..865e9e4ad7210d64f1a947d5721aec5506a935e7 GIT binary patch literal 1077 zcmZQzVC2co&rf4uU=YYn%SZvzAixU5UrLG+!Qv$#aVD@hBajp+NlPgKF`&Q(NS`Pv zD$QeHU-vF?SH?$lx9|ccyF%kEFGh53P$Qij1Pdy zm@|O>c5PsEU^xHee%Vpgh?AlD!$z`ukfhA)+;&YzFukq2tzVq~ef zhR~P;6ygRt>=(j#kPr{hUG@l789*Ukpu5}=sz5?~sO|zfkl_NB#K#5{-$7*J^9HKz zK}vj}sJj8gphSio!N>_t2PvT-i&MfDg_`*Slz@O<1Gz+-I98y3Attt}D{!?e z3=u#vVHS>4Kaj)%fMOyX+)_4ZVxj`PNhxSzVhsMPdeFqgQQX7A5MU&1B!On{J_i85 Cv!kp4 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/receipt-forged/receipts.json b/wai/live-conformance/c2pa-live/receipt-forged/receipts.json new file mode 100644 index 000000000..1347e3051 --- /dev/null +++ b/wai/live-conformance/c2pa-live/receipt-forged/receipts.json @@ -0,0 +1,262 @@ +{ + "groups": [ + { + "kind": "group", + "track_alias": 1, + "group_id": 0, + "root_hash": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:00.000000Z", + "group_end": "2026-10-20T11:00:02.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "f6e30f65fceac9b6ada8dcac2cc2570dc0f995a47510f1f8a9b059df4c8078cd22f9dcadcfe9b6fe63e09cfb66456ee52ec95d888eb9ee97da9d7d9401ffd502", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 1, + "root_hash": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:02.400000Z", + "group_end": "2026-10-20T11:00:03.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "736b6d73a220c9145b0dc85ef8b8f165d1dda249b61dac2f4e4182da953c5d7da1d05fccfbacdf4f16831898a019386175216a80f0bb61f65e1f66f8799bc80a", + "parent_receipt_hash": "351b15632022ea1de17b0625f29e1b5da5fd1f8062f08e2ac71592a3a06ed278" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 2, + "root_hash": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:03.400000Z", + "group_end": "2026-10-20T11:00:05.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "efb642334c4f1bd9e314cfa40b7ebad09b0a1bcf2755f9f53aff673d05c9e6b29447da8fd211ef0f7688f5fd66dc124b4a46f9ca6b41c92d04577c7239066004", + "parent_receipt_hash": "34fc9a08f1f5be49823e319385542696b4d388088d0117b8823a58ed6aed811f" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 3, + "root_hash": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:05.400000Z", + "group_end": "2026-10-20T11:00:06.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "0652205c00a64d57cf0e33d358c22319c3bb39e37d3d3a6186241bd9a35a46e040024ec8c5c7c17fa4c0ee3135bb229e7a46708651cf4b225266ded20b21bb09", + "parent_receipt_hash": "6bea20c763d58218a72402e7d6d75ef9db460b3c62258b26e1a49762800c9516" + } + ], + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 0, + "content_hash": "ed3e285f8b0590025be3a310fd384642973f7ab4cc2531ffb3767dc65decbc87", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "84bd9285e1a79ab4d31fc47abcc3d4d7385c4ee38be89090f67b3d0da066fe03", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 1, + "content_hash": "c3c0621e9c77910ba45e7c7d6060ca3baa48454877a3c2947c1327f0b5042960", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "476483f91e3ae73abe1fa7137178680a3350d30a86d619ccde04ce7b9d4672f1", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 2, + "content_hash": "313e889ebc1aaa08f347a248bae963fdb3ce7cb1ebffd13a0ea862d4833184de", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2212db8269bac3d91fd34abfda366d918d848c5d0b1f5b900b1421d22cbe0225", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 3, + "content_hash": "c9b87a65ceabd21a394a62f0b27677207fa40002294635bc4c19235dfdae2b35", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "b760b6cef18489c4db7a83675f09424498848a4e93f112700ac075dbb1ff05df", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "d26598db3232eabc5dd6f8e733f3c684a4ec2b7974b185d88ac3bcd3c020e167", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "0aae05deca890dcf94db748d801465bb0b62247cf070cd34016ed810b7b5e3b8" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "56421ee48deb82f5692315209c0be565c75fde7531c924e68ee0159515de135b", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "d22a0c40cbd68fa52e6afb9ecb920e80fabb689963214e037059b2c45ecfe151" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 0, + "content_hash": "7032e9f88dc8b7f736553b7a9c7236669833b4e633ca24d28ed5c839b692b716", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "5e4b0d6ce028d04f28ab23761ce1f3b0f3f5e4d014f4b4f9b2fdfbd9a6994a00", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 1, + "content_hash": "07508165a8199e0362b74c498999eea3b023cb67f89b663250ab0677dcb47966", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "df44809333587e5f04510b40dd099829f3214d783044dd56a5683f56a4a5dafd", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 2, + "content_hash": "b20995ab22a57bc11cfdc93867ba34e004a038fa39b8517e7b09354f9097e1cc", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "afcffc4feb8366e461d33125a05a371ffeeb6d52e8a66f823cd7682788ccd6fc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 3, + "content_hash": "c4156696922509b57ff04f290a8f880b2c7f9c567d72ac7ef8aa1dd4a3f9702d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "f0be86f54fbf3a67c5ba7b56d3efb346e7efc1dcd75eec634be99ae33afd52bc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 0, + "content_hash": "14400b38229ea3c7ba3a9df42a9ad39cc3a9d9a26cf086d1474237e3aaa4f0a3", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "1dd9e51b1130f7abaaa90a130e278f4a85e62f423e0ae95cb122a6b77cccd9f3" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 1, + "content_hash": "70dee7a8e6962e9ea7e80b4b8591bf565799fa0b835ad5e4933fc6ffcf83a81a", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "8fe3347c01ade8ed1f58502398c60ab6b8cc6b68017b2632bde4fd3631edb286" + ], + "direction_bits": 1, + "leaf_index": 1 + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/receipt-missing/receipts.json b/wai/live-conformance/c2pa-live/receipt-missing/receipts.json new file mode 100644 index 000000000..6b7b61a91 --- /dev/null +++ b/wai/live-conformance/c2pa-live/receipt-missing/receipts.json @@ -0,0 +1,248 @@ +{ + "groups": [ + { + "kind": "group", + "track_alias": 1, + "group_id": 0, + "root_hash": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:00.000000Z", + "group_end": "2026-10-20T11:00:02.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "f6e30f65fceac9b6ada8dcac2cc2570dc0f995a47510f1f8a9b059df4c8078cd22f9dcadcfe9b6fe63e09cfb66456ee52ec95d888eb9ee97da9d7d9401ffd502", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 2, + "root_hash": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:03.400000Z", + "group_end": "2026-10-20T11:00:05.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "efb642334c4f1bd9e314cfa40b7ebad09b0a1bcf2755f9f53aff673d05c9e6b29447da8fd211ef0f7688f5fd66dc124b4a46f9ca6b41c92d04577c7239066004", + "parent_receipt_hash": "34fc9a08f1f5be49823e319385542696b4d388088d0117b8823a58ed6aed811f" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 3, + "root_hash": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:05.400000Z", + "group_end": "2026-10-20T11:00:06.400000Z", + "signer_pubkey": "7772ae8959f2a940a9f4e895d8ba7cf958632cb3ad7f98625c25b5a86fb21d6b", + "signer_id": "corpus publisher", + "sig": "0652205c00a64d57cf0e33d358c22319c3bb39e37d3d3a6186241bd9a35a46e040024ec8c5c7c17fa4c0ee3135bb229e7a46708651cf4b225266ded20b21bb09", + "parent_receipt_hash": "6bea20c763d58218a72402e7d6d75ef9db460b3c62258b26e1a49762800c9516" + } + ], + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 0, + "content_hash": "ed3e285f8b0590025be3a310fd384642973f7ab4cc2531ffb3767dc65decbc87", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "84bd9285e1a79ab4d31fc47abcc3d4d7385c4ee38be89090f67b3d0da066fe03", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 1, + "content_hash": "c3c0621e9c77910ba45e7c7d6060ca3baa48454877a3c2947c1327f0b5042960", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "476483f91e3ae73abe1fa7137178680a3350d30a86d619ccde04ce7b9d4672f1", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 2, + "content_hash": "313e889ebc1aaa08f347a248bae963fdb3ce7cb1ebffd13a0ea862d4833184de", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2212db8269bac3d91fd34abfda366d918d848c5d0b1f5b900b1421d22cbe0225", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 0, + "object_id": 3, + "content_hash": "c9b87a65ceabd21a394a62f0b27677207fa40002294635bc4c19235dfdae2b35", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "b760b6cef18489c4db7a83675f09424498848a4e93f112700ac075dbb1ff05df", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 0, + "content_hash": "d26598db3232eabc5dd6f8e733f3c684a4ec2b7974b185d88ac3bcd3c020e167", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "0aae05deca890dcf94db748d801465bb0b62247cf070cd34016ed810b7b5e3b8" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 1, + "object_id": 1, + "content_hash": "56421ee48deb82f5692315209c0be565c75fde7531c924e68ee0159515de135b", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "d22a0c40cbd68fa52e6afb9ecb920e80fabb689963214e037059b2c45ecfe151" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 0, + "content_hash": "7032e9f88dc8b7f736553b7a9c7236669833b4e633ca24d28ed5c839b692b716", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "5e4b0d6ce028d04f28ab23761ce1f3b0f3f5e4d014f4b4f9b2fdfbd9a6994a00", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 1, + "content_hash": "07508165a8199e0362b74c498999eea3b023cb67f89b663250ab0677dcb47966", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "df44809333587e5f04510b40dd099829f3214d783044dd56a5683f56a4a5dafd", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 2, + "content_hash": "b20995ab22a57bc11cfdc93867ba34e004a038fa39b8517e7b09354f9097e1cc", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "afcffc4feb8366e461d33125a05a371ffeeb6d52e8a66f823cd7682788ccd6fc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 2, + "object_id": 3, + "content_hash": "c4156696922509b57ff04f290a8f880b2c7f9c567d72ac7ef8aa1dd4a3f9702d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "f0be86f54fbf3a67c5ba7b56d3efb346e7efc1dcd75eec634be99ae33afd52bc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 0, + "content_hash": "14400b38229ea3c7ba3a9df42a9ad39cc3a9d9a26cf086d1474237e3aaa4f0a3", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "1dd9e51b1130f7abaaa90a130e278f4a85e62f423e0ae95cb122a6b77cccd9f3" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 3, + "object_id": 1, + "content_hash": "70dee7a8e6962e9ea7e80b4b8591bf565799fa0b835ad5e4933fc6ffcf83a81a", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "8fe3347c01ade8ed1f58502398c60ab6b8cc6b68017b2632bde4fd3631edb286" + ], + "direction_bits": 1, + "leaf_index": 1 + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/receipt-signer/receipts.json b/wai/live-conformance/c2pa-live/receipt-signer/receipts.json new file mode 100644 index 000000000..71013d2bc --- /dev/null +++ b/wai/live-conformance/c2pa-live/receipt-signer/receipts.json @@ -0,0 +1,327 @@ +{ + "groups": [ + { + "kind": "group", + "track_alias": 1, + "group_id": 10, + "root_hash": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:00.000000Z", + "group_end": "2026-10-20T11:00:02.400000Z", + "signer_pubkey": "4ae5f950c862c6f33f7bb93849fcfb198d87421660fa5ab5e71c0548abf7983e", + "signer_id": "corpus publisher", + "sig": "84df449899ed40a12e7d03c9ec84a37d3e9102d53ddeed19ebf8d9eecad4edb89427f7eb4a34cffda0417a2ffabef2617dd626be82eb3a02fa92623bda3e240d", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 11, + "root_hash": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:02.400000Z", + "group_end": "2026-10-20T11:00:03.400000Z", + "signer_pubkey": "a8c27d61a29c34ff447794561bbbd5eb9ff4c6cd7f75989b12e9e97e34645520", + "signer_id": "corpus publisher", + "sig": "e5ee49fee1fd989c5e1c65ff294dbe0711cccbba89e381bd4af7066f4779385e32fd235f63199c9f31dcd994bdd8bfdba4f7c80cc248f95904a5823091adea01", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 12, + "root_hash": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:03.400000Z", + "group_end": "2026-10-20T11:00:05.400000Z", + "signer_pubkey": "9e5e5a3320bc06913b2cd5b938c59fe79ad4d89015467b16638a41a464719557", + "signer_id": "corpus publisher", + "sig": "02b221bcdcefb2977d2c5d6db6acf971aa1137524976d84f6674af4d2a8ff044cf2eb905d0d730a0422d5a0c53db6af8aa556567e1ebdb022ed22620112fcd0c", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 13, + "root_hash": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:05.400000Z", + "group_end": "2026-10-20T11:00:06.400000Z", + "signer_pubkey": "9e5e5a3320bc06913b2cd5b938c59fe79ad4d89015467b16638a41a464719557", + "signer_id": "corpus publisher", + "sig": "dc2f2c66935d91c8b4dc1f3922670cd0966fec281852bc1d31161b1365bff8a714f9785e17cff3db17e51652b125a95685eff0777052cd924ea9faf64c3d9501", + "parent_receipt_hash": "3899aa43e23adcafb061e18f011c724107eb054da674322abf859f51cbcf9e8f" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 14, + "root_hash": "54a6deeba8e5e8e4a3b6e5d53f6156408652c1f9fbdb822ab22fe0b8ecb959c0", + "leaf_count": 3, + "joules_total": 0, + "group_start": "2026-10-20T11:00:06.400000Z", + "group_end": "2026-10-20T11:00:08.000000Z", + "signer_pubkey": "9e5e5a3320bc06913b2cd5b938c59fe79ad4d89015467b16638a41a464719557", + "signer_id": "corpus publisher", + "sig": "e39cb9411567ec6d234350a11db255c55ed9b177032cd9b1538dec5290df58e206bcc43137cc9b33532aeed7fbc45d416f8a5f569ef2c5610c6a95552d3a6301", + "parent_receipt_hash": "b331689118cb8ea170eb38a414fa9fee995adc47e50fce629a809d264a0c1c54" + } + ], + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 0, + "content_hash": "ed3e285f8b0590025be3a310fd384642973f7ab4cc2531ffb3767dc65decbc87", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "84bd9285e1a79ab4d31fc47abcc3d4d7385c4ee38be89090f67b3d0da066fe03", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 1, + "content_hash": "c3c0621e9c77910ba45e7c7d6060ca3baa48454877a3c2947c1327f0b5042960", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "476483f91e3ae73abe1fa7137178680a3350d30a86d619ccde04ce7b9d4672f1", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 2, + "content_hash": "313e889ebc1aaa08f347a248bae963fdb3ce7cb1ebffd13a0ea862d4833184de", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2212db8269bac3d91fd34abfda366d918d848c5d0b1f5b900b1421d22cbe0225", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 3, + "content_hash": "c9b87a65ceabd21a394a62f0b27677207fa40002294635bc4c19235dfdae2b35", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "b760b6cef18489c4db7a83675f09424498848a4e93f112700ac075dbb1ff05df", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 11, + "object_id": 0, + "content_hash": "d26598db3232eabc5dd6f8e733f3c684a4ec2b7974b185d88ac3bcd3c020e167", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "0aae05deca890dcf94db748d801465bb0b62247cf070cd34016ed810b7b5e3b8" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 11, + "object_id": 1, + "content_hash": "56421ee48deb82f5692315209c0be565c75fde7531c924e68ee0159515de135b", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "d22a0c40cbd68fa52e6afb9ecb920e80fabb689963214e037059b2c45ecfe151" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 0, + "content_hash": "7032e9f88dc8b7f736553b7a9c7236669833b4e633ca24d28ed5c839b692b716", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "5e4b0d6ce028d04f28ab23761ce1f3b0f3f5e4d014f4b4f9b2fdfbd9a6994a00", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 1, + "content_hash": "07508165a8199e0362b74c498999eea3b023cb67f89b663250ab0677dcb47966", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "df44809333587e5f04510b40dd099829f3214d783044dd56a5683f56a4a5dafd", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 2, + "content_hash": "b20995ab22a57bc11cfdc93867ba34e004a038fa39b8517e7b09354f9097e1cc", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "afcffc4feb8366e461d33125a05a371ffeeb6d52e8a66f823cd7682788ccd6fc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 3, + "content_hash": "c4156696922509b57ff04f290a8f880b2c7f9c567d72ac7ef8aa1dd4a3f9702d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "f0be86f54fbf3a67c5ba7b56d3efb346e7efc1dcd75eec634be99ae33afd52bc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 13, + "object_id": 0, + "content_hash": "14400b38229ea3c7ba3a9df42a9ad39cc3a9d9a26cf086d1474237e3aaa4f0a3", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "1dd9e51b1130f7abaaa90a130e278f4a85e62f423e0ae95cb122a6b77cccd9f3" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 13, + "object_id": 1, + "content_hash": "70dee7a8e6962e9ea7e80b4b8591bf565799fa0b835ad5e4933fc6ffcf83a81a", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "8fe3347c01ade8ed1f58502398c60ab6b8cc6b68017b2632bde4fd3631edb286" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 0, + "content_hash": "9513817d3f50ea722639343dcc52b1919677ebbf90a269b4202af216e63a2d80", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "4b215fc705ff8f7283d9d8a278bdcb14465d952c871e22748edfa35ace8f7993", + "2ec5cd1f3d701bd4dd6ddb31e8cb3a27dd0ff54ec3a66b91d2e9bb996b6ca883" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 1, + "content_hash": "dd2ff276ca81c40d2152c7bd76e03c28e9d356f20157f1f1af28248aeab6e261", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "6a3fdf96c6c86ba1e7c5b97ec0b966b1b221dcf2f4569589b1c0d927955b3f26", + "2ec5cd1f3d701bd4dd6ddb31e8cb3a27dd0ff54ec3a66b91d2e9bb996b6ca883" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 2, + "content_hash": "287cf5dc07c0ddbbca276149a450e84da9b01d4f26daad93c9061ffbaf93e61d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2f713e57cb5e7d69741ceeb374bebd00450d9f233b95f00e3c7ad935e15478a2", + "389e3783984727b17412c2965c5e97ef01b9225dbee3b3200922e2ae9e83ff56" + ], + "direction_bits": 2, + "leaf_index": 2 + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/segment-truncated/seg-02.m4s b/wai/live-conformance/c2pa-live/segment-truncated/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..9799e56fb24de28308141a8f59ddee403338a170 GIT binary patch literal 5522 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 Il?HDA1FW4@Pyhe` literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/sequence-mismatch/seg-02.m4s b/wai/live-conformance/c2pa-live/sequence-mismatch/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..5e13180894b00b2e0b054909b649633d4e02326c GIT binary patch literal 5523 zcmcIo30M=?7M?6D0wPpo2?9Y-5l9#Y0s%J^MNm}SaRHfRW$JvnYDtZ?)TAt&(hNsXgcmHtgE@!*6>@^XgcBA*1ar`!upk~5 z6ei>ed0;KZQk}a&o$gTO2a9r1r4lDqV!2ES3}}6I27X!tft>u%AQ@FAa|Kd@;HCxv z6X<~usO=V_5)q+H2Dm~nN+X`VHRVem3rYFQl7#EzHz&!x{Dw`=Z_oR$I>{`|_Mkl( zJr7S4O4Lef<)uX!hN{raB0Lq9sPVYJ$CQv0gc4U-;%N$0m5c{aao_oVLa5ReT@xum zqQ=hRJ-ecoij!hOj0z+;M~RE1xJ<w6`3?DGCM^&VP+B0Ig(Hma)l(0s&Fg?6N|(uR5C@bCWZLabOoL^ zG+Cumga-r&Q@LV=O30Oyq5v7bKq-`CxH3Seuhi;;t>f<{k*GqYCULNCvkoY1nnZ~> z6;BmoxSXqt1ci5>mdRwL3P6*_U}@e0kVXiK5uD)AP(FuG2v80`6ec(*p9l`Zg@J)6 z68N`3St^8bnMy2Ei&g34aaFP$lWVv8z9eEWQbB^H3@AanNZ@7{8>UNa%5JCUk0rz%q5@>8TID#5Pbx;Rt zp&~-bhb1MHpkirf(l8JT+8%>)5-Y_b8A?%`HeQKK2rtSXF*JY*Yd}}rKBgmRO}Jg| z=80uW6$;`MGb+tLO{xeNi?NUDETk@X=jwaM(juXnl%ys769DyII{_Ou99?fI$q5J; zeYj%S3hDO68`_6P`is-wKD|;RIy*=*RZ*W&-H9gg-$0`;aUGTs-(OgiIsTDbv!v}w z1g7@=q~lpx)QS1UE%ClhWob>TJF(#Z29^)1SO@8jGQMgjxS57VCOnH^j zapdPJ+Q1&Wdxo}-?Sv%xhavsfs?#B>@Lb?q9d&ACejP6IwA=MCre9p^svBj?-EYa? z4RnrmRcT9Mt_YXmB&w2=bEyVhgvn4TE(8@kU#Y-_({YmeYTyVrmuE}hA+E}{)|_RN||TMcK?a=|^ckU^)>=`;pxX3p@#6)+sgh5gML z)0hmK{xe3zu&IEv6{I{Bmr;eoR)LQ^TP#!Iq!h=*pr6C;PCbzjI1v14uUTLkYA}U; z1AX8DogO_*dZgguBQiTZJ{$3f@35oi2x-nfy`uULLhI_3AS5_yaHOH@I!ah8`Y) z-1>~6&)=;)W|u#AOx2=lzXLwUc0AvAH;plqrT}b6!0oPMg#Mn9kBT4QCRt8)!$lB9 z%zJA74|WY0@pv=+)};M=uO?pGexX;N`plY(p2c&X-?C`0yK_8eWx|48LKua6brE6) zGXN9DoY2e-Lf&mewUp^XE<3M&6YM1IGuOViRr0X!X8D9U^7J8ZDjn4J_{juK=ux{Z zXnW@5eb4XwV(xQe+?CnMfg?%ksl3H!rDJ7B^wqfWxiFD_z2$9SVwE zx$a_pdF0sU*?9&2fi62@>i%rYMf0Mw;|I4jbhIf}obp?EsQkS3I@#HQ>0aT{nlUfx z`Xpp*I=biH-CvgQk7QR3r4`%r&OeL(=4qMWvzrT))pPqnEjB-hmb11zPW)D`jPK6kAKyM9=ily}<{zNY)P1Ec)HNkoRembgTpG;PO7poV{O2+*~~>cCVi} z{Ky-&+0&+yvYO|~{cU|ly|kOW=+ZZ9Z?xC&8{&d~FAJ)eeRj08;Kb4cf@{*sb4e`p zoRD+5x$vGV+C01FV8JYYR7yhMwYgR?jl3%he!hLi%FcPsvG8}Id;U#@9nGcqw7gO3 z*R8D3j^?7K>=W1DM*2nk&^&2E@<#l0yH$>t+1r8z3F|)_y=2njgqyxkE1k-(v2(r{ z%t)o7M_o7}VG|#{P2D*wBxN)uOHTXuhvMZVt~^K~1Jyu5*W#(Ryh9lUIF z-ijcXb%9S`hh2X-9Kp>>CycZ2ShQ~8uO~|iY)^h(6!Ry&b_F?Wx#yHTepQUP57GbK zIhY6=UjhB-?6yCxB^LPvW}MbQkojeh8{nydHfJMjm`MW_rI+2AlQQ4)crULP-mID5 z^4jcxl{wu~W1x|vK|EngW=}f<+2!(vosf07>!{rVKTWG&*>S`kwz9M@jL7pdeKGBZ_&!fiz7}0ZCf_$^cDT9RG@7K?U=;Ui)y~w`5J53KV%Ki{)A?6PpE$- zLEK;my5+O-PLT#|uR3C!%iF?|0fo3(TL`dlWcIXg*IOhbuCOxzn4uRne(twR?XoeF z|40M$Spe#4{mW#eAKbSKVlK5pV+_MzMqXNo4(j3Hrn&P%17g~3XR-vf`LUe|1G*+U z6J*#$+)Z=^L%HGD#e}{oxswTf*2l|f7}c3TDBX>Dj7R#yo@b2syB!r7Ks#eiYkbg_ z0}T4nEn1TFv0n}hyqPxbC0bD~mAQ9aj{VR#(E0cg-muHy?Ep*r4Nvt3=kei@KHuLv z@Y}n!o`@6dW9Jy0rhnT=RKzwhDUN;Ftm<0*i#VX`5AB%dtQXzc@`o%1qjb5(nBtH= zFx-U+Ft34b3$|fNKoc1W*n) z#sE&G-R4`5{~_O~f5({0H&a|Yn#ciDUn*064D;F9z^AF4H058XPn)gHH)nW=F)v^L znl)qkfQbh|0EZb0hz|jnPb-w+1fG_(Bo9Wi8Wy@>omz0s~KMAc{3!kBvCO6O7k8 z{J0moI|5{Aobgg${lcK^r!!QO(!_s zc+Ia|PMuIDMSv7p-_3!GI&v)f$OBgv(2X-VaG8PmHgHqNCBrme8>E4uyt@?oRM%c+ z83%-oxWjY0LZR){hqL@jJO||yds{M|UWf-*28*UK><-8y)3d_vJfzk0qb z>*@7}0!U7v+#CyJ1<`67*;(xsoRFCWdxkc8C~P#ASchR9n0@;iA~*m|KBY<(hNOhS zQeMfOizIVxX4+^m7$_Y8CcDn;WDPneu-bJbOEC@$ORo zM1y6u9^lV&DT*gICx`awIgdi?MX4&s4c5xE$N)JuNwPiZgaI=qiKQKpPFaJvgo@(=O=0QF_$b{nf)y{?R`F<~L)TpPrq(`oAmp zot+R})cN(cS=yNN9~R=&Pc2a1Q;ek1sxy!}Be~3A$R$bmzfzF7DmRd3b8d!nSDk2> z(}GXkb*(J_6IW8=AN(l?>>X3SeQW!R?bq|pJSm;8-2KXz#KcV{4?VGDkMcrt-rU|4 z+m_YCD~|0buixU_*7WLu!V#xuHU6!iaKp{RF`QCc3gav?V-phB2%LKA5va4{Rob>Z)5{7Bpn$Nuj&#}?Nfd=Lt>OJu)raGE z&e(9J$Z)Rr%j`D`w=R6Gc!y=_#-D%K`1Z7V06Ze?8jr0=|V6CAbaT zIDo6rHU3Q|0}a#GO3@aQaWF>O#z7(1ZtCX2yoGgwSC zW3$>=tDPmyW}S~?fT+`v)hs8;N}(irJ+ak6?+SR1k|A!y<0@`bgSZ)Keh_Yzxs0$p5JB9YFzgPx5n}O`Hc{xZkXCO)Mr?drC^aJLqIk&7(Flh7V`e*nB zPcFwX_f;Y#b*EO|DS{2Hv{&N&tA7j!?^q2v99cQlB3biP^TpTS@b#y!`LUlaP3mZymxBa z`^%>Hb@=->|AfdymM7Jlibpbz-qM}N9&S#`)E~Ljd7aH)aG?0$5_a^*3!*nX&=>MX z_>qzM{_Iy>GhY7S7nK#J+;@)OUOL9pdH&6XU1MT%7FRR%`3J50ruShdtH7IzmUAmW5&*-&LyDY~5^uDU2KX0jDG3`4ohN?U{U3G&< z$38yHJij!$YhK3j8(FW8>p8%7F>U7(_D$+;?mqj8t9HWfK!Dsp#zDgq$Kd$wC=H2` z35XkoxF|w1td2}W{FJCvGC3wTI|h%!>(5na@R;F{j*cEiOeQBHfrO~!s3d;gKWC=> zF14xPPuak-aCXs+aoHC``WZ;SE-B&omKw*&qZu>a|8tSX-qyaTe$1?}w*}b#hPXpL zXNi&ZdyMHDn!ZRm@ax(|6ZckIuYDoxyaIOpZ03dKTSufB^gZkIF5hb2pSZoUuxs6+ z?ANmPzkIp#jGtJ6dtfwp_)JnGq6tUjzVL&waf#9pu`r>)ghTUxL^mQLX*VA`wfMKc zIZ@I3Qun9_djdy}rMIuTd}`R$3iZ<&h%gvgHoseS4=}_|L_XI@`X)7pSX&C7qW~e;$+dkA)wW zyQJlNy;Ae$@<&d*7yo%zX>?O&o0G?hQvWN5KI2WD;5$-J|So=a_!0RW{2h`FcLsLYG^(Vo~>GyJ|-(p9@6V&MGm8kWZa=&SC9(n z1c`xHKKzy<$e{Ouor8N+1yZ*IZXGbP5GEkM{4y7jamm3;C^O>piTvuM*C+4Ii{2IWh#o| zX9|G|bQ=e-tvIGkrF3!(6-x*jk;rX%QCit?nwr|aC09OB<*W>@Yq{dK;L@0el)>-j z4UvyZBeQU&K}YYrsDdCcJ(gcVW@1VM8UM$aQW}cVk$ML*D;?9z$q+j3n_o^SeRg`+ zL`7*aTVsiST~W&&OfPsm95PfHqQV z4<2-fO)y^>8w~G^BtH|SBa=l(W^<}pm|sDeMoOAOKCUG(JxOE`id2OjQ%=zsv^Y66 zJDtoLA=m5E!$U&wOuiyrkMlL!)DSf}Plsy=QWs*z>pJn^(aD#RXe?cC(2{_}kiRBT zN9yRv^X8J-H1AMHr>g`#&EJND+g2E6Byu+<%@lG!W|s^L{^F?g%%&gTZ@jkBBW8go zUKq8N$XK1gW&8a#NMU}|D1D6{MNkP(fbdXcsz4BqAmNB`rb?$sRg>B`6>37EPQAP+ zdNVwv{83`0{KLE6aj9|D^>5s5vD9-iIPeq0*M zn56#o+>@&0B~MEuoFrqO^cT*Ef4U$PgDD>I!fOiey?c$oDQmCi=kylu14i|kV z=s4Kqybf2;X~5TOF}2P_Ab%dF;Oq2&KouRk-)NmmLaWiJ61jr&v(wJ>EDO$i5G!bH z{5hy<%<6G_Cu|T;SvdOhr5_J1AjxzMF7FGmlcJaU)kCBblab2Jltv5EKn;^%7kqA3 zp-_N_iE#;rixDD>Kyh%?MIxzCKuQS_DMMv4i6}HoERtcQhzP@lVzE$)io}FKDwW}A zm{iE4LdBv`sZbOWP&h~0Hs1I6bodb0+~*4slaqF1TkM0mm!^TLvf`|+)PQX#1tyi zX<+i{Fm1D{6AGGljLzAt2|7|q`O`d5BSL7+kgh}fI;E~th2Lc^O`+E5F+f_}sI1^D zReHEWLA+MU)S5Fj*-{i2Rp17#GArfpaL{7aIxH>3o-= z*BVa+CuA(XkXE?j?HtyMOD1oU{t0g^wae^F)Ms@$`4fKeX;!w~jU)_#Z#=rcGv@f* z%9g~yrkz<$EB?XASeGZWH-hA$MQu(>-NmJhn|B5|9Bmvv?BbN8Ja7LxaB1(O#6c;Ut4k;G>7pp#U!_q<^2Ds00y!zs_qWn1)(Skw8HJGT3C%w_A&* zDvt!3-C+7bH_j06O|h$v@vnapu$$9xjH)KKwYnVYU$?yO$D8u(ep~YMkvzm1820H6 z!!KA21VUWsSuc9VVlwQFh%Y@K#PUKs*^WVMm<1QKCNW^P0~p)c*)sm$Gb6 z;e@#tKHOknmwZ=uU_)r!lf$)|y03F~W{;kfKRJ;-q&8yJ^WFUEC9)G#QI8chNv)yI ztMQh6q{ljC8V;&t0qMp?BLqnYudi^Y`c7rOTeh#T;Iz1^y88*AD)$7jTip9Q&=_Y z)M!=N@kM)OjjCg(Q#jaZoOh|Y{8nGAdDhu|WizEQ8FTuT6gkG-5Pv@JyKhc9x_YfV z9R57@R&Z1KqvjptwBk{Qr>&gON6i&Y1;@X579A9MrFrs1`5Ln3p<|)H-LtZJb5^}Q zI&bp7=3EQBcdXCuMsDG|!a6Jknw~5A{ZzT|JSd7SRRX&#}5Y|B9>uXcsQ0=5xzZCP2GFn3GkhgLzX99d!YxZm)CX~AINaZD5*fkc)kcoX%Is`uH1mC#bRtOXZFzj1WEU{k#6b7=KA8zjy715ddt@q(8{RCb|4vI%! z0;_`^+*aSSD4Zc9q60p=wfE=eC4OihB*4{Elx11HK~;@!V$mE2ayhl}6%M zyPWLKz8MeC>dZGUWVkIaM}JtDFn#c(eIS4%ZK+8?-I1u3baK>ml|)x6007_QdJd1b zq(LsI7Nekz^_MK7g9Wh(&f`Bi)u28G@G%Vg8?Kf`E}$`%<^0Ub#K}M?QoOij8UT-V za4WO2#08@9w)=5WPh_I)eh2RK!nQ_&42`$l>cg*>yGcUnRC>#HLoV=nYS&Ihbjh!r zgXcO7J4eKveGlNL|8dVgNTThYA9;UrT$d6FQe@RD8ZNr!$a&3%YazhKTQyvEV7>u- z=yu6E4Y*cmU@d=D3N0{~mzlN!;iCPK*B;-k-@l`w<0^yJM69%MyYSy-MQB$5 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/session-key-superseded/receipts.json b/wai/live-conformance/c2pa-live/session-key-superseded/receipts.json new file mode 100644 index 000000000..cf8f91ef8 --- /dev/null +++ b/wai/live-conformance/c2pa-live/session-key-superseded/receipts.json @@ -0,0 +1,327 @@ +{ + "groups": [ + { + "kind": "group", + "track_alias": 1, + "group_id": 10, + "root_hash": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:00.000000Z", + "group_end": "2026-10-20T11:00:02.400000Z", + "signer_pubkey": "4ae5f950c862c6f33f7bb93849fcfb198d87421660fa5ab5e71c0548abf7983e", + "signer_id": "corpus publisher", + "sig": "84df449899ed40a12e7d03c9ec84a37d3e9102d53ddeed19ebf8d9eecad4edb89427f7eb4a34cffda0417a2ffabef2617dd626be82eb3a02fa92623bda3e240d", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 11, + "root_hash": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:02.400000Z", + "group_end": "2026-10-20T11:00:03.400000Z", + "signer_pubkey": "4ae5f950c862c6f33f7bb93849fcfb198d87421660fa5ab5e71c0548abf7983e", + "signer_id": "corpus publisher", + "sig": "30769cdf9cc26ae3054323d0ba4d16ad9c381c86f05f458c084a707a060bdde8849883f4f8ebcf7c34a1314da2f86e6711e791f1d9fc2c3d8fb9c4598abbba0b", + "parent_receipt_hash": "8c02df8dba110bfcf3a8e9e8849fc74c4afcd5fa033b9002efc460964225c11e" + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 12, + "root_hash": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009", + "leaf_count": 4, + "joules_total": 0, + "group_start": "2026-10-20T11:00:03.400000Z", + "group_end": "2026-10-20T11:00:05.400000Z", + "signer_pubkey": "9e5e5a3320bc06913b2cd5b938c59fe79ad4d89015467b16638a41a464719557", + "signer_id": "corpus publisher", + "sig": "02b221bcdcefb2977d2c5d6db6acf971aa1137524976d84f6674af4d2a8ff044cf2eb905d0d730a0422d5a0c53db6af8aa556567e1ebdb022ed22620112fcd0c", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 13, + "root_hash": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0", + "leaf_count": 2, + "joules_total": 0, + "group_start": "2026-10-20T11:00:05.400000Z", + "group_end": "2026-10-20T11:00:06.400000Z", + "signer_pubkey": "4ae5f950c862c6f33f7bb93849fcfb198d87421660fa5ab5e71c0548abf7983e", + "signer_id": "corpus publisher", + "sig": "99ad73ac72a6b82438857655e4919171449152d2857246f4a413ff79d521c2e3ab79ae713a66b5fcfb64872fd401cb9882b46928a9bff5727824ca12c5ef0b00", + "parent_receipt_hash": null + }, + { + "kind": "group", + "track_alias": 1, + "group_id": 14, + "root_hash": "54a6deeba8e5e8e4a3b6e5d53f6156408652c1f9fbdb822ab22fe0b8ecb959c0", + "leaf_count": 3, + "joules_total": 0, + "group_start": "2026-10-20T11:00:06.400000Z", + "group_end": "2026-10-20T11:00:08.000000Z", + "signer_pubkey": "9e5e5a3320bc06913b2cd5b938c59fe79ad4d89015467b16638a41a464719557", + "signer_id": "corpus publisher", + "sig": "e39cb9411567ec6d234350a11db255c55ed9b177032cd9b1538dec5290df58e206bcc43137cc9b33532aeed7fbc45d416f8a5f569ef2c5610c6a95552d3a6301", + "parent_receipt_hash": null + } + ], + "objects": [ + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 0, + "content_hash": "ed3e285f8b0590025be3a310fd384642973f7ab4cc2531ffb3767dc65decbc87", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "84bd9285e1a79ab4d31fc47abcc3d4d7385c4ee38be89090f67b3d0da066fe03", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 1, + "content_hash": "c3c0621e9c77910ba45e7c7d6060ca3baa48454877a3c2947c1327f0b5042960", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "476483f91e3ae73abe1fa7137178680a3350d30a86d619ccde04ce7b9d4672f1", + "a3f56e2717b3cae3def088678e67d4b8266e38cecd14b6a29f03653ef1d01996" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 2, + "content_hash": "313e889ebc1aaa08f347a248bae963fdb3ce7cb1ebffd13a0ea862d4833184de", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2212db8269bac3d91fd34abfda366d918d848c5d0b1f5b900b1421d22cbe0225", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 10, + "object_id": 3, + "content_hash": "c9b87a65ceabd21a394a62f0b27677207fa40002294635bc4c19235dfdae2b35", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "b760b6cef18489c4db7a83675f09424498848a4e93f112700ac075dbb1ff05df", + "a954156f25c6e4a22d745879b4e028f3a1039875a5c784423c876399b4e4e2fb" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 11, + "object_id": 0, + "content_hash": "d26598db3232eabc5dd6f8e733f3c684a4ec2b7974b185d88ac3bcd3c020e167", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "0aae05deca890dcf94db748d801465bb0b62247cf070cd34016ed810b7b5e3b8" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 11, + "object_id": 1, + "content_hash": "56421ee48deb82f5692315209c0be565c75fde7531c924e68ee0159515de135b", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "d22a0c40cbd68fa52e6afb9ecb920e80fabb689963214e037059b2c45ecfe151" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 0, + "content_hash": "7032e9f88dc8b7f736553b7a9c7236669833b4e633ca24d28ed5c839b692b716", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "5e4b0d6ce028d04f28ab23761ce1f3b0f3f5e4d014f4b4f9b2fdfbd9a6994a00", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 1, + "content_hash": "07508165a8199e0362b74c498999eea3b023cb67f89b663250ab0677dcb47966", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "df44809333587e5f04510b40dd099829f3214d783044dd56a5683f56a4a5dafd", + "e4e9b40d3ba168108dc827586994c75940b4168078970493d41828b60c816605" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 2, + "content_hash": "b20995ab22a57bc11cfdc93867ba34e004a038fa39b8517e7b09354f9097e1cc", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "afcffc4feb8366e461d33125a05a371ffeeb6d52e8a66f823cd7682788ccd6fc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 2, + "leaf_index": 2 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 12, + "object_id": 3, + "content_hash": "c4156696922509b57ff04f290a8f880b2c7f9c567d72ac7ef8aa1dd4a3f9702d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "f0be86f54fbf3a67c5ba7b56d3efb346e7efc1dcd75eec634be99ae33afd52bc", + "4f8188470c70525b9004625ecb9e384b61df9fb5c4c7cad082e408ea3754ccec" + ], + "direction_bits": 3, + "leaf_index": 3 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 13, + "object_id": 0, + "content_hash": "14400b38229ea3c7ba3a9df42a9ad39cc3a9d9a26cf086d1474237e3aaa4f0a3", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "1dd9e51b1130f7abaaa90a130e278f4a85e62f423e0ae95cb122a6b77cccd9f3" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 13, + "object_id": 1, + "content_hash": "70dee7a8e6962e9ea7e80b4b8591bf565799fa0b835ad5e4933fc6ffcf83a81a", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "8fe3347c01ade8ed1f58502398c60ab6b8cc6b68017b2632bde4fd3631edb286" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 0, + "content_hash": "9513817d3f50ea722639343dcc52b1919677ebbf90a269b4202af216e63a2d80", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "4b215fc705ff8f7283d9d8a278bdcb14465d952c871e22748edfa35ace8f7993", + "2ec5cd1f3d701bd4dd6ddb31e8cb3a27dd0ff54ec3a66b91d2e9bb996b6ca883" + ], + "direction_bits": 0, + "leaf_index": 0 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 1, + "content_hash": "dd2ff276ca81c40d2152c7bd76e03c28e9d356f20157f1f1af28248aeab6e261", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "6a3fdf96c6c86ba1e7c5b97ec0b966b1b221dcf2f4569589b1c0d927955b3f26", + "2ec5cd1f3d701bd4dd6ddb31e8cb3a27dd0ff54ec3a66b91d2e9bb996b6ca883" + ], + "direction_bits": 1, + "leaf_index": 1 + } + }, + { + "kind": "object", + "track_alias": 1, + "group_id": 14, + "object_id": 2, + "content_hash": "287cf5dc07c0ddbbca276149a450e84da9b01d4f26daad93c9061ffbaf93e61d", + "joules_micro": 0, + "origin": "corpus", + "merkle_proof": { + "siblings": [ + "2f713e57cb5e7d69741ceeb374bebd00450d9f233b95f00e3c7ad935e15478a2", + "389e3783984727b17412c2965c5e97ef01b9225dbee3b3200922e2ae9e83ff56" + ], + "direction_bits": 2, + "leaf_index": 2 + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/session-key-superseded/seg-03.m4s b/wai/live-conformance/c2pa-live/session-key-superseded/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..5d0cb943fdbc18ac71b5ae21c586c5b0d7f53bf8 GIT binary patch literal 1563 zcmZQzV0@OETb#}S1f@lJR>?*MiB@H)MVV=tiAg!By2YvKxv6<2x|w-t`3z}59!Q}i zhyVf*&3&oGc_E|vLY4>xucto)P9z=sY+t?8!t>8>$=-G+v4meyTc69YdaV9F!!DB1 zba6&fZd#g0VsXZj>x&Yu{otJbJ#SgK`TK;+91zDTyVCjf+yt5_3vZ18)2~d`+6q!)DU-2#xl- zBaLbKX+X!8aHLigB$i~P>X(*grYwYU(n=}|;GEpFqC`}~A`}S+1jKkAn2Dee%qvbU zEKSWzPW3CzO-e1|&dN>9%S=lxF7ZsM(1n|5mX>5{YMz#+YiXKjqHB_3l&EW&WRa|E zo}6Z4X5|2CRcwM+ z_LJ>@zrB=ZR)2VJuIwxwqiqUC>PCzYfXbLNfc|!EV02(O|Kxt%^=0ypU+dLb)kqs} zs64rw$#89uk&qD+LlaaXP=f79#Tfzk))C3e_7vN3EXa+e2tO_K=!Qj857on=gNX3Ygq4~o`uqxLBKzCdc zs8e{)$aw5d#nOf^m8Z_1kK~aDYUE;MsknyFm;)5z20H8)!g!Dn571rq2vr$CAzq-n z+!3lkLVT$10y>c40+z(b0~FsuWa66!RNI4;_&`y21BgM13^{_46PylGLO~X%ge?j+ z^93jY0lmtP8r~Ve_!M{m3vUNdywCYyq-7+?$oy#oFx&(j7=T$ugyG71CY7gmji1^2 zAFmeL-*I2`?)?XHi8gVpK>b2YY*km_YFQW}fMUWd9H)LDi3I?~L^!ymY|z9+1$dKE c(8R?*MiB@H)MVV=tiAg!By2YvKxv6<2x|w-t`3z}59!Q}i zhyVf*&3dWDc_E|vLY4>x<4F-$8I#|A3`pzoT9RAjYj*zE%DGb?*=26(RB@hQaVC<{ zba6&fZd#g0VsXZjpWkWbnYbf@7;CzpUdQx&l+ES zJMc{E+M_)xLZu~HsTIjNrNx=~dBrV@Qc@C25*rt#mL=wtrUu;jcleq#pNGw)=@A<3 zbw?W0^3#BhE#XM5C`c^HNYyVb%}iMcshD9h64hV?xJTMbMA(&U3 zT3DKzmz?TXnwykb#F~|xn3tKBT3q6pQlSes(cC22$kfmtE z*B~u1#nLo6*~~J<6y2lwn0hnLyblyT>uH8&2*Sl-rtFf+ifY>HLv z?wXa^A8uSz^>`lf>GSI=Q|-@`y=#xIG14~p*U|c%nSp_kCpSMo4H#bnxoH_GpvVIP zRv`XTQj`c5F9C@&fyEhtq)16xN(qPo1vWtXL`hL;9s>hANSGgJrU;M*v5g_xz-&!M zh$avzLIhhFNewYHahRfhp zY=T$zlkI=My_9BFe|T@M>?|FlZ3;%}MvM=D%9t~N{&sC(bYM9D(yD+ zNE>gcJh_|6aBYy0kP#C@6I3Bkg9Ag?7oZq3BZ~t>GeoQbD8|CX)`29}-e4qX#LB{P zK>=(DSY0bnh>e3=!UZAJ1QcQy;7!PA1~~<+3M9nA;J>05p{mA6#fX!k`NKxAD%S%* zcU%&vQ+UtFcps2e6#Gpim9Kpy5P6sKWAd6GN z7KNJm0+fJ&Ugbv(?+jpk3Os;?w*x5N=X@~IG7@BD{bdWejz5dsw;4{EDRAqF<};tQ$LWz0)S#79NbbiXkwxQ fyh$l&Vqy&bt9sDH#8KSC!Vq92Y$SnZ?>+|rq_k*y literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/stream-assertion-room/init.mp4 b/wai/live-conformance/c2pa-live/stream-assertion-room/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..338aea4388a2df39b54af18588936c641f8c7e69 GIT binary patch literal 3215 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 Lrm<`F+~)oV`&wE9 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/take-both/init.mp4 b/wai/live-conformance/c2pa-live/take-both/init.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..89ca9ab197b4acd86a300ba613f7651dddfffade GIT binary patch literal 3551 zcmcIn4OA0X7M@8UDt}@@q!uNts3;^%0)&FAh0-DvZBhJ*g3@8;B^i>LgqcYQ+g6ES z+p|Jhw{@$>N)bgXbgk{Kpio=e0<}HV9y!#N+O6)^A3SvN$XZ=b{n_`D0Rz(N>1iL# zynEl=d*6Ncd-uK<48tM}VwsI%4HO0&>KVbRBOQbW!~D&5J42tk{mIEkg0g=9=hyWy zFRg2LAvu=h7y}SQL`%(oL9v}Jg3NT-)0EamVw14oatv$49^GCdcMm|5;gZxsj}$vn z%Fc7CNHSHIKx-3|lL%F!CIP4t$%JH8N{SAsbTmn8NkXfm=tMY|{NIwfIUaMQaL=S_ zQV;+yGFDE23V48|5bIVbvhw#Tm`K5-E@BM^wIczlV7(L++eMKUqd_o{+9Vx~B=pKd z7cZO)ZRu$1ZT?{IbITNY+ZxMy$M>H~x!&I!R+`k+Qw*Gx#V(+kE9+^R6iHV-aF7-| z$Q>P1gVkUVfH)pFZKP-d@hI*)hZqFVFvA*na-=bR)Ns@sfM*O0S!4k!0T@}pi7JLO zSTV_bz>r123P!lFeItT5W-Lg`9XYi_iz4Afk=SXJ23_?A4`o4+sVN?iBA`oX#>j}I zCC_T-DX^@}2AuOvqG(HvkEa}J#wJo~D{qYFK&e1kX&}T)@`76)E)@)oWRNz|&I1Tq z{QW@_fPf;cGJ`UNGj`MMDvelI0|mR?I4;vGnO<2??kl$||5ftV*;}X2oJrriH6`uU zWg&@=`LOR?*o7+Oq@|{dM@22%iz*GF(h|!wnpA>-|EpPnF>-)^oZ)DOGj>;I z?8Il+UDKyMSz9xh_0f^j=Ql2GoRHhL{7<(&o^Y-y=f!c_>=!x{p3*$?)P#%yV@qR2 zUExG55GYF-Tl3@+2pC092Qfj9MhkFxD7WgCe(^=B-v%uhe{2P}~u?BX0fG zEKOfee{A!@Ejjxazmb%;;mH#(zdxsfMp}C1;rBARqpIvX7=7T~*Q_bF)Jxa5tf~Fc zcj@0v@hcAHv;ttWQl>{R#oCOQqq;By4IB&w_3j4;%-r{`r*KqKzRgc5ou4 zjT(7V^ohyWU&&woKaV$Se+zH!78J>s^e;P~cP;*Y+INVoZ zd$!Sew&pjCjCakDya}qq%bS*bdNN--@42m?L~LK3Xe_Nhb~yi5!@8|69$MV$@y7fs zN9N~JQgZB}&7tqjES>kp;r{==yuHW;0R^+$EZ6|G0`RCt0 zK07>W!z#Rn*nn?>&-^;M4427pIpM32#{wHcXw*cULcZKb9x!uddbZNSIDpc|TOEKy zDWeqOIe<|bGOxyP4;4mxtbVamd9e`Pg?X8USh7~hCB-U zX9xXyo^M;`jIJ9oZ%;kmYG|Vy`hpHl@2u{;c*ax~vCHKm))N8H@U##dzvCk#Fd_(X z6A|YlmyIhYA`w5+C!7dV_{A!4AH1S(tqfO;hqSNnIC(TN4G9GKg!zP8GQXY|c_6$h z{i9frl=FDjjj6GhJ^C|{etBq6*K6jKlgDPnefDvd?9qljiz-4E40)T5wNwVQAHOK~ zuh^}PT3>Z(O6#j-i>B=>)?K^A?zjr-em8Gm<(3JN8ujsY^9OHNw*+r5T-f$}d+h$0 zmNy5RzIDo1;Wmhd1wPXyL}WvVJW%`~HYO`S1{Mhjm?3C>0lHp@MBZG{yX3EXyVv&A zc21mp-1X__QF{sod&m9I_06F_R<9}DMG+)1aTpL^LJpA_i3zUo3i+53bwehFoa?aP zOq{|_E}RtNXIk*Z>X?+Uq`M(MyKm0Ge=a{=o_sKP8~KB4Y1800=M*vj$T^X3;#cmo z^VK!^&vYLRJlB@%TQ#ep$b!proo}^&*W+KiS^42qKOc0kAG}midqnsBw&qiR)1@`P zkh{Jnym#tRRfQ=svhTDlx3RD0N_Nki$Begc@CEE-^CVnfa`neD=ewJhD2vxbZSun~ znVz*;9Wco(tiwd3W7w-b?55$#jt=+XHiChpqxiI8!7&LLRCpg=0nG4gfoOKmDff~b zW$kCajFL=4qUaTk2wcy?^oE3zrN>^^@^&PL%`(vz-c7-mgQ4A55pUiK8Qc%vcMOmS zb+B%0-g8I8%NF_;LGu9hsG;ux@MKj=^yh+DWP$WLK@^6fjAS^^4<1N)blk-7D-EtC z3v%c|&3jhQ$mndBOejOX5Qz g{|AX4>YxmTLNL@~SO;)IMk&IJjWme-8sXdj0dt~3`v3p{ literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/take-both/seg-00.m4s b/wai/live-conformance/c2pa-live/take-both/seg-00.m4s new file mode 100644 index 0000000000000000000000000000000000000000..361900bec113bc3f8223ff2804eb85a28d3965aa GIT binary patch literal 6273 zcmds4cUTnH7N0GY03skw>LMz2mtlZ~B{VzMprQg67-nbL#cgas_#Wzls3;J98Wc4O zf+8(;M1v-vg2c}X7Hm(9VtbZoum!_=cb0)2QSyB6Oa6Jox4U;vx#xG!@0@!t5M(?} ztrqdyx=&oOH;oKgw=u?j<&u+`5O^f0R3yNaDq>7N#xBWfNg{Z00>69=k)x0~WTt_j zN+@Vc3PUS^AfqnQYC?~d}_LrbCq<1?8YhC9Y73WKtz?pgE8ZURsAlnc`yyA*vK|5+wowC)E$Q zK#wqBwgW@ONdl!1MFO~d!Xk$CU2{N)$54Cc1Jx}15cA5VlUaP*D1P|a%?*pAOit4* zlJPW5tX2|{vrG7VRE1`i;HjusjYsv*sX!(WC~=h`o+d|CLfnVQ`}W=!fht|z_aYG} z&<`hzap}uiDy|R-L};QIXDjg}2`*K!MN)wbBBwX$oe`HPlcY*KMU6`_d>Wt)SJ1#h zD?Ui(Cv$^h+Dvj%5h62bL}s=pk;2RpLC;7`P{_d)II6<=DST0qNQH`L%G3%Bk4~54 zX`w=uN*?UvgQaprauvprDUy7o_#!1H_+`A-DcwiF6 zqEtLp#K&bEG7|*eDlL;jr3yfkOys8xPvj*c{#-83#$bfc4&n&}>>!xy&rXCBeR=*| zfgdjr?w=?*CX=c}Qng5xJ{4C9Wqg@-xxFnhk*|;|Kxmm-IhE`Z5Q*K#5!a88_y-2S zY=2)rob8YL1+sZOfPl+K`3MRlT#WAzpgtg%$o=FJm6(X2j-yhbQe{ulIg3ycM};mV z@&i?97s^-2WRe(`?@#lR8wYLmUfLPy`|#2~y$($%n7n)Hw*fP=#$C)g>amPZc*U@e z>>n?!XHWbW#NWH`8yQa?{OC=={B2!&GY$%UW*?sXy#SL*BqCJ|Yu)VgNs|+ka(7z9 zo6pQL39?#Zx=~zsddv@s$t(5S3RD67{r4NUZ;#ql$ctDX zJ;XnpDcN(s6qFnzfn27Wc9{q!{UiMcPy)E*7{F z^9e$I2ughVa{f8HiPnYFH(jzws#KvM#}mh<{p}~tYNr~&7{@CP9I_oO|$M=66e~3X2D;9 zMz=kXSVo<1%E+Ah#PP29+4Bg#+SB6oi^}oG7M69yc(zxjwXf;Hg8vm*KH33DNDQxz z$P2QOd*gn~*lSf|GraLgYw;k9XWpHY_DfRsy3=|fE&P)q{ZYq~z@lH=s(E_sUT3$Tv%_kfq{MqHkC#a6e#)q$*q?!TBO^ z6u?e4gAgw43;wiE9C!_+yuzNo?(oQ-8J!25k${UUU{4YT!v(t4$lo|quWr2SnRo8h zcIUnq)bV#dG_7%J%5QpbTbS-pnwbeNg-yW3jzeg)e=+GW1e+3XgNZjLgKnUKor(7m zOk3Dm-^fd!#-uHKxPVU6Hw0rnJp;yY*pVW#pADk>AcrAZ&ZU99x!=y;6^A@e1Z!Rjfj(=KK6 zUS2bJb>`;b)%o)mm0~ao5AGvG4`u)+KIDX^Pf7VFGpePGOu4jC{odb3Vij*b#7G!+ zHqM=A9iU5jdxgidr_ZNp0&C1Rp|3J$RK2`;Pv8COpya zmp5`}qL{{rN-IBk_mc6pzq5X{Gh!CMj)^$Be#cnf!sgJn?zn=`uc}JqZrfXPBhZUK zty(2UD-IewNNBD1o8U>08}i+_$AvY?-rUh9E7F=no}EGvDNA7ruAcXaYZq}k_nk`v z-q*mLg)kgSe1Rtfd}uA%W46=Wwln|pxf)9gC>0VH*hp|s{lCAsChKlqlxx=K9Qplk zb}%88c`+8rwK5FF^x12maPWHJHZ%S<8=@(J?5LtL&q!Cg%&R}pf0pWG7MmsErS z z6#Gxe>3I_HUyqRyKuF*7VoN-1h^(TUL0iD9F+^{J&e_d|4KJMz<5)kDVbb!r`k~?P z*h|w_d29>V>OQG-2diaO2zK20DL%rt;jA?0spZgDR&HrMHS!4Fnf2fP8>o4Rrq5 zpxP_l33raI*o8zOLt!S3NmZX+VKZY^c!zHU;sEQ@4K)6iCT7-fj!w~-cX^n%O{b$LVh@|L z?CLM-R3}P8e-og$kHjNUh&5~m6-~F(DI0!WVaCw_xdqMO4yKjoYQWNd-2Be9B^Us( zq#M4d*4eknatw@?YkKaBj=t$5J za=FNUam=imb}-*?rpc>v9VgXY)6=d*07^z0niu?{^QaNH|9Tuy=x%21pQaO6FIw&V zg;g<7c(UwHHtQ5u-!yD^;-f(@jW|{t502KKU(2eC2N9(-;a{oR=xkORzg7>d)uLg4Nhk$OLTR!EL2rMk950BQq zbl&>SRX`lv2T0r3w>%$S&l#Wu8UIBII{iTjx>Cx8dNfe!XHjgZWi-$+;Xtt;sJy6h zYAoszLmiW`XocDmbb&)iicUa~`(el(`tjzJaYM(Axwk#}E!@6iF&FHTVI*0orpM%j zMbpihtHL+z8|AA3$sV zV3{+>;JtWv8QY%(`*t)Xv>}-OX7Jvqut6Q^KsCExu;bMrTPvurutHAbRc`OUTIn6HW^1!!XhiI z3=i9%2kK!SNy#XZ_6f|C6;;iE!v!QMy^4yK>}(C#SJ8x?n(XE9+;3xB*S)upW*le+ zRg?&A2wzJnytAnxr`jg%KfN0e#;5C_r|NEBZbf

mf*X>yyY3Es2m_+tkELTG4S zL{)rS_;pD=kSF&G6EeJM_ZA=*_X|<-etA+c2rVT8^cHt3eL-dS8w8Z3oQ%+`*`~TS p5=^A%7oaY3!W$y6s$YQ3b>k0fK%J&iRzQ?+o4Wc<-hG?;e*+3$D1!h1 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/take-both/seg-01.m4s b/wai/live-conformance/c2pa-live/take-both/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..d00f58fe653675ff4d63dee11bf163fccd7b1a7f GIT binary patch literal 4457 zcmds4c~}%j7Vn-*!i|8k8f91yP?({o83u+x7>x(6qORv?yn4E8n3lQd>A_*w1B84Y z!E24HuF+KtD7uN})W{~1s2J~K`HUJB3|_>d_7(D``&x? ztM{u{RbZIkXs459&ObSDu4iCI>Yvu?V;0RnSb)LDLRncOaPX)tJbqELofZS^^oC!C zChZg!f(7Se*bXdtLyp)DV3_YC!D_h2%F@=#$yrm7Wr|v()er^^tsvA4p-`(BQlTZa z28EWPK_WqE8Ag)?#}Zcx;RblZQI2N@RZI$ z7>&x@1n7d*)6ncKnlfh@9VUuQ)G)|GFK<{8IP|u7b9!l`wCNCYQ{7`g(hpUNGT-sn z{O(*Ty7KXC;G)e=2O7DkgkdP2DkuTDl-UW!w$G{2W;8kg?*m+RiZ_9Hl=m&o9V4G- zZ|PW!9Mv|MKB^^axqxGhEM+hQg#%<+fR$IUR-+9Q!uvNz1Qth@)d6yxz)FMBP&U9x z;Y7>ZB(uZZP_#Rf%3Km<#)UGoB})JcN{pVC8A+(5IY9A%$zj+mmZ!|)ZBC8`6Y}i9 zm1g33drEvfovUQ+Jgu~GS@Bjd$3fc|;D{IO9d3I#b#z8nq>sz>TA#%NVP@-6f{9Hie#YK4I?sI+R0F+rO| zv`>_swpn@B>SX!6Ou(CLjLkjW=8_n}aCQz3ZF4#@g(`s~DOxmAB_<^&5o(|SG?}1K zYvCHFC<6_B>12tK_L{lpn0zJyC|U z*(`dw>d3U&hXOXnEojV8-KxGF`_b?$%`ld(HaUYoCC+!`%&q&)W7M9n`pGacXgL#9mzqToDcu2iG8}j%veQ{r^hs}&%gH7x9AaEIUs%maQ z=C{4-%y;hU80WyQP4{;U`y{*Ux_)5o4p;384;S!jaCv425Gbh@totl(NYK5nOBSy? z96nLUUaqctZ&~*>4<;E7#$1%$@leYCg(>}9#R|mcl&-AZab{F{VdcaX5C2h>^37an zO8ms#YW;*6{+qMRHN3kLW@Z5^;3(e4%|v^931g)!fQH4N?XUxS65!B*14yM>Nx=Fl z7V0ZTsILyr$Cf1z_YLthRA6U|rilGY@aTxBg;Veq#6tXa_@-?Zi*S($7ZXyMI2PCm zLZu|)Wa5buv46kGgGR_vzU6k#mJ6(?Zsa_?AIMoN4>${8Sa=i=y}JjH8bSsC+|N|l zP4emz1646Ze^127=SDhZ>$~q;oj0mi`D{&7y=7w~*!XDb7)Rg9Gu_b)Y=aq(E!_JeiR zew$Xw_xJFXY;Mx)<}68Da{5@_(usJPj9)-W}T;+4VvOH4% z=O)?urkGKS4%|7t+V{ZX)ML}^-@TqS@9Pjt0K9tMK-VsGI=7rl&%Lj~I}0-W4f=r( z`by6hy|M+5-Xi(;=js$ZajOYkU^C!7_5c3jI=l7e<#o;K%#q*zW~bLhEPu2({^s(~ zr`GU9dS2N04P`5{dp3NvK-BZmp00j!Sua`XBF)LzF-LzqvHVQM)Nh~0H|nouoJdVi z-+yyRR8=5U+23Nb8KGXm7Ndzl;=u=9t{dT9&5iR27rAkG1H!_1Bg3PH@T9`;7d+>* zVptah2f>(O@Qd0B9yfP;0Pb-@zhRwd!>tcmdg64Z-Tyzd?;s|gV}bwm`1-<8MZ4~A zm`V7M{lc(5ItXnVX{t`!iBqyUuycU{?O_1-< zd|Zc}x>hs)%d*J2+sgSVb9*N2&O1^eQoTKn>`IETg@Pe;&|ym(AtuHpI*+pl%ZHdm zBwOr-Ey^cDNU6l9=3)@kU!*= z-fCrnPypmLywwUpfo*v~g4pQ}7M~2_dpo)KMncO?I}cy9bi4)jUT|?<3&k7% zU)te9%v)#y!Kntd&9@2a8C=_(ZynP8&3oiPG6WYl?1p&@)?u(@!m#RHqQ2KJC)`LI zbNG*4_b;vqzg$z>n@XJ_h5lVdvOiR}*h(-x#6l%LM}PFf#zHL2$FE0fJ1jgnz`(S_ ax?y8>6t}~=x8Wnf#*(3AM7wc6)%^>{(@zKh literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/take-both/seg-02.m4s b/wai/live-conformance/c2pa-live/take-both/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..4a3e8e55f5dd1257a9f16b7ba69482e6256442a9 GIT binary patch literal 6068 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 DAfrYl literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/vectors.json b/wai/live-conformance/c2pa-live/vectors.json new file mode 100644 index 000000000..50fa11251 --- /dev/null +++ b/wai/live-conformance/c2pa-live/vectors.json @@ -0,0 +1,1251 @@ +{ + "extension": "live-provenance", + "time": "2026-10-20T12:00:00Z", + "anchors": [ + "anchor.der" + ], + "vectors": [ + { + "name": "avatar-manifests", + "kind": "track", + "init": "avatar-manifests/init.mp4", + "segments": [ + { + "file": "avatar-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "avatar-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "avatar-manifests/seg-02.m4s", + "group": 2 + } + ], + "receipts": "avatar-manifests/receipts.json", + "expect": { + "outcome": "accept", + "streamId": "0504592f-2332-8bcd-98de-c4b9c976105b", + "sourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia", + "segments": [ + { + "sequenceNumber": 1, + "group": 0, + "methods": "manifest", + "manifestId": "urn:c2pa:bd911cfe-f7e0-42fe-bbf1-d7e49f289a66", + "chunks": 2, + "root": "99c1ee93a49d44a71d04407c59b1f688f1ccd160c388ea2a94a4ebfe0ee162e0" + }, + { + "sequenceNumber": 3, + "group": 1, + "methods": "manifest", + "manifestId": "urn:c2pa:b81414c4-759c-47b7-939c-ccbeda0a3321", + "chunks": 2, + "root": "3e5165b1371e3693e542dca31f1aeba5c362bff06c7c64b39237913101faedb9" + }, + { + "sequenceNumber": 5, + "group": 2, + "methods": "manifest", + "manifestId": "urn:c2pa:ef685831-ce11-4392-8c92-0899f6196374", + "chunks": 3, + "root": "c605d0c6ba8546635e3783f9a130355667c68085e44f043ae18df8ba974ce6b3" + } + ] + } + }, + { + "name": "camera-manifests", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "accept", + "streamId": "b5c52adf-4778-8fba-870f-a8f43ec11a21", + "sourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture", + "segments": [ + { + "sequenceNumber": 1, + "group": 0, + "methods": "manifest", + "manifestId": "urn:c2pa:7587e682-cb49-43d9-9901-1cc39ed16ba3", + "chunks": 4, + "root": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309" + }, + { + "sequenceNumber": 5, + "group": 1, + "methods": "manifest", + "manifestId": "urn:c2pa:bdb95d25-d5fd-4faf-8975-28ef29080981", + "chunks": 2, + "root": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71" + }, + { + "sequenceNumber": 7, + "group": 2, + "methods": "manifest", + "manifestId": "urn:c2pa:2a254ce4-2bac-4254-96f4-a3935d39c5c5", + "chunks": 4, + "root": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009" + }, + { + "sequenceNumber": 11, + "group": 3, + "methods": "manifest", + "manifestId": "urn:c2pa:1c301687-ff75-497c-8f4d-029b4baea1fd", + "chunks": 2, + "root": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0" + } + ] + } + }, + { + "name": "camera-vsi", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "accept", + "streamId": "b5c52adf-4778-8fba-870f-a8f43ec11a21", + "sourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture", + "segments": [ + { + "sequenceNumber": 1, + "group": 10, + "methods": "vsi", + "manifestId": "urn:c2pa:74c2511a-ee38-4bf1-be68-0fad95cc69d5", + "chunks": 4, + "root": "d7c41cd63b26b976cc556f9f5a5ecb1151421210aa5979e124958e951e7ed309" + }, + { + "sequenceNumber": 5, + "group": 11, + "methods": "vsi", + "manifestId": "urn:c2pa:74c2511a-ee38-4bf1-be68-0fad95cc69d5", + "chunks": 2, + "root": "73ff462e0454b7c6d37af29e979c3a7dcad4d128e15c15035f601c3819d12c71" + }, + { + "sequenceNumber": 7, + "group": 12, + "methods": "vsi", + "manifestId": "urn:c2pa:6fb557ff-95a4-4d2a-9b8c-7cf4988ecf44", + "chunks": 4, + "root": "7db0b6d4458309c8be8df8080ce08452bdccc79aed00d85cec614ce5adc83009" + }, + { + "sequenceNumber": 11, + "group": 13, + "methods": "vsi", + "manifestId": "urn:c2pa:6fb557ff-95a4-4d2a-9b8c-7cf4988ecf44", + "chunks": 2, + "root": "293931ddebcd8e3cca482475e3b1a93cc2f225427538a3e5da476bf5eae3b4d0" + }, + { + "sequenceNumber": 13, + "group": 14, + "methods": "vsi", + "manifestId": "urn:c2pa:6fb557ff-95a4-4d2a-9b8c-7cf4988ecf44", + "chunks": 3, + "root": "54a6deeba8e5e8e4a3b6e5d53f6156408652c1f9fbdb822ab22fe0b8ecb959c0" + } + ] + } + }, + { + "name": "composite-manifests", + "kind": "track", + "init": "composite-manifests/init.mp4", + "segments": [ + { + "file": "composite-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "composite-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "composite-manifests/seg-02.m4s", + "group": 2 + } + ], + "receipts": "composite-manifests/receipts.json", + "expect": { + "outcome": "accept", + "streamId": "fc7ed304-c2e5-8da2-9381-58538a50569c", + "sourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/compositeSynthetic", + "segments": [ + { + "sequenceNumber": 1, + "group": 0, + "methods": "manifest", + "manifestId": "urn:c2pa:1a980f5f-fadf-4066-9012-e6cf6be102b5", + "chunks": 3, + "root": "e1a83ba6bfd481ac0f831d04edbccf3d2ff94b2e447ba3add4ab9b481220d8e1" + }, + { + "sequenceNumber": 4, + "group": 1, + "methods": "manifest", + "manifestId": "urn:c2pa:1dfd053a-d5e2-40bd-9a2a-202e421ec5bd", + "chunks": 4, + "root": "db7bfcbeb3cc6749cac67629bcf4b80ea89576de4ab35e26c01cf9cec5e89a2b" + }, + { + "sequenceNumber": 8, + "group": 2, + "methods": "manifest", + "manifestId": "urn:c2pa:cf3185be-e38b-4932-9ba1-b9cfc4c9155e", + "chunks": 4, + "root": "197d569450354354a4c0334579bbcf74930804b3231ac5eeb14c396dfbbd8e47" + } + ] + } + }, + { + "name": "take-both", + "kind": "take", + "init": "take-both/init.mp4", + "segments": [ + { + "file": "take-both/seg-00.m4s" + }, + { + "file": "take-both/seg-01.m4s" + }, + { + "file": "take-both/seg-02.m4s" + } + ], + "receipts": null, + "expect": { + "outcome": "accept", + "streamId": "b9b2466e-c02d-89ff-8064-b0b1946f3970", + "sourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture", + "segments": [ + { + "sequenceNumber": 1, + "chunk": 0, + "methods": "manifest+vsi", + "manifestId": "urn:c2pa:1578704e-ec23-496c-aabc-ec781bfb978c", + "chunks": 4, + "chunkHash": "e6cf3acf093875ca2a19b110e4d0140d4b38def8bdf9dadf2f841b36c20752e3" + }, + { + "sequenceNumber": 5, + "chunk": 1, + "methods": "manifest+vsi", + "manifestId": "urn:c2pa:46960b6c-04d0-41d2-929b-9dce50a9dd67", + "chunks": 2, + "chunkHash": "f44ed891204d6b7f95115f99d2778d929d8b8681559b68bbb2c1cd84c0293201" + }, + { + "sequenceNumber": 7, + "chunk": 2, + "methods": "manifest+vsi", + "manifestId": "urn:c2pa:d5aefb7e-c3fe-480b-a3dd-be0af8c9be7e", + "chunks": 4, + "chunkHash": "fdae3792f0197589cbb87012e8c1482ea639ff509b9d42573c65a292134696a9" + } + ] + } + }, + { + "name": "cert-wrong-eku", + "kind": "track", + "init": "cert-wrong-eku/init.mp4", + "segments": [ + { + "file": "cert-wrong-eku/seg-00.m4s", + "group": 0 + }, + { + "file": "cert-wrong-eku/seg-01.m4s", + "group": 1 + }, + { + "file": "cert-wrong-eku/seg-02.m4s", + "group": 2 + }, + { + "file": "cert-wrong-eku/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "credential_invalid", + "at": "init", + "c2pa": "signingCredential.invalid", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "cert-untrusted", + "kind": "track", + "init": "cert-untrusted/init.mp4", + "segments": [ + { + "file": "cert-untrusted/seg-00.m4s", + "group": 0 + }, + { + "file": "cert-untrusted/seg-01.m4s", + "group": 1 + }, + { + "file": "cert-untrusted/seg-02.m4s", + "group": 2 + }, + { + "file": "cert-untrusted/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "credential_untrusted", + "at": "init", + "c2pa": "signingCredential.untrusted", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "cert-expired", + "kind": "track", + "init": "cert-expired/init.mp4", + "segments": [ + { + "file": "cert-expired/seg-00.m4s", + "group": 0 + }, + { + "file": "cert-expired/seg-01.m4s", + "group": 1 + }, + { + "file": "cert-expired/seg-02.m4s", + "group": 2 + }, + { + "file": "cert-expired/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "credential_expired", + "at": "init", + "c2pa": "claimSignature.outsideValidity", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "stream-assertion-room", + "kind": "track", + "init": "stream-assertion-room/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "stream_assertion_invalid", + "at": "init", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "ai-disclosure-missing", + "kind": "track", + "init": "ai-disclosure-missing/init.mp4", + "segments": [ + { + "file": "ai-disclosure-missing/seg-00.m4s", + "group": 0 + }, + { + "file": "ai-disclosure-missing/seg-01.m4s", + "group": 1 + }, + { + "file": "ai-disclosure-missing/seg-02.m4s", + "group": 2 + } + ], + "receipts": "avatar-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "ai_disclosure_missing", + "at": "init", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "composite-source-type", + "kind": "track", + "init": "composite-source-type/init.mp4", + "segments": [ + { + "file": "composite-source-type/seg-00.m4s", + "group": 0 + }, + { + "file": "composite-source-type/seg-01.m4s", + "group": 1 + }, + { + "file": "composite-source-type/seg-02.m4s", + "group": 2 + } + ], + "receipts": "composite-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "source_type_mismatch", + "at": "init", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "sequence-mismatch", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "sequence-mismatch/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "sequence_mismatch", + "at": "segment 2", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "stream-id-mismatch", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "stream-id-mismatch/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "stream_id_mismatch", + "at": "segment 2", + "c2pa": null, + "livevideo": "livevideo.assertion.invalid" + } + }, + { + "name": "continuity-method", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "continuity-method/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "continuity_invalid", + "at": "segment 1", + "c2pa": null, + "livevideo": "livevideo.continuityMethod.invalid" + } + }, + { + "name": "wrong-receipt", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "wrong-receipt/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "receipt_mismatch", + "at": "group 1", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "vsi-manifest-id", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "vsi-manifest-id/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "segment_info_invalid", + "at": "segment 3", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "session-key-unknown", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "session-key-unknown/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "session_key_unknown", + "at": "segment 1", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "session-key-superseded", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "session-key-superseded/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "session-key-superseded/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "session_key_out_of_range", + "at": "segment 3", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "session-key-binding", + "kind": "track", + "init": "session-key-binding/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "session-key-binding/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "session_key_invalid", + "at": "init", + "c2pa": null, + "livevideo": "livevideo.sessionkey.invalid" + } + }, + { + "name": "receipt-signer", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "receipt-signer/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "receipt_signer_mismatch", + "at": "group 11", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "bytes-changed-manifests", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "bytes-changed-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "hard_binding_mismatch", + "at": "segment 2", + "c2pa": "assertion.bmffHash.mismatch", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "bytes-changed-vsi", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "bytes-changed-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "segment_hash_mismatch", + "at": "segment 1", + "c2pa": "assertion.bmffHash.mismatch", + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "segment-missing-manifests", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "continuity_broken", + "at": "segment 2", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "segment-missing-vsi", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "segment_missing", + "at": "group 11", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "segment-reordered", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "sequence_not_increasing", + "at": "segment 2", + "c2pa": null, + "livevideo": "livevideo.assertion.invalid" + } + }, + { + "name": "segment-truncated", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "segment-truncated/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "segment_malformed", + "at": "segment 2", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "init-mdat", + "kind": "track", + "init": "init-mdat/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "init_invalid", + "at": "init", + "c2pa": null, + "livevideo": "livevideo.init.invalid" + } + }, + { + "name": "provenance-missing", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "provenance-missing/seg-01.m4s", + "group": 11 + }, + { + "file": "camera-vsi/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "provenance_missing", + "at": "segment 1", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "manifest-malformed", + "kind": "track", + "init": "manifest-malformed/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "manifest_malformed", + "at": "init", + "c2pa": "claim.malformed", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "claim-signature", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "claim-signature/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "claim_signature_mismatch", + "at": "segment 1", + "c2pa": "claimSignature.mismatch", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "assertion-altered", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "assertion-altered/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "camera-manifests/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "assertion_hash_mismatch", + "at": "segment 1", + "c2pa": "assertion.hashedURI.mismatch", + "livevideo": "livevideo.manifest.invalid" + } + }, + { + "name": "vsi-signature", + "kind": "track", + "init": "camera-vsi/init.mp4", + "segments": [ + { + "file": "camera-vsi/seg-00.m4s", + "group": 10 + }, + { + "file": "camera-vsi/seg-01.m4s", + "group": 11 + }, + { + "file": "vsi-signature/seg-02.m4s", + "group": 12 + }, + { + "file": "camera-vsi/seg-03.m4s", + "group": 13 + }, + { + "file": "camera-vsi/seg-04.m4s", + "group": 14 + } + ], + "receipts": "camera-vsi/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "segment_info_signature_failed", + "at": "segment 2", + "c2pa": null, + "livevideo": "livevideo.segment.invalid" + } + }, + { + "name": "receipt-missing", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "receipt-missing/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "receipt_missing", + "at": "group 1", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "receipt-forged", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "receipt-forged/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "receipt_invalid", + "at": "group 1", + "c2pa": null, + "livevideo": null + } + }, + { + "name": "object-receipt", + "kind": "track", + "init": "camera-manifests/init.mp4", + "segments": [ + { + "file": "camera-manifests/seg-00.m4s", + "group": 0 + }, + { + "file": "camera-manifests/seg-01.m4s", + "group": 1 + }, + { + "file": "camera-manifests/seg-02.m4s", + "group": 2 + }, + { + "file": "camera-manifests/seg-03.m4s", + "group": 3 + } + ], + "receipts": "object-receipt/receipts.json", + "expect": { + "outcome": "refuse", + "reason": "object_receipt_invalid", + "at": "group 1", + "c2pa": null, + "livevideo": null + } + } + ] +} diff --git a/wai/live-conformance/c2pa-live/vsi-manifest-id/seg-03.m4s b/wai/live-conformance/c2pa-live/vsi-manifest-id/seg-03.m4s new file mode 100644 index 0000000000000000000000000000000000000000..603586647e29e04654d55c744c2623ffa7f817c7 GIT binary patch literal 1563 zcmZQzV0@OETb#}S1f@lJR>?*MiB@H)MVV=tiAg!By2YvKxv6<2x|w-t`3z}59!Q}i zhyVf*&3&oGc_E|vLY4@Hd2vz33VYZlTI*chX>oM^^I2DJOb~Ue7EA7OT#`~aH9V5h zba6&fZd#g0VsXZj>x&Yu{otJbJ#SgK`TK;+91zDTyVCjf+yt5_3vZ18)2~d`+6q!)DU-2#xl- zBaLbKX+X!8aHLigB$i~P>X(*grYwYU(n=}|;GEpFqC`}~A`}S+1jKkAn2Dee%qvbU zEKSWzPW3CzO-e1|&dN>9%S=lxF7ZsM(1n|5Zjx+dYG|0Ko0@8Dp=*+qW~iH#YG$Ep zkd~NYX_}mDW|?A&Zc>Cp5fk&b)b4OdiAX z^xN#GXX*1|LF zh`*E+C4$9EK;l4^K)?vZA|+`lB_IYAv;*lAB}Juq3=HfbVSb=85g-j>8$+~#*_ws6wCy2ZpXMKrv=U76*uCh*$$qjD?A<14*pC!AQ`Em4)Mi z0@xC;x>leN8wa<93qq&~D8w$nn~>2Aatc@#NQi^Me?>1sRgIB~5hp|QhmBxWt_Ohb zxFk@g@Sc(J*qw@{4PPoxoj)JRBM;Qb#mG`|4WTgyD8vnP*e`_fAR!*0yX+CFGJrz7 zKzF$#RDp!}P~8P|Aj1VLiH`>;zJtibHw~z^2PyG^qV5I|gAy5X1S2On9i)VUEKUhq z6l&%RPyzyal^->{Gl20a@BkLx4xo6S^T9~VNRW~F(*|I;2{siHQpE eCZ(W>i81)E>Om6|M{y4eLx7R6kp!B(`y2qU4qk5n literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/vsi-signature/seg-02.m4s b/wai/live-conformance/c2pa-live/vsi-signature/seg-02.m4s new file mode 100644 index 0000000000000000000000000000000000000000..610b15e901c2086fb45ce2ed3235c7b00e7821a4 GIT binary patch literal 6222 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 literal 0 HcmV?d00001 diff --git a/wai/live-conformance/c2pa-live/wrong-receipt/seg-01.m4s b/wai/live-conformance/c2pa-live/wrong-receipt/seg-01.m4s new file mode 100644 index 0000000000000000000000000000000000000000..aa31a9399c4e8b008b276043569bd0dcd7838112 GIT binary patch literal 3912 zcmcImeN+=y7N5z4fPfeUk)s7dK|vs4G7v~CbfH@j>KChS!PbhCnK#Kul8G}D46el> zwAu>w)YfBLZL9cE!L?=osCsl;-7bFAL$&L&pu1Y>QR~N6t*rIbJ*~U%B?APcd)VD} zawhZM@7#Oe@7>?MZwA96qCFm-J^SE~U6Z0p@;7X%NLy3eUWdWUNxOIsNHQ8LSNK;; zJx(i}B)})jP;MFCKirlb$jIjllKqIe@$Ma{r#Vdm^+#4Y8_KH zoVwbZ*l}=T`nJj)y&X$|mvML`v~oi;%hEDk*9@v@hX<4m%_%2voCM@B;C0io9b}=r zZ|j?Ia*exx;^ahnaIlJ`{;X94k>_~Y>HvBP*qp#6>v<^e7S z%z?52F$8Y3Wl%DQ%?-`?Gij)%P-eU+GuvzmSl7%2Mh+yQfe`^M19ln9+jyCF%ojW& z0~XY{fw#ae%kF7eSxmKocgu`H5N%m5uv}sU7D!o&z2vutTL*o}FKM^z5dmEHl0uaH zaS2vb(%z86trS;}KlGD>>E+-o> zMk7rbhbGF+2rij-d3d>IHjwQCEBLqD*Ak_y=oaD9f=8OIbO~HZ->*@g$(#pr&6J+8 z=2-MO*{nrxv5-c+kzukefHme?X;gK4lr82ByG4oNk#q)Gq+L=V>4xPrZ?K7i$BlOC z@b8or1wpRRJ>Rykb9()#6CXEy7Z%ymFz=&|<8R%>&Mx|zo^@sK338Op?^epHY=U(u zU}Q;c69EIDHWj+68@l7nUslJxm!i7b)xG%s--;vht&`VH`Eti5t1oh6EbKvAp_=Na zN->UyTZ(beyfaWV1cj*W3~DD{;%zP(N$Z_00SA|i;&BC8D6Lujc^k=z;CC_fhg-_K zB$2I_11+v_DLQ>@W!>zr<1aaG-7aK3 z>ErI*X)XS!YS)#D^qy94&-wrt@N;l^sEZX!E0)h`Dt~_Wk!nNCgGq1Xbahs~Duh+F zJ=N0j#+KZDjjIBb96vFo|JZd3vwca+)7y&=Ke4$3*pjr{ZZ=Mle{z$Y4K2i*MQsd&H%{l|=844VR42I7olJmtT%A0{Tg%n3hg z!^7dKst@jLt|Y^#$uU@RA%^)NM8)NYlQ*7Q@>JF3{Xg8hK8Z;E@{70Q-^!%+>8Ml+ z?}2879rB&-!wa#~moL_K?@GM%cSG&8m6NjDYCb)rGVYy6jiXf9YQ+#b6k;#mg&2XW z3j@vp%m*>GO0zZyTjQg~QX%TF&vpJq{B|!uND~$j_v8Sy8bYDk(M#<0h>G6|L1Eb3 z-Aw~lE2$J}6juMu@BCKNk3b%0w6(h1IDYKBcc<@e&B@cJ7e*#R$8cQj?HX`&Kqvwd z`{zJ-1Vut#zZkHxLufSQHDkaEK~aNwL4w%l!xWze;s-`pd^4eKV^HxS>CVC%l}@n0 z!3CEYR4Bpt|1%!1#Jq+I2yS)E;C$Pmp4y(id>10!w|qmTQ)6+Ww+-e^TZqAyiNQKQ zP^DbCko{G`+~dC)cX;i^@fR-kB+&VbL!kdSm1ad}zpWapfLOFT?BsVrSQ*4(!XhT- i55dN3M_bt;SS&WTwQ&eGVGtiRRz^iraYNSqxbWYVC2 write vectors.json, the trust anchor and +//! every vector's segments and receipts, +//! from fixed seeds +//! wai_live_provenance_vectors verify every file regenerates byte for byte, no +//! other file but README.md is there, and +//! every vector gets the outcome it states +//! +//! The media are the AV1 floor of the packaging corpus (`pack-conformance/packs/video-base-01`), +//! read from the `wai` directory two levels above the corpus directory. The generator and this +//! verifier are one implementation; the corpus's second implementation is +//! `live-conformance/c2pa_live_verify.py`, written from the extension's text and sharing no +//! code with this binary. + +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; +use wai::live_provenance::corpus::{self, Media}; + +fn media(dir: &Path) -> Media { + // The corpus directory need not exist yet, so its parents are taken from the path. + let wai = dir.parent().and_then(Path::parent).map_or_else(|| dir.join("../.."), Path::to_path_buf); + match Media::load(&wai) { + Some(m) => m, + None => { + eprintln!("the floor under {} does not read", wai.join(corpus::FLOOR_DIR).display()); + std::process::exit(1); + } + } +} + +fn main() { + let a: Vec = std::env::args().collect(); + match (a.get(1).map(String::as_str), a.get(2)) { + (Some("gen"), Some(d)) => { + let dir = PathBuf::from(d); + let m = media(&dir); + for (name, body) in corpus::generate(&m) { + let p = dir.join(&name); + if let Some(parent) = p.parent() { + if let Err(e) = std::fs::create_dir_all(parent) { + eprintln!("create {}: {e}", parent.display()); + std::process::exit(1); + } + } + if let Err(e) = std::fs::write(&p, body) { + eprintln!("write {}: {e}", p.display()); + std::process::exit(1); + } + } + println!("wrote {d}"); + } + (Some("verify"), Some(d)) => std::process::exit(verify(Path::new(d))), + _ => { + eprintln!("usage: wai_live_provenance_vectors gen|verify "); + std::process::exit(2); + } + } +} + +fn read_tree(root: &Path, dir: &Path, out: &mut BTreeMap>) -> std::io::Result<()> { + for e in std::fs::read_dir(dir)? { + let e = e?; + let p = e.path(); + if p.is_dir() { + read_tree(root, &p, out)?; + } else { + let rel = p.strip_prefix(root).expect("under the root").to_string_lossy().replace('\\', "/"); + if rel != "README.md" { + out.insert(rel, std::fs::read(&p)?); + } + } + } + Ok(()) +} + +fn verify(dir: &Path) -> i32 { + let mut files = BTreeMap::new(); + if let Err(e) = read_tree(dir, dir, &mut files) { + eprintln!("read {}: {e}", dir.display()); + return 1; + } + let generated: BTreeMap> = corpus::generate(&media(dir)).into_iter().collect(); + let same = files == generated; + println!("{} every file regenerates byte for byte from its seeds, and no other file is there", if same { "PASS" } else { "FAIL" }); + let fails = corpus::verify_files(&files); + for f in &fails { + println!("FAIL {f}"); + } + println!("{} every vector gets the outcome the corpus states", if fails.is_empty() { "PASS" } else { "FAIL" }); + (!same || !fails.is_empty()) as i32 +} diff --git a/wai/wai-rs/src/lib.rs b/wai/wai-rs/src/lib.rs index 189e83f18..b1e066f70 100644 --- a/wai/wai-rs/src/lib.rs +++ b/wai/wai-rs/src/lib.rs @@ -477,6 +477,15 @@ pub mod live_watermark; /// cbindgen:ignore #[cfg(feature = "live_ads")] pub mod live_ads; +// Live provenance (extensions/live-provenance.md): `wai.live.provenance` — the live video +// provenance of C2PA 2.4 §19 for a room's CMAF tracks and a device's CMAF take: per-segment +// manifests chained by manifest identifier, Verifiable Segment Info under rotating session keys, +// and each segment's hard binding tied to the JWP group receipt and object receipts of the same +// chunks. Rust-only, like the other live modules: its constants must not become macros in +// include/wai.h. +/// cbindgen:ignore +#[cfg(feature = "live_provenance")] +pub mod live_provenance; // Timed text and live captions (extensions/timed-text.md): `wai.text.timed` — the cue model // both WebVTT and the IMSC1 Text Profile express, live caption revisions as `caption` // events of `wai.live.events` with the WTX1 annotation, and the exact mappings onto WebVTT diff --git a/wai/wai-rs/src/live_provenance.rs b/wai/wai-rs/src/live_provenance.rs new file mode 100644 index 000000000..72718795d --- /dev/null +++ b/wai/wai-rs/src/live_provenance.rs @@ -0,0 +1,1559 @@ +//! Live provenance — `wai.live.provenance` ([extensions/live-provenance.md]). +//! +//! The live video provenance of C2PA 2.4 §19 for a room's CMAF tracks and a device's CMAF +//! take, written and verified exactly as the extension profiles it, with no C2PA library: +//! +//! - [`bmff`]: the segment layout (§3.2), the C2PA Manifest Box and the VSI `emsg` box, the +//! chunks and the `moov`, and the BMFF hash over whole-box exclusions (§4.5); +//! - [`jumbf`]: the manifest store (§4.1); +//! - [`cose`]: `COSE_Sign1_Tagged` with EdDSA and the OKP key (§4.3, §7); +//! - [`x509`]: the claim signer's certificates, their profile and chain (§4.4, §11.2); +//! - this module: the assertions (§4.5 to §9), the writer of initialization segments and +//! segments under either method or both, and the verifier of §11; +//! - [`corpus`]: the conformance corpus (§13). +//! +//! The segment of a room track's group *is* the group's objects behind its C2PA boxes, so +//! the verifier checks the C2PA hard binding, the group receipt's Merkle root and each +//! object receipt over the same chunks (§8), through [`crate::jwp_delivery`]. +//! +//! [extensions/live-provenance.md]: https://git.transaction.science/Transaction-Science/open-standards/src/branch/main/wai/extensions/live-provenance.md + +pub mod bmff; +pub mod corpus; +pub mod cose; +pub mod jumbf; +pub mod x509; + +use crate::jwp_delivery::{leaf_legacy, root, GroupReceipt, ObjectReceipt}; +use crate::jwp_hash::content_hash; +use crate::live_watermark::cbor::{encode, read_one, Item}; +use crate::timed_text::{origin, DST_PREFIX, MODEL_URI}; +use bmff::{BoxRef, Emsg}; +use ed25519_dalek::SigningKey; +use sha2::{Digest, Sha256}; + +/// The record string (SPEC §5). +pub const CAPABILITY: &str = "wai.live.provenance"; +/// §3.4: the domain of a track's stream identifier. +pub const STREAM_DOMAIN: &[u8] = b"wai:live-provenance:stream\x01"; +/// §10.2: the suffix of a provenance track's name. +pub const PROVENANCE_SUFFIX: &str = "_c2pa"; +/// §10.2: the provenance track's `packaging`. +pub const PROVENANCE_PACKAGING: &str = "wai-c2pa"; +/// §10.2: the catalog field that names the provenance track. +pub const CATALOG_FIELD: &str = "wai_c2pa_track"; + +/// The hard binding's label (§4.5). +pub const L_HASH: &str = "c2pa.hash.bmff.v3"; +/// The actions' label (§4.6). +pub const L_ACTIONS: &str = "c2pa.actions.v2"; +/// The live video segment assertion's label (§6). +pub const L_LIVE: &str = "c2pa.livevideo.segment"; +/// The session keys assertion's label (§7.1). +pub const L_KEYS: &str = "c2pa.session-keys"; +/// The AI disclosure's label (§9.1); later instances add `__1`, `__2`, …. +pub const L_AI: &str = "c2pa.ai-disclosure"; +/// The stream assertion (§5.1). +pub const L_STREAM: &str = "science.transaction.wai.stream"; +/// The group assertion (§5.2). +pub const L_GROUP: &str = "science.transaction.wai.group"; +/// The take assertion (§5.3). +pub const L_TAKE: &str = "science.transaction.wai.take"; + +/// The claim generator's name (§4.2). +pub const GENERATOR: &str = "wai"; +/// The specification version the claim generator names (§4.2). +pub const SPEC_VERSION: &str = "2.4.0"; +/// The continuity method (§6). +pub const CONTINUITY: &str = "c2pa.manifestId"; +/// The generic model type of C2PA 2.4 Table 12 (§9.1). +pub const MODEL_TYPE: &str = "c2pa.types.model"; + +// ───────────────────────────── reasons ───────────────────────────── + +/// A reason of §12. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub enum Reason { + SegmentMalformed, + InitInvalid, + ProvenanceMissing, + ManifestMalformed, + CredentialInvalid, + CredentialUntrusted, + ClaimSignatureMismatch, + CredentialExpired, + AssertionHashMismatch, + HardBindingMismatch, + StreamAssertionInvalid, + SourceTypeMismatch, + AiDisclosureMissing, + SessionKeyInvalid, + SequenceNotIncreasing, + SequenceMismatch, + StreamIdMismatch, + ContinuityInvalid, + ContinuityBroken, + SegmentInfoInvalid, + SessionKeyUnknown, + SegmentInfoSignatureFailed, + SessionKeyOutOfRange, + SegmentHashMismatch, + ReceiptMissing, + ReceiptInvalid, + ReceiptMismatch, + ReceiptSignerMismatch, + ObjectReceiptInvalid, + SegmentMissing, +} + +impl Reason { + /// Every reason, in §12's order. + pub const ALL: [Reason; 30] = [ + Reason::SegmentMalformed, + Reason::InitInvalid, + Reason::ProvenanceMissing, + Reason::ManifestMalformed, + Reason::CredentialInvalid, + Reason::CredentialUntrusted, + Reason::ClaimSignatureMismatch, + Reason::CredentialExpired, + Reason::AssertionHashMismatch, + Reason::HardBindingMismatch, + Reason::StreamAssertionInvalid, + Reason::SourceTypeMismatch, + Reason::AiDisclosureMissing, + Reason::SessionKeyInvalid, + Reason::SequenceNotIncreasing, + Reason::SequenceMismatch, + Reason::StreamIdMismatch, + Reason::ContinuityInvalid, + Reason::ContinuityBroken, + Reason::SegmentInfoInvalid, + Reason::SessionKeyUnknown, + Reason::SegmentInfoSignatureFailed, + Reason::SessionKeyOutOfRange, + Reason::SegmentHashMismatch, + Reason::ReceiptMissing, + Reason::ReceiptInvalid, + Reason::ReceiptMismatch, + Reason::ReceiptSignerMismatch, + Reason::ObjectReceiptInvalid, + Reason::SegmentMissing, + ]; + + /// The code §12 names. + pub fn code(self) -> &'static str { + match self { + Reason::SegmentMalformed => "segment_malformed", + Reason::InitInvalid => "init_invalid", + Reason::ProvenanceMissing => "provenance_missing", + Reason::ManifestMalformed => "manifest_malformed", + Reason::CredentialInvalid => "credential_invalid", + Reason::CredentialUntrusted => "credential_untrusted", + Reason::ClaimSignatureMismatch => "claim_signature_mismatch", + Reason::CredentialExpired => "credential_expired", + Reason::AssertionHashMismatch => "assertion_hash_mismatch", + Reason::HardBindingMismatch => "hard_binding_mismatch", + Reason::StreamAssertionInvalid => "stream_assertion_invalid", + Reason::SourceTypeMismatch => "source_type_mismatch", + Reason::AiDisclosureMissing => "ai_disclosure_missing", + Reason::SessionKeyInvalid => "session_key_invalid", + Reason::SequenceNotIncreasing => "sequence_not_increasing", + Reason::SequenceMismatch => "sequence_mismatch", + Reason::StreamIdMismatch => "stream_id_mismatch", + Reason::ContinuityInvalid => "continuity_invalid", + Reason::ContinuityBroken => "continuity_broken", + Reason::SegmentInfoInvalid => "segment_info_invalid", + Reason::SessionKeyUnknown => "session_key_unknown", + Reason::SegmentInfoSignatureFailed => "segment_info_signature_failed", + Reason::SessionKeyOutOfRange => "session_key_out_of_range", + Reason::SegmentHashMismatch => "segment_hash_mismatch", + Reason::ReceiptMissing => "receipt_missing", + Reason::ReceiptInvalid => "receipt_invalid", + Reason::ReceiptMismatch => "receipt_mismatch", + Reason::ReceiptSignerMismatch => "receipt_signer_mismatch", + Reason::ObjectReceiptInvalid => "object_receipt_invalid", + Reason::SegmentMissing => "segment_missing", + } + } + + /// The C2PA 2.4 §15 code §12 gives the reason. + pub fn c2pa(self) -> Option<&'static str> { + Some(match self { + Reason::ManifestMalformed => "claim.malformed", + Reason::CredentialInvalid => "signingCredential.invalid", + Reason::CredentialUntrusted => "signingCredential.untrusted", + Reason::ClaimSignatureMismatch => "claimSignature.mismatch", + Reason::CredentialExpired => "claimSignature.outsideValidity", + Reason::AssertionHashMismatch => "assertion.hashedURI.mismatch", + Reason::HardBindingMismatch | Reason::SegmentHashMismatch => "assertion.bmffHash.mismatch", + _ => return None, + }) + } + + /// The §19.7 code §12 gives the reason. + pub fn livevideo(self) -> Option<&'static str> { + Some(match self { + Reason::SegmentMalformed + | Reason::ProvenanceMissing + | Reason::ContinuityBroken + | Reason::SegmentInfoInvalid + | Reason::SessionKeyUnknown + | Reason::SegmentInfoSignatureFailed + | Reason::SessionKeyOutOfRange + | Reason::SegmentHashMismatch => "livevideo.segment.invalid", + Reason::InitInvalid => "livevideo.init.invalid", + Reason::ManifestMalformed + | Reason::CredentialInvalid + | Reason::CredentialUntrusted + | Reason::ClaimSignatureMismatch + | Reason::CredentialExpired + | Reason::AssertionHashMismatch + | Reason::HardBindingMismatch => "livevideo.manifest.invalid", + Reason::SessionKeyInvalid => "livevideo.sessionkey.invalid", + Reason::SequenceNotIncreasing | Reason::StreamIdMismatch => "livevideo.assertion.invalid", + Reason::ContinuityInvalid => "livevideo.continuityMethod.invalid", + _ => return None, + }) + } + + /// The reason of a code. + pub fn from_code(c: &str) -> Option { + Reason::ALL.iter().copied().find(|r| r.code() == c) + } +} + +/// Where a refusal was raised (§11.1). +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Place { + Init, + /// The *k*-th segment received, counting from 0. + Segment(usize), + Group(u64), +} + +impl Place { + pub fn label(&self) -> String { + match self { + Place::Init => "init".into(), + Place::Segment(k) => format!("segment {k}"), + Place::Group(g) => format!("group {g}"), + } + } +} + +/// A refusal: the reason and where. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Refusal { + pub reason: Reason, + pub at: Place, +} + +// ───────────────────────────── CBOR helpers ───────────────────────────── + +fn text(s: &str) -> Item { + Item::Text(s.into()) +} + +fn bytes(b: &[u8]) -> Item { + Item::Bytes(b.to_vec()) +} + +fn map(entries: Vec<(&str, Item)>) -> Item { + Item::Map(entries.into_iter().map(|(k, v)| (text(k), v)).collect()) +} + +/// The value of map `m` under the text key `k`. +fn get<'a>(m: &'a Item, k: &str) -> Option<&'a Item> { + match m { + Item::Map(e) => e.iter().find(|(key, _)| matches!(key, Item::Text(t) if t == k)).map(|(_, v)| v), + _ => None, + } +} + +/// Whether `m` is a map whose keys are text, all of `required` among them, and no other but +/// `optional`'s. +fn keys(m: &Item, required: &[&str], optional: &[&str]) -> bool { + let Item::Map(e) = m else { return false }; + e.iter().all(|(k, _)| matches!(k, Item::Text(t) if required.contains(&t.as_str()) || optional.contains(&t.as_str()))) + && required.iter().all(|r| get(m, r).is_some()) +} + +fn get_text<'a>(m: &'a Item, k: &str) -> Option<&'a str> { + match get(m, k)? { + Item::Text(t) => Some(t), + _ => None, + } +} + +fn get_uint(m: &Item, k: &str) -> Option { + match get(m, k)? { + Item::Uint(v) => Some(*v), + _ => None, + } +} + +fn get_b32(m: &Item, k: &str) -> Option<[u8; 32]> { + match get(m, k)? { + Item::Bytes(b) => b.as_slice().try_into().ok(), + _ => None, + } +} + +/// Lowercase hexadecimal. +pub fn hex(b: &[u8]) -> String { + b.iter().map(|x| format!("{x:02x}")).collect() +} + +fn uuid_string(b: &[u8; 16]) -> String { + let h = hex(b); + format!("{}-{}-{}-{}-{}", &h[..8], &h[8..12], &h[12..16], &h[16..20], &h[20..]) +} + +// ───────────────────────────── identities ───────────────────────────── + +/// A version-8 UUID of 16 bytes (§3.4). +pub fn uuid_v8(mut b: [u8; 16]) -> String { + b[6] = (b[6] & 0x0F) | 0x80; + b[8] = (b[8] & 0x3F) | 0x80; + uuid_string(&b) +} + +/// A manifest identifier (§4.2): `urn:c2pa:` and a version-4 UUID of the 16 bytes. +pub fn manifest_id(mut b: [u8; 16]) -> String { + b[6] = (b[6] & 0x0F) | 0x40; + b[8] = (b[8] & 0x3F) | 0x80; + format!("urn:c2pa:{}", uuid_string(&b)) +} + +/// Whether `s` is a manifest identifier as §4.2 has it, and its UUID. +fn manifest_uuid(s: &str) -> Option<&str> { + let u = s.strip_prefix("urn:c2pa:")?; + let ok = u.len() == 36 + && u.char_indices().all(|(i, c)| if [8, 13, 18, 23].contains(&i) { c == '-' } else { c.is_ascii_digit() || ('a'..='f').contains(&c) }) + && &u[14..15] == "4" + && "89ab".contains(&u[19..20]); + ok.then_some(u) +} + +/// A media kind of live-rooms §6.1. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum MediaKind { + Audio, + Video, + Screen, +} + +/// The media kind of a track's rendering `----` (§5.1), whose +/// room field is `room`. +pub fn track_kind(track: &str, room: &[u8; 32]) -> Option { + let (ns, layer) = track.split_once("--")?; + let layer_ok = !layer.is_empty() && layer.bytes().all(|c| c.is_ascii_digit()) && (layer == "0" || !layer.starts_with('0')); + let f: Vec<&str> = ns.split('-').collect(); + let [r, owner, kind] = f.as_slice() else { return None }; + let lower_hex = |s: &str| s.len() == 64 && s.bytes().all(|c| c.is_ascii_digit() || (b'a'..=b'f').contains(&c)); + let slot = |s: &str| s.len() > 1 && s.starts_with('_') && s.bytes().all(|c| c.is_ascii_lowercase() || c.is_ascii_digit() || c == b'_'); + if !layer_ok || *r != hex(room) || !(lower_hex(owner) || slot(owner)) { + return None; + } + match *kind { + "audio" => Some(MediaKind::Audio), + "video" => Some(MediaKind::Video), + "screen" => Some(MediaKind::Screen), + _ => None, + } +} + +/// One input of a compositor's output (§5.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Input { + pub stream_id: String, + pub track: String, + pub origin: u8, + pub model: Option<[u8; 32]>, +} + +/// A stream's disclosure label (§5.1). +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Label { + Own { origin: u8, model: Option<[u8; 32]> }, + Inputs(Vec), +} + +fn origin_model_ok(origin: u8, model: &Option<[u8; 32]>) -> bool { + match origin { + origin::HUMAN => model.is_none(), + origin::MACHINE | origin::REVIEWED => model.is_some(), + _ => false, + } +} + +fn origin_item(entries: &mut Vec<(&str, Item)>, o: u8, m: &Option<[u8; 32]>) { + entries.push(("origin", Item::Uint(o as u64))); + if let Some(m) = m { + entries.push(("model", bytes(m))); + } +} + +fn read_origin(m: &Item) -> Option<(u8, Option<[u8; 32]>)> { + let o = u8::try_from(get_uint(m, "origin")?).ok()?; + let model = match get(m, "model") { + None => None, + Some(_) => Some(get_b32(m, "model")?), + }; + origin_model_ok(o, &model).then_some((o, model)) +} + +impl Label { + pub fn to_item(&self) -> Item { + match self { + Label::Own { origin, model } => { + let mut e = Vec::new(); + origin_item(&mut e, *origin, model); + map(e) + } + Label::Inputs(v) => map(vec![( + "inputs", + Item::Array( + v.iter() + .map(|i| { + let mut e = vec![("streamId", text(&i.stream_id)), ("track", text(&i.track))]; + origin_item(&mut e, i.origin, &i.model); + map(e) + }) + .collect(), + ), + )]), + } + } + + fn from_item(m: &Item) -> Option