-
Notifications
You must be signed in to change notification settings - Fork 5
Clarify guidance issue280 #36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
a71fb3d
Adding selection rules for new entry
domguinard 88df534
Update README.md
domguinard 7fab7c7
Update README.md
domguinard 1ba5580
Merge branch 'main' into clarify-guidance-issue280
domguinard 1ce662f
Update README.md
domguinard 3483fa0
Update README.md
domguinard 5ff69c1
Update README.md
domguinard 8852dcb
Update README.md
domguinard 007cdd8
Update README.md
domguinard fc6fbbb
Update README.md
domguinard 92ce230
Resolving issues flagged by the linter
domguinard 1642adc
Resolving issues flagged by the linter
domguinard File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,28 @@ | ||
| # Soft Binding Algorithm List | ||
|
|
||
| C2PA specifies a mechanism for recovering a C2PA Manifest for an asset, for example when the metadata containing the C2PA Manifest has been stripped. This mechanism is a [soft binding](https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html#_soft_binding) (for example an invisible watermark or content fingerprint). The soft binding is used to look-up the C2PA Manifest within a Manifest Repository. The soft binding is described by the [soft binding assertion](https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html#_soft_bindings). | ||
| C2PA specifies a mechanism for recovering a C2PA Manifest for an asset, for example when the metadata containing the C2PA Manifest has been stripped. This mechanism is a [soft binding](https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html#_soft_binding), for example an invisible watermark or content fingerprint. The soft binding is used to look-up the C2PA Manifest within a Manifest Repository. The soft binding is described by the [soft binding assertion](https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html#_soft_bindings). | ||
|
|
||
| The soft binding assertion contains a field `alg` which uniquely identifies the algorithm used to compute the soft binding. The Soft Binding Algorithm List is an authoritative list of soft binding algorithm names that should be used as identifiers within the `alg` field. Entries in the list also contain additional information on the algorithms. | ||
|
|
||
| ## Guidelines for submitting a new entry | ||
|
|
||
| ### Pull request | ||
| Developers of soft binding algorithms may request these be added as new entries in the soft binding algorithm list. Developers may also request amendments to their entries. These requests are made by submitting a Pull Request (PR) that adds to, or edits, the [softbinding-algorithm-list JSON array](softbinding-algorithm-list.json) in this repository and following the [schema](softbinding-algorithm-list-schema.json). | ||
|
|
||
| ### Selection rules | ||
|
|
||
| The C2PA Technical Working Group will 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 entries from the list of approved soft binding algorithms. | ||
|
|
||
| For an entry to be approved the following criteria are important: | ||
| - The entry has to comply with the [schema](softbinding-algorithm-list-schema.json) and include all the mendatory fields. | ||
| For a PR (new entry or update) to be approved the following criteria are important: | ||
| - The entry has to conform with the [schema](softbinding-algorithm-list-schema.json) and include all the mandatory fields. | ||
| - The entry should not be malicious (e.g., spam) or harmful. | ||
| - The PR has to be submitted by an individual affiliated with the company owning the submitted proprietary algorithm or a maintainer of the submitted open source algorithm or its fork. | ||
| - The provided URLs have to successfully resolve (e.g., `softBindingResolutionApis`, `informationalUrl`) | ||
|
|
||
|
|
||
| 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. | ||
|
|
||
| Developers of soft binding algorithms may request these be added as 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). | ||
|
|
||
| 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,32 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "$id": "https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html", | ||
| "$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": "[email protected]", | ||
| "informationalUrl": "https://example.com/softbinding/alg1" | ||
| }, | ||
| "softBindingResolutionApis": [ | ||
| "https://resolver.example.com/alg1" | ||
| ] | ||
| } | ||
| ] | ||
| ], | ||
| "type": "array", | ||
| "items": { | ||
| "type": "object", | ||
|
|
@@ -9,12 +35,12 @@ | |
| "type": "integer", | ||
| "minimum": 0, | ||
| "maximum": 65535, | ||
| "description": "This identifier will be assigned when the soft binding algorithm is added to the list." | ||
| "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." | ||
| "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", | ||
|
|
@@ -26,7 +52,7 @@ | |
| "watermark", | ||
| "fingerprint" | ||
| ], | ||
| "description": "Type of soft binding implemented by this algorithm." | ||
| "description": "Type of soft binding implemented by this algorithm" | ||
| }, | ||
| "decodedMediaTypes": { | ||
| "type": "array", | ||
|
|
@@ -40,7 +66,7 @@ | |
| "text", | ||
| "video" | ||
| ], | ||
| "description": "IANA top level media type (rendered) for which this soft binding algorithm applies." | ||
| "description": "IANA top level media type (rendered) for which this soft binding algorithm applies" | ||
| } | ||
| }, | ||
| "encodedMediaTypes": { | ||
|
|
@@ -57,7 +83,7 @@ | |
| "properties": { | ||
| "description": { | ||
| "type": "string", | ||
| "description": "Human readable description of the algorithm." | ||
| "description": "Human readable description of the algorithm" | ||
| }, | ||
| "categories": { | ||
| "type": "array", | ||
|
|
@@ -70,7 +96,7 @@ | |
| "dateEntered": { | ||
| "type": "string", | ||
| "format": "date-time", | ||
| "description": "Date of entry for this algorithm." | ||
| "description": "Date of entry for this algorithm" | ||
| }, | ||
| "contact": { | ||
| "type": "string", | ||
|
|
@@ -79,7 +105,7 @@ | |
| "informationalUrl": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "A web page containing more details about the algorithm." | ||
| "description": "A web page containing more details about the algorithm" | ||
| } | ||
| }, | ||
| "required": [ | ||
|
|
@@ -95,7 +121,7 @@ | |
| "type": "string", | ||
| "format": "uri" | ||
| }, | ||
| "description": "A list of Soft Binding Resolution APIs supporting this algorithm." | ||
| "description": "A list of Soft Binding Resolution APIs supporting this algorithm" | ||
| } | ||
| }, | ||
| "required": [ | ||
|
|
@@ -110,6 +136,9 @@ | |
| "decodedMediaTypes" | ||
| ], | ||
| "not": { | ||
| "properties": { | ||
| "encodedMediaTypes": {} | ||
| }, | ||
| "required": [ | ||
| "encodedMediaTypes" | ||
| ] | ||
|
|
@@ -120,11 +149,14 @@ | |
| "encodedMediaTypes" | ||
| ], | ||
| "not": { | ||
| "properties": { | ||
| "decodedMediaTypes": {} | ||
| }, | ||
| "required": [ | ||
| "decodedMediaTypes" | ||
| ] | ||
| } | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| } | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.