blob: 74e018601e4ddecd8f259e8bac6ab41db568ea93 [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_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
package(
default_testonly = True,
default_visibility = ["//visibility:public"],
)
cc_library(
name = "test_string_utils",
hdrs = ["test_string_utils.h"],
deps = [
"@riegeli//riegeli/endian:endian_writing",
],
)
cc_library(
name = "mock_cose_verifier",
hdrs = ["mock_cose_verifier.h"],
deps = [
"//cose:verifier",
"//proto:cose_verification_result_cc_proto",
"@abseil-cpp//absl/strings:string_view",
"@googletest//:gtest",
],
)
cc_library(
name = "mock_assertion_validator",
hdrs = ["mock_assertion_validator.h"],
deps = [
"//assertion:validator",
"//jumbf:uri",
"//validator:tracker",
"@abseil-cpp//absl/container:flat_hash_set",
"@googletest//:gtest",
],
)
cc_library(
name = "fake_claim_validator",
hdrs = ["fake_claim_validator.h"],
deps = [
"//claim:validator",
"//constants:status_codes",
"//jumbf:box",
"//validator:tracker",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "fake_claim_validator_test",
srcs = ["fake_claim_validator_test.cc"],
deps = [
":fake_claim_validator",
":proto_test_utils",
":test_validation_tracker",
"//constants:status_codes",
"//jumbf:box",
"//proto:generator_info_cc_proto",
"//proto:manifest_cc_proto",
"@abseil-cpp//absl/types:span",
"@googletest//:gtest_main",
],
)
cc_library(
name = "fake_assertion_validator",
hdrs = ["fake_assertion_validator.h"],
deps = [
"//assertion:validator",
"//constants:status_codes",
"//jumbf:uri",
"//validator:tracker",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "fake_assertion_validator_test",
srcs = ["fake_assertion_validator_test.cc"],
deps = [
":fake_assertion_validator",
":proto_test_utils",
":test_validation_tracker",
"//constants:status_codes",
"//jumbf:box",
"//jumbf:uri",
"//proto:assertion_cc_proto",
"//proto:ingredient_assertion_cc_proto",
"//proto:manifest_cc_proto",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/types:span",
"@googletest//:gtest_main",
],
)
cc_library(
name = "crypto_testing",
testonly = False,
srcs = ["crypto_testing.cc"],
hdrs = ["crypto_testing.h"],
deps = [
"@abseil-cpp//absl/log:absl_check",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/time",
"@boringssl//:crypto",
],
)
cc_library(
name = "boringssl_utils",
testonly = False,
srcs = ["boringssl_utils.cc"],
hdrs = ["boringssl_utils.h"],
deps = [
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:die_if_null",
"@abseil-cpp//absl/strings:string_view",
"@boringssl//:crypto",
],
)
cc_library(
name = "cbor_utils",
srcs = ["cbor_utils.cc"],
hdrs = ["cbor_utils.h"],
deps = [
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@libcppbor",
"@nlohmann_json//:json",
],
)
cc_test(
name = "cbor_utils_test",
srcs = ["cbor_utils_test.cc"],
deps = [
":cbor_utils",
"//cbor:parse",
"//testing/proto:test_message_cc_proto",
"@abseil-cpp//absl/strings:string_view",
"@googletest//:gtest_main",
"@libcppbor",
"@nlohmann_json//:json",
],
)
cc_library(
name = "pem",
srcs = ["pem.cc"],
hdrs = ["pem.h"],
deps = [
"@abseil-cpp//absl/base:no_destructor",
"@abseil-cpp//absl/functional:overload",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
"@boringssl//:crypto",
"@tink_cc//tink:insecure_secret_key_access",
"@tink_cc//tink:key_status",
"@tink_cc//tink:keyset_handle",
"@tink_cc//tink:partial_key_access",
"@tink_cc//tink:public_key_sign",
"@tink_cc//tink/pem:signature_key_parser",
"@tink_cc//tink/signature:config_v0",
"@tink_cc//tink/signature:ecdsa_parameters",
"@tink_cc//tink/signature:ecdsa_private_key",
"@tink_cc//tink/signature:ed25519_parameters",
"@tink_cc//tink/signature:ed25519_private_key",
"@tink_cc//tink/signature:rsa_ssa_pss_parameters",
"@tink_cc//tink/signature:rsa_ssa_pss_private_key",
"@tink_cc//tink/signature:signature_config",
],
)
cc_test(
name = "pem_test",
srcs = ["pem_test.cc"],
deps = [
":pem",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/strings:string_view",
"@googletest//:gtest_main",
"@tink_cc//tink/signature:ecdsa_parameters",
"@tink_cc//tink/signature:ed25519_parameters",
"@tink_cc//tink/signature:rsa_ssa_pss_parameters",
],
)
cc_library(
name = "cms",
testonly = False,
srcs = ["cms.cc"],
hdrs = ["cms.h"],
deps = [
"//crypto:algorithms",
"//crypto:hash",
"//crypto/default:hasher",
"@abseil-cpp//absl/functional:function_ref",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
"@boringssl//:crypto",
],
)
cc_library(
name = "jumbf_utils",
srcs = ["jumbf_utils.cc"],
hdrs = ["jumbf_utils.h"],
deps = [
"//assertion:assertion_encoder",
"//constants:labels",
"//crypto:hash",
"//crypto/default:hasher",
"//jumbf:box",
"//jumbf:constants",
"//jumbf:parse",
"//jumbf:test_utils",
"//proto:assertion_cc_proto",
"//utils:byte_readers",
"//utils:byte_writers",
"//uuid",
"@abseil-cpp//absl/log:absl_check",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "test_validation_tracker",
hdrs = ["test_validation_tracker.h"],
deps = [
"//constants:status_codes",
"//proto:manifest_cc_proto",
"//proto:validation_status_cc_proto",
"//validator:tracker",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/strings",
"@googletest//:gtest",
"@protobuf//:protobuf_lite",
],
)
cc_library(
name = "test_status_tracker",
hdrs = ["test_status_tracker.h"],
deps = [
":test_validation_tracker",
"//constants:status_codes",
"//utils:status_tracker",
"//validator:tracker",
],
)
cc_library(
name = "proto_test_utils",
hdrs = ["proto_test_utils.h"],
deps = [
"@abseil-cpp//absl/log:absl_check",
"@abseil-cpp//absl/strings:string_view",
"@googletest//:gtest",
"@protobuf",
"@protobuf//:differencer",
],
)
cc_library(
name = "test_file_utils",
srcs = ["test_file_utils.cc"],
hdrs = ["test_file_utils.h"],
deps = [
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
"@bazel_tools//tools/cpp/runfiles",
"@riegeli//riegeli/bytes:cfile_reader",
"@riegeli//riegeli/bytes:reader",
],
)
cc_library(
name = "local_key_crypto_write_handler",
testonly = False,
srcs = ["local_key_crypto_write_handler.cc"],
hdrs = ["local_key_crypto_write_handler.h"],
deps = [
"//async:async_context",
"//crypto:algorithms",
"//crypto:crypto_write_handler",
"//crypto:timestamp_write_handler",
"//tsp:test_helpers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/base:no_destructor",
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/log:absl_check",
"@abseil-cpp//absl/log:die_if_null",
"@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",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/time:clock_interface",
"@tink_cc//tink:insecure_secret_key_access",
"@tink_cc//tink:key_status",
"@tink_cc//tink:keyset_handle",
"@tink_cc//tink:partial_key_access",
"@tink_cc//tink:public_key_sign",
"@tink_cc//tink/pem:signature_key_parser",
"@tink_cc//tink/signature:config_v0",
"@tink_cc//tink/signature:ecdsa_parameters",
"@tink_cc//tink/signature:ecdsa_private_key",
"@tink_cc//tink/signature:signature_config",
],
)
cc_library(
name = "create_test_crypto_write_handler",
testonly = False,
srcs = ["create_test_crypto_write_handler.cc"],
hdrs = ["create_test_crypto_write_handler.h"],
deps = [
":crypto_testing",
":local_key_crypto_write_handler",
"//crypto:crypto_write_handler",
"@abseil-cpp//absl/base:no_destructor",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/time:clock_interface",
],
)
cc_test(
name = "create_test_crypto_write_handler_test",
srcs = ["create_test_crypto_write_handler_test.cc"],
deps = [
":create_test_crypto_write_handler",
":local_key_crypto_write_handler",
":test_validation_tracker",
"//cose:simple_cms_parser",
"//crypto:algorithms",
"//crypto:crypto_write_handler",
"//crypto/default:trust_store",
"//tsp:parsed_timestamp_token",
"//tsp:timestamp_verifier",
"//tsp:verified_timestamp",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/time:simulated_clock",
"@boringssl//:pki",
"@googletest//:gtest_main",
],
)
cc_library(
name = "manifest_store_test_utils",
srcs = ["manifest_store_test_utils.cc"],
hdrs = ["manifest_store_test_utils.h"],
deps = [
":create_test_crypto_write_handler",
":proto_test_utils",
":test_validation_tracker",
"//claim:local_signer",
"//claim:validator",
"//cose:verifier",
"//crypto:crypto_read_handler",
"//crypto:crypto_write_handler",
"//crypto/default:default_crypto_read_handler",
"//crypto/default:hasher",
"//generator",
"//generator:generator_factory",
"//jumbf:box",
"//jumbf:parse",
"//proto:generator_cc_proto",
"//proto:generator_info_cc_proto",
"//proto:manifest_cc_proto",
"//proto:validation_result_cc_proto",
"//uuid",
"//validator:manifest_store_validator_impl",
"@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",
"@abseil-cpp//absl/time:clock_interface",
],
)
cc_library(
name = "nonprod_generator",
srcs = ["nonprod_generator.cc"],
hdrs = ["nonprod_generator.h"],
deps = [
":create_test_crypto_write_handler",
"//async:async_context",
"//claim:local_signer",
"//crypto:crypto_write_handler",
"//crypto:hash",
"//crypto:templated_crypto_write_handler",
"//crypto/default:hasher",
"//generator",
"//generator:generator_factory",
"//generator:generator_options",
"//proto:generator_cc_proto",
"//proto:generator_info_cc_proto",
"//uuid",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/time:clock_interface",
],
)
cc_library(
name = "nonprod_validator",
srcs = ["nonprod_validator.cc"],
hdrs = ["nonprod_validator.h"],
deps = [
":create_test_crypto_write_handler",
":crypto_testing",
"//crypto:crypto_read_handler",
"//crypto/default:default_crypto_read_handler",
"//validator:asset_validator",
"//validator:asset_validator_impl",
"//validator:validator_options",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/time:clock_interface",
],
)
cc_library(
name = "fake_manifest_store_generator",
hdrs = ["fake_manifest_store_generator.h"],
deps = [
"//async:async_context",
"//generator",
"//proto:generator_cc_proto",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings:string_view",
],
)