# 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 : ind_cpa_cipher
source_set("ind_cpa_cipher") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [ "ind_cpa_cipher.h" ]
  public_deps = [
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : ecies_hkdf_recipient_kem_boringssl
source_set("ecies_hkdf_recipient_kem_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_hkdf_recipient_kem_boringssl.cc",
    "ecies_hkdf_recipient_kem_boringssl.h",
  ]
  public_deps = [
    ":common_enums",
    ":hkdf",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/internal:fips_utils",
    "//third_party/tink/cc/util:errors",
    "//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_hkdf_sender_kem_boringssl
source_set("ecies_hkdf_sender_kem_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ecies_hkdf_sender_kem_boringssl.cc",
    "ecies_hkdf_sender_kem_boringssl.h",
  ]
  public_deps = [
    ":common_enums",
    ":hkdf",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/internal:fips_utils",
    "//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 : ec_util
source_set("ec_util") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "ec_util.cc",
    "ec_util.h",
  ]
  public_deps = [
    ":common_enums",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : hkdf
source_set("hkdf") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hkdf.cc",
    "hkdf.h",
  ]
  public_deps = [
    ":common_enums",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/util:errors",
    "//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 : aes_cmac_boringssl
source_set("aes_cmac_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_cmac_boringssl.cc",
    "aes_cmac_boringssl.h",
  ]
  public_deps = [
    ":subtle_util",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:mac",
    "//third_party/tink/cc/internal:fips_utils",
    "//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 : hmac_boringssl
source_set("hmac_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "hmac_boringssl.cc",
    "hmac_boringssl.h",
  ]
  public_deps = [
    ":common_enums",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:mac",
    "//third_party/tink/cc/internal:fips_utils",
    "//third_party/tink/cc/util:errors",
    "//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 : aes_gcm_boringssl
source_set("aes_gcm_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_gcm_boringssl.cc",
    "aes_gcm_boringssl.h",
  ]
  public_deps = [
    ":random",
    ":subtle_util",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc/internal:fips_utils",
    "//third_party/tink/cc/util:errors",
    "//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 : aes_eax_boringssl
source_set("aes_eax_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_eax_boringssl.cc",
    "aes_eax_boringssl.h",
  ]
  public_deps = [
    ":random",
    ":subtle_util",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:base",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/abseil-cpp/absl/types:span",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc/internal:fips_utils",
    "//third_party/tink/cc/util:errors",
    "//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 : encrypt_then_authenticate
source_set("encrypt_then_authenticate") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "encrypt_then_authenticate.cc",
    "encrypt_then_authenticate.h",
  ]
  public_deps = [
    ":aes_ctr_boringssl",
    ":ind_cpa_cipher",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc:mac",
    "//third_party/tink/cc/util:errors",
    "//third_party/tink/cc/util:status",
    "//third_party/tink/cc/util:statusor",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : aes_ctr_boringssl
source_set("aes_ctr_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_ctr_boringssl.cc",
    "aes_ctr_boringssl.h",
  ]
  public_deps = [
    ":ind_cpa_cipher",
    ":random",
    ":subtle_util",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/internal:fips_utils",
    "//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 : random
source_set("random") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "random.cc",
    "random.h",
  ]
  public_deps = [
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/util:secret_data",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : xchacha20_poly1305_boringssl
source_set("xchacha20_poly1305_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "xchacha20_poly1305_boringssl.cc",
    "xchacha20_poly1305_boringssl.h",
  ]
  public_deps = [
    ":common_enums",
    ":random",
    ":subtle_util",
    ":subtle_util_boringssl",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc/internal:fips_utils",
    "//third_party/tink/cc/util:errors",
    "//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 : aes_gcm_siv_boringssl
source_set("aes_gcm_siv_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "aes_gcm_siv_boringssl.cc",
    "aes_gcm_siv_boringssl.h",
  ]
  public_deps = [
    ":random",
    ":subtle_util",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc:aead",
    "//third_party/tink/cc/internal:fips_utils",
    "//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 : common_enums
source_set("common_enums") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "common_enums.cc",
    "common_enums.h",
  ]
  public_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : subtle_util
source_set("subtle_util") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "subtle_util.cc",
    "subtle_util.h",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
}

# CC Library : subtle_util_boringssl
source_set("subtle_util_boringssl") {
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]
  sources = [
    "subtle_util_boringssl.cc",
    "subtle_util_boringssl.h",
  ]
  public_deps = [
    ":common_enums",
    ":random",
    "//third_party/abseil-cpp/absl/memory:memory",
    "//third_party/abseil-cpp/absl/strings:strings",
    "//third_party/boringssl:crypto",
    "//third_party/tink/cc/config:tink_fips",
    "//third_party/tink/cc/util:errors",
    "//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" ]
}
