| Filename | Latest commit message | Latest commit date |
|---|---|---|
LOC carriage reads draft-ietf-moq-loc-05: its new Codec String property
(0x11, UTF-8, not empty, at most once) joins loc-carriage §2.2, and
joule-moq's loc module reads it, writes it when the caller states one, and
regenerates the LOC corpus with an object that carries it and three the
reader refuses for it; loc_verify.py reads the same rule.
Live rooms §10.1, §10.2 and §10.6 follow draft-ietf-moq-c4m-02: the moqt
claim is the map {0: [scopes]}, its first scope SETUP (1) in place of
CLIENT_SETUP (0); catreplay 1 is one connection for MOQT; cnf names the
key by ckt. wai-rs and live_rooms_verify.py state each grant's claim in
that form, and the rooms corpus is regenerated.
Live rooms §10.4 follows draft-ietf-moq-privacy-pass-auth-04: a scope's
actions are of the table 0 to 9 (SUBSCRIBE_TRACKS is 9). The room's scope
is unchanged; wai-rs's age_assurance reader and age_assurance_verify.py
take the wider table, and the age corpus names action 10 for an action
outside it and adds a scope naming 9 that reads and is scope_mismatch.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
||
| .. | ||
| README.md | ||
| vectors.json | ||
live-conformance/loc — WAI envelopes on LOC objects
The corpus of extensions/loc-carriage.md §8, in
vectors.json:
objects: one LOC object per case, of every mapped capability (§3.1): the envelope it carries (envelope, hexadecimal), its MOQ Object Properties as MOQT -22 encodes them (properties: one Immutable Properties pair holding the LOC properties,WAI_MANIFESTand, where stated,WAI_RECEIPT), its payload, its LOC properties (loc) and its receipt property's value (receipt, ornull). A conforming reader reads the object back to exactly that envelope, those properties and that receipt, and a conforming writer writes exactly those bytes from them.writer_refused: envelopes a writer refuses (an unmapped capability, two pictures in one payload, an encrypted manifest, bytes that are not aWAI1envelope), each with its code.refused: objects a reader refuses, each a change to one written object, with its code; every code of §6 is given by one of these or ofwriter_refused.property_types: the type of each property, as §2.2 and §4.1 give them.
Provenance. Written by cargo run -p joule-moq --example loc_vectors -- gen (from
joule-code/joule-code-rs), from fixed values. The HEVC objects carry the first two access
units of ../../format-probe-conformance/ext/hevc/base_64x64.265,
a real encoder's output of a synthetic picture (its provenance is that corpus's). The Opus
object carries one 20 ms packet of silence (TOC 0xF8). The AVC and AAC objects carry fixed
bytes in the form §3.2 checks, which are not decodable pictures or sounds. Group receipts are
named by the BLAKE3 hash of a fixed label; no signature is in the corpus.
Checks. joule-moq's tests/loc_vectors.rs regenerates the file byte for byte, requires
every outcome, and requires §6's table to list exactly the codes the reader and writer give.
../loc_verify.py, written from the extension's text and sharing no code with joule-moq,
does the same with its own MOQT -22 decoder and BLAKE3, writes every object again, and requires
every mutated copy of the corpus, and the corpus under a copy of itself without one of its
checks, to fail:
python3 -I live-conformance/loc_verify.py live-conformance/loc