| // 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/asset_type.proto"; |
| |
| // `CollectionDataHashAssertion` contains an array of URIs and their associated |
| // hashes. Based on `collection-data-hash-map`: |
| // https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_collection_data_hash. |
| message CollectionDataHashAssertion { |
| repeated UriHashedData uris = 1 [(cbor.tags) = { is_required: true }]; |
| |
| // A string identifying the cryptographic hash algorithm used to compute the |
| // hash on each entry of the `uris` array, taken from the C2PA hash algorithm |
| // identifier list. |
| string alg = 2 [(cbor.tags) = { is_required: true }]; |
| |
| // The hash of the ZIP central directory in ZIP-based assets. |
| bytes zip_central_directory_hash = 3; |
| } |
| |
| // `UriHashedData` is used to store a reference to a URI and its hash. Based on |
| // `uri-hashed-data-map`: |
| // https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_collection_data_hash. |
| message UriHashedData { |
| // Relative URI reference. |
| string uri = 1 [(cbor.tags) = { is_required: true }]; |
| |
| // Byte string containing the hash value. |
| bytes hash = 2 [(cbor.tags) = { is_required: true }]; |
| |
| // Number of bytes of data. |
| int64 size = 3; |
| |
| // IANA media type of the data. |
| string type = 4 [(cbor.tags) = { name: "dc:format" }]; |
| |
| // Additional information about the data's type. |
| repeated AssetType data_types = 5; |
| } |