| // Copyright 2026 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // https://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| edition = "2024"; |
| |
| package credentio; |
| |
| import "cbor/tags.proto"; |
| import "proto/assertion.proto"; |
| import "proto/generator_info.proto"; |
| import "proto/hashed_uri.proto"; |
| import "proto/signature_info.proto"; |
| import "proto/validation_status.proto"; |
| |
| import option "google/protobuf/cpp_features.proto"; |
| |
| option java_outer_classname = "ManifestOuterClass"; |
| option features.(pb.cpp).string_type = STRING; |
| |
| // Represents a verifiable unit containing a set of assertions and a claim |
| // about an asset together with a claim signature. |
| message Manifest { |
| // Results of validating this manifest. |
| ValidationStatusSet validation = 15; |
| |
| // Whether the manifest is an update manifest. |
| bool is_update_manifest = 5; |
| |
| // Label of the manifest, unique within the containing manifest store. |
| string label = 1; |
| |
| // Container holding all the assertion references about the asset. |
| Claim claim = 2; |
| |
| // A set of assertions associated with the asset, which are referenced by |
| // the claim in this manifest. These assertions constitute the "assertion |
| // store" described in |
| // https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_assertion_store. |
| repeated Assertion assertions = 3; |
| |
| reserved 4; |
| } |
| |
| // Contains all the assertion and redacted assertion references about an asset |
| // at a given time. |
| message Claim { |
| // Uniquely identifies a specific version of an asset |
| string instance_id = 13 [(cbor.tags) = { name: "instanceID" }]; |
| |
| // Information about the claim generator. |
| GeneratorInfo claim_generator_info = 1; |
| |
| // A set of references to the assertions about when, where, and how the asset |
| // was originated or transformed. |
| // |
| // The reference is specified as a JUMBF URI reference. See |
| // https://www.iso.org/standard/84635.html for more details about JUMBF |
| // standard. |
| repeated HashedUri created_assertions = 7; |
| repeated HashedUri gathered_assertions = 8; |
| |
| // A set of references to the assertions that were subject to redaction. |
| // |
| // Redaction is a process where an assertion of an asset-embedded manifest is |
| // removed from that asset's manifest when this asset is used as an |
| // ingredient. See |
| // https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_redaction_of_assertions |
| // for more details about the redaction process. |
| // |
| // The reference is specified as a JUMBF URI reference. See |
| // https://www.iso.org/standard/84635.html for more details about JUMBF |
| // standard. |
| repeated string redacted_assertions = 4; |
| |
| // Information about the claim signature. |
| SignatureInfo signature_info = 5 [(cbor.tags) = { mode: MODE_SKIP }]; |
| |
| // Only used by the generator; the validator shouldn't populate this field. |
| string signature = 11; |
| |
| // Default hash algorithm. |
| string default_algorithm = 10 [(cbor.tags) = { name: "alg" }]; |
| |
| // Label of the claim box. |
| string label = 12; |
| |
| reserved 2, 3, 6, 9; |
| } |