tink_module(aead::internal)

tink_cc_library(
  NAME aead_util
  SRCS
    aead_util.cc
    aead_util.h
  DEPS
    absl::flat_hash_set
    absl::status
    absl::string_view
    crypto
    tink::util::errors
    tink::util::statusor
)

tink_cc_library(
  NAME wycheproof_aead
  SRCS
    wycheproof_aead.cc
    wycheproof_aead.h
  DEPS
    absl::absl_check
    absl::strings
    tink::internal::testing::wycheproof_util
    tink::util::statusor
  TESTONLY
)

tink_cc_library(
  NAME ssl_aead
  SRCS
    ssl_aead.cc
    ssl_aead.h
  DEPS
    tink::aead::internal::aead_util
    absl::core_headers
    absl::cleanup
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::span
    crypto
    tink::internal::call_with_core_dump_protection
    tink::internal::dfsan_forwarders
    tink::internal::err_util
    tink::internal::ssl_unique_ptr
    tink::internal::util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME cord_aes_gcm_boringssl
  SRCS
    cord_aes_gcm_boringssl.cc
    cord_aes_gcm_boringssl.h
  DEPS
    tink::aead::internal::aead_util
    tink::aead::internal::cord_utils
    absl::absl_check
    absl::memory
    absl::status
    absl::statusor
    absl::cord
    absl::string_view
    absl::span
    crypto
    tink::aead::cord_aead
    tink::internal::ssl_unique_ptr
    tink::subtle::random
    tink::util::secret_data
    tink::util::statusor
)

tink_cc_library(
  NAME mock_zero_copy_aead
  SRCS
    mock_zero_copy_aead.h
  DEPS
    tink::aead::internal::zero_copy_aead
    gmock
    absl::strings
    absl::span
    tink::util::statusor
  TESTONLY
)

tink_cc_library(
  NAME aead_from_zero_copy
  SRCS
    aead_from_zero_copy.cc
    aead_from_zero_copy.h
  DEPS
    tink::aead::internal::zero_copy_aead
    absl::memory
    absl::status
    absl::string_view
    absl::span
    tink::core::aead
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME zero_copy_aead
  SRCS
    zero_copy_aead.h
  DEPS
    absl::strings
    absl::span
    tink::util::statusor
)

tink_cc_library(
  NAME zero_copy_aead_wrapper
  SRCS
    zero_copy_aead_wrapper.cc
    zero_copy_aead_wrapper.h
  DEPS
    tink::aead::internal::zero_copy_aead
    absl::memory
    absl::status
    absl::strings
    absl::span
    tink::core::aead
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME zero_copy_aes_gcm_boringssl
  SRCS
    zero_copy_aes_gcm_boringssl.cc
    zero_copy_aes_gcm_boringssl.h
  DEPS
    tink::aead::internal::aead_util
    tink::aead::internal::ssl_aead
    tink::aead::internal::zero_copy_aead
    absl::core_headers
    absl::memory
    absl::status
    absl::strings
    absl::span
    tink::internal::util
    tink::subtle::random
    tink::subtle::subtle_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME key_gen_config_v0
  SRCS
    key_gen_config_v0.cc
    key_gen_config_v0.h
  DEPS
    absl::memory
    tink::core::key_gen_configuration
    tink::aead::aes_ctr_hmac_aead_key_manager
    tink::aead::aes_eax_key_manager
    tink::aead::aes_gcm_key_manager
    tink::aead::aes_gcm_siv_key_manager
    tink::aead::x_aes_gcm_key_manager
    tink::aead::xchacha20_poly1305_key_manager
    tink::internal::key_gen_configuration_impl
    tink::util::status
)

tink_cc_library(
  NAME config_v0
  SRCS
    config_v0.cc
    config_v0.h
  DEPS
    absl::memory
    tink::core::configuration
    tink::aead::aead_wrapper
    tink::aead::aes_ctr_hmac_aead_key_manager
    tink::aead::aes_eax_key_manager
    tink::aead::aes_gcm_key_manager
    tink::aead::aes_gcm_siv_key_manager
    tink::aead::cord_aead_wrapper
    tink::aead::x_aes_gcm_key_manager
    tink::aead::xchacha20_poly1305_key_manager
    tink::internal::configuration_impl
    tink::util::status
)

