Reader

A reader for the manifest store.

Properties

Property Type Description Required? Default Value
active_manifest String

A label for the active (most recent) manifest in the store

NO N/A
manifests Object

A HashMap of Manifests


See Manifest
YES N/A
validation_results ValidationResults

ValidationStatus generated when loading the ManifestStore from an asset

NO N/A
validation_state ValidationState

The validation state of the manifest store

NO N/A
validation_status Array of ValidationStatus

ValidationStatus generated when loading the ManifestStore from an asset

NO N/A

Definitions

Actor
AssetType
ClaimGeneratorInfo
Coordinate
DataSource
DateT
Frame
HashedUri
Ingredient
IngredientDeltaValidationResult
Item
Manifest
ManifestAssertion
ManifestAssertionKind
ManifestData
Metadata
Range
RangeType
RegionOfInterest
Relationship
ResourceRef
ResourceStore
ReviewRating
Role
Shape
ShapeType
SignatureInfo
SigningAlg
StatusCodes
Text
TextSelector
TextSelectorRange
Time
TimeType
UnitType
UriOrResource
ValidationResults
ValidationState
ValidationStatus

Definitions

Actor

Identifies a person responsible for an action.

Property Type Description Required? Default Value
credentials Array of HashedUri

List of references to W3C Verifiable Credentials.

NO N/A
identifier String

An identifier for a human actor, used when the “type” is humanEntry.identified.

NO N/A

Definitions

AssetType

Property Type Description Required? Default Value
type String

Description TBD.

YES N/A
version String

Description TBD.

NO N/A

Definitions

ClaimGeneratorInfo

Description of the claim generator, or the software used in generating the claim. This structure is also used for actions softwareAgent

Property Type Description Required? Default Value
icon UriOrResource

hashed URI to the icon (either embedded or remote)

NO N/A
name String

A human readable string naming the claim_generator

YES N/A
operating_system String

A human readable string of the OS the claim generator is running on

NO N/A
version String

A human readable string of the product’s version

NO N/A

NOTE: This object can have any number of additional user-defined properties.

Definitions

Coordinate

An x, y coordinate used for specifying vertices in polygons.

Property Type Description Required? Default Value
x Number / double

The coordinate along the x-axis.

YES N/A
y Number / double

The coordinate along the y-axis.

YES N/A

Definitions

DataSource

A description of the source for assertion data

Property Type Description Required? Default Value
actors Array of Actor

A list of [Actor]s associated with this source.

NO N/A
details String

A human-readable string giving details about the source of the assertion data.

NO N/A
type String

A value from among the enumerated list indicating the source of the assertion.

YES N/A

Definitions

DateT

A string.

Definitions

Frame

A frame range representing starting and ending frames or pages. If both start and end are missing, the frame will span the entire asset.

Property Type Description Required? Default Value
end Integer (int32)

The end of the frame inclusive or the end of the asset if not present.

NO N/A
start Integer (int32)

The start of the frame or the end of the asset if not present.

The first frame/page starts at 0.

NO N/A

Definitions

HashedUri

A HashedUri provides a reference to content available within the same manifest store. This is described in [§8.3, URI References], of the C2PA Technical Specification. [§8.3, URI References]: https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_uri_references

Property Type Description Required? Default Value
alg String

A string identifying the cryptographic hash algorithm used to compute the hash

NO N/A
hash An array of integer

Byte string containing the hash value

YES N/A
url String

JUMBF URI reference

YES N/A

Definitions

Ingredient

An Ingredient is any external asset that has been used in the creation of an asset.

Property Type Description Required? Default Value
active_manifest String

The active manifest label (if one exists).

If this ingredient has a [ManifestStore], this will hold the label of the active Manifest.

NO N/A
data ResourceRef

A reference to the actual data of the ingredient.

NO N/A
data_types Array of AssetType

Additional information about the data’s type to the ingredient V2 structure.

NO N/A
description String

Additional description of the ingredient.

NO N/A
document_id String

Document ID from xmpMM:DocumentID in XMP metadata.

NO N/A
format String

The format of the source file as a MIME type.

NO N/A
hash String

An optional hash of the asset to prevent duplicates.

NO N/A
informational_URI String

URI to an informational page about the ingredient or its data.

NO N/A
instance_id String

