# 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 : hybrid_config
source_set("hybrid_config") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_config.cc",
    "hybrid_config.h",
  ]
  public_deps = [
    ":ecies_aead_hkdf_private_key_manager",
    ":ecies_aead_hkdf_public_key_manager",
    ":hybrid_decrypt_wrapper",
    ":hybrid_encrypt_wrapper",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/aead:aead_config",
    "//third_party/tink/cc/config:config_util",
    "//third_party/tink/cc/config:tink_fips",
    "//third_party/tink/cc/proto:config_proto",
    "//third_party/tink/cc/util:status",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hpke_config
source_set("hpke_config") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hpke_config.cc",
    "hpke_config.h",
  ]
  public_deps = [
    ":hybrid_decrypt_wrapper",
    ":hybrid_encrypt_wrapper",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/aead:aead_config",
    "//third_party/tink/cc/config:tink_fips",
    "//third_party/tink/cc/hybrid/internal:hpke_private_key_manager",
    "//third_party/tink/cc/hybrid/internal:hpke_public_key_manager",
    "//third_party/tink/cc/util:status",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hybrid_decrypt_wrapper
source_set("hybrid_decrypt_wrapper") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_decrypt_wrapper.cc",
    "hybrid_decrypt_wrapper.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:crypto_format",
    "//third_party/tink/cc:hybrid_decrypt",
    "//third_party/tink/cc:primitive_set",
    "//third_party/tink/cc:primitive_wrapper",
    "//third_party/tink/cc/internal:monitoring_util",
    "//third_party/tink/cc/internal:registry_impl",
    "//third_party/tink/cc/internal:util",
    "//third_party/tink/cc/monitoring:monitoring",
    "//third_party/tink/cc/proto:tink_proto",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hybrid_encrypt_wrapper
source_set("hybrid_encrypt_wrapper") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_encrypt_wrapper.cc",
    "hybrid_encrypt_wrapper.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:crypto_format",
    "//third_party/tink/cc:hybrid_encrypt",
    "//third_party/tink/cc:primitive_set",
    "//third_party/tink/cc:primitive_wrapper",
    "//third_party/tink/cc/internal:monitoring_util",
    "//third_party/tink/cc/internal:registry_impl",
    "//third_party/tink/cc/internal:util",
    "//third_party/tink/cc/monitoring:monitoring",
    "//third_party/tink/cc/proto:tink_proto",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hybrid_decrypt_factory
source_set("hybrid_decrypt_factory") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_decrypt_factory.cc",
    "hybrid_decrypt_factory.h",
  ]
  public_deps = [
    ":hybrid_decrypt_wrapper",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/tink/cc:hybrid_decrypt",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc:keyset_handle",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hybrid_encrypt_factory
source_set("hybrid_encrypt_factory") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_encrypt_factory.cc",
    "hybrid_encrypt_factory.h",
  ]
  public_deps = [
    ":hybrid_encrypt_wrapper",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/tink/cc:hybrid_encrypt",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc:keyset_handle",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hybrid_key_templates
source_set("hybrid_key_templates") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hybrid_key_templates.cc",
    "hybrid_key_templates.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc/aead:aead_key_templates",
    "//third_party/tink/cc/daead:deterministic_aead_key_templates",
    "//third_party/tink/cc/proto:common_proto",
    "//third_party/tink/cc/proto:ecies_aead_hkdf_proto",
    "//third_party/tink/cc/proto:hpke_proto",
    "//third_party/tink/cc/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_aead_hkdf_dem_helper
source_set("ecies_aead_hkdf_dem_helper") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_aead_hkdf_dem_helper.cc",
    "ecies_aead_hkdf_dem_helper.h",
  ]
  public_deps = [
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:deterministic_aead",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc:registry",
    "//third_party/tink/cc/daead/subtle:aead_or_daead",
    "//third_party/tink/cc/proto:aes_ctr_hmac_aead_proto",
    "//third_party/tink/cc/proto:aes_ctr_proto",
    "//third_party/tink/cc/proto:aes_gcm_proto",
    "//third_party/tink/cc/proto:aes_siv_proto",
    "//third_party/tink/cc/proto:hmac_proto",
    "//third_party/tink/cc/proto:tink_proto",
    "//third_party/tink/cc/proto:xchacha20_poly1305_proto",
    "//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:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_aead_hkdf_hybrid_decrypt
source_set("ecies_aead_hkdf_hybrid_decrypt") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_aead_hkdf_hybrid_decrypt.cc",
    "ecies_aead_hkdf_hybrid_decrypt.h",
  ]
  public_deps = [
    ":ecies_aead_hkdf_dem_helper",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/tink/cc:hybrid_decrypt",
    "//third_party/tink/cc/internal:ec_util",
    "//third_party/tink/cc/proto:ecies_aead_hkdf_proto",
    "//third_party/tink/cc/subtle:ecies_hkdf_recipient_kem_boringssl",
    "//third_party/tink/cc/util:enums",
    "//third_party/tink/cc/util:secret_data",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_aead_hkdf_hybrid_encrypt
source_set("ecies_aead_hkdf_hybrid_encrypt") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_aead_hkdf_hybrid_encrypt.cc",
    "ecies_aead_hkdf_hybrid_encrypt.h",
  ]
  public_deps = [
    ":ecies_aead_hkdf_dem_helper",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:hybrid_encrypt",
    "//third_party/tink/cc/proto:ecies_aead_hkdf_proto",
    "//third_party/tink/cc/subtle:ecies_hkdf_sender_kem_boringssl",
    "//third_party/tink/cc/util:enums",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_aead_hkdf_private_key_manager
source_set("ecies_aead_hkdf_private_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_aead_hkdf_private_key_manager.cc",
    "ecies_aead_hkdf_private_key_manager.h",
  ]
  public_deps = [
    ":ecies_aead_hkdf_hybrid_decrypt",
    ":ecies_aead_hkdf_public_key_manager",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:core/private_key_type_manager",
    "//third_party/tink/cc:hybrid_decrypt",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc/internal:ec_util",
    "//third_party/tink/cc/proto:ecies_aead_hkdf_proto",
    "//third_party/tink/cc/proto:tink_proto",
    "//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",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_aead_hkdf_public_key_manager
source_set("ecies_aead_hkdf_public_key_manager") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_aead_hkdf_public_key_manager.cc",
    "ecies_aead_hkdf_public_key_manager.h",
  ]
  public_deps = [
    ":ecies_aead_hkdf_hybrid_encrypt",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/status:status",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:core/key_type_manager",
    "//third_party/tink/cc:hybrid_encrypt",
    "//third_party/tink/cc:key_manager",
    "//third_party/tink/cc/proto:common_proto",
    "//third_party/tink/cc/proto:ecies_aead_hkdf_proto",
    "//third_party/tink/cc/proto:tink_proto",
    "//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",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}
