Use the official verifier and preserve uncertainty. A valid signature is not automatically a trusted signer.
All paths below are relative to this skill's directory. If you are running from
elsewhere, use an absolute path to scripts/verify_c2pa.py.
Workflow
-
Preserve the source asset.
-
Confirm
c2patool -Vworks, or pass its explicit path with--c2patool. The wrapper requires c2patool 0.20.0 or newer and reportsverifier_supported: falsewith an actionable reason on older builds rather than degrading silently. -
Run base integrity verification:
python3 scripts/verify_c2pa.py /absolute/path/to/asset
-
When trust evaluation is required, pass a reviewed trust-anchor file or URL:
python3 scripts/verify_c2pa.py asset.jpg --trust-anchors /absolute/path/to/anchors.pem -
Interpret the three result fields independently. Keep
UNKNOWNorNOT_CHECKEDintact. -
The wrapper disables remote-manifest fetching by default. Add
--allow-networkonly when remote retrieval is authorized; URL-based trust anchors also require it. -
Include the verifier version and file hash in any report. Every field exists on every code path, so these are always available to quote.
-
Report
manifest.claim_generatorandmanifest.actionswhen explaining a result. Users usually want to know what the manifest claims — whether the asset was declaredc2pa.createdorc2pa.edited— not only that a signature verified.
Captured-report review mode
Review the structure of captured c2patool JSON without executing a binary:
python3 scripts/verify_c2pa.py --report-json report.json --asset-sha256 SHA256
This mode always returns integrity=NOT_VERIFIED and a nonzero exit status. Its nested reported_result is informational because captured JSON cannot prove that the verifier ran or that the report belongs to the supplied hash.
Boundaries
- Do not download remote manifests unless the user authorized network access.
- Do not map “verifier missing” to “manifest absent.”
- Do not map
signingCredential.untrustedto invalid content; report integrity and trust separately. - Only a successful live verifier run with a recognized summary schema and positive signature evidence can return
VALID. - Never expose certificate material unless requested.
Read references/c2pa-verification.md before changing classification rules.