diff --git a/.gitignore b/.gitignore index a4a171fe..8b6ebee5 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ /docs/trustmark/c2pa/*.md /docs/trustmark/js/*.md /docs/trustmark/python/*.md +/docs/trustmark/rust/*.md +/docs/trustmark/rust/crates/trustmark-cli/*.md # Misc .DS_Store diff --git a/docs/durable-cr.md b/docs/durable-cr.md new file mode 100644 index 00000000..69c17da3 --- /dev/null +++ b/docs/durable-cr.md @@ -0,0 +1,14 @@ +--- +id: durable-cr +title: Durable Content Credentials +--- + +[_Durable Content Credentials_](https://contentauthenticity.org/blog/durable-content-credentials) is a concept that helps content provenance to persist across content platforms by using C2PA manifest data in conjunction with: + +- **Invisible watermarks**, actively inserted into the content. +- **Content fingerprints**, passively computed from the content. + +Platforms that host media assets might remove C2PA manifest data, if, for example, they use software that does not yet support the standard. If a copy of the manifest data is stored in an online database, you can use a watermark or a fingerprint to find it again. +Combining both watermarks and fingerprints further improves the robustness of the provenance information. + +The C2PA specification refers to watermarking and content fingerprinting as [soft bindings](https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_soft_bindings), and requires that they be generated using one of the approved [Watermarking and fingerprinting algorithms](soft-bindings.mdx). diff --git a/docs/soft-bindings.mdx b/docs/soft-bindings.mdx index 105e561d..77c49be6 100644 --- a/docs/soft-bindings.mdx +++ b/docs/soft-bindings.mdx @@ -4,18 +4,10 @@ title: Watermarking and fingerprinting algorithms hide_table_of_contents: true --- -[_Durable Content Credentials_](https://contentauthenticity.org/blog/durable-content-credentials) is a concept that helps content provenance to persist across content platforms by using C2PA manifest data in conjunction with: - -- **Invisible watermarks**, actively inserted into the content. -- **Content fingerprints**, passively computed from the content. - -Platforms that host media assets might remove C2PA manifest data, if, for example, they use software that does not yet support the standard. If a copy of the manifest data is stored in an online database, you can use a watermark or a fingerprint to find it again. -Combining both watermarks and fingerprints further improves the robustness of the provenance information. - The C2PA specification refers to watermarking and content fingerprinting as [soft bindings](https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_soft_bindings), which can be used to find digital content, even if the underlying bits differ. The C2PA specification requires that soft bindings be generated using one of the [algorithms](https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_soft_binding_algorithm_list) approved by the C2PA Technical Working Group. :::note -The table below is provided **for convenience only** and is created and automatically updated based on data from the C2PA [C2PA Soft Binding Algorithm List](https://github.com/c2pa-org/softbinding-algorithm-list/blob/main/softbinding-algorithm-list.json), which is the single authoritative source of the information. +The table below is provided **for convenience only** and is created and automatically updated based on data from the [C2PA Soft Binding Algorithm List](https://github.com/c2pa-org/softbinding-algorithm-list/blob/main/softbinding-algorithm-list.json), which is the single authoritative source of the information. ::: import JSONToTable from '@site/src/components/JSONToTable'; diff --git a/docs/trustmark/rust/.gitkeep b/docs/trustmark/rust/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/docs/trustmark/rust/crates/trustmark-cli/.gitkeep b/docs/trustmark/rust/crates/trustmark-cli/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/scripts/fetch-readme.js b/scripts/fetch-readme.js index a3583b1e..1b0e4738 100644 --- a/scripts/fetch-readme.js +++ b/scripts/fetch-readme.js @@ -220,6 +220,19 @@ const readmes = [ repo: 'adobe/trustmark', path: 'js/README.md', }, + { + dest: resolve(__dirname, '../docs/trustmark/rust/README.md'), + repo: 'adobe/trustmark', + path: 'rust/README.md', + }, + { + dest: resolve( + __dirname, + '../docs/trustmark/rust/crates/trustmark-cli/README.md', + ), + repo: 'adobe/trustmark', + path: 'rust/crates/trustmark-cli/README.md', + }, ]; function resolveMarkdownLinks(linkBase, content) { diff --git a/sidebars.js b/sidebars.js index dd0e10f4..8d13b2fb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -259,9 +259,14 @@ const sidebars = { id: 'faqs', }, { - type: 'category', + type: 'doc', label: 'Community resources', - link: { type: 'doc', id: 'community-resources' }, + id: 'community-resources', + }, + { + type: 'category', + label: 'Durable Content Credentials', + link: { type: 'doc', id: 'durable-cr' }, collapsed: true, items: [ { @@ -292,13 +297,23 @@ const sidebars = { }, { type: 'doc', - id: 'tm-faq', - label: 'FAQ', + id: 'trustmark/js/README', + label: 'JavaScript example', }, { type: 'doc', - id: 'trustmark/js/README', - label: 'JavaScript example', + id: 'trustmark/rust/README', + label: 'Rust implementation', + }, + { + type: 'doc', + id: 'trustmark/rust/crates/trustmark-cli/README', + label: 'Rust CLI', + }, + { + type: 'doc', + id: 'tm-faq', + label: 'FAQ', }, { type: 'link',