C2PA (Coalition for Content Provenance and Authenticity) Specifications

repository·main·Indexed 41 days ago

https://github.com/c2pa-org/specifications

Technical standards for attaching verifiable provenance and authenticity metadata to digital content. Includes specifications for Content Credentials, Content Credentials JSON (crJSON), Attestations, and the Soft Binding API, along with implementation guidance for security, UX, and AI/ML workflows.

Tokens
967
Snippets
3
Records
8
Agent score
53%

What's inside C2PA

  1. Access C2PA Guidance and Implementation Documents

    main

    C2PA provides several informative documents to assist developers and organizations in implementing standards correctly and safely:

    • Explainer: High-level overview of the C2PA approach.
    • Guidance for Implementers: Technical guidance for building C2PA-compliant software.
    • User Experience (UX) Guidance: Recommendations for how provenance information should be presented to users.
    • Security Considerations: Documentation on the security properties and threat models of the specifications.
    • Harms Modelling: Analysis of potential misuse and harms related to provenance.
    • Guidance for Artificial Intelligence and Machine Learning: Specific guidance for AI/ML workflows and content generation.
  2. Explore C2PA Technical Specifications

    main

    The C2PA technical specifications define the standards for certifying the source and history (provenance) of media content. Key specifications include:

    • Content Credentials: The core specification for implementing content provenance.
    • Content Credentials JSON (crJSON): The specific JSON format used for content credentials.
    • Attestations: Standards for how assertions about media are cryptographically signed and structured.
    • Soft Binding API: An API for decoupled binding of credentials to content.
  3. Access C2PA Specifications

    main
    This repository serves as a source for the C2PA (Coalition for Content Provenance and Authenticity) specifications in their raw form. For the officially published and formatted versions of the specifications, visit the official C2PA specification website.
  4. Repository structure for documentation modules

    main

    The documentation repository follows a specific organizational structure for modules. Each module under docs/modules/<name> should contain the following subdirectories:

    • pages/: The main content files.
    • partials/: Reusable document fragments.
    • images/: Image assets.
    • attachments/: Other file attachments.
    • other/: Miscellaneous files.
  5. Build the C2PA specifications site

    main

    The C2PA specifications site is built using Antora via a Dockerized environment. The build process uses a standard antora-playbook.yml and automatically downloads the main branches of all referenced 'child' repositories.

    To build the site as part of the standard workflow:

    1. Ensure you are in the specifications repository.
    2. Run the buildsite.sh script.
    3. The generated site will be located in build/site/index.html.

    Changes are published to the gh-pages branch via the standard GitHub workflow (Create PR -> Push changes -> Merge PR).

    ./buildsite.sh
  6. Cross-document linking in Antora

    main

    When contributing to the C2PA specifications documentation, use Antora's xref syntax to create links between documents. This ensures links remain functional even after the site is built and reorganized.

    Use the following patterns:

    • Internal Link: xref:_lower_case_with_underbars[Link Text]
    • External Link (to a module): xref:MODULE:DOCUMENT.adoc#SECTION[Link Text]
    • External Link (relative path): xref:MODULE:../partials/DOCUMENT.adoc#SECTION[Link Text]
    * pass:[xref:_lower_case_with_underbars[Internal Link]]
    * pass:[xref:MODULE:DOCUMENT.adoc#SECTION[External Link]]
    * pass:[xref:MODULE:../partials/DOCUMENT.adoc#SECTION[External Link]]
  7. Build the site locally with Antora

    main

    If you have antora installed locally and want to bypass the Dockerized build process, you can use the local playbook configuration. This is useful for rapid development and testing changes without the overhead of the full build script.

    antora antora-playbook-local.yml