open-standards/wai/live-conformance/c2pa-identity/objects/dc7272b6bcb3691026595e74bbfb6e6b990a78dd66530c14a390cea0f1106a7b.receipts.json
Transaction Science fdf3243521 ISCC: the io.iscc.v0 soft binding in a C2PA store, matching on every code, the Meta-Code held to IEP-0002, and the Unicode tables pinned
c2pa-binding §4.9: a store of wai.asset.c2pa may carry the envelope's ISCC as the C2PA soft
binding io.iscc.v0 of IEP-0020, beside the identifier: the Image-Code of the envelope's picture
(where it is not featureless), the Data-Code and the Instance-Code of its bytes, with the
generator named in bindingMetadata. It has its own assertion shape and its own verify step: the
units are computed again from the envelope and the binding is held to them, each equal
(iscc_mismatch); it is the last of the soft bindings (manifest_malformed otherwise) and names no
robustness claim (soft_binding_unevidenced).

iscc §5: matching compares a binding's Data-, Text-, Audio-, Video- and Meta-Codes with the
asset's unit of the same type where the validator holds the input, under a threshold for each
type, the decision in integers; a pair of Meta-Codes is reported and never a match.

iscc §4.9: IEP-0002 was read. The meta element is read as a data URL (RFC 2397, base64) or a
JSON object in the JSON Canonicalization Scheme (RFC 8785), numbers as ECMA-262 writes them,
computed exactly; the text says where the IEP is silent or differs from the public vectors.

tools/wai_iscc_unicode_tables.py pins the SHA-256 of the tables it writes; --check and
tests/iscc.rs hold the committed tables to it, and CI runs both. No runner image carries a
Python of Unicode 17.0.0, so CI checks the pin; a Python that does also regenerates.

Corpora c2pa-identity/ (three good stores and eleven negatives more; the vectors it held keep
their bytes) and iscc/ are regenerated; c2pa_live_verify.py and iscc_verify.py compute all of it
again and drop each new check in turn.

Co-Authored-By: Claude <[email protected]>
2026-11-10 22:36:11 -05:00

31 lines
1 KiB
JSON

{
"group": {
"kind": "group",
"track_alias": 1,
"group_id": 1,
"root_hash": "15a07619db4d1fafea03f70b3c3716dd1022b59941de18e16ddc92ab0afe25cc",
"leaf_count": 1,
"joules_total": 0,
"group_start": "2026-11-09T11:00:02Z",
"group_end": "2026-11-09T11:00:04Z",
"signer_pubkey": "26cc24b33fb6bcfafd754b84f26e8239933ebacb70a75ebcdd8b7bf46f24521d",
"signer_id": "publisher.example",
"sig": "274ee9b32346240867264b3de74cd12aac5a899e0270ae4bffc5fd0f11a61227706368d6ded92fca4d791ee8a849f57c1d29db22f8ad745fabc1d0702854990c",
"parent_receipt_hash": "25110abab2affacbd049ebd714e97764ba355c1bf318e5adb9c178a6817cc3cc",
"sign_version": 2
},
"object": {
"kind": "object",
"track_alias": 1,
"group_id": 1,
"object_id": 0,
"content_hash": "dc7272b6bcb3691026595e74bbfb6e6b990a78dd66530c14a390cea0f1106a7b",
"joules_micro": 0,
"origin": "origin.example",
"merkle_proof": {
"siblings": [],
"direction_bits": 0,
"leaf_index": 0
}
}
}