Skip to content

Commit 58981aa

Browse files
authored
Merge branch 'main' into add-steg
2 parents 14ac2d1 + b9173f6 commit 58981aa

File tree

3 files changed

+202
-3
lines changed

3 files changed

+202
-3
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@
22

33
C2PA specifies a mechanism for recovering a decoupled C2PA Manifest using soft bindings (for example an invisible watermark or content fingerprint). The soft binding assertion contains a field 'alg' that serves to uniquely identify the algorithm used to compute the soft binding. The Soft Binding Algorithm List is an authoritative list of soft binding algorithm names that may be used as identifiers within the 'alg' field. Entries in the list also contain additional information on the algorithms.
44

5-
Developers of soft binding algorithms may request these be added as a new entries in the soft binding algorithm list. Developers may also request amendments to their entries. These requests may be made by submitting a pull request (PR) adding to or editing the [softbinding-algorithm-list JSON document](softbinding-algorithm-list.json) in this repository. The C2PA Technical Working Group may approve and merge PRs in accordance with its prevailing processes for approving technical contributions to the C2PA specification. C2PA's Technical Working Group may also decide to remove malicious or non-conformant algorithms from the list of approved soft binding algorithms.
5+
Developers of soft binding algorithms may request these be added as a new entries in the soft binding algorithm list. Developers may also request amendments to their entries. These requests may be made by submitting a pull request (PR) adding to or editing the [softbinding-algorithm-list JSON array](softbinding-algorithm-list.json) in this repository and following the [entry schema](softbinding-algorithm-entry-schema.json).
6+
7+
The C2PA Technical Working Group may approve and merge PRs in accordance with its prevailing processes for approving technical contributions to the C2PA specification. C2PA's Technical Working Group may also decide to remove malicious or non-conformant algorithms from the list of approved soft binding algorithms.
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"type": "object",
4+
"properties": {
5+
"identifier": {
6+
"type": "integer",
7+
"minimum": 0,
8+
"maximum": 65535,
9+
"description": "This identifier will be assigned when the soft binding algorithm is added to the list."
10+
},
11+
"alg": {
12+
"type": "string",
13+
"pattern": "(c2pa\\.|[A-Za-z0-9\\-\\.]+)",
14+
"description": "Entity-specific namespace as specified for C2PA Assertions labels that shall begin with the Internet domain name for the entity similar to how Java packages are defined (e.g., `com.example.algo1`, `net.example.algos.algo2`)"
15+
},
16+
"type": {
17+
"type": "string",
18+
"enum": [
19+
"watermark",
20+
"fingerprint"
21+
],
22+
"description": "Type of soft binding implemented by this algorithm."
23+
},
24+
"decodedMediaTypes": {
25+
"type": "array",
26+
"minItems": 1,
27+
"items": {
28+
"type": "string",
29+
"enum": [
30+
"application",
31+
"audio",
32+
"image",
33+
"model",
34+
"text",
35+
"video"
36+
],
37+
"description": "IANA top level media type (rendered) for which this soft binding algorithm applies."
38+
}
39+
},
40+
"encodedMediaTypes": {
41+
"type": "array",
42+
"minItems": 1,
43+
"items": {
44+
"type": "string",
45+
"description": "IANA media type for which this soft binding algorithm applies, e.g., application/pdf",
46+
"pattern": "^([a-zA-Z0-9\\-]+\\/[a-zA-Z0-9\\-\\+]+(?:\\.[a-zA-Z0-9\\-\\+]+)*)$"
47+
}
48+
},
49+
"entryMetadata": {
50+
"type": "object",
51+
"properties": {
52+
"description": {
53+
"type": "string",
54+
"description": "Human readable description of the algorithm."
55+
},
56+
"dateEntered": {
57+
"type": "string",
58+
"format": "date-time",
59+
"description": "Date of entry for this algorithm."
60+
},
61+
"contact": {
62+
"type": "string",
63+
"format": "email"
64+
},
65+
"informationalUrl": {
66+
"type": "string",
67+
"format": "uri",
68+
"description": "A web page containing more details about the algorithm."
69+
}
70+
},
71+
"required": [
72+
"description",
73+
"dateEntered",
74+
"contact",
75+
"informationalUrl"
76+
]
77+
},
78+
"softBindingResolutionApis": {
79+
"type": "array",
80+
"items": {
81+
"type": "string",
82+
"format": "uri"
83+
},
84+
"description": "A list of Soft Binding Resolution APIs supporting this algorithm."
85+
}
86+
},
87+
"required": [
88+
"identifier",
89+
"alg",
90+
"type",
91+
"entryMetadata"
92+
],
93+
"oneOf": [
94+
{
95+
"required": [
96+
"decodedMediaTypes"
97+
]
98+
},
99+
{
100+
"required": [
101+
"encodedMediaTypes"
102+
]
103+
}
104+
]
105+
}

softbinding-algorithm-list.json

Lines changed: 94 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,99 @@
1-
{
1+
22
[
3+
{
4+
"identifier": 1,
5+
"alg": "com.digimarc.validate.1",
6+
"type": "watermark",
7+
"decodedMediaTypes": [
8+
"audio",
9+
"video",
10+
"text",
11+
"image"
12+
],
13+
"entryMetadata": {
14+
"description": "Digimarc's Validate Digital Watermarking algorithm",
15+
"dateEntered": "2024-05-17T17:00:00.000Z",
16+
"contact": "[email protected]",
17+
"informationalUrl": "https://www.digimarc.com/products/digital-content-authentication"
18+
}
19+
},
20+
{
21+
"identifier": 2,
22+
"alg": "org.atsc.a336",
23+
"type": "watermark",
24+
"decodedMediaTypes": [
25+
"audio",
26+
"video",
27+
"image"
28+
],
29+
"entryMetadata": {
30+
"description": "ATSC watermarking (A/334, A/335, A/336)",
31+
"dateEntered": "2024-05-17T15:43:00.000Z",
32+
"contact": "[email protected]",
33+
"informationalUrl": "https://www.atsc.org/atsc-documents/a3362017-content-recovery-redistribution-scenarios/"
34+
}
35+
},
36+
{
37+
"identifier": 3,
38+
"alg": "io.iscc.v0",
39+
"type": "fingerprint",
40+
"decodedMediaTypes": [
41+
"text",
42+
"image",
43+
"audio",
44+
"video",
45+
"application"
46+
],
47+
"entryMetadata": {
48+
"description": "ISO 24138 - International Standard Content Code (ISCC) V0 algorithm",
49+
"dateEntered": "2024-05-17T16:00:00Z",
50+
"contact": "[email protected]",
51+
"informationalUrl": "https://www.iso.org/standard/77899.html"
52+
}
53+
},
54+
{
55+
"identifier": 4,
56+
"alg": "com.adobe.trustmark.Q",
57+
"type": "watermark",
58+
"decodedMediaTypes": [
59+
"image"
60+
],
61+
"entryMetadata": {
62+
"description": "Adobe Trustmark variant Q",
63+
"dateEntered": "2024-05-17T17:00:00.000Z",
64+
"contact": "[email protected]",
65+
"informationalUrl": "https://github.com/adobe/trustmark/"
66+
}
67+
},
368
{
69+
"identifier": 5,
70+
"alg": "com.adobe.trustmark.C",
71+
"type": "watermark",
72+
"decodedMediaTypes": [
73+
"image"
74+
],
75+
"entryMetadata": {
76+
"description": "Adobe Trustmark variant C",
77+
"dateEntered": "2024-05-17T17:00:00.000Z",
78+
"contact": "[email protected]",
79+
"informationalUrl": "https://github.com/adobe/trustmark/"
80+
}
81+
},
82+
{
83+
"identifier": 6,
84+
"alg": "com.adobe.icn.dense",
85+
"type": "fingerprint",
86+
"decodedMediaTypes": [
87+
"image"
88+
],
89+
"entryMetadata": {
90+
"description": "Adobe Image Comparator Network Dense Fingerprint",
91+
"dateEntered": "2024-05-17T17:00:00.000Z",
92+
"contact": "[email protected]",
93+
"informationalUrl": "https://openaccess.thecvf.com/content/CVPR2021W/WMF/html/Black_Deep_Image_Comparator_Learning_To_Visualize_Editorial_Change_CVPRW_2021_paper.html"
94+
}
95+
},
96+
{
497
"identifier": 7,
598
"deprecated": false,
699
"alg": "ai.steg.api",
@@ -18,4 +111,3 @@
18111
}
19112
}
20113
]
21-
}

0 commit comments

Comments
 (0)