Instance ID from xmpMM:InstanceID in XMP metadata.

NO N/A
label String

The ingredient’s label as assigned in the manifest.

NO N/A
manifest_data ResourceRef

A ManifestStore from the source asset extracted as a binary C2PA blob.

NO N/A
metadata Metadata

Any additional Metadata as defined in the C2PA spec.

NO N/A
provenance String

URI from dcterms:provenance in XMP metadata.

NO N/A
relationship Relationship

Set to ParentOf if this is the parent ingredient.

There can only be one parent ingredient in the ingredients.

NO componentOf
resources ResourceStore

Description TBD.

NO N/A
thumbnail ResourceRef

A thumbnail image capturing the visual state at the time of import.

A tuple of thumbnail MIME format (for example image/jpeg) and binary bits of the image.

NO N/A
title String

A human-readable title, generally source filename.

NO N/A
validation_results ValidationResults

Validation results (Ingredient.V3)

NO N/A
validation_status Array of ValidationStatus

Validation status (Ingredient v1 & v2)

NO N/A

Definitions

IngredientDeltaValidationResult

Represents any changes or deltas between the current and previous validation results for an ingredient’s manifest.

Property Type Description Required? Default Value
ingredientAssertionURI String

JUMBF URI reference to the ingredient assertion

YES N/A
validationDeltas StatusCodes

Validation results for the ingredient’s active manifest

YES N/A

Definitions

Item

Description of the boundaries of an identified range.

Property Type Description Required? Default Value
identifier String

The container-specific term used to identify items, such as “track_id” for MP4 or “item_ID” for HEIF.

YES N/A
value String

The value of the identifier, e.g. a value of “2” for an identifier of “track_id” would imply track 2 of the asset.

YES N/A

Definitions

Manifest

A Manifest represents all the information in a c2pa manifest

Property Type Description Required? Default Value
assertions An array of ManifestAssertion

A list of assertions

NO Empty array
claim_generator String

A User Agent formatted string identifying the software/hardware/system produced this claim Spaces are not allowed in names, versions can be specified with product/1.0 syntax

NO N/A
claim_generator_info Array of ClaimGeneratorInfo

A list of claim generator info data identifying the software/hardware/system produced this claim

NO N/A
credentials Array of true

A List of verified credentials

NO N/A
format String

The format of the source file as a MIME type.

NO N/A
ingredients An array of Ingredient

A List of ingredients

NO Empty array
instance_id String

Instance ID from xmpMM:InstanceID in XMP metadata.

NO xmp:iid:424afed8-279d-4793-a279-b80a00b8c32b
label String

Description TBD.

NO N/A
metadata Array of Metadata

A list of user metadata for this claim

NO N/A
redactions Array of string

A list of redactions - URIs to a redacted assertions

NO N/A
resources ResourceStore

container for binary assets (like thumbnails)

NO N/A
signature_info SignatureInfo

Signature data (only used for reporting)

NO N/A
thumbnail ResourceRef

Description TBD.

NO N/A
title String

A human-readable title, generally source filename.

NO N/A
vendor String

Optional prefix added to the generated Manifest Label This is typically Internet domain name for the vendor (i.e. adobe)

NO N/A

Definitions

ManifestAssertion

A labeled container for an Assertion value in a Manifest

Property Type Description Required? Default Value
data ManifestData

The data of the assertion as Value

YES N/A
instance Integer (uint)
Minimum: 0.0

There can be more than one assertion for any label

NO N/A
kind ManifestAssertionKind

The [ManifestAssertionKind] for this assertion (as stored in c2pa content)

NO N/A
label String

An assertion label in reverse domain format

YES N/A

Definitions

ManifestAssertionKind

A string that is one of the following:

Definitions

ManifestData

Description TBD.

Any of the following:

Definitions

Metadata

The Metadata structure can be used as part of other assertions or on its own to reference others

Property Type Description Required? Default Value
dataSource DataSource

Description TBD.

NO N/A
dateTime DateT

Description TBD.

NO N/A
reference HashedUri

Description TBD.

NO N/A
regionOfInterest RegionOfInterest

Description TBD.

NO N/A
reviewRatings Array of ReviewRating

Description TBD.

NO N/A

NOTE: This object can have any number of additional user-defined properties.

Definitions

Range

A spatial, temporal, frame, or textual range describing the region of interest.

