# Copyright 2023 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# WARNING: This file is automatically generated by convert_for_cobalt.
# Do not edit manually.

# CC Library : aead_wrapper
source_set("aead_wrapper") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aead_wrapper.cc",
    "aead_wrapper.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:crypto_format",
    "//third_party/tink/cc:primitive_set",
    "//third_party/tink/cc:primitive_wrapper",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/subtle:subtle_util_boringssl",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : cord_aead
source_set("cord_aead") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "cord_aead.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/strings:cord",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aead_config
source_set("aead_config") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aead_config.cc",
    "aead_config.h",
  ]
  public_deps = [
    ":aead_wrapper",
    ":aes_ctr_hmac_aead_key_manager",
    ":aes_eax_key_manager",
    ":aes_gcm_key_manager",
    ":aes_gcm_siv_key_manager",
    ":kms_aead_key_manager",
    ":kms_envelope_aead_key_manager",
    ":xchacha20_poly1305_key_manager",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/config:config_util",
    "//third_party/tink/cc/config:tink_fips",
    "//third_party/tink/cc/mac:mac_config",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/proto:config_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aead_key_templates
source_set("aead_key_templates") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aead_key_templates.cc",
    "aead_key_templates.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/proto:aes_ctr_hmac_aead_proto",
    "//third_party/tink/proto:aes_eax_proto",
    "//third_party/tink/proto:aes_gcm_proto",
    "//third_party/tink/proto:aes_gcm_siv_proto",
    "//third_party/tink/proto:common_proto",
    "//third_party/tink/proto:kms_envelope_proto",
    "//third_party/tink/proto:tink_proto",
    "//third_party/tink/proto:xchacha20_poly1305_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aes_eax_key_manager
source_set("aes_eax_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "aes_eax_key_manager.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc/subtle:aes_eax_boringssl",
    "//third_party/tink/cc/subtle:random",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:aes_eax_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aes_gcm_key_manager
source_set("aes_gcm_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "aes_gcm_key_manager.h" ]
  public_deps = [
    ":cord_aead",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc/aead/internal:cord_aes_gcm_boringssl",
    "//third_party/tink/cc/subtle:aes_gcm_boringssl",
    "//third_party/tink/cc/subtle:random",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:input_stream_util",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:aes_gcm_proto",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aes_gcm_siv_key_manager
source_set("aes_gcm_siv_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "aes_gcm_siv_key_manager.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/base:base",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc/subtle:aes_gcm_siv_boringssl",
    "//third_party/tink/cc/subtle:random",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:input_stream_util",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:aes_gcm_siv_proto",
    "//third_party/tink/proto:common_proto",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aes_ctr_hmac_aead_key_manager
source_set("aes_ctr_hmac_aead_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_ctr_hmac_aead_key_manager.cc",
    "aes_ctr_hmac_aead_key_manager.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/base:base",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:mac",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/mac:hmac_key_manager",
    "//third_party/tink/cc/subtle:aes_ctr_boringssl",
    "//third_party/tink/cc/subtle:encrypt_then_authenticate",
    "//third_party/tink/cc/subtle:hmac_boringssl",
    "//third_party/tink/cc/subtle:random",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:enums",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:aes_ctr_hmac_aead_proto",
    "//third_party/tink/proto:common_proto",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : xchacha20_poly1305_key_manager
source_set("xchacha20_poly1305_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "xchacha20_poly1305_key_manager.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc/subtle:random",
    "//third_party/tink/cc/subtle:xchacha20_poly1305_boringssl",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:input_stream_util",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:xchacha20_poly1305_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : kms_aead_key_manager
source_set("kms_aead_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "kms_aead_key_manager.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:kms_clients",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:kms_aead_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : kms_envelope_aead
source_set("kms_envelope_aead") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "kms_envelope_aead.cc",
    "kms_envelope_aead.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/base:endian",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : kms_envelope_aead_key_manager
source_set("kms_envelope_aead_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "kms_envelope_aead_key_manager.cc",
    "kms_envelope_aead_key_manager.h",
  ]
  public_deps = [
    ":kms_envelope_aead",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:kms_client",
    "//third_party/tink/cc:kms_clients",
    "//third_party/tink/cc/util:constants",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:protobuf_helper",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
    "//third_party/tink/cc/util:validation",
    "//third_party/tink/proto:kms_envelope_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}
