blob: c11089f68bf1b0fb656612faf396ab7e6268baeb [file]
# 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.
#
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
package(default_visibility = ["//visibility:public"])
cc_binary(
name = "c2pa_validate",
srcs = ["asset_validator_main.cc"],
deps = [
"//crypto:crypto_read_handler",
"//crypto/default:default_crypto_read_handler",
"//utils:crjson",
"//utils:media_type",
"//validator:asset_validator_impl",
"//validator:result",
"//validator:validator_options",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/flags:parse",
"@abseil-cpp//absl/flags:usage",
"@abseil-cpp//absl/log:initialize",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@nlohmann_json//:json",
"@protobuf",
"@riegeli//riegeli/bytes:cfile_reader",
],
)
cc_library(
name = "asset_writer",
srcs = ["asset_writer.cc"],
hdrs = ["asset_writer.h"],
deps = [
"//claim:local_signer",
"//crypto:crypto_write_handler",
"//crypto:hash",
"//crypto:templated_crypto_write_handler",
"//crypto/default:hasher",
"//formats/bmff:writer",
"//formats/gif:writer",
"//formats/id3:writer",
"//formats/jpeg:writer",
"//formats/pdf:writer",
"//formats/png:writer",
"//formats/riff:writer",
"//formats/tiff:writer",
"//formats/zip:writer",
"//generator",
"//generator:generator_factory",
"//generator:generator_options",
"//proto:generator_cc_proto",
"//testing:local_key_crypto_write_handler",
"//utils:media_type",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@riegeli//riegeli/bytes:cfile_reader",
"@riegeli//riegeli/bytes:cfile_writer",
"@riegeli//riegeli/bytes:reader",
"@riegeli//riegeli/bytes:writer",
],
)
cc_binary(
name = "asset_write",
srcs = ["asset_write_main.cc"],
deps = [
":asset_writer",
"//crypto/default:pem",
"//proto:generator_cc_proto",
"//testing:local_key_crypto_write_handler",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/flags:parse",
"@abseil-cpp//absl/flags:usage",
"@abseil-cpp//absl/log:initialize",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@protobuf",
],
)
cc_test(
name = "asset_writer_test",
srcs = ["asset_writer_test.cc"],
data = [
"//formats/zip/testing:assets",
],
deps = [
":asset_writer",
"//crypto/default:default_crypto_read_handler",
"//formats/bmff:test_utils",
"//formats/gif:constants",
"//formats/gif:test_builder",
"//formats/jpeg/testing:jpeg_creator",
"//formats/png:test_utils",
"//formats/riff:create_riff",
"//formats/tiff:constants",
"//proto:generator_cc_proto",
"//proto:manifest_cc_proto",
"//proto:validation_status_cc_proto",
"//testing:crypto_testing",
"//testing:local_key_crypto_write_handler",
"//testing:test_file_utils",
"//validator:asset_validator_impl",
"//validator:validator_options",
"@abseil-cpp//absl/log:absl_check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@boringssl//:crypto",
"@googletest//:gtest_main",
"@riegeli//riegeli/bytes:cfile_reader",
"@riegeli//riegeli/bytes:reader",
"@riegeli//riegeli/bytes:string_reader",
"@riegeli//riegeli/bytes:string_writer",
"@riegeli//riegeli/endian:endian_writing",
],
)