tink_cc_library(
  NAME legacy_kms_envelope_aead_proto_serialization_impl
  SRCS
    legacy_kms_envelope_aead_proto_serialization_impl.cc
    legacy_kms_envelope_aead_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::parameters
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::aead_parameters
    tink::aead::aes_ctr_hmac_aead_parameters
    tink::aead::aes_eax_parameters
    tink::aead::aes_gcm_parameters
    tink::aead::aes_gcm_siv_parameters
    tink::aead::legacy_kms_envelope_aead_key
    tink::aead::legacy_kms_envelope_aead_parameters
    tink::aead::xchacha20_poly1305_parameters
    tink::internal::global_serialization_registry
    tink::internal::internal_insecure_secret_key_access
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
)

tink_cc_test(
  NAME aead_util_test
  SRCS
    aead_util_test.cc
  DEPS
    tink::aead::internal::aead_util
    gmock
    crypto
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ssl_aead_test
  SRCS
    ssl_aead_test.cc
  DATA
    wycheproof::testvectors
  DEPS
    tink::aead::internal::ssl_aead
    tink::aead::internal::wycheproof_aead
    gmock
    absl::flat_hash_set
    absl::status
    absl::strings
    absl::span
    tink::internal::fips_utils
    tink::internal::ssl_util
    tink::subtle::subtle_util
    tink::util::secret_data
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME cord_aes_gcm_boringssl_test
  SRCS
    cord_aes_gcm_boringssl_test.cc
  DATA
    wycheproof::testvectors
  DEPS
    tink::aead::internal::cord_aes_gcm_boringssl
    tink::aead::internal::wycheproof_aead
    gmock
    absl::strings
    absl::cord
    crypto
    tink::core::aead
    tink::aead::cord_aead
    tink::subtle::aes_gcm_boringssl
    tink::util::secret_data
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME aead_from_zero_copy_test
  SRCS
    aead_from_zero_copy_test.cc
  DEPS
    tink::aead::internal::aead_from_zero_copy
    tink::aead::internal::mock_zero_copy_aead
    gmock
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::span
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME zero_copy_aes_gcm_boringssl_test
  SRCS
    zero_copy_aes_gcm_boringssl_test.cc
  DATA
    wycheproof::testvectors
  DEPS
    tink::aead::internal::wycheproof_aead
    tink::aead::internal::zero_copy_aead
    tink::aead::internal::zero_copy_aes_gcm_boringssl
    gmock
    absl::algorithm_container
    absl::status
    absl::strings
    absl::span
    crypto
    tink::subtle::subtle_util
    tink::util::secret_data
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME ssl_aead_large_inputs_test
  SRCS
    ssl_aead_large_inputs_test.cc
  DEPS
    tink::aead::internal::ssl_aead
    gmock
    absl::status
    absl::strings
    absl::span
    tink::internal::ssl_util
    tink::internal::util
    tink::subtle::subtle_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME zero_copy_aead_wrapper_test
  SRCS
    zero_copy_aead_wrapper_test.cc
  DEPS
    tink::aead::internal::mock_zero_copy_aead
    tink::aead::internal::zero_copy_aead
    tink::aead::internal::zero_copy_aead_wrapper
    gmock
    absl::memory
    absl::status
    absl::string_view
    absl::span
    tink::core::aead
    tink::core::crypto_format
    tink::core::primitive_set
    tink::subtle::subtle_util
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME config_v0_test
  SRCS
    config_v0_test.cc
  DEPS
    tink::aead::internal::config_v0
    tink::aead::internal::key_gen_config_v0
    gmock
    absl::cord
    tink::core::aead
    tink::core::configuration
    tink::core::key_gen_configuration
    tink::core::keyset_handle
    tink::aead::aead_key_templates
    tink::aead::aes_ctr_hmac_aead_key_manager
    tink::aead::aes_eax_key_manager
    tink::aead::aes_gcm_key_manager
    tink::aead::aes_gcm_siv_key_manager
    tink::aead::cord_aead
    tink::aead::x_aes_gcm_key_manager
    tink::aead::xchacha20_poly1305_key_manager
    tink::internal::configuration_impl
    tink::internal::key_gen_configuration_impl
    tink::internal::key_type_info_store
    tink::internal::keyset_wrapper_store
    tink::internal::ssl_util
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME cord_utils
  SRCS
    cord_utils.cc
    cord_utils.h
  DEPS
    absl::nullability
    absl::absl_check
    absl::cord
    absl::string_view
    absl::span
)

