# Copyright 2020 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//services/network/public/cpp/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//third_party/protobuf/proto_library.gni") source_set("trust_tokens") { visibility = [ ":*", "//services/network:network_service", "//services/network:test_support", "//services/network:tests", ] defines = [ "IS_NETWORK_SERVICE_IMPL" ] sources = [ "boringssl_trust_token_issuance_cryptographer.cc", "boringssl_trust_token_issuance_cryptographer.h", "boringssl_trust_token_redemption_cryptographer.cc", "boringssl_trust_token_redemption_cryptographer.h", "boringssl_trust_token_state.cc", "boringssl_trust_token_state.h", "expiry_inspecting_record_expiry_delegate.cc", "expiry_inspecting_record_expiry_delegate.h", "in_memory_trust_token_persister.cc", "in_memory_trust_token_persister.h", "operating_system_matching.cc", "operating_system_matching.h", "operation_timing_request_helper_wrapper.cc", "operation_timing_request_helper_wrapper.h", "pending_trust_token_store.cc", "pending_trust_token_store.h", "scoped_boringssl_bytes.h", "sqlite_trust_token_persister.cc", "sqlite_trust_token_persister.h", "suitable_trust_token_origin.cc", "suitable_trust_token_origin.h", "trust_token_client_data_canonicalization.cc", "trust_token_client_data_canonicalization.h", "trust_token_database_owner.cc", "trust_token_database_owner.h", "trust_token_key_commitment_controller.cc", "trust_token_key_commitment_controller.h", "trust_token_key_commitment_getter.h", "trust_token_key_commitment_parser.cc", "trust_token_key_commitment_parser.h", "trust_token_key_commitments.cc", "trust_token_key_commitments.h", "trust_token_key_filtering.cc", "trust_token_key_filtering.h", "trust_token_operation_metrics_recorder.cc", "trust_token_operation_metrics_recorder.h", "trust_token_parameterization.cc", "trust_token_parameterization.h", "trust_token_persister.h", "trust_token_query_answerer.cc", "trust_token_query_answerer.h", "trust_token_request_helper.h", "trust_token_request_helper_factory.cc", "trust_token_request_helper_factory.h", "trust_token_request_issuance_helper.cc", "trust_token_request_issuance_helper.h", "trust_token_request_redemption_helper.cc", "trust_token_request_redemption_helper.h", "trust_token_request_signing_helper.cc", "trust_token_request_signing_helper.h", "trust_token_store.cc", "trust_token_store.h", "trust_token_url_loader_interceptor.cc", "trust_token_url_loader_interceptor.h", "types.cc", "types.h", ] deps = [ ":storage_proto", "//base", "//components/cbor", "//components/sqlite_proto", "//services/network/public/cpp", "//services/network/public/mojom", "//sql", "//url", ] public_deps = [ ":public_proto" ] configs += [ "//build/config/compiler:wexit_time_destructors" ] } source_set("test_support") { testonly = true defines = [ "IS_NETWORK_SERVICE_IMPL" ] sources = [ "boringssl_trust_token_test_utils.cc", "boringssl_trust_token_test_utils.h", ] deps = [ ":trust_tokens", "//base", "//base/test:test_support", "//components/cbor", "//net", "//net:test_support", "//net/traffic_annotation:test_support", "//services/network/public/cpp", "//services/network/public/mojom", "//testing/gtest", "//url", ] } source_set("tests") { testonly = true defines = [ "IS_NETWORK_SERVICE_IMPL" ] sources = [ "boringssl_trust_token_issuance_cryptographer_unittest.cc", "boringssl_trust_token_state_unittest.cc", "expiry_inspecting_record_expiry_delegate_unittest.cc", "pending_trust_token_store_unittest.cc", "sqlite_trust_token_persister_unittest.cc", "suitable_trust_token_origin_unittest.cc", "trust_token_client_data_canonicalization_unittest.cc", "trust_token_cryptographers_test.cc", "trust_token_database_owner_unittest.cc", "trust_token_key_commitment_controller_unittest.cc", "trust_token_key_commitment_parser_unittest.cc", "trust_token_key_commitments_unittest.cc", "trust_token_key_filtering_unittest.cc", "trust_token_operation_metrics_recorder_unittest.cc", "trust_token_persister_unittest.cc", "trust_token_query_answerer_unittest.cc", "trust_token_request_helper_factory_unittest.cc", "trust_token_request_issuance_helper_unittest.cc", "trust_token_request_redemption_helper_unittest.cc", "trust_token_request_signing_helper_unittest.cc", "trust_token_store_unittest.cc", "types_unittest.cc", ] deps = [ ":public_proto", ":storage_proto", ":test_support", ":trust_tokens", "//base", "//base/test:fuzztest_support", "//base/test:test_support", "//components/cbor", "//components/sqlite_proto", "//net", "//net:test_support", "//net/traffic_annotation:test_support", "//services/network:test_support", "//testing/gmock", "//testing/gtest", "//third_party/fuzztest", "//url", ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } # public.proto contains datatypes intended # to be exposed to Trust Tokens consumers. proto_library("public_proto") { sources = [ "proto/public.proto" ] extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] } # storage.proto contains datatypes internal # to the implementation of Trust Token state # persistent storage. proto_library("storage_proto") { sources = [ "proto/storage.proto" ] deps = [ ":public_proto" ] extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] }