blob: 1968d65c073672350a48048fec7efe5d75bac200 [file] [edit]
# 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_visibility = ["//visibility:public"])
cc_library(
name = "validation_status_util",
hdrs = ["validation_status_util.h"],
deps = [
"//constants:status_codes",
"//proto:validation_status_cc_proto",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "sig_structure",
srcs = ["sig_structure.cc"],
hdrs = ["sig_structure.h"],
deps = [
"//cbor",
"//cbor:parse",
"//crypto:algorithms",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:absl_log",
"@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",
"@libcppbor",
],
)
cc_test(
name = "sig_structure_test",
srcs = ["sig_structure_test.cc"],
deps = [
":sig_structure",
"//cbor",
"//cbor:parse",
"//crypto:algorithms",
"//testing:cbor_utils",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@googletest//:gtest_main",
],
)
cc_library(
name = "ocsp_verifier",
srcs = ["ocsp_verifier.cc"],
hdrs = ["ocsp_verifier.h"],
deps = [
":validation_status_util",
"//constants:labels",
"//constants:status_codes",
"//crypto:crypto_read_handler",
"//proto:validation_status_cc_proto",
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "ocsp_verifier_test",
srcs = ["ocsp_verifier_test.cc"],
deps = [
":ocsp_verifier",
"//constants:status_codes",
"//crypto/default:pem",
"//proto:validation_status_cc_proto",
"//testing:pem",
"//tsp:verified_timestamp",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
"@boringssl//:crypto",
"@googletest//:gtest_main",
],
)
cc_library(
name = "cose_sign1",
srcs = ["cose_sign1.cc"],
hdrs = ["cose_sign1.h"],
deps = [
":ocsp_verifier",
":sig_structure",
":validation_status_util",
"//constants:labels",
"//constants:status_codes",
"//crypto:crypto_read_handler",
"//crypto:hash",
"//proto:assurance_level_cc_proto",
"//proto:signature_info_cc_proto",
"//proto:validation_status_cc_proto",
"//tsp:timestamp_parsing",
"//tsp:verified_timestamp",
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/memory",
"@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",
"@abseil-cpp//absl/time:clock_interface",
"@abseil-cpp//absl/types:span",
"@boringssl//:crypto",
"@protobuf//:timestamp_cc_proto",
],
)
cc_library(
name = "verifier",
srcs = ["verifier.cc"],
hdrs = ["verifier.h"],
deps = [
":cose_sign1",
":sig_structure",
":validation_status_util",
"//constants:labels",
"//constants:status_codes",
"//crypto:crypto_read_handler",
"//crypto:hash",
"//crypto/default:hasher",
"//proto:cose_verification_result_cc_proto",
"//proto:signature_info_cc_proto",
"//proto:validation_status_cc_proto",
"@abseil-cpp//absl/base:nullability",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/time:clock_interface",
"@protobuf//:timestamp_cc_proto",
],
)
cc_library(
name = "simple_cms_parser",
srcs = ["simple_cms_parser.cc"],
hdrs = ["simple_cms_parser.h"],
deps = [
"//crypto:algorithms",
"//crypto/default/cms:certificates",
"//crypto/default/cms:cms_parser",
"//crypto/default/cms:verify_signature",
"//tsp:cms_parser",
"//tsp:constants",
"//tsp:parsed_timestamp_token",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/memory",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_macros",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/strings:string_view",
"@boringssl//:crypto",
],
)
cc_test(
name = "simple_cms_parser_test",
srcs = ["simple_cms_parser_test.cc"],
deps = [
":simple_cms_parser",
"//crypto:algorithms",
"//tsp:parsed_timestamp_token",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:status_matchers",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@googletest//:gtest_main",
],
)