Commit 3343416
committed
feat: migrate to ISO 19566-5 conformant JUMBF manifest store
Replace the legacy JSON-in-fake-JUMB-box approach with a proper C2PA v2
binary manifest store format. New modules jumbf.py (ISO 19566-5
serializer/parser) and c2pa_claim.py (claim v2 CBOR builder) produce
spec-conformant JUMBF superbox hierarchies with correct type UUIDs,
CBOR assertion boxes, and COSE_Sign1 signatures.
The signing pipeline in unicode_metadata.py now uses deterministic
wrapper padding to break hash-avalanche circularity, builds proper
assertion boxes with hashed references, and stores signer_id and context
in dedicated CBOR assertions. Verification supports both new and legacy
formats with graceful fallback.
Deprecates serialize_jumbf_payload() and deserialize_jumbf_payload()
with runtime warnings. Existing tests updated; new unit and integration
tests cover JUMBF structure, claim hashes, hard/soft binding, tamper
detection, and round-trip sign/verify.1 parent 3e35877 commit 3343416
11 files changed
Lines changed: 1789 additions & 205 deletions
File tree
- encypher
- core
- interop/c2pa
- tests
- integration
- interop
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
110 | 111 | | |
111 | 112 | | |
112 | 113 | | |
| 114 | + | |
113 | 115 | | |
114 | 116 | | |
115 | 117 | | |
| |||
177 | 179 | | |
178 | 180 | | |
179 | 181 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
185 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
186 | 192 | | |
187 | 193 | | |
188 | 194 | | |
| |||
196 | 202 | | |
197 | 203 | | |
198 | 204 | | |
199 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
200 | 217 | | |
201 | 218 | | |
202 | 219 | | |
| |||
0 commit comments