# 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",
    ],
)
