Verify Content Credentials
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/assetWhen 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.pemInterpret 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.