Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions 2.2/image/good/jpeg/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# JPEG Test Files (Good)

Files in this directory are valid C2PA test files following the C2PA 2.2 specification.

## Ed25519 Signature Examples

| Image | Description | Manifest | Detailed Manifest |
|-------|-------------|----------|-------------------|
| [test-20260203-ed25519.jpg](test-20260203-ed25519.jpg) | Test image signed with Ed25519 algorithm | [manifest_store.json](manifests/test-20260203-ed25519/manifest_store.json) | [detailed.json](manifests/test-20260203-ed25519/detailed.json) |

### Notes

- The Ed25519 test file uses a test certificate which is not on any trusted certificate list
- The signature itself is valid, but validators will report the certificate as untrusted
126 changes: 126 additions & 0 deletions 2.2/image/good/jpeg/manifests/test-20260203-ed25519/detailed.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"active_manifest": "urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579",
"manifests": {
"urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579": {
"claim": {
"instanceID": "xmp:iid:02ce84d5-1344-40d1-ad13-307f583f0926",
"claim_generator_info": {
"name": "c2pa-rs",
"version": "0.75.10",
"org.contentauth.c2pa_rs": "0.75.10"
},
"signature": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"created_assertions": [
{
"url": "self#jumbf=c2pa.assertions/c2pa.hash.data",
"hash": "CJhaTDCV6EzYntGPZYDz5Z35QsebA3rRRuDdF3HU5aw="
}
],
"gathered_assertions": [
{
"url": "self#jumbf=c2pa.assertions/c2pa.thumbnail.claim",
"hash": "TmSGFfchi81b9pknBnzBQjmIdLXXFQNkQ1fomZXbL/M="
},
{
"url": "self#jumbf=c2pa.assertions/stds.schema-org.CreativeWork",
"hash": "red6W6SEsHxF4urUiKM/WmY9tTbuTX6JjEd5oXQGNhg="
},
{
"url": "self#jumbf=c2pa.assertions/c2pa.actions.v2",
"hash": "ROeBNs40hUQ6RUA8hd+1XzJh3o42pOSIjw323bTEdOo="
}
],
"dc:title": "Ed25519 Test Image",
"alg": "sha256",
"claim_version": 2
},
"assertion_store": {
"c2pa.hash.data": {
"exclusions": [
{
"start": 10908,
"length": 62775
}
],
"name": "jumbf manifest",
"alg": "sha256",
"hash": "+Zn9eL/oqDyW5GigeIMLqUSFvBvG/QhvuUpDvSndDyM=",
"pad": "AAAAAAAAAAAA"
},
"c2pa.thumbnail.claim": "<omitted> len = 49349",
"stds.schema-org.CreativeWork": {
"@context": "http://schema.org/",
"@type": "CreativeWork",
"author": [
{
"@type": "Organization",
"name": "C2PA Test"
}
]
},
"c2pa.actions.v2": {
"actions": [
{
"action": "c2pa.created"
}
]
}
},
"signature": {
"alg": "ed25519",
"issuer": "Test Organization",
"common_name": "C2PA Ed25519 Signer"
}
}
},
"validation_results": {
"activeManifest": {
"success": [
{
"code": "claimSignature.insideValidity",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "claim signature valid"
},
{
"code": "claimSignature.validated",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "claim signature valid"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.hash.data",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.data"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.thumbnail.claim",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.thumbnail.claim"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/stds.schema-org.CreativeWork",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/stds.schema-org.CreativeWork"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.actions.v2",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions.v2"
},
{
"code": "assertion.dataHash.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.hash.data",
"explanation": "data hash valid"
}
],
"informational": [],
"failure": [
{
"code": "signingCredential.untrusted",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "signing certificate untrusted"
}
]
}
},
"validation_state": "Valid"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{
"active_manifest": "urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579",
"manifests": {
"urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579": {
"claim_generator_info": [
{
"name": "c2pa-rs",
"version": "0.75.10",
"org.contentauth.c2pa_rs": "0.75.10"
}
],
"title": "Ed25519 Test Image",
"instance_id": "xmp:iid:02ce84d5-1344-40d1-ad13-307f583f0926",
"thumbnail": {
"format": "image/jpeg",
"identifier": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.thumbnail.claim"
},
"assertions": [
{
"label": "stds.schema-org.CreativeWork",
"data": {
"@context": "http://schema.org/",
"@type": "CreativeWork",
"author": [
{
"@type": "Organization",
"name": "C2PA Test"
}
]
},
"kind": "Json"
},
{
"label": "c2pa.actions.v2",
"data": {
"actions": [
{
"action": "c2pa.created"
}
]
}
}
],
"signature_info": {
"alg": "Ed25519",
"issuer": "Test Organization",
"common_name": "C2PA Ed25519 Signer",
"cert_serial_number": "114787330958198112240591113368012176529433487960"
},
"label": "urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579",
"claim_version": 2
}
},
"validation_status": [
{
"code": "signingCredential.untrusted",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "signing certificate untrusted"
}
],
"validation_results": {
"activeManifest": {
"success": [
{
"code": "claimSignature.insideValidity",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "claim signature valid"
},
{
"code": "claimSignature.validated",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "claim signature valid"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.hash.data",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.data"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.thumbnail.claim",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.thumbnail.claim"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/stds.schema-org.CreativeWork",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/stds.schema-org.CreativeWork"
},
{
"code": "assertion.hashedURI.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.actions.v2",
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions.v2"
},
{
"code": "assertion.dataHash.match",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.assertions/c2pa.hash.data",
"explanation": "data hash valid"
}
],
"informational": [],
"failure": [
{
"code": "signingCredential.untrusted",
"url": "self#jumbf=/c2pa/urn:c2pa:b5d5c4fd-d3ce-4a6a-b139-0d2cd103d579/c2pa.signature",
"explanation": "signing certificate untrusted"
}
]
}
},
"validation_state": "Valid"
}
Binary file added 2.2/image/good/jpeg/test-20260203-ed25519.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.