@contentauth/c2pa-web 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -5
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -49
- package/dist/lib/c2pa.d.ts +7 -2
- package/dist/lib/c2pa.d.ts.map +1 -1
- package/dist/lib/reader.d.ts +38 -3
- package/dist/lib/reader.d.ts.map +1 -1
- package/dist/lib/settings.d.ts +27 -3
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/worker.d.ts +3 -1
- package/dist/lib/worker.d.ts.map +1 -1
- package/dist/resources/c2pa_bg.wasm +0 -0
- package/package.json +11 -4
- package/CHANGELOG.md +0 -26
- package/eslint.config.mjs +0 -30
- package/project.json +0 -7
- package/src/index.ts +0 -15
- package/src/lib/c2pa.spec.ts +0 -166
- package/src/lib/c2pa.ts +0 -65
- package/src/lib/error.ts +0 -26
- package/src/lib/reader.ts +0 -150
- package/src/lib/settings.ts +0 -52
- package/src/lib/supportedFormats.ts +0 -72
- package/src/lib/worker/setupWorker.ts +0 -53
- package/src/lib/worker/workerManager.ts +0 -64
- package/src/lib/worker/workerObjectMap.ts +0 -35
- package/src/lib/worker/workerResponse.ts +0 -50
- package/src/lib/worker.ts +0 -77
- package/test/fixtures/assets/C_with_CAWG_data.jpg +0 -0
- package/test/fixtures/assets/C_with_CAWG_data.json +0 -144
- package/test/fixtures/assets/C_with_CAWG_data_thumbnail.jpg +0 -0
- package/test/fixtures/assets/C_with_CAWG_data_trusted.json +0 -149
- package/test/fixtures/assets/C_with_CAWG_data_untrusted.json +0 -157
- package/test/fixtures/assets/dash1.m4s +0 -0
- package/test/fixtures/assets/dashinit.json +0 -184
- package/test/fixtures/assets/dashinit.mp4 +0 -0
- package/test/fixtures/assets/no_alg.jpg +0 -0
- package/test/fixtures/trust/anchor-correct.pem +0 -15
- package/test/fixtures/trust/anchor-incorrect.pem +0 -16
- package/tsconfig.json +0 -13
- package/tsconfig.lib.json +0 -29
- package/tsconfig.spec.json +0 -36
- package/vite.config.ts +0 -91
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2025 Adobe
|
|
3
|
-
* All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
6
|
-
* accordance with the terms of the Adobe license agreement accompanying
|
|
7
|
-
* it.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export function postSuccess(payload?: any, transfer?: Transferable[]): void {
|
|
11
|
-
const responseObject = {
|
|
12
|
-
type: 'success',
|
|
13
|
-
...(payload !== undefined ? { payload } : {}),
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
postMessage(responseObject, transfer ?? []);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function postError(error: unknown): void {
|
|
20
|
-
postMessage({ type: 'error', error });
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface ResponseHandlers {
|
|
24
|
-
onSuccess: (data?: any) => void;
|
|
25
|
-
onError: (error?: any) => void;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function handleWorkerResponse(
|
|
29
|
-
worker: Worker,
|
|
30
|
-
responseHandlers: ResponseHandlers
|
|
31
|
-
) {
|
|
32
|
-
worker.onmessage = (event) => {
|
|
33
|
-
const { data } = event;
|
|
34
|
-
|
|
35
|
-
if (data.type === 'success') {
|
|
36
|
-
responseHandlers.onSuccess(data?.payload);
|
|
37
|
-
} else {
|
|
38
|
-
responseHandlers.onError(data?.error);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// @TODO: should these have their own error handlers?
|
|
43
|
-
worker.onerror = (event) => {
|
|
44
|
-
responseHandlers.onError(event.error);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
worker.onmessageerror = (event) => {
|
|
48
|
-
responseHandlers.onError(event.data);
|
|
49
|
-
};
|
|
50
|
-
}
|
package/src/lib/worker.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2025 Adobe
|
|
3
|
-
* All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
6
|
-
* accordance with the terms of the Adobe license agreement accompanying
|
|
7
|
-
* it.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/// <reference lib="webworker" />
|
|
11
|
-
|
|
12
|
-
import { WasmReader, initSync, loadSettings } from '@contentauth/c2pa-wasm';
|
|
13
|
-
import {
|
|
14
|
-
setupWorker,
|
|
15
|
-
WorkerFunctions,
|
|
16
|
-
WorkerResponse,
|
|
17
|
-
} from './worker/setupWorker.js';
|
|
18
|
-
import { createWorkerObjectMap } from './worker/workerObjectMap.js';
|
|
19
|
-
|
|
20
|
-
const readerMap = createWorkerObjectMap<WasmReader>();
|
|
21
|
-
|
|
22
|
-
const workerFunctions = {
|
|
23
|
-
async initWorker(module: WebAssembly.Module, settings?: string) {
|
|
24
|
-
initSync(module);
|
|
25
|
-
|
|
26
|
-
if (settings) {
|
|
27
|
-
loadSettings(settings);
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
// Reader creation methods
|
|
32
|
-
async reader_fromBlob(
|
|
33
|
-
format: string,
|
|
34
|
-
blob: Blob
|
|
35
|
-
): Promise<WorkerResponse<number>> {
|
|
36
|
-
const reader = await WasmReader.fromBlob(format, blob);
|
|
37
|
-
const readerId = readerMap.add(reader);
|
|
38
|
-
return { data: readerId };
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
async reader_fromBlobFragment(
|
|
42
|
-
format: string,
|
|
43
|
-
init: Blob,
|
|
44
|
-
fragment: Blob
|
|
45
|
-
): Promise<WorkerResponse<number>> {
|
|
46
|
-
const reader = await WasmReader.fromBlobFragment(format, init, fragment);
|
|
47
|
-
const readerId = readerMap.add(reader);
|
|
48
|
-
return { data: readerId };
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
// Reader object methods
|
|
52
|
-
reader_json(readerId: number): WorkerResponse<string> {
|
|
53
|
-
const reader = readerMap.get(readerId);
|
|
54
|
-
return { data: reader.json() };
|
|
55
|
-
},
|
|
56
|
-
reader_activeLabel(readerId: number): WorkerResponse<string | null> {
|
|
57
|
-
const reader = readerMap.get(readerId);
|
|
58
|
-
return { data: reader.activeLabel() ?? null };
|
|
59
|
-
},
|
|
60
|
-
reader_resourceToBuffer(
|
|
61
|
-
readerId: number,
|
|
62
|
-
uri: string
|
|
63
|
-
): WorkerResponse<ArrayBuffer> {
|
|
64
|
-
const reader = readerMap.get(readerId);
|
|
65
|
-
const buffer = reader.resourceToBuffer(uri);
|
|
66
|
-
return { data: buffer, transfer: [buffer] };
|
|
67
|
-
},
|
|
68
|
-
reader_free(readerId: number) {
|
|
69
|
-
const reader = readerMap.get(readerId);
|
|
70
|
-
reader.free();
|
|
71
|
-
readerMap.remove(readerId);
|
|
72
|
-
},
|
|
73
|
-
} satisfies WorkerFunctions;
|
|
74
|
-
|
|
75
|
-
export type WorkerDefinition = typeof workerFunctions;
|
|
76
|
-
|
|
77
|
-
setupWorker(workerFunctions);
|
|
Binary file
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"active_manifest": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d",
|
|
3
|
-
"manifests": {
|
|
4
|
-
"urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d": {
|
|
5
|
-
"claim_generator_info": [
|
|
6
|
-
{
|
|
7
|
-
"name": "c2pa cawg test",
|
|
8
|
-
"version": "0.58.0",
|
|
9
|
-
"org.contentauth.c2pa_rs": "0.58.0"
|
|
10
|
-
}
|
|
11
|
-
],
|
|
12
|
-
"title": "C_with_CAWG_data.jpg",
|
|
13
|
-
"instance_id": "xmp:iid:855872d9-5358-497e-b7b4-afca591277e1",
|
|
14
|
-
"thumbnail": {
|
|
15
|
-
"format": "image/jpeg",
|
|
16
|
-
"identifier": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim"
|
|
17
|
-
},
|
|
18
|
-
"ingredients": [],
|
|
19
|
-
"assertions": [
|
|
20
|
-
{
|
|
21
|
-
"label": "c2pa.actions.v2",
|
|
22
|
-
"data": {
|
|
23
|
-
"actions": [
|
|
24
|
-
{
|
|
25
|
-
"action": "c2pa.created",
|
|
26
|
-
"digitalSourceType": " http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"allActionsIncluded": true
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"label": "cawg.training-mining",
|
|
34
|
-
"data": {
|
|
35
|
-
"entries": {
|
|
36
|
-
"cawg.ai_inference": {
|
|
37
|
-
"use": "notAllowed"
|
|
38
|
-
},
|
|
39
|
-
"cawg.ai_generative_training": {
|
|
40
|
-
"use": "notAllowed"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"label": "cawg.identity",
|
|
47
|
-
"data": {
|
|
48
|
-
"signer_payload": {
|
|
49
|
-
"referenced_assertions": [
|
|
50
|
-
{
|
|
51
|
-
"url": "self#jumbf=c2pa.assertions/cawg.training-mining",
|
|
52
|
-
"hash": "rBBgURB+/0Bc2Uk3+blNpYTGQTxOwzXQ2xhjA3gsqI4="
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"url": "self#jumbf=c2pa.assertions/c2pa.hash.data",
|
|
56
|
-
"hash": "sASozh9KFSkW+cyMI0Pw5KYoD2qn7MkUEq9jUUhe/sM="
|
|
57
|
-
}
|
|
58
|
-
],
|
|
59
|
-
"sig_type": "cawg.x509.cose"
|
|
60
|
-
},
|
|
61
|
-
"signature_info": {
|
|
62
|
-
"alg": "Ed25519",
|
|
63
|
-
"issuer": "C2PA Test Signing Cert",
|
|
64
|
-
"cert_serial_number": "638838410810235485828984295321338730070538954823",
|
|
65
|
-
"revocation_status": true
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"signature_info": {
|
|
71
|
-
"alg": "Es256",
|
|
72
|
-
"issuer": "C2PA Test Signing Cert",
|
|
73
|
-
"cert_serial_number": "640229841392226413189608867977836244731148734950",
|
|
74
|
-
"time": "2025-07-29T23:13:49+00:00"
|
|
75
|
-
},
|
|
76
|
-
"label": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"validation_results": {
|
|
80
|
-
"activeManifest": {
|
|
81
|
-
"success": [
|
|
82
|
-
{
|
|
83
|
-
"code": "timeStamp.validated",
|
|
84
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
85
|
-
"explanation": "timestamp message digest matched: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1"
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
"code": "claimSignature.insideValidity",
|
|
89
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
90
|
-
"explanation": "claim signature valid"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"code": "claimSignature.validated",
|
|
94
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
95
|
-
"explanation": "claim signature valid"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"code": "assertion.hashedURI.match",
|
|
99
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim",
|
|
100
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.thumbnail.claim"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"code": "assertion.hashedURI.match",
|
|
104
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.actions.v2",
|
|
105
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions.v2"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"code": "assertion.hashedURI.match",
|
|
109
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data",
|
|
110
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.data"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"code": "assertion.hashedURI.match",
|
|
114
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.training-mining",
|
|
115
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.training-mining"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"code": "assertion.hashedURI.match",
|
|
119
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity",
|
|
120
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.identity"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"code": "assertion.dataHash.match",
|
|
124
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data",
|
|
125
|
-
"explanation": "data hash valid"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"code": "cawg.identity.well-formed",
|
|
129
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity",
|
|
130
|
-
"explanation": "CAWG X.509 identity signature valid"
|
|
131
|
-
}
|
|
132
|
-
],
|
|
133
|
-
"informational": [
|
|
134
|
-
{
|
|
135
|
-
"code": "timeStamp.untrusted",
|
|
136
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
137
|
-
"explanation": "timestamp cert untrusted: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1"
|
|
138
|
-
}
|
|
139
|
-
],
|
|
140
|
-
"failure": []
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
"validation_state": "Valid"
|
|
144
|
-
}
|
|
Binary file
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"active_manifest": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d",
|
|
3
|
-
"manifests": {
|
|
4
|
-
"urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d": {
|
|
5
|
-
"assertions": [
|
|
6
|
-
{
|
|
7
|
-
"data": {
|
|
8
|
-
"actions": [
|
|
9
|
-
{
|
|
10
|
-
"action": "c2pa.created",
|
|
11
|
-
"digitalSourceType": " http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
|
|
12
|
-
}
|
|
13
|
-
],
|
|
14
|
-
"allActionsIncluded": true
|
|
15
|
-
},
|
|
16
|
-
"label": "c2pa.actions.v2"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"data": {
|
|
20
|
-
"entries": {
|
|
21
|
-
"cawg.ai_generative_training": {
|
|
22
|
-
"use": "notAllowed"
|
|
23
|
-
},
|
|
24
|
-
"cawg.ai_inference": {
|
|
25
|
-
"use": "notAllowed"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"label": "cawg.training-mining"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"data": {
|
|
33
|
-
"signature_info": {
|
|
34
|
-
"alg": "Ed25519",
|
|
35
|
-
"cert_serial_number": "638838410810235485828984295321338730070538954823",
|
|
36
|
-
"issuer": "C2PA Test Signing Cert",
|
|
37
|
-
"revocation_status": true
|
|
38
|
-
},
|
|
39
|
-
"signer_payload": {
|
|
40
|
-
"referenced_assertions": [
|
|
41
|
-
{
|
|
42
|
-
"hash": "rBBgURB+/0Bc2Uk3+blNpYTGQTxOwzXQ2xhjA3gsqI4=",
|
|
43
|
-
"url": "self#jumbf=c2pa.assertions/cawg.training-mining"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"hash": "sASozh9KFSkW+cyMI0Pw5KYoD2qn7MkUEq9jUUhe/sM=",
|
|
47
|
-
"url": "self#jumbf=c2pa.assertions/c2pa.hash.data"
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
"sig_type": "cawg.x509.cose"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
"label": "cawg.identity"
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"claim_generator_info": [
|
|
57
|
-
{
|
|
58
|
-
"name": "c2pa cawg test",
|
|
59
|
-
"org.contentauth.c2pa_rs": "0.58.0",
|
|
60
|
-
"version": "0.58.0"
|
|
61
|
-
}
|
|
62
|
-
],
|
|
63
|
-
"ingredients": [],
|
|
64
|
-
"instance_id": "xmp:iid:855872d9-5358-497e-b7b4-afca591277e1",
|
|
65
|
-
"label": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d",
|
|
66
|
-
"signature_info": {
|
|
67
|
-
"alg": "Es256",
|
|
68
|
-
"cert_serial_number": "640229841392226413189608867977836244731148734950",
|
|
69
|
-
"issuer": "C2PA Test Signing Cert",
|
|
70
|
-
"time": "2025-07-29T23:13:49+00:00"
|
|
71
|
-
},
|
|
72
|
-
"thumbnail": {
|
|
73
|
-
"format": "image/jpeg",
|
|
74
|
-
"identifier": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim"
|
|
75
|
-
},
|
|
76
|
-
"title": "C_with_CAWG_data.jpg"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"validation_results": {
|
|
80
|
-
"activeManifest": {
|
|
81
|
-
"failure": [],
|
|
82
|
-
"informational": [
|
|
83
|
-
{
|
|
84
|
-
"code": "timeStamp.untrusted",
|
|
85
|
-
"explanation": "timestamp cert untrusted: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1",
|
|
86
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature"
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"success": [
|
|
90
|
-
{
|
|
91
|
-
"code": "timeStamp.validated",
|
|
92
|
-
"explanation": "timestamp message digest matched: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1",
|
|
93
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature"
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
"code": "signingCredential.trusted",
|
|
97
|
-
"explanation": "signing certificate trusted, found in System trust anchors",
|
|
98
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"code": "claimSignature.insideValidity",
|
|
102
|
-
"explanation": "claim signature valid",
|
|
103
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"code": "claimSignature.validated",
|
|
107
|
-
"explanation": "claim signature valid",
|
|
108
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"code": "assertion.hashedURI.match",
|
|
112
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.thumbnail.claim",
|
|
113
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"code": "assertion.hashedURI.match",
|
|
117
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions.v2",
|
|
118
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.actions.v2"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"code": "assertion.hashedURI.match",
|
|
122
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.data",
|
|
123
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data"
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"code": "assertion.hashedURI.match",
|
|
127
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.training-mining",
|
|
128
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.training-mining"
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
"code": "assertion.hashedURI.match",
|
|
132
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.identity",
|
|
133
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity"
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"code": "assertion.dataHash.match",
|
|
137
|
-
"explanation": "data hash valid",
|
|
138
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"code": "cawg.identity.well-formed",
|
|
142
|
-
"explanation": "CAWG X.509 identity signature valid",
|
|
143
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity"
|
|
144
|
-
}
|
|
145
|
-
]
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
"validation_state": "Trusted"
|
|
149
|
-
}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"active_manifest": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d",
|
|
3
|
-
"manifests": {
|
|
4
|
-
"urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d": {
|
|
5
|
-
"claim_generator_info": [
|
|
6
|
-
{
|
|
7
|
-
"name": "c2pa cawg test",
|
|
8
|
-
"version": "0.58.0",
|
|
9
|
-
"org.contentauth.c2pa_rs": "0.58.0"
|
|
10
|
-
}
|
|
11
|
-
],
|
|
12
|
-
"title": "C_with_CAWG_data.jpg",
|
|
13
|
-
"instance_id": "xmp:iid:855872d9-5358-497e-b7b4-afca591277e1",
|
|
14
|
-
"thumbnail": {
|
|
15
|
-
"format": "image/jpeg",
|
|
16
|
-
"identifier": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim"
|
|
17
|
-
},
|
|
18
|
-
"ingredients": [],
|
|
19
|
-
"assertions": [
|
|
20
|
-
{
|
|
21
|
-
"label": "c2pa.actions.v2",
|
|
22
|
-
"data": {
|
|
23
|
-
"actions": [
|
|
24
|
-
{
|
|
25
|
-
"action": "c2pa.created",
|
|
26
|
-
"digitalSourceType": " http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"allActionsIncluded": true
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"label": "cawg.training-mining",
|
|
34
|
-
"data": {
|
|
35
|
-
"entries": {
|
|
36
|
-
"cawg.ai_inference": {
|
|
37
|
-
"use": "notAllowed"
|
|
38
|
-
},
|
|
39
|
-
"cawg.ai_generative_training": {
|
|
40
|
-
"use": "notAllowed"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"label": "cawg.identity",
|
|
47
|
-
"data": {
|
|
48
|
-
"signer_payload": {
|
|
49
|
-
"referenced_assertions": [
|
|
50
|
-
{
|
|
51
|
-
"url": "self#jumbf=c2pa.assertions/cawg.training-mining",
|
|
52
|
-
"hash": "rBBgURB+/0Bc2Uk3+blNpYTGQTxOwzXQ2xhjA3gsqI4="
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"url": "self#jumbf=c2pa.assertions/c2pa.hash.data",
|
|
56
|
-
"hash": "sASozh9KFSkW+cyMI0Pw5KYoD2qn7MkUEq9jUUhe/sM="
|
|
57
|
-
}
|
|
58
|
-
],
|
|
59
|
-
"sig_type": "cawg.x509.cose"
|
|
60
|
-
},
|
|
61
|
-
"signature_info": {
|
|
62
|
-
"alg": "Ed25519",
|
|
63
|
-
"issuer": "C2PA Test Signing Cert",
|
|
64
|
-
"cert_serial_number": "638838410810235485828984295321338730070538954823",
|
|
65
|
-
"revocation_status": true
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"signature_info": {
|
|
71
|
-
"alg": "Es256",
|
|
72
|
-
"issuer": "C2PA Test Signing Cert",
|
|
73
|
-
"cert_serial_number": "640229841392226413189608867977836244731148734950",
|
|
74
|
-
"time": "2025-07-29T23:13:49+00:00"
|
|
75
|
-
},
|
|
76
|
-
"label": "urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"validation_status": [
|
|
80
|
-
{
|
|
81
|
-
"code": "signingCredential.untrusted",
|
|
82
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
83
|
-
"explanation": "signing certificate untrusted"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"code": "claimSignature.mismatch",
|
|
87
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
88
|
-
"explanation": "claim signature is not valid"
|
|
89
|
-
}
|
|
90
|
-
],
|
|
91
|
-
"validation_results": {
|
|
92
|
-
"activeManifest": {
|
|
93
|
-
"success": [
|
|
94
|
-
{
|
|
95
|
-
"code": "timeStamp.validated",
|
|
96
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
97
|
-
"explanation": "timestamp message digest matched: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"code": "assertion.hashedURI.match",
|
|
101
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.thumbnail.claim",
|
|
102
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.thumbnail.claim"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"code": "assertion.hashedURI.match",
|
|
106
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.actions.v2",
|
|
107
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions.v2"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"code": "assertion.hashedURI.match",
|
|
111
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data",
|
|
112
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.data"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"code": "assertion.hashedURI.match",
|
|
116
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.training-mining",
|
|
117
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.training-mining"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"code": "assertion.hashedURI.match",
|
|
121
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity",
|
|
122
|
-
"explanation": "hashed uri matched: self#jumbf=c2pa.assertions/cawg.identity"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"code": "assertion.dataHash.match",
|
|
126
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/c2pa.hash.data",
|
|
127
|
-
"explanation": "data hash valid"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"code": "cawg.identity.well-formed",
|
|
131
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.assertions/cawg.identity",
|
|
132
|
-
"explanation": "CAWG X.509 identity signature valid"
|
|
133
|
-
}
|
|
134
|
-
],
|
|
135
|
-
"informational": [
|
|
136
|
-
{
|
|
137
|
-
"code": "timeStamp.untrusted",
|
|
138
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
139
|
-
"explanation": "timestamp cert untrusted: DigiCert SHA256 RSA4096 Timestamp Responder 2025 1"
|
|
140
|
-
}
|
|
141
|
-
],
|
|
142
|
-
"failure": [
|
|
143
|
-
{
|
|
144
|
-
"code": "signingCredential.untrusted",
|
|
145
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
146
|
-
"explanation": "signing certificate untrusted"
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"code": "claimSignature.mismatch",
|
|
150
|
-
"url": "self#jumbf=/c2pa/urn:c2pa:822f2ec0-ef27-4d95-88b4-74586c12873d/c2pa.signature",
|
|
151
|
-
"explanation": "claim signature is not valid"
|
|
152
|
-
}
|
|
153
|
-
]
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
"validation_state": "Invalid"
|
|
157
|
-
}
|
|
Binary file
|