open-standards/wai/live-conformance/README.md
Transaction Science 0c19c60ad9 wai: live provenance, derived manifest identifiers, dynamic packaging and repository receipts
C2PA 2.4 extends live video to dynamically packaged content and recommends
deterministic signatures for streaming (§19.2.1, §13.2.1, naming ISO/IEC 23009-9);
it adds the repository receipt assertion (§18.27). Every manifest identifier is now
derived from the stream, a role and the segment's sequence number, so packagers that
share a key write identical segments and packagers that do not chain across a
failover. The initialization manifest may carry an update manifest with the parent
as ingredient and a c2pa.repository-receipt whose proof is an RFC 9942 receipt of
inclusion in an RFC 9162 log, verified against the repository's key.

Three reasons: manifest_id_mismatch, update_manifest_invalid and
repository_receipt_invalid; a failover vector, a registered vector and their
negatives; c2pa_live_verify.py reads all of it from the text. The CI step, the
registry entry and its export, SPEC §5, the CHANGELOG, the live-conformance README
and capture-binding §11 come with it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 04:49:42 -04:00

3.9 KiB

live-conformance — the wai.live family

Conformance corpora of the live and interactive extensions, one directory per extension, and the independent verifier of each, beside it.

directory extension verifier
events/ live-events (wai.live.events) live_events_verify.py
rooms/ live-rooms (wai.live.room) live_rooms_verify.py
takes/ capture-binding (wai.capture.take) capture_take_verify.py
compose/ live-compose (wai.live.compose) live_compose_verify.py
recordings/ live-recording (wai.live.recording) live_record_verify.py
captions/ timed-text (wai.text.timed) timed_text_verify.py
metering/ live-metering (wai.live.metering) live_metering_verify.py
steering/ energy-steering (wai.live.steering) energy_steering_verify.py
moderation/ live-moderation (wai.live.moderation) live_moderation_verify.py
ads/ live-ads (wai.live.ads) live_ads_verify.py
e2ee/ confidentiality (wai.live.e2ee) e2ee_verify.py
watermark/ forensic-watermark (wai.live.watermark) live_watermark_verify.py
c2pa-live/ live-provenance (wai.live.provenance) c2pa_live_verify.py

Provenance. Generated here: wai_live_events_vectors gen writes events/, wai_live_room_vectors gen writes rooms/, wai_capture_take_vectors gen writes takes/, wai_live_compose_vectors gen writes compose/, wai_live_record_vectors gen writes recordings/, wai_timed_text_vectors gen writes captions/ and wai_live_metering_vectors gen writes metering/, wai_energy_steering_vectors gen writes steering/, wai_live_moderation_vectors gen writes moderation/, wai_live_watermark_vectors gen writes watermark/, wai_live_ads_vectors gen writes ads/ and wai_live_provenance_vectors gen writes c2pa-live/, each from records authored in code, from fixed seeds (events/README.md, rooms/README.md, takes/README.md, compose/README.md, recordings/README.md, captions/README.md, metering/README.md, steering/README.md, moderation/README.md, watermark/README.md, ads/README.md, c2pa-live/README.md); c2pa-live/ cuts its media from the packaging corpus's AV1 floor. joule_moq_e2ee_vectors gen (in joule-code/joule-code-rs/crates/joule-moq-mls) writes e2ee/vectors.json from fixed seeds, and e2ee/ also holds the test vectors RFC 9605 and draft-ietf-moq-secure-objects-01 publish, as printed (e2ee/README.md). One recorded record: metering/relay-record.wmh and its ledger, which the reference relay signed in its test.

Each verifier is written from its extension's text, shares no code with the reference (wai-rs, or for e2ee/, joule-moq and joule-moq-mls), and is run by .github/workflows/wai-conformance.yml beside the reference's own check:

python3 live_events_verify.py events
python3 live_rooms_verify.py rooms
python3 capture_take_verify.py takes
python3 live_compose_verify.py compose
python3 live_record_verify.py recordings
python3 timed_text_verify.py captions
python3 live_metering_verify.py metering
python3 energy_steering_verify.py steering
python3 live_moderation_verify.py moderation
python3 live_ads_verify.py ads
python3 e2ee_verify.py e2ee
python3 live_watermark_verify.py watermark
python3 c2pa_live_verify.py c2pa-live