tink_cc_test(
  NAME cord_utils_test
  SRCS
    cord_utils_test.cc
  DEPS
    tink::aead::internal::cord_utils
    gmock
    absl::strings
    absl::cord
    absl::string_view
    absl::span
    tink::subtle::random
)

tink_cc_library(
  NAME cord_x_aes_gcm_boringssl
  SRCS
    cord_x_aes_gcm_boringssl.cc
    cord_x_aes_gcm_boringssl.h
  DEPS
    tink::aead::internal::base_x_aes_gcm
    tink::aead::internal::cord_aes_gcm_boringssl
    tink::aead::internal::cord_utils
    absl::status
    absl::statusor
    absl::cord
    absl::str_format
    absl::string_view
    crypto
    tink::core::secret_data
    tink::aead::cord_aead
    tink::aead::x_aes_gcm_key
    tink::subtle::random
    tink::util::secret_data
    tink::util::statusor
)

tink_cc_test(
  NAME cord_x_aes_gcm_boringssl_test
  SRCS
    cord_x_aes_gcm_boringssl_test.cc
  DEPS
    tink::aead::internal::cord_x_aes_gcm_boringssl
    gmock
    absl::status
    absl::strings
    absl::cord
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::aead::cord_aead
    tink::aead::x_aes_gcm_key
    tink::aead::x_aes_gcm_parameters
    tink::subtle::random
    tink::util::secret_data
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_library(
  NAME base_x_aes_gcm
  SRCS
    base_x_aes_gcm.cc
    base_x_aes_gcm.h
  DEPS
    absl::memory
    absl::status
    absl::statusor
    absl::str_format
    absl::string_view
    crypto
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::x_aes_gcm_key
    tink::internal::call_with_core_dump_protection
    tink::internal::secret_buffer
    tink::internal::ssl_unique_ptr
    tink::util::secret_data
)

tink_cc_test(
  NAME base_x_aes_gcm_test
  SRCS
    base_x_aes_gcm_test.cc
  DEPS
    tink::aead::internal::base_x_aes_gcm
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::aead::x_aes_gcm_key
    tink::aead::x_aes_gcm_parameters
    tink::subtle::random
    tink::util::secret_data
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_library(
  NAME zero_copy_x_aes_gcm_boringssl
  SRCS
    zero_copy_x_aes_gcm_boringssl.cc
    zero_copy_x_aes_gcm_boringssl.h
  DEPS
    tink::aead::internal::base_x_aes_gcm
    tink::aead::internal::zero_copy_aead
    tink::aead::internal::zero_copy_aes_gcm_boringssl
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::string_view
    absl::span
    tink::core::secret_data
    tink::aead::x_aes_gcm_key
    tink::subtle::random
    tink::util::statusor
)

tink_cc_test(
  NAME zero_copy_x_aes_gcm_boringssl_test
  SRCS
    zero_copy_x_aes_gcm_boringssl_test.cc
  DEPS
    tink::aead::internal::zero_copy_aead
    tink::aead::internal::zero_copy_x_aes_gcm_boringssl
    gmock
    absl::status
    absl::statusor
    absl::strings
    absl::string_view
    absl::optional
    absl::span
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::aead::x_aes_gcm_key
    tink::aead::x_aes_gcm_parameters
    tink::subtle::random
    tink::util::secret_data
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_library(
  NAME xchacha20_poly1305_proto_serialization_impl
  SRCS
    xchacha20_poly1305_proto_serialization_impl.cc
    xchacha20_poly1305_proto_serialization_impl.h
  DEPS
    tink::aead::internal::xchacha20_poly1305_proto_format
    absl::core_headers
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::xchacha20_poly1305_key
    tink::aead::xchacha20_poly1305_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::secret_data
)

tink_cc_test(
  NAME xchacha20_poly1305_proto_serialization_impl_test
  SRCS
    xchacha20_poly1305_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::xchacha20_poly1305_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::xchacha20_poly1305_key
    tink::aead::xchacha20_poly1305_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::xchacha20_poly1305_cc_proto
)

tink_cc_library(
  NAME chacha20_poly1305_proto_serialization_impl
  SRCS
    chacha20_poly1305_proto_serialization_impl.cc
    chacha20_poly1305_proto_serialization_impl.h
  DEPS
    absl::core_headers
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::chacha20_poly1305_key
    tink::aead::chacha20_poly1305_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
)

tink_cc_test(
  NAME chacha20_poly1305_proto_serialization_impl_test
  SRCS
    chacha20_poly1305_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::chacha20_poly1305_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::chacha20_poly1305_key
    tink::aead::chacha20_poly1305_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::chacha20_poly1305_cc_proto
)

tink_cc_library(
  NAME x_aes_gcm_proto_serialization_impl
  SRCS
    x_aes_gcm_proto_serialization_impl.cc
    x_aes_gcm_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::x_aes_gcm_key
    tink::aead::x_aes_gcm_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
)

tink_cc_test(
  NAME x_aes_gcm_proto_serialization_impl_test
  SRCS
    x_aes_gcm_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::x_aes_gcm_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::x_aes_gcm_key
    tink::aead::x_aes_gcm_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::x_aes_gcm_cc_proto
)

tink_cc_library(
  NAME legacy_kms_aead_proto_serialization_impl
  SRCS
    legacy_kms_aead_proto_serialization_impl.cc
    legacy_kms_aead_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::legacy_kms_aead_key
    tink::aead::legacy_kms_aead_parameters
    tink::internal::internal_insecure_secret_key_access
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
)

tink_cc_test(
  NAME legacy_kms_aead_proto_serialization_impl_test
  SRCS
    legacy_kms_aead_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::legacy_kms_aead_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::restricted_data
    tink::aead::legacy_kms_aead_key
    tink::aead::legacy_kms_aead_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::test_matchers
    tink::proto::kms_aead_cc_proto
)

tink_cc_library(
  NAME aes_gcm_proto_serialization_impl
  SRCS
    aes_gcm_proto_serialization_impl.cc
    aes_gcm_proto_serialization_impl.h
  DEPS
    tink::aead::internal::aes_gcm_proto_format
    absl::core_headers
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::aes_gcm_key
    tink::aead::aes_gcm_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::secret_data
    tink::util::status
)

tink_cc_test(
  NAME aes_gcm_proto_serialization_impl_test
  SRCS
    aes_gcm_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::aes_gcm_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::aes_gcm_key
    tink::aead::aes_gcm_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::aes_gcm_cc_proto
)

tink_cc_library(
  NAME aes_gcm_siv_proto_serialization_impl
  SRCS
    aes_gcm_siv_proto_serialization_impl.cc
    aes_gcm_siv_proto_serialization_impl.h
  DEPS
    absl::core_headers
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::aes_gcm_siv_key
    tink::aead::aes_gcm_siv_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::secret_data
    tink::util::status
)

tink_cc_test(
  NAME aes_gcm_siv_proto_serialization_impl_test
  SRCS
    aes_gcm_siv_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::aes_gcm_siv_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::aes_gcm_siv_key
    tink::aead::aes_gcm_siv_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::aes_gcm_siv_cc_proto
)

tink_cc_library(
  NAME aes_ctr_hmac_aead_proto_serialization_impl
  SRCS
    aes_ctr_hmac_aead_proto_serialization_impl.cc
    aes_ctr_hmac_aead_proto_serialization_impl.h
  DEPS
    tink::aead::internal::aes_ctr_hmac_proto_structs
    absl::core_headers
    absl::status
    absl::statusor
    absl::strings
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::aes_ctr_hmac_aead_key
    tink::aead::aes_ctr_hmac_aead_parameters
    tink::internal::common_proto_enums
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::mac::internal::hmac_proto_structs
)

tink_cc_test(
  NAME aes_ctr_hmac_aead_proto_serialization_impl_test
  SRCS
    aes_ctr_hmac_aead_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::aes_ctr_hmac_aead_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::aes_ctr_hmac_aead_key
    tink::aead::aes_ctr_hmac_aead_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::aes_ctr_cc_proto
    tink::proto::aes_ctr_hmac_aead_cc_proto
    tink::proto::common_cc_proto
    tink::proto::hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME aes_eax_proto_serialization_impl
  SRCS
    aes_eax_proto_serialization_impl.cc
    aes_eax_proto_serialization_impl.h
  DEPS
    absl::core_headers
    absl::status
    absl::statusor
    absl::strings
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::aead::aes_eax_key
    tink::aead::aes_eax_parameters
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::status
)

tink_cc_test(
  NAME aes_eax_proto_serialization_impl_test
  SRCS
    aes_eax_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::aes_eax_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::aead::aes_eax_key
    tink::aead::aes_eax_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::aes_eax_cc_proto
)

tink_cc_test(
  NAME wycheproof_aead_test
  SRCS
    wycheproof_aead_test.cc
  DATA
    wycheproof::testvectors
  DEPS
    tink::aead::internal::wycheproof_aead
    gmock
    tink::util::test_util
)

tink_cc_test(
  NAME legacy_kms_envelope_aead_proto_serialization_impl_test
  SRCS
    legacy_kms_envelope_aead_proto_serialization_impl_test.cc
  DEPS
    tink::aead::internal::legacy_kms_envelope_aead_proto_serialization_impl
    gmock
    absl::absl_check
    absl::memory
    absl::status
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::restricted_data
    tink::aead::aead_parameters
    tink::aead::aes_ctr_hmac_aead_parameters
    tink::aead::aes_eax_parameters
    tink::aead::aes_gcm_parameters
    tink::aead::aes_gcm_siv_parameters
    tink::aead::legacy_kms_envelope_aead_key
    tink::aead::legacy_kms_envelope_aead_parameters
    tink::aead::xchacha20_poly1305_parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::util::test_matchers
    tink::proto::aes_cmac_cc_proto
    tink::proto::aes_ctr_cc_proto
    tink::proto::aes_ctr_hmac_aead_cc_proto
    tink::proto::aes_eax_cc_proto
    tink::proto::aes_gcm_cc_proto
    tink::proto::aes_gcm_siv_cc_proto
    tink::proto::chacha20_poly1305_cc_proto
    tink::proto::common_cc_proto
    tink::proto::hmac_cc_proto
    tink::proto::kms_envelope_cc_proto
    tink::proto::tink_cc_proto
    tink::proto::xchacha20_poly1305_cc_proto
)

tink_cc_library(
  NAME aes_gcm_proto_format
  SRCS
    aes_gcm_proto_format.h
  DEPS
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
)

tink_cc_test(
  NAME aes_gcm_proto_format_test
  SRCS
    aes_gcm_proto_format_test.cc
  DEPS
    tink::aead::internal::aes_gcm_proto_format
    gmock
    absl::strings
    tink::internal::testing::field_with_number
    tink::util::secret_data
)

tink_cc_library(
  NAME xchacha20_poly1305_proto_format
  SRCS
    xchacha20_poly1305_proto_format.h
  DEPS
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
)

tink_cc_test(
  NAME xchacha20_poly1305_proto_format_test
  SRCS
    xchacha20_poly1305_proto_format_test.cc
  DEPS
    tink::aead::internal::xchacha20_poly1305_proto_format
    gmock
    tink::internal::testing::field_with_number
    tink::util::secret_data
)

tink_cc_library(
  NAME aes_ctr_hmac_proto_structs
  SRCS
    aes_ctr_hmac_proto_structs.h
  DEPS
    absl::string_view
    tink::core::secret_data
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::mac::internal::hmac_proto_structs
    tink::util::secret_data
)

tink_cc_test(
  NAME aes_ctr_hmac_proto_structs_test
  SRCS
    aes_ctr_hmac_proto_structs_test.cc
  DEPS
    tink::aead::internal::aes_ctr_hmac_proto_structs
    gmock
    absl::strings
    tink::internal::common_proto_enums
    tink::internal::testing::field_with_number
    tink::mac::internal::hmac_proto_structs
    tink::util::secret_data
)