Property Type Description Required? Default Value
frame Frame

A frame range.

NO N/A
item Item

A item identifier.

NO N/A
shape Shape

A spatial range.

NO N/A
text Text

A textual range.

NO N/A
time Time

A temporal range.

NO N/A
type RangeType

The type of range of interest.

YES N/A

Definitions

RangeType

The type of range for the region of interest.

RangeType Type Description
spatial string

A spatial range, see [Shape] for more details.

temporal string

A temporal range, see [Time] for more details.

frame string

A spatial range, see [Frame] for more details.

textual string

A textual range, see [Text] for more details.

identified string

A range identified by a specific identifier and value, see [Item] for more details.

Definitions

RegionOfInterest

A region of interest within an asset describing the change. This struct can be used from [Action::changes][crate::assertions::Action::changes] or [Metadata::region_of_interest][crate::assertions::Metadata::region_of_interest].

Property Type Description Required? Default Value
description String

A free-text string.

NO N/A
identifier String

A free-text string representing a machine-readable, unique to this assertion, identifier for the region.

NO N/A
metadata Metadata

Additional information about the asset.

NO N/A
name String

A free-text string representing a human-readable name for the region which might be used in a user interface.

NO N/A
region An array of Range

A range describing the region of interest for the specific asset.

YES N/A
role Role

A value from our controlled vocabulary or an entity-specific value (e.g., com.litware.coolArea) that represents the role of a region among other regions.

NO N/A
type String

A value from a controlled vocabulary such as https://cv.iptc.org/newscodes/imageregiontype/ or an entity-specific value (e.g., com.litware.newType) that represents the type of thing(s) depicted by a region.

Note this field serializes/deserializes into the name type.

NO N/A

Definitions

Relationship

A string that is one of the following:

Definitions

ResourceRef

A reference to a resource to be used in JSON serialization. The underlying data can be read as a stream via [Reader::resource_to_stream][crate::Reader::resource_to_stream].

Property Type Description Required? Default Value
alg String

The algorithm used to hash the resource (if applicable).

NO N/A
data_types Array of AssetType

More detailed data types as defined in the C2PA spec.

NO N/A
format String

The mime type of the referenced resource.

YES N/A
hash String

The hash of the resource (if applicable).

NO N/A
identifier String

A URI that identifies the resource as referenced from the manifest.

This may be a JUMBF URI, a file path, a URL or any other string. Relative JUMBF URIs will be resolved with the manifest label. Relative file paths will be resolved with the base path if provided.

YES N/A

Definitions

ResourceStore

Resource store to contain binary objects referenced from JSON serializable structures

Property Type Description Required? Default Value
base_path String

Description TBD.

NO N/A
label String

Description TBD.

NO N/A
resources (Object)

Description TBD.

YES N/A

Definitions

ReviewRating

A rating on an Assertion. See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_claim_review.

Property Type Description Required? Default Value
code String

Description TBD.

NO N/A
explanation String

Description TBD.

YES N/A
value Integer (uint8)
Minimum: 0.0

Description TBD.

YES N/A

Definitions

Role

A role describing the region.

Role Type Description
c2pa.areaOfInterest string

Arbitrary area worth identifying.

c2pa.cropped string

This area is all that is left after a crop action.

c2pa.edited string

This area has had edits applied to it.

c2pa.placed string

The area where an ingredient was placed/added.

c2pa.redacted string

Something in this area was redacted.

c2pa.subjectArea string

Area specific to a subject (human or not).

c2pa.deleted string

A range of information was removed/deleted.

c2pa.styled string

Styling was applied to this area.

c2pa.watermarked string

Invisible watermarking was applied to this area for the purpose of soft binding.

Definitions

Shape

A spatial range representing rectangle, circle, or a polygon.

Property Type Description Required? Default Value
height Number (double)

The height of a rectnagle.

This field can be ignored for circles and polygons.

NO N/A
inside Boolean

If the range is inside the shape.

The default value is true.

NO N/A
origin Coordinate

THe origin of the coordinate in the shape.

YES N/A
type ShapeType

The type of shape.

YES N/A
unit UnitType

The type of unit for the shape range.

YES N/A
vertices Array of Coordinate

The vertices of the polygon.

This field can be ignored for rectangles and circles.

NO N/A
width Number (double)

