-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathsoftbinding-algorithm-list.schema.json
More file actions
146 lines (146 loc) · 6.07 KB
/
softbinding-algorithm-list.schema.json
File metadata and controls
146 lines (146 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html",
"title": "Soft Binding Algorithm List",
"description": "Authoritative list of soft binding algorithms to be used by C2PA implementations for the purpose of recovering C2PA Manifests via soft bindings",
"examples": [
[
{
"identifier": 1,
"alg": "com.example.watermark.alg1",
"type": "watermark",
"decodedMediaTypes": [
"image"
],
"entryMetadata": {
"description": "Example watermarking algorithm",
"categories": [
"org.example.watermarking"
],
"dateEntered": "2025-01-01T00:00:00Z",
"contact": "contact@example.com",
"informationalUrl": "https://example.com/softbinding/alg1"
},
"softBindingResolutionApis": [
"https://resolver.example.com/alg1"
]
}
]
],
"type": "array",
"items": {
"type": "object",
"properties": {
"identifier": {
"type": "integer",
"minimum": 0,
"maximum": 65535,
"description": "This identifier will be assigned when the soft binding algorithm is added to the list"
},
"deprecated": {
"type": "boolean",
"default": false,
"description": "Indicates whether this soft binding algorithm is deprecated. Deprecated algorithms shall not be used for creating soft bindings. Deprecated algorithms may be used for resolving soft bindings but this behaviour is discouraged"
},
"alg": {
"type": "string",
"pattern": "^[A-Za-z]{2,63}(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)+\\.?$",
"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`)"
},
"type": {
"enum": [
"watermark",
"fingerprint"
],
"description": "Type of soft binding implemented by this algorithm"
},
"decodedMediaTypes": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
"application",
"audio",
"image",
"model",
"text",
"video"
],
"description": "IANA top level media type (rendered) for which this soft binding algorithm applies"
}
},
"encodedMediaTypes": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"description": "IANA media type for which this soft binding algorithm applies, e.g., application/pdf",
"pattern": "^([a-zA-Z0-9\\-]+\\/[a-zA-Z0-9\\-\\+]+(?:\\.[a-zA-Z0-9\\-\\+]+)*)$"
}
},
"entryMetadata": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Human readable description of the algorithm"
},
"categories": {
"type": "array",
"description": "This allows specifying values that can be used to cluster this algorithm with others of the same or similar values. For example an algorithm that is used in a certain context (e.g., verified news, advertising). The format of these categories follows the entity-specific namespace as specified for C2PA Assertions labels that shall begin with the (reversed) Internet domain name for the entity similar to how Java packages are defined (e.g., `org.iptc.watermarking`, `net.example.cluster.context1`)",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{2,63}(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)+\\.?$"
}
},
"dateEntered": {
"type": "string",
"format": "date-time",
"description": "Date of entry for this algorithm"
},
"contact": {
"type": "string",
"format": "email"
},
"informationalUrl": {
"type": "string",
"format": "uri",
"description": "A web page containing more details about the algorithm"
}
},
"required": [
"description",
"dateEntered",
"contact",
"informationalUrl"
]
},
"softBindingResolutionApis": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "A list of Soft Binding Resolution APIs supporting this algorithm"
}
},
"required": [
"identifier",
"alg",
"type",
"entryMetadata"
],
"anyOf": [
{
"required": [
"decodedMediaTypes"
]
},
{
"required": [
"encodedMediaTypes"
]
}
]
}
}