Reproducible lab · Content provenance
C2PA Verification Lab: What Survives an Edit?
Content Credentials can carry a signed, tamper-evident record of declared actions. This controlled lab shows what EXIFDataView actually reads from five synthetic files—and why a valid claim, a trusted signer, and a truthful image are three different questions.
What is controlled here?
Every file starts from a generated graphic that states it contains no person, location, or private data. The archive includes all five files, manifest definitions, SHA-256 hashes, a result CSV, and the reproduction outline. The signed files use c2patool's built-in development certificate—not a production identity.
Observed results
On July 25, 2026, each file was checked with c2patool 0.9.12 and the current EXIFDataView C2PA checker. The two signed files exposed their declared actions. The official trust-list check and EXIFDataView both reported signingCredential.untrusted for the test certificate.
| Sample | Transformation | Observed result | Interpretation |
|---|---|---|---|
| Unsigned source | No C2PA signing | No Content Credential found | Control file |
| Signed original | Signed with c2patool's development certificate | Claim and created action found | State Valid; signer untrusted |
| Edited and signed | Rotated, then signed with opened and edited actions | Claim and both actions found | State Valid; signer untrusted |
| Screenshot | Browser screenshot of the displayed signed original | No Content Credential found | Pixels remain; embedded claim does not |
| Re-encoded | Signed original exported as JPEG quality 72 | No Content Credential found | Result for this export path only |
This test asks whether five controlled transformations expose a readable C2PA claim, which actions the claim declares, and whether the development signer is trusted.
Sample
Five synthetic files in samples.zip. Signed original SHA-256 f28de3c3…423915a; edited signed 6289550c…659a98c. The archive also contains complete hashes.
Environment
c2patool 0.9.12, the current EXIFDataView @contentauth/c2pa-web checker, macOS sips for rotation/re-encoding, and the Codex in-app browser for the screenshot; tested July 25, 2026.
Steps
- 1. Create an unsigned JPEG from the synthetic source graphic.
- 2. Sign one copy with c2patool's built-in development certificate and a created action.
- 3. Rotate a copy, then sign it with opened and edited actions.
- 4. Display the signed original in a browser and capture its rendered pixels.
- 5. Re-encode the signed original as JPEG quality 72.
- 6. Inspect all five files with c2patool and EXIFDataView; check both signed files against the official C2PA Trust List.
Limitations
- The development certificate is intentionally not a production-trusted signer.
- A screenshot or re-encode may preserve, remove, or replace provenance differently in another app or export path.
- No Content Credential does not prove an image is human-made, authentic, or unedited.
- A valid signed claim does not prove the depicted event is true or complete.
Read presence, validity, and trust separately
Presence means a parser found a Content Credential. Validation checks whether the claim is correctly bound and signed. Trust asks whether the certificate chains to a recognized trust list. This lab's signed files have a readable claim and a valid validation state, while the signer remains untrusted.
C2PA documents provenance assertions; it is not a general AI detector or a truth score. See the C2PA technical specification and the c2patool source and documentation for the underlying verification model.
Try the evidence yourself
- Download and extract the sample archive.
- Upload each JPEG to the local C2PA checker.
- Compare the active manifest, declared actions, validation state, signer, and validation issues with
results.csv.
The five files, manifests, hashes, command-line results, browser-checker results, and limitations were reviewed together.
Huy
Editor, EXIFDataView
- Published
- Jul 25, 2026
- Updated
- Jul 25, 2026
- Last tested
- Jul 25, 2026
Corrections and reproducible issues belong in the contact workflow. We update visible dates only when the page content or testing notes materially change.
Related guides
Continue with C2PA fundamentals, verification limits, and adjacent metadata privacy workflows.
By Huy · Published Jul 23, 2026
By Huy · Published Jul 22, 2026
By Huy · Published May 14, 2026