The width for rectangles or diameter for circles.

This field can be ignored for polygons.

NO N/A

Definitions

ShapeType

The type of shape for the range.

ShapeType Type Description
rectangle string

A rectangle.

circle string

A circle.

polygon string

A polygon.

Definitions

SignatureInfo

Holds information about a signature

Property Type Description Required? Default Value
alg SigningAlg

Human-readable issuing authority for this signature.

NO N/A
cert_serial_number String

The serial number of the certificate.

NO N/A
issuer String

Human-readable issuing authority for this signature.

NO N/A
revocation_status Boolean

Revocation status of the certificate.

NO N/A
time String

The time the signature was created.

NO N/A

Definitions

SigningAlg

Describes the digital signature algorithms allowed by the C2PA spec.

Per §13.2, “Digital Signatures”:

All digital signatures applied as per the technical requirements of this > specification shall be generated using one of the digital signature > algorithms and key types listed as described in this section.

SigningAlg Type Description
Es256 string

ECDSA with SHA-256

Es384 string

ECDSA with SHA-384

Es512 string

ECDSA with SHA-512

Ps256 string

RSASSA-PSS using SHA-256 and MGF1 with SHA-256

Ps384 string

RSASSA-PSS using SHA-384 and MGF1 with SHA-384

Ps512 string

RSASSA-PSS using SHA-512 and MGF1 with SHA-512

Ed25519 string

Edwards-Curve DSA (Ed25519 instance only)

Definitions

StatusCodes

Contains a set of success, informational, and failure validation status codes.

Property Type Description Required? Default Value
failure An array of ValidationStatus

Description TBD.

YES N/A
informational An array of ValidationStatus

Description TBD.

YES N/A
success An array of ValidationStatus

Description TBD.

YES N/A

Definitions

Text

A textual range representing multiple (possibly discontinuous) ranges of text.

Property Type Description Required? Default Value
selectors An array of TextSelectorRange

The ranges of text to select.

YES N/A

Definitions

TextSelector

Selects a range of text via a fragment identifier. This is modeled after the W3C Web Annotation selector model.

Property Type Description Required? Default Value
end Integer (int32)

The end character offset or the end of the fragment if not present.

NO N/A
fragment String

Fragment identifier as per RFC3023 (XML) or ISO 32000-2 (PDF), Annex O.

YES N/A
start Integer (int32)

The start character offset or the start of the fragment if not present.

NO N/A

Definitions

TextSelectorRange

One or two [TextSelector][TextSelector] identifiying the range to select.

Property Type Description Required? Default Value
end TextSelector

The end of the text range.

NO N/A
selector TextSelector

The start (or entire) text range.

YES N/A

Definitions

Time

A temporal range representing a starting time to an ending time.

Property Type Description Required? Default Value
end String

The end time or the end of the asset if not present.

NO N/A
start String

The start time or the start of the asset if not present.

NO N/A
type TimeType

The type of time.

NO npt

Definitions

TimeType

The type of time.

TimeType Type Description
npt string

Times are described using Normal Play Time (npt) as described in RFC 2326.

Definitions

UnitType

The type of unit for the range.

UnitType Type Description
pixel string

Use pixels.

percent string

Use percentage.

Definitions

UriOrResource

Description TBD.

Any of the following:

Definitions

ValidationResults

A map of validation results for a manifest store. The map contains the validation results for the active manifest and any ingredient deltas. It is normal for there to be many

Property Type Description Required? Default Value
activeManifest StatusCodes

Description TBD.

NO N/A
ingredientDeltas Array of IngredientDeltaValidationResult

Description TBD.

NO N/A

Definitions

ValidationState

Indicates if the manifest store is valid and trusted.

The Trusted state implies the manifest store is valid and the active signature is trusted.

ValidationState Type Description
Invalid string

Errors were found in the manifest store.

Valid string

No errors were found in validation, but the active signature is not trusted.

Trusted string

The manifest store is valid and the active signature is trusted.

Definitions

ValidationStatus

A ValidationStatus struct describes the validation status of a specific part of a manifest. See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_existing_manifests.

Property Type Description Required? Default Value
code String

Description TBD.

YES N/A
explanation String

Description TBD.

NO N/A
success Boolean

Description TBD.

NO N/A
url String

Description TBD.

NO N/A