Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions docs/faqs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The ["Produced by" section](verify.mdx#produced-by) in Verify refers to the name

### Do Content Credentials indicate if an image is fake or altered?

Content Credentials don't indicate if an image is fake. They can provide information on the origin of an image and how it was edited: For example, if an AI tool supports Content Credentials, then they indicate if [an image was generated with AI](manifest/assertions-actions.md#generative-ai-action). If an image was taken with a C2PA-enabled camera, the Content Credentials would show that, along with any subsequent edits, if they were made with C2PA-enabled software tools.
Content Credentials don't indicate if an image is fake. They can provide information on the origin of an image and how it was edited: For example, if an AI tool supports Content Credentials, then they indicate if [an image was generated with AI](manifest/writing/assertions-actions.md#generative-ai-action). If an image was taken with a C2PA-enabled camera, the Content Credentials would show that, along with any subsequent edits, if they were made with C2PA-enabled software tools.

:::info
Content Credentials provide a **positive signal** about the origin and history of an image, but they don't provide a **negative signal** about the authenticity of an image.
Expand All @@ -60,16 +60,6 @@ The [manifest](manifest/understanding.md) that defines the Content Credentials
can include various assertions about the image, including the ingredients, the
date and time, the location, and the device that created the image.

### How can I prove time and place an image was created without revealing my identity?

Content Credentials can specify identity by using the [Schema.org CreativeWork assertion](manifest/assertions-actions.md#creative-work-assertion), but it is _entirely optional_.

For example, using Photoshop you
can add Content Credentials that indicate what edits were made without saying who
did it. You would know Adobe signed the Content Credentials and that's it. Regardless
of the "who", the cryptographically-signed manifest ensures you know the date and
time. A camera could also include Exif metadata with location information.

### How do you prevent faking GPS location metadata?

The location data included in [Exif metadata](manifest/assertions-actions.md#exif-assertion) is based on the implementor. People would trust the data based on the various "trust signals" they are given in the manifest, such as who signed it and when.
The location data included in [Exif metadata](manifest/writing/assertions-actions.md#exif-assertion) is based on the implementor. People would trust the data based on the various "trust signals" they are given in the manifest, such as who signed it and when.
243 changes: 118 additions & 125 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,49 @@ const sidebars = {
},
],
},
{
type: 'category',
label: 'Rust library',
link: { type: 'doc', id: 'rust-sdk/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'rust-sdk/docs/usage',
label: 'Using the Rust library',
},
{
type: 'doc',
id: 'rust-sdk/docs/supported-formats',
label: 'Supported media formats',
},
{
type: 'doc',
id: 'rust-sdk/docs/cawg-id',
label: 'Using CAWG identity assertions',
},
{
type: 'doc',
id: 'rust-sdk/docs/release-notes',
label: 'Release notes',
},
{
type: 'link',
label: 'API documentation',
href: 'https://docs.rs/c2pa',
},
{
type: 'doc',
id: 'c2pa-min/readme',
label: 'C2PA Rust example application',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-rs',
},
],
},
{
type: 'category',
label: 'JavaScript library',
Expand All @@ -145,117 +188,109 @@ const sidebars = {
},
{
type: 'category',
label: 'Prerelease libraries',
link: { type: 'doc', id: 'other-langs' },
label: 'Python library',
link: { type: 'doc', id: 'c2pa-python/readme' },
collapsed: true,
items: [
{
type: 'category',
label: 'Node.js',
link: { type: 'doc', id: 'node-landing' },
collapsed: true,
items: [
{
type: 'category',
label: 'New Node.js library',
link: { type: 'doc', id: 'c2pa-node-v2/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'c2pa-node-v2/supported-formats',
label: 'Supported media formats',
},
{
type: 'link',
label: 'API documentation',
href: 'https://github.com/contentauth/c2pa-node-v2/blob/main/docs/README.md',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-node-v2/tree/main',
},
],
},
{
type: 'category',
label: 'Legacy Node.js library',
link: { type: 'doc', id: 'c2pa-node/readme' },
collapsed: true,
items: [
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-node',
},
],
},
],
type: 'doc',
id: 'c2pa-python/docs/usage',
label: 'Using the Python library',
},
{
type: 'doc',
id: 'c2pa-python/docs/supported-formats',
label: 'Supported media formats',
},
{
type: 'doc',
id: 'c2pa-python/docs/examples',
label: 'Python example code',
},
{
type: 'doc',
id: 'c2pa-python/docs/release-notes',
label: 'Release notes',
},
{
type: 'link',
label: 'API documentation',
href: 'https://contentauth.github.io/c2pa-python/api/c2pa/index.html',
},
{
type: 'doc',
id: 'c2pa-python-example/readme',
label: 'C2PA Python example',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-python',
},
],
},
{
type: 'category',
label: 'C++ / C library',
link: { type: 'doc', id: 'c2pa-c/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'c2pa-c/docs/usage',
label: 'Using the C++ library',
},
{
type: 'doc',
id: 'c2pa-c/docs/supported-formats',
label: 'Supported media formats',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-c',
},
],
},
{
type: 'category',
label: 'Node.js library',
link: { type: 'doc', id: 'node-landing' },
collapsed: true,
items: [
{
type: 'category',
label: 'Python',
link: { type: 'doc', id: 'c2pa-python/readme' },
label: 'New Node.js library',
link: { type: 'doc', id: 'c2pa-node-v2/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'c2pa-python/docs/usage',
label: 'Using the Python library',
},
{
type: 'doc',
id: 'c2pa-python/docs/supported-formats',
id: 'c2pa-node-v2/supported-formats',
label: 'Supported media formats',
},
{
type: 'doc',
id: 'c2pa-python/docs/examples',
label: 'Python example code',
},
{
type: 'doc',
id: 'c2pa-python/docs/release-notes',
label: 'Release notes',
},
{
type: 'link',
label: 'API documentation',
href: 'https://contentauth.github.io/c2pa-python/api/c2pa/index.html',
},
{
type: 'doc',
id: 'c2pa-python-example/readme',
label: 'C2PA Python example',
href: 'https://github.com/contentauth/c2pa-node-v2/blob/main/docs/README.md',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-python',
href: 'https://github.com/contentauth/c2pa-node-v2/tree/main',
},
],
},
{
type: 'category',
label: 'C++ / C',
link: { type: 'doc', id: 'c2pa-c/readme' },
label: 'Legacy Node.js library',
link: { type: 'doc', id: 'c2pa-node/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'c2pa-c/docs/usage',
label: 'Using the C++ library',
},
{
type: 'doc',
id: 'c2pa-c/docs/supported-formats',
label: 'Supported media formats',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-c',
href: 'https://github.com/contentauth/c2pa-node',
},
],
},
Expand All @@ -279,49 +314,7 @@ const sidebars = {
},
],
},
{
type: 'category',
label: 'Rust library',
link: { type: 'doc', id: 'rust-sdk/readme' },
collapsed: true,
items: [
{
type: 'doc',
id: 'rust-sdk/docs/usage',
label: 'Using the Rust library',
},
{
type: 'doc',
id: 'rust-sdk/docs/supported-formats',
label: 'Supported media formats',
},
{
type: 'doc',
id: 'rust-sdk/docs/cawg-id',
label: 'Using CAWG identity assertions',
},
{
type: 'doc',
id: 'rust-sdk/docs/release-notes',
label: 'Release notes',
},
{
type: 'link',
label: 'API documentation',
href: 'https://docs.rs/c2pa',
},
{
type: 'doc',
id: 'c2pa-min/readme',
label: 'C2PA Rust example application',
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/contentauth/c2pa-rs',
},
],
},

{
type: 'category',
label: 'Signing and certificates',
Expand Down