Merge commit '053b5b8c4214ec379daac2cc2bf208c51cc1cd66' into main Current Tink mirror in Fuchsia has missing include issue with the latest version of Clang. The missing include is #include <cstdlib> (https://github.com/tink-crypto/tink/blob/master/cc/util/secret_data_internal.h#L21) Tink introduced it in https://github.com/tink-crypto/tink/commit/053b5b8c4214ec379daac2cc2bf208c51cc1cd66 We should at least uprev Tink to this commit to unblock the issue. Command to uprev Tink: ``` git checkout origin/main -b ${USER}-merge git merge 053b5b8c4214ec379daac2cc2bf208c51cc1cd66 python3 ./tools/convert_for_cobalt fx format-code --files=${gn build files that convert_for_cobalt wrote} git commit --no-verify ``` Locally patch to include missing absl/strings/str_cat.h header: cc/mac/hmac_parameters.cc cc/mac/aes_cmac_parameters.cc Bug: 376297654 Change-Id: I7cc47556e5ddec6be01bd7a523f527abea47e20a Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/tink/+/1153894 Commit-Queue: Anivia Li <aniviali@google.com> Reviewed-by: Alex Pankhurst <pankhurst@google.com>
diff --git a/BUILD.gn b/BUILD.gn new file mode 100644 index 0000000..ef94f82 --- /dev/null +++ b/BUILD.gn
@@ -0,0 +1,23 @@ +# Copyright 2018 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. + +config("tink_config") { + cflags = [ + "-Wno-ignored-qualifiers", + + # The tink library uses absl headers containing deprecated API usage. + "-Wno-deprecated-declarations", + + # The tink library uses absl headers with implicit copy constructors. + "-Wno-deprecated-copy", + + # The tink library does not restrict extra semicolon. + "-Wno-extra-semi", + ] + + include_dirs = [ + "$root_gen_dir/third_party/tink/cc", + "//third_party/tink", + ] +}
diff --git a/OWNERS b/OWNERS new file mode 100644 index 0000000..528b11e --- /dev/null +++ b/OWNERS
@@ -0,0 +1,5 @@ +# AUTOGENERATED FROM DEPENDENT BUILD TARGETS. +# TO MAKE CHANGES HERE, UPDATE //third_party/owners.toml. +# DOCS: https://fuchsia.dev/reference/tools/fx/cmd/update-3p-owners + +include /third_party/cobalt/OWNERS
diff --git a/README.fuchsia b/README.fuchsia new file mode 100644 index 0000000..b598eaf --- /dev/null +++ b/README.fuchsia
@@ -0,0 +1,4 @@ +Name: Tink +URL: https://github.com/google/tink +LICENSE: Apache 2.0 license +License File: LICENSE
diff --git a/cc/BUILD.gn b/cc/BUILD.gn new file mode 100644 index 0000000..e13bee0 --- /dev/null +++ b/cc/BUILD.gn
@@ -0,0 +1,537 @@ +# Copyright 2024 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 : input_stream +source_set("input_stream") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "input_stream.h" ] + public_deps = [ + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aead +source_set("aead") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "aead.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 : deterministic_aead +source_set("deterministic_aead") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "deterministic_aead.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 : chunked_mac +source_set("chunked_mac") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "chunked_mac.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hybrid_decrypt +source_set("hybrid_decrypt") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "hybrid_decrypt.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 : hybrid_encrypt +source_set("hybrid_encrypt") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "hybrid_encrypt.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 : mac +source_set("mac") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "mac.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : public_key_sign +source_set("public_key_sign") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "public_key_sign.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 : public_key_verify +source_set("public_key_verify") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "public_key_verify.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_reader +source_set("keyset_reader") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "keyset_reader.h" ] + public_deps = [ + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_writer +source_set("keyset_writer") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "keyset_writer.h" ] + public_deps = [ + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : binary_keyset_reader +source_set("binary_keyset_reader") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "binary_keyset_reader.h", + "core/binary_keyset_reader.cc", + ] + public_deps = [ + ":keyset_reader", + "//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/proto:tink_proto", + "//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 : binary_keyset_writer +source_set("binary_keyset_writer") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "binary_keyset_writer.h", + "core/binary_keyset_writer.cc", + ] + public_deps = [ + ":keyset_writer", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/proto:tink_proto", + "//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", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : crypto_format +source_set("crypto_format") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "core/crypto_format.cc", + "crypto_format.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:errors", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : primitive_set +source_set("primitive_set") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "primitive_set.h", + "primitive_set.h", + ] + public_deps = [ + ":crypto_format", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/synchronization:synchronization", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:errors", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : primitive_wrapper +source_set("primitive_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "primitive_wrapper.h" ] + public_deps = [ + ":primitive_set", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : registry +source_set("registry") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "registry.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/internal:registry_impl", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_handle +source_set("keyset_handle") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "core/keyset_handle.cc", + "keyset_handle.h", + ] + public_deps = [ + ":aead", + ":configuration", + ":insecure_secret_key_access", + ":key", + ":key_gen_configuration", + ":key_manager", + ":key_status", + ":keyset_reader", + ":keyset_writer", + ":primitive_set", + ":registry", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/log:check", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc/internal:configuration_impl", + "//third_party/tink/cc/internal:key_gen_configuration_impl", + "//third_party/tink/cc/internal:key_info", + "//third_party/tink/cc/internal:key_status_util", + "//third_party/tink/cc/internal:mutable_serialization_registry", + "//third_party/tink/cc/internal:proto_key_serialization", + "//third_party/tink/cc/internal:util", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:errors", + "//third_party/tink/cc/util:keyset_util", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : cleartext_keyset_handle +source_set("cleartext_keyset_handle") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "cleartext_keyset_handle.h", + "core/cleartext_keyset_handle.cc", + ] + public_deps = [ + ":keyset_handle", + ":keyset_reader", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc/proto:tink_proto", + "//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 : key_manager +source_set("key_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "core/key_manager.cc", + "key_manager.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/proto:tink_proto", + "//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", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : kms_client +source_set("kms_client") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "kms_client.h" ] + public_deps = [ + ":aead", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : kms_clients +source_set("kms_clients") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "core/kms_clients.cc", + "kms_clients.h", + ] + public_deps = [ + ":kms_client", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/synchronization:synchronization", + "//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 : core/template_util +source_set("core/template_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "core/template_util.h" ] + public_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : core/key_type_manager +source_set("core/key_type_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "core/key_type_manager.h" ] + public_deps = [ + ":core/template_util", + ":input_stream", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/internal:fips_utils", + "//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 : core/key_manager_impl +source_set("core/key_manager_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "core/key_manager_impl.h" ] + public_deps = [ + ":core/key_type_manager", + ":key_manager", + "//third_party/abseil-cpp/absl/base:base", + "//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/proto:tink_proto", + "//third_party/tink/cc/util:constants", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : core/private_key_type_manager +source_set("core/private_key_type_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "core/private_key_type_manager.h" ] + public_deps = [ + ":core/key_type_manager", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : core/private_key_manager_impl +source_set("core/private_key_manager_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "core/private_key_manager_impl.h" ] + public_deps = [ + ":core/key_manager_impl", + ":core/private_key_type_manager", + ":key_manager", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc/util:validation", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : parameters +source_set("parameters") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "parameters.h" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key +source_set("key") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key.h" ] + public_deps = [ + ":parameters", + "//third_party/abseil-cpp/absl/types:optional", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : partial_key_access_token +source_set("partial_key_access_token") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "partial_key_access_token.h" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : partial_key_access +source_set("partial_key_access") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "partial_key_access.h" ] + public_deps = [ ":partial_key_access_token" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : secret_key_access_token +source_set("secret_key_access_token") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "secret_key_access_token.h" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : insecure_secret_key_access +source_set("insecure_secret_key_access") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "insecure_secret_key_access.h" ] + public_deps = [ ":secret_key_access_token" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : restricted_data +source_set("restricted_data") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "core/restricted_data.cc", + "restricted_data.h", + ] + public_deps = [ + ":secret_key_access_token", + "//third_party/abseil-cpp/absl/log:check", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/subtle:random", + "//third_party/tink/cc/util:secret_data", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_status +source_set("key_status") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key_status.h" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : configuration +source_set("configuration") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "configuration.h" ] + public_deps = [ + "//third_party/tink/cc/internal:key_type_info_store", + "//third_party/tink/cc/internal:keyset_wrapper_store", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_gen_configuration +source_set("key_gen_configuration") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key_gen_configuration.h" ] + public_deps = [ "//third_party/tink/cc/internal:key_type_info_store" ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/aead/BUILD.gn b/cc/aead/BUILD.gn new file mode 100644 index 0000000..6eae32e --- /dev/null +++ b/cc/aead/BUILD.gn
@@ -0,0 +1,317 @@ +# Copyright 2024 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/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:crypto_format", + "//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/util:status", + "//third_party/tink/cc/util:statusor", + ] + 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/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/abseil-cpp/absl/status:status", + "//third_party/tink/cc:registry", + "//third_party/tink/cc/config:tink_fips", + "//third_party/tink/cc/mac:mac_config", + "//third_party/tink/cc/proto:config_proto", + "//third_party/tink/cc/util:status", + ] + 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/cc/proto:aes_ctr_hmac_aead_proto", + "//third_party/tink/cc/proto:aes_ctr_proto", + "//third_party/tink/cc/proto:aes_eax_proto", + "//third_party/tink/cc/proto:aes_gcm_proto", + "//third_party/tink/cc/proto:aes_gcm_siv_proto", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:hmac_proto", + "//third_party/tink/cc/proto:kms_envelope_proto", + "//third_party/tink/cc/proto:tink_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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc/proto:aes_eax_proto", + "//third_party/tink/cc/proto:tink_proto", + "//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: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 : 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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc:input_stream", + "//third_party/tink/cc/aead/internal:cord_aes_gcm_boringssl", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/proto:aes_gcm_proto", + "//third_party/tink/cc/proto:tink_proto", + "//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:input_stream_util", + "//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 : 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/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:core/template_util", + "//third_party/tink/cc/proto:aes_gcm_siv_proto", + "//third_party/tink/cc/proto:tink_proto", + "//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: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 : 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/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/status:statusor", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc:mac", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/mac:hmac_key_manager", + "//third_party/tink/cc/proto:aes_ctr_hmac_aead_proto", + "//third_party/tink/cc/proto:aes_ctr_proto", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:hmac_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/subtle:aes_ctr_boringssl", + "//third_party/tink/cc/subtle:encrypt_then_authenticate", + "//third_party/tink/cc/subtle:ind_cpa_cipher", + "//third_party/tink/cc/subtle:random", + "//third_party/tink/cc/util:constants", + "//third_party/tink/cc/util:enums", + "//third_party/tink/cc/util:input_stream_util", + "//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 : 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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc:input_stream", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/proto:xchacha20_poly1305_proto", + "//third_party/tink/cc/subtle:subtle", + "//third_party/tink/cc/subtle:xchacha20_poly1305_boringssl", + "//third_party/tink/cc/util:constants", + "//third_party/tink/cc/util:input_stream_util", + "//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 : 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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc:kms_client", + "//third_party/tink/cc:kms_clients", + "//third_party/tink/cc/proto:kms_aead_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:constants", + "//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 : 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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:registry", + "//third_party/tink/cc/aead/internal:aead_util", + "//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 : 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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/template_util", + "//third_party/tink/cc:kms_client", + "//third_party/tink/cc:kms_clients", + "//third_party/tink/cc/aead/internal:aead_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/proto:kms_envelope_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:constants", + "//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" ] +}
diff --git a/cc/aead/internal/BUILD.gn b/cc/aead/internal/BUILD.gn new file mode 100644 index 0000000..1202a08 --- /dev/null +++ b/cc/aead/internal/BUILD.gn
@@ -0,0 +1,132 @@ +# Copyright 2024 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_util +source_set("aead_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aead_util.cc", + "aead_util.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/container:flat_hash_set", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/util:errors", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : ssl_aead +source_set("ssl_aead") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "ssl_aead.cc", + "ssl_aead.h", + ] + public_deps = [ + ":aead_util", + "//third_party/abseil-cpp/absl/cleanup:cleanup", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:err_util", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/internal:util", + "//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 : cord_aes_gcm_boringssl +source_set("cord_aes_gcm_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "cord_aes_gcm_boringssl.cc", + "cord_aes_gcm_boringssl.h", + ] + public_deps = [ + ":aead_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:cord", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/aead:cord_aead", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/subtle:random", + "//third_party/tink/cc/subtle:subtle_util", + "//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 : zero_copy_aead +source_set("zero_copy_aead") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "zero_copy_aead.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 : aead_from_zero_copy +source_set("aead_from_zero_copy") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aead_from_zero_copy.cc", + "aead_from_zero_copy.h", + ] + public_deps = [ + ":zero_copy_aead", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc:aead", + "//third_party/tink/cc/subtle:subtle_util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : zero_copy_aes_gcm_boringssl +source_set("zero_copy_aes_gcm_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "zero_copy_aes_gcm_boringssl.cc", + "zero_copy_aes_gcm_boringssl.h", + ] + public_deps = [ + ":aead_util", + ":ssl_aead", + ":zero_copy_aead", + "//third_party/abseil-cpp/absl/base:core_headers", + "//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/internal:util", + "//third_party/tink/cc/subtle:random", + "//third_party/tink/cc/subtle:subtle_util", + "//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" ] +}
diff --git a/cc/config/BUILD.gn b/cc/config/BUILD.gn new file mode 100644 index 0000000..153acaf --- /dev/null +++ b/cc/config/BUILD.gn
@@ -0,0 +1,36 @@ +# Copyright 2024 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 : config_util +source_set("config_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "config_util.cc", + "config_util.h", + ] + public_deps = [ "//third_party/tink/cc/proto:config_proto" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : tink_fips +source_set("tink_fips") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "tink_fips.cc", + "tink_fips.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:registry_impl", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/daead/BUILD.gn b/cc/daead/BUILD.gn new file mode 100644 index 0000000..60caac3 --- /dev/null +++ b/cc/daead/BUILD.gn
@@ -0,0 +1,22 @@ +# Copyright 2024 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 : deterministic_aead_key_templates +source_set("deterministic_aead_key_templates") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "deterministic_aead_key_templates.cc", + "deterministic_aead_key_templates.h", + ] + public_deps = [ + "//third_party/tink/cc/proto:aes_siv_proto", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:tink_proto", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/daead/subtle/BUILD.gn b/cc/daead/subtle/BUILD.gn new file mode 100644 index 0000000..f46dcb5 --- /dev/null +++ b/cc/daead/subtle/BUILD.gn
@@ -0,0 +1,23 @@ +# Copyright 2024 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_or_daead +source_set("aead_or_daead") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aead_or_daead.cc", + "aead_or_daead.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/functional:bind_front", + "//third_party/abseil-cpp/absl/types:variant", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:deterministic_aead", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/hybrid/BUILD.gn b/cc/hybrid/BUILD.gn new file mode 100644 index 0000000..9a507bc --- /dev/null +++ b/cc/hybrid/BUILD.gn
@@ -0,0 +1,312 @@ +# Copyright 2024 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/abseil-cpp/absl/status:statusor", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:deterministic_aead", + "//third_party/tink/cc/aead:aes_ctr_hmac_aead_key_manager", + "//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:common_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/subtle:aes_gcm_boringssl", + "//third_party/tink/cc/subtle:aes_siv_boringssl", + "//third_party/tink/cc/subtle:xchacha20_poly1305_boringssl", + "//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" ] +}
diff --git a/cc/hybrid/internal/BUILD.gn b/cc/hybrid/internal/BUILD.gn new file mode 100644 index 0000000..6f1bb40 --- /dev/null +++ b/cc/hybrid/internal/BUILD.gn
@@ -0,0 +1,198 @@ +# Copyright 2024 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 : hpke_context +source_set("hpke_context") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_context.cc", + "hpke_context.h", + ] + public_deps = [ + ":hpke_context_boringssl", + ":hpke_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//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 : hpke_context_boringssl +source_set("hpke_context_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_context_boringssl.cc", + "hpke_context_boringssl.h", + ] + public_deps = [ + ":hpke_util", + ":hpke_util_boringssl", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/subtle:subtle_util", + "//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 : hpke_decrypt +source_set("hpke_decrypt") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_decrypt.cc", + "hpke_decrypt.h", + ] + public_deps = [ + ":hpke_context", + ":hpke_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:hybrid_decrypt", + "//third_party/tink/cc/proto:hpke_proto", + "//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 : hpke_encrypt +source_set("hpke_encrypt") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_encrypt.cc", + "hpke_encrypt.h", + ] + public_deps = [ + ":hpke_context", + ":hpke_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc:hybrid_encrypt", + "//third_party/tink/cc/proto:hpke_proto", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hpke_key_manager_util +source_set("hpke_key_manager_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_key_manager_util.cc", + "hpke_key_manager_util.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc/proto:hpke_proto", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:validation", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hpke_private_key_manager +source_set("hpke_private_key_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_private_key_manager.cc", + "hpke_private_key_manager.h", + ] + public_deps = [ + ":hpke_decrypt", + ":hpke_key_manager_util", + "//third_party/abseil-cpp/absl/status:status", + "//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:hpke_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:constants", + "//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 : hpke_public_key_manager +source_set("hpke_public_key_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_public_key_manager.cc", + "hpke_public_key_manager.h", + ] + public_deps = [ + ":hpke_encrypt", + ":hpke_key_manager_util", + "//third_party/abseil-cpp/absl/memory:memory", + "//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:hpke_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", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hpke_util +source_set("hpke_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_util.cc", + "hpke_util.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/internal:ec_util", + "//third_party/tink/cc/proto:hpke_proto", + "//third_party/tink/cc/subtle:common_enums", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hpke_util_boringssl +source_set("hpke_util_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hpke_util_boringssl.cc", + "hpke_util_boringssl.h", + ] + public_deps = [ + ":hpke_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/proto:hpke_proto", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/hybrid/internal/hpke_context.cc b/cc/hybrid/internal/hpke_context.cc index e0d5675..282db5c 100644 --- a/cc/hybrid/internal/hpke_context.cc +++ b/cc/hybrid/internal/hpke_context.cc
@@ -21,6 +21,7 @@ #include <utility> #include "absl/status/status.h" +#include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" #include "tink/hybrid/internal/hpke_context_boringssl.h" #include "tink/util/secret_data.h"
diff --git a/cc/internal/BUILD.gn b/cc/internal/BUILD.gn new file mode 100644 index 0000000..affe66f --- /dev/null +++ b/cc/internal/BUILD.gn
@@ -0,0 +1,567 @@ +# Copyright 2024 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 : keyset_wrapper +source_set("keyset_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "keyset_wrapper.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : util +source_set("util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "util.cc", + "util.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/log:log", + "//third_party/abseil-cpp/absl/strings:strings", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_wrapper_impl +source_set("keyset_wrapper_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "keyset_wrapper_impl.h" ] + public_deps = [ + ":key_info", + ":keyset_wrapper", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/tink/cc:primitive_set", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc/proto:tink_proto", + "//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 : ssl_unique_ptr +source_set("ssl_unique_ptr") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "ssl_unique_ptr.h" ] + public_deps = [ "//third_party/boringssl:crypto" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_info +source_set("key_info") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "key_info.cc", + "key_info.h", + ] + public_deps = [ "//third_party/tink/cc/proto:tink_proto" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : registry_impl +source_set("registry_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "registry_impl.cc", + "registry_impl.h", + ] + public_deps = [ + ":fips_utils", + ":key_type_info_store", + ":keyset_wrapper", + ":keyset_wrapper_store", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/synchronization:synchronization", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/private_key_type_manager", + "//third_party/tink/cc:input_stream", + "//third_party/tink/cc:key_manager", + "//third_party/tink/cc:primitive_set", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc/monitoring:monitoring", + "//third_party/tink/cc/proto:tink_proto", + "//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 : fips_utils +source_set("fips_utils") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "fips_utils.cc", + "fips_utils.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : err_util +source_set("err_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "err_util.cc", + "err_util.h", + ] + public_deps = [ "//third_party/boringssl:crypto" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : bn_util +source_set("bn_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "bn_util.cc", + "bn_util.h", + ] + public_deps = [ + ":ssl_unique_ptr", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/subtle:subtle_util", + "//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 = [ + ":bn_util", + ":err_util", + ":fips_utils", + ":ssl_unique_ptr", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/subtle:common_enums", + "//third_party/tink/cc/subtle:random", + "//third_party/tink/cc/subtle:subtle_util", + "//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 : md_util +source_set("md_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "md_util.cc", + "md_util.h", + ] + public_deps = [ + ":err_util", + ":util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/subtle:common_enums", + "//third_party/tink/cc/subtle:subtle_util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aes_util +source_set("aes_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_util.cc", + "aes_util.h", + ] + public_deps = [ + ":util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//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 : monitoring_util +source_set("monitoring_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "monitoring_util.h" ] + public_deps = [ + ":key_status_util", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:key_status", + "//third_party/tink/cc:primitive_set", + "//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 : serialization +source_set("serialization") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "serialization.h" ] + public_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : proto_parameters_serialization +source_set("proto_parameters_serialization") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "proto_parameters_serialization.cc", + "proto_parameters_serialization.h", + ] + public_deps = [ + ":serialization", + ":util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//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 : proto_key_serialization +source_set("proto_key_serialization") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "proto_key_serialization.cc", + "proto_key_serialization.h", + ] + public_deps = [ + ":serialization", + ":util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:restricted_data", + "//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 : legacy_proto_key +source_set("legacy_proto_key") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "legacy_proto_key.cc", + "legacy_proto_key.h", + ] + public_deps = [ + ":proto_key_serialization", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:key", + "//third_party/tink/cc:parameters", + "//third_party/tink/cc:secret_key_access_token", + "//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 : parser_index +source_set("parser_index") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "parser_index.h" ] + public_deps = [ + ":serialization", + "//third_party/abseil-cpp/absl/strings:strings", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : serializer_index +source_set("serializer_index") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "serializer_index.h" ] + public_deps = [ + ":serialization", + "//third_party/tink/cc:key", + "//third_party/tink/cc:parameters", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : parameters_parser +source_set("parameters_parser") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "parameters_parser.h" ] + public_deps = [ + ":parser_index", + ":serialization", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:parameters", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : parameters_serializer +source_set("parameters_serializer") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "parameters_serializer.h" ] + public_deps = [ + ":serialization", + ":serializer_index", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:parameters", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_parser +source_set("key_parser") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key_parser.h" ] + public_deps = [ + ":parser_index", + ":serialization", + "//third_party/abseil-cpp/absl/functional:function_ref", + "//third_party/abseil-cpp/absl/log:log", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:key", + "//third_party/tink/cc:secret_key_access_token", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_serializer +source_set("key_serializer") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key_serializer.h" ] + public_deps = [ + ":serialization", + ":serializer_index", + "//third_party/abseil-cpp/absl/functional:function_ref", + "//third_party/abseil-cpp/absl/log:log", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:key", + "//third_party/tink/cc:secret_key_access_token", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_status_util +source_set("key_status_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "key_status_util.cc", + "key_status_util.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc:key_status", + "//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 : serialization_registry +source_set("serialization_registry") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "serialization_registry.cc", + "serialization_registry.h", + ] + public_deps = [ + ":key_parser", + ":key_serializer", + ":parameters_parser", + ":parameters_serializer", + ":parser_index", + ":serialization", + ":serializer_index", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:str_format", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:key", + "//third_party/tink/cc:parameters", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : mutable_serialization_registry +source_set("mutable_serialization_registry") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "mutable_serialization_registry.cc", + "mutable_serialization_registry.h", + ] + public_deps = [ + ":key_parser", + ":key_serializer", + ":legacy_proto_key", + ":parameters_parser", + ":parameters_serializer", + ":proto_key_serialization", + ":serialization", + ":serialization_registry", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/synchronization:synchronization", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:insecure_secret_key_access", + "//third_party/tink/cc:key", + "//third_party/tink/cc:parameters", + "//third_party/tink/cc:secret_key_access_token", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : configuration_impl +source_set("configuration_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "configuration_impl.h" ] + public_deps = [ + ":key_type_info_store", + ":keyset_wrapper_store", + "//third_party/tink/cc:configuration", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_type_info_store +source_set("key_type_info_store") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "key_type_info_store.cc", + "key_type_info_store.h", + ] + public_deps = [ + ":fips_utils", + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:core/key_manager_impl", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:core/private_key_manager_impl", + "//third_party/tink/cc:core/private_key_type_manager", + "//third_party/tink/cc:key_manager", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_wrapper_store +source_set("keyset_wrapper_store") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "keyset_wrapper_store.h" ] + public_deps = [ + ":keyset_wrapper", + ":keyset_wrapper_impl", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : key_gen_configuration_impl +source_set("key_gen_configuration_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "key_gen_configuration_impl.h" ] + public_deps = [ + ":key_type_info_store", + "//third_party/tink/cc:key_gen_configuration", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/internal/monitoring_util.h b/cc/internal/monitoring_util.h index 3e9a365..a2b2c13 100644 --- a/cc/internal/monitoring_util.h +++ b/cc/internal/monitoring_util.h
@@ -21,6 +21,7 @@ #include "absl/container/flat_hash_map.h" #include "absl/status/status.h" +#include "absl/strings/str_cat.h" #include "absl/strings/strip.h" #include "tink/internal/key_status_util.h" #include "tink/key_status.h"
diff --git a/cc/mac/BUILD.gn b/cc/mac/BUILD.gn new file mode 100644 index 0000000..601f2fc --- /dev/null +++ b/cc/mac/BUILD.gn
@@ -0,0 +1,293 @@ +# Copyright 2024 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 : mac_wrapper +source_set("mac_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "mac_wrapper.cc", + "mac_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:mac", + "//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 : mac_config +source_set("mac_config") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "mac_config.cc", + "mac_config.h", + ] + public_deps = [ + ":aes_cmac_key_manager", + ":aes_cmac_proto_serialization", + ":hmac_key_manager", + ":hmac_proto_serialization", + ":mac_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/config:config_util", + "//third_party/tink/cc/config:tink_fips", + "//third_party/tink/cc/mac/internal:chunked_mac_wrapper", + "//third_party/tink/cc/proto:config_proto", + "//third_party/tink/cc/util:status", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aes_cmac_key_manager +source_set("aes_cmac_key_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "aes_cmac_key_manager.h" ] + public_deps = [ + "//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:chunked_mac", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:key_manager", + "//third_party/tink/cc:mac", + "//third_party/tink/cc/mac/internal:chunked_mac_impl", + "//third_party/tink/cc/proto:aes_cmac_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/subtle:aes_cmac_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", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hmac_key_manager +source_set("hmac_key_manager") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hmac_key_manager.cc", + "hmac_key_manager.h", + ] + public_deps = [ + "//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:chunked_mac", + "//third_party/tink/cc:core/key_type_manager", + "//third_party/tink/cc:mac", + "//third_party/tink/cc/mac/internal:chunked_mac_impl", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:hmac_proto", + "//third_party/tink/cc/proto:tink_proto", + "//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: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", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : mac_parameters +source_set("mac_parameters") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "mac_parameters.h" ] + public_deps = [ "//third_party/tink/cc:parameters" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : mac_key +source_set("mac_key") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "mac_key.h" ] + public_deps = [ + ":mac_parameters", + "//third_party/tink/cc:key", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aes_cmac_parameters +source_set("aes_cmac_parameters") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_cmac_parameters.cc", + "aes_cmac_parameters.h", + ] + public_deps = [ + ":mac_parameters", + "//third_party/abseil-cpp/absl/log:log", + "//third_party/tink/cc:crypto_format", + "//third_party/tink/cc/internal:util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aes_cmac_key +source_set("aes_cmac_key") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_cmac_key.cc", + "aes_cmac_key.h", + ] + public_deps = [ + ":aes_cmac_parameters", + ":mac_key", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/strings:str_format", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/boringssl:crypto", + "//third_party/tink/cc:partial_key_access_token", + "//third_party/tink/cc:restricted_data", + "//third_party/tink/cc/subtle:subtle_util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : aes_cmac_proto_serialization +source_set("aes_cmac_proto_serialization") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_cmac_proto_serialization.cc", + "aes_cmac_proto_serialization.h", + ] + public_deps = [ + ":aes_cmac_key", + ":aes_cmac_parameters", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:partial_key_access", + "//third_party/tink/cc:restricted_data", + "//third_party/tink/cc:secret_key_access_token", + "//third_party/tink/cc/internal:key_parser", + "//third_party/tink/cc/internal:key_serializer", + "//third_party/tink/cc/internal:mutable_serialization_registry", + "//third_party/tink/cc/internal:parameters_parser", + "//third_party/tink/cc/internal:parameters_serializer", + "//third_party/tink/cc/internal:proto_key_serialization", + "//third_party/tink/cc/internal:proto_parameters_serialization", + "//third_party/tink/cc/proto:aes_cmac_proto", + "//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 : hmac_parameters +source_set("hmac_parameters") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hmac_parameters.cc", + "hmac_parameters.h", + ] + public_deps = [ + ":mac_parameters", + "//third_party/abseil-cpp/absl/log:log", + "//third_party/tink/cc:crypto_format", + "//third_party/tink/cc/internal:util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hmac_key +source_set("hmac_key") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hmac_key.cc", + "hmac_key.h", + ] + public_deps = [ + ":hmac_parameters", + ":mac_key", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/strings:str_format", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:partial_key_access_token", + "//third_party/tink/cc:restricted_data", + "//third_party/tink/cc/subtle:subtle_util", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : hmac_proto_serialization +source_set("hmac_proto_serialization") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "hmac_proto_serialization.cc", + "hmac_proto_serialization.h", + ] + public_deps = [ + ":hmac_key", + ":hmac_parameters", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/types:optional", + "//third_party/tink/cc:partial_key_access", + "//third_party/tink/cc:restricted_data", + "//third_party/tink/cc:secret_key_access_token", + "//third_party/tink/cc/internal:key_parser", + "//third_party/tink/cc/internal:key_serializer", + "//third_party/tink/cc/internal:mutable_serialization_registry", + "//third_party/tink/cc/internal:parameters_parser", + "//third_party/tink/cc/internal:parameters_serializer", + "//third_party/tink/cc/internal:proto_key_serialization", + "//third_party/tink/cc/internal:proto_parameters_serialization", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:hmac_proto", + "//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" ] +}
diff --git a/cc/mac/aes_cmac_parameters.cc b/cc/mac/aes_cmac_parameters.cc index f29b081..4064d2f 100644 --- a/cc/mac/aes_cmac_parameters.cc +++ b/cc/mac/aes_cmac_parameters.cc
@@ -23,6 +23,7 @@ #include <set> #include "absl/log/log.h" +#include "absl/strings/str_cat.h" #include "tink/crypto_format.h" #include "tink/internal/util.h" #include "tink/util/status.h"
diff --git a/cc/mac/hmac_parameters.cc b/cc/mac/hmac_parameters.cc index 1dab463..ad94b7b 100644 --- a/cc/mac/hmac_parameters.cc +++ b/cc/mac/hmac_parameters.cc
@@ -24,6 +24,7 @@ #include <set> #include "absl/log/log.h" +#include "absl/strings/str_cat.h" #include "tink/crypto_format.h" #include "tink/internal/util.h" #include "tink/util/status.h"
diff --git a/cc/mac/internal/BUILD.gn b/cc/mac/internal/BUILD.gn new file mode 100644 index 0000000..37ac86e --- /dev/null +++ b/cc/mac/internal/BUILD.gn
@@ -0,0 +1,54 @@ +# Copyright 2024 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 : chunked_mac_impl +source_set("chunked_mac_impl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "chunked_mac_impl.cc", + "chunked_mac_impl.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc:chunked_mac", + "//third_party/tink/cc/proto:aes_cmac_proto", + "//third_party/tink/cc/proto:hmac_proto", + "//third_party/tink/cc/subtle:stateful_cmac_boringssl", + "//third_party/tink/cc/subtle:stateful_hmac_boringssl", + "//third_party/tink/cc/subtle/mac:stateful_mac", + "//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 : chunked_mac_wrapper +source_set("chunked_mac_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "chunked_mac_wrapper.cc", + "chunked_mac_wrapper.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:chunked_mac", + "//third_party/tink/cc:crypto_format", + "//third_party/tink/cc:primitive_set", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc/internal:util", + "//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" ] +}
diff --git a/cc/monitoring/BUILD.gn b/cc/monitoring/BUILD.gn new file mode 100644 index 0000000..eae3e72 --- /dev/null +++ b/cc/monitoring/BUILD.gn
@@ -0,0 +1,20 @@ +# Copyright 2024 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 : monitoring +source_set("monitoring") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "monitoring.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/container:flat_hash_map", + "//third_party/tink/cc:key_status", + "//third_party/tink/cc/internal:key_status_util", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/proto/BUILD.gn b/cc/proto/BUILD.gn new file mode 100644 index 0000000..136faa2 --- /dev/null +++ b/cc/proto/BUILD.gn
@@ -0,0 +1,155 @@ +# Copyright 2024 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. + +import("//third_party/protobuf/proto_library.gni") + +# Proto Library : common_proto +proto_library("common_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "common.proto" ] +} + +# Proto Library : tink_proto +proto_library("tink_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "tink.proto" ] +} + +# Proto Library : config_proto +proto_library("config_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "config.proto" ] +} + +# Proto Library : aes_siv_proto +proto_library("aes_siv_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_siv.proto" ] +} + +# Proto Library : ecdsa_proto +proto_library("ecdsa_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "ecdsa.proto" ] + deps = [ ":common_proto" ] +} + +# Proto Library : aes_cmac_proto +proto_library("aes_cmac_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_cmac.proto" ] +} + +# Proto Library : hmac_proto +proto_library("hmac_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "hmac.proto" ] + deps = [ ":common_proto" ] +} + +# Proto Library : aes_ctr_proto +proto_library("aes_ctr_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_ctr.proto" ] +} + +# Proto Library : aes_ctr_hmac_aead_proto +proto_library("aes_ctr_hmac_aead_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_ctr_hmac_aead.proto" ] + deps = [ + ":aes_ctr_proto", + ":hmac_proto", + ] +} + +# Proto Library : aes_gcm_proto +proto_library("aes_gcm_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_gcm.proto" ] +} + +# Proto Library : aes_gcm_siv_proto +proto_library("aes_gcm_siv_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_gcm_siv.proto" ] +} + +# Proto Library : aes_eax_proto +proto_library("aes_eax_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_eax.proto" ] +} + +# Proto Library : kms_aead_proto +proto_library("kms_aead_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "kms_aead.proto" ] +} + +# Proto Library : kms_envelope_proto +proto_library("kms_envelope_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "kms_envelope.proto" ] + deps = [ ":tink_proto" ] +} + +# Proto Library : ecies_aead_hkdf_proto +proto_library("ecies_aead_hkdf_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "ecies_aead_hkdf.proto" ] + deps = [ + ":common_proto", + ":tink_proto", + ] +} + +# Proto Library : xchacha20_poly1305_proto +proto_library("xchacha20_poly1305_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "xchacha20_poly1305.proto" ] +} + +# Proto Library : hpke_proto +proto_library("hpke_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink/cc" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "hpke.proto" ] +}
diff --git a/cc/signature/BUILD.gn b/cc/signature/BUILD.gn new file mode 100644 index 0000000..94da1be --- /dev/null +++ b/cc/signature/BUILD.gn
@@ -0,0 +1,47 @@ +# Copyright 2019 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. + +# CC Library : public_key_verify_wrapper +source_set("public_key_verify_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "public_key_verify_wrapper.cc", + "public_key_verify_wrapper.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:crypto_format", + "//third_party/tink/cc:primitive_set", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc:public_key_verify", + "//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 : public_key_sign_wrapper +source_set("public_key_sign_wrapper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "public_key_sign_wrapper.cc", + "public_key_sign_wrapper.h", + ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:crypto_format", + "//third_party/tink/cc:primitive_set", + "//third_party/tink/cc:primitive_wrapper", + "//third_party/tink/cc:public_key_sign", + "//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" ] +}
diff --git a/cc/subtle/BUILD.gn b/cc/subtle/BUILD.gn new file mode 100644 index 0000000..f1d93fb --- /dev/null +++ b/cc/subtle/BUILD.gn
@@ -0,0 +1,460 @@ +# Copyright 2024 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 : subtle +source_set("subtle") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_gcm_boringssl.h", + "aes_siv_boringssl.h", + "common_enums.h", + "encrypt_then_authenticate.h", + "hkdf.h", + "hmac_boringssl.h", + "ind_cpa_cipher.h", + "random.h", + ] + public_deps = [ + ":aes_gcm_boringssl", + ":aes_siv_boringssl", + ":common_enums", + ":encrypt_then_authenticate", + ":hkdf", + ":hmac_boringssl", + ":random", + "//third_party/abseil-cpp/absl/base:core_headers", + "//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:deterministic_aead", + "//third_party/tink/cc:hybrid_decrypt", + "//third_party/tink/cc:hybrid_encrypt", + "//third_party/tink/cc:mac", + "//third_party/tink/cc:public_key_sign", + "//third_party/tink/cc:public_key_verify", + "//third_party/tink/cc/aead/internal:aead_from_zero_copy", + "//third_party/tink/cc/aead/internal:zero_copy_aead", + "//third_party/tink/cc/internal:aes_util", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//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 : 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", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:ec_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/util:errors", + "//third_party/tink/cc/util:secret_data", + "//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", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:ec_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/util:secret_data", + "//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", + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:md_util", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//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", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc:mac", + "//third_party/tink/cc/internal:aes_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/internal:util", + "//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 : 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", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//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/internal:md_util", + "//third_party/tink/cc/internal:util", + "//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 = [ + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc/aead/internal:aead_from_zero_copy", + "//third_party/tink/cc/aead/internal:zero_copy_aead", + "//third_party/tink/cc/aead/internal:zero_copy_aes_gcm_boringssl", + "//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 : 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", + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/base:config", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//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:aes_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:util", + "//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 = [ + ":ind_cpa_cipher", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc:aead", + "//third_party/tink/cc:mac", + "//third_party/tink/cc/internal:util", + "//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", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:aes_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/internal:util", + "//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 = [ + ":subtle_util", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/util:secret_data", + "//third_party/tink/cc/util:status", + ] + 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 = [ + ":random", + ":subtle_util", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/tink/cc:aead", + "//third_party/tink/cc/aead/internal:ssl_aead", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:util", + "//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_siv_boringssl +source_set("aes_siv_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "aes_siv_boringssl.cc", + "aes_siv_boringssl.h", + ] + public_deps = [ + ":subtle_util", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/boringssl:crypto", + "//third_party/tink/cc:deterministic_aead", + "//third_party/tink/cc/aead/internal:aead_util", + "//third_party/tink/cc/internal:aes_util", + "//third_party/tink/cc/internal:fips_utils", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//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/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/tink/cc:aead", + "//third_party/tink/cc/aead/internal:ssl_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 : stateful_hmac_boringssl +source_set("stateful_hmac_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "stateful_hmac_boringssl.cc", + "stateful_hmac_boringssl.h", + ] + public_deps = [ + ":common_enums", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:md_util", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/internal:util", + "//third_party/tink/cc/subtle/mac:stateful_mac", + "//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 : stateful_cmac_boringssl +source_set("stateful_cmac_boringssl") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "stateful_cmac_boringssl.cc", + "stateful_cmac_boringssl.h", + ] + public_deps = [ + ":common_enums", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/boringssl:crypto", + "//third_party/tink/cc/internal:aes_util", + "//third_party/tink/cc/internal:ssl_unique_ptr", + "//third_party/tink/cc/internal:util", + "//third_party/tink/cc/subtle/mac:stateful_mac", + "//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" ] +}
diff --git a/cc/subtle/mac/BUILD.gn b/cc/subtle/mac/BUILD.gn new file mode 100644 index 0000000..017a480 --- /dev/null +++ b/cc/subtle/mac/BUILD.gn
@@ -0,0 +1,19 @@ +# Copyright 2024 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 : stateful_mac +source_set("stateful_mac") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "stateful_mac.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/util:status", + "//third_party/tink/cc/util:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/cc/util/BUILD.gn b/cc/util/BUILD.gn new file mode 100644 index 0000000..5bedeca --- /dev/null +++ b/cc/util/BUILD.gn
@@ -0,0 +1,154 @@ +# Copyright 2024 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 : constants +source_set("constants") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "constants.cc", + "constants.h", + ] + public_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : secret_data_internal +source_set("secret_data_internal") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "secret_data_internal.h" ] + public_deps = [ + "//third_party/abseil-cpp/absl/base:config", + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/boringssl:crypto", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : secret_data +source_set("secret_data") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "secret_data.h" ] + public_deps = [ + ":secret_data_internal", + "//third_party/abseil-cpp/absl/strings:strings", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : errors +source_set("errors") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "errors.h" ] + public_deps = [ + ":status", + "//third_party/abseil-cpp/absl/strings:str_format", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : enums +source_set("enums") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "enums.cc", + "enums.h", + ] + public_deps = [ + ":status", + ":statusor", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/tink/cc/proto:common_proto", + "//third_party/tink/cc/proto:ecdsa_proto", + "//third_party/tink/cc/proto:tink_proto", + "//third_party/tink/cc/subtle:common_enums", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : status +source_set("status") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "status.h" ] + public_deps = [ "//third_party/abseil-cpp/absl/status:status" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : statusor +source_set("statusor") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "statusor.h" ] + public_deps = [ + ":status", + "//third_party/abseil-cpp/absl/status:statusor", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : validation +source_set("validation") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "validation.cc", + "validation.h", + ] + public_deps = [ + ":errors", + ":status", + "//third_party/abseil-cpp/absl/status:status", + "//third_party/tink/cc/proto:tink_proto", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : protobuf_helper +source_set("protobuf_helper") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ "protobuf_helper.h" ] + public_deps = [ "//third_party/protobuf:protobuf_lite" ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : input_stream_util +source_set("input_stream_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "input_stream_util.cc", + "input_stream_util.h", + ] + public_deps = [ + ":secret_data", + ":statusor", + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:span", + "//third_party/tink/cc:input_stream", + ] + public_configs = [ "//third_party/tink:tink_config" ] +} + +# CC Library : keyset_util +source_set("keyset_util") { + configs += [ "//build/config:no_rtti" ] + configs -= [ "//build/config:no_rtti" ] + sources = [ + "keyset_util.cc", + "keyset_util.h", + ] + public_deps = [ "//third_party/tink/cc/proto:tink_proto" ] + public_configs = [ "//third_party/tink:tink_config" ] +}
diff --git a/proto/BUILD.gn b/proto/BUILD.gn new file mode 100644 index 0000000..eb32467 --- /dev/null +++ b/proto/BUILD.gn
@@ -0,0 +1,147 @@ +# 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. + +import("//third_party/protobuf/proto_library.gni") + +# Proto Library : common_proto +proto_library("common_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "common.proto" ] +} + +# Proto Library : tink_proto +proto_library("tink_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "tink.proto" ] +} + +# Proto Library : config_proto +proto_library("config_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "config.proto" ] +} + +# Proto Library : aes_siv_proto +proto_library("aes_siv_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_siv.proto" ] +} + +# Proto Library : ecdsa_proto +proto_library("ecdsa_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "ecdsa.proto" ] + deps = [ ":common_proto" ] +} + +# Proto Library : aes_cmac_proto +proto_library("aes_cmac_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_cmac.proto" ] +} + +# Proto Library : hmac_proto +proto_library("hmac_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "hmac.proto" ] + deps = [ ":common_proto" ] +} + +# Proto Library : aes_ctr_proto +proto_library("aes_ctr_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_ctr.proto" ] +} + +# Proto Library : aes_ctr_hmac_aead_proto +proto_library("aes_ctr_hmac_aead_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_ctr_hmac_aead.proto" ] + deps = [ + ":aes_ctr_proto", + ":hmac_proto", + ] +} + +# Proto Library : aes_gcm_proto +proto_library("aes_gcm_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_gcm.proto" ] +} + +# Proto Library : aes_gcm_siv_proto +proto_library("aes_gcm_siv_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_gcm_siv.proto" ] +} + +# Proto Library : aes_eax_proto +proto_library("aes_eax_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "aes_eax.proto" ] +} + +# Proto Library : kms_aead_proto +proto_library("kms_aead_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "kms_aead.proto" ] +} + +# Proto Library : kms_envelope_proto +proto_library("kms_envelope_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "kms_envelope.proto" ] + deps = [ ":tink_proto" ] +} + +# Proto Library : ecies_aead_hkdf_proto +proto_library("ecies_aead_hkdf_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "ecies_aead_hkdf.proto" ] + deps = [ + ":common_proto", + ":tink_proto", + ] +} + +# Proto Library : xchacha20_poly1305_proto +proto_library("xchacha20_poly1305_proto") { + cc_generator_options = "lite" + proto_in_dir = "//third_party/tink" + extra_configs = [ "//third_party/tink:tink_config" ] + sources = [ "xchacha20_poly1305.proto" ] +}
diff --git a/tink b/tink new file mode 120000 index 0000000..2652f5f --- /dev/null +++ b/tink
@@ -0,0 +1 @@ +cc \ No newline at end of file
diff --git a/tools/convert_for_cobalt b/tools/convert_for_cobalt new file mode 100755 index 0000000..5d82e99 --- /dev/null +++ b/tools/convert_for_cobalt
@@ -0,0 +1,817 @@ +#! /usr/bin/env python3 + +# Copyright 2019 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. + +import os.path +import sys +import datetime +import collections + + +class GnVariables(collections.OrderedDict): + + def __setitem__(self, key, value): + if isinstance(value, list): + value = SetGnListValue(value) + super().__setitem__(key, value) + super().move_to_end(key) + + +class GnListValue(object): + + def __init__(self, items): + assert (isinstance(items, list)) + self._items = items + + def __getitem__(self, idx): + return self._items[idx] + + def __len__(self): + return len(self._items) + + def __iter__(self): + yield from self._items + + +class RemoveGnListValue(GnListValue): + pass + + +class SetGnListValue(GnListValue): + pass + + +def IsSubdir(parent, child): + if parent == child: + return False + return (os.path.commonpath([parent, child]) == parent) + + +class BazelGlobals(object): + IGNORABLES = frozenset([ + 'load', + 'package', + 'licenses', + 'exports_files', + 'select', + ]) + + def __init__(self, build_graph, dirpath): + self._build_graph = build_graph + self._dirpath = dirpath + self._set_objects = {} + + def __getitem__(self, key): + if key in self._set_objects: + return self._set_objects[key] + + if key == '__builtins__': + raise KeyError(key) + + if key in self.IGNORABLES: + return lambda *args, **kwargs: None + + return self._build_graph.GetTargetAdder(self._dirpath, key) + + def __setitem__(self, key, value): + self._set_objects[key] = value + + def __contains__(self, key): + if key == '__builtins__': + raise KeyError(key) + + return True + + def __len__(self): + return 1 + + +class BuildGraph(object): + + def __init__(self, root_path, ignored_targets): + self._targets = {} + if not os.path.isabs(root_path): + raise Exception('{} is not an absolute path.'.format(root_path)) + self._root_path = root_path + self._ignored_targets = ignored_targets + + # These are specs that will be remapped. + self._spec_map_old_to_new = {} + + def AddTarget(self, target_cls, dirpath, name, deps=None, **kwargs): + if deps: + deps = [MakeTargetRef(dep, dirpath) for dep in deps] + deps = [dep for dep in deps if dep.spec() not in self._ignored_targets] + for i in range(len(deps)): + if deps[i].spec() not in self._spec_map_old_to_new: + continue + deps[i] = MakeTargetRef(self._spec_map_old_to_new[deps[i].spec()], + dirpath) + + target = target_cls( + dirpath=dirpath, + name=name, + sort_id=len(self._targets), + deps=deps, + **kwargs) + assert (isinstance(target, Target)) + self._targets[target.spec()] = target + + def GetTargetAdder(self, absdirpath, target_type): + if not IsSubdir(self._root_path, absdirpath): + Exception( + 'GetTargetAdder expected a path under {} which {} is not.'.format( + self._root_path, absdirpath)) + dirpath = os.path.relpath(absdirpath, self._root_path) + if target_type == 'proto_library': + return self.GetProtoLibraryAdder(dirpath) + elif target_type == 'cc_library': + return self.GetCcLibraryAdder(dirpath) + elif target_type == 'cc_proto_library': + return self.GetCcProtoLibraryAdder(dirpath) + return self.GetUnknownTargetAdder(dirpath, target_type) + + def GetUnknownTargetAdder(self, dirpath, target_type): + + def Add(*args, **kwargs): + if 'name' not in kwargs or args: + raise Exception( + '"{}" is not a target type. Please add to IGNORABLES.'.format( + target_type)) + name = kwargs['name'] + deps = kwargs.get('deps', []) + self.AddTarget( + UnknownTarget, dirpath, name, deps=deps, target_type=target_type) + + return Add + + def GetCcProtoLibraryAdder(self, dirpath): + + def Add(name, deps=None, **kwargs): + self.AddTarget(CcProtoLibTarget, dirpath, name, deps=deps) + + return Add + + def GetProtoLibraryAdder(self, dirpath): + + def Add(name, srcs, deps=None, **kwargs): + self.AddTarget(ProtoLibTarget, dirpath, name, srcs=srcs, deps=deps) + + return Add + + def GetCcLibraryAdder(self, dirpath): + + def Add(name, srcs=None, hdrs=None, deps=None, **kwargs): + self.AddTarget( + CcLibTarget, dirpath, name, hdrs=hdrs, srcs=srcs, deps=deps) + + return Add + + def AddToGraph(self, dirpath): + filepath = os.path.join(dirpath, 'BUILD.bazel') + fp = open(filepath, 'r') + content = fp.read() + gs = BazelGlobals(self, dirpath) + exec(content, {}, gs) + + def GetTarget(self, target_spec): + target_spec = self._spec_map_old_to_new.get(target_spec, target_spec) + if target_spec in self._ignored_targets: + raise Exception('{} is being ignored'.format(target_spec)) + ref = MakeTargetRef(target_spec, '') + if not ref.InTree(): + raise Exception('{} is not in the tree.'.format(target_spec)) + if target_spec not in self._targets: + dirpath, _ = ParseTargetSpec(target_spec) + absdirpath = os.path.join(self._root_path, dirpath) + self.AddToGraph(absdirpath) + if target_spec not in self._targets: + print(self._targets.keys()) + raise Exception('{} could not be found in {}'.format( + target_spec, absdirpath)) + + return self._targets[target_spec] + + +############################################################## +# The Targets themselves. +############################################################## +class Target(object): + + def __init__(self, dirpath, name, sort_id, deps): + assert (isinstance(sort_id, int)) + self._sort_id = sort_id + assert (isinstance(name, str)) + self._name = name + assert (isinstance(dirpath, str)) + self._dirpath = dirpath + self._deps = deps or [] + assert (all(isinstance(dep, TargetRef) for dep in self._deps)) + + def __repr__(self): + raise NotImplementedError + + def name(self): + return self._name + + def spec(self): + # When target is added to graph, the relative dirpath is computed by + # os.path.relpath(absdirpath, root_path). The function returns '.' as + # dirpath for the targets lives in root dir. + # + # Skip dirpath '.' to avoid returning spec like '//.:target'. + dirpath = self._dirpath if self._dirpath != '.' else '' + return '//{}:{}'.format(dirpath, self._name) + + def deps(self): + return self._deps + + def dirpath(self): + return self._dirpath + + def sort_id(self): + return self._sort_id + + def target_type(self): + raise NotImplementedError + + def IsUnknown(self): + return False + + def IsProto(self): + return False + + def RemapDep(self, old, new): + for i in range(len(self._deps)): + if self._deps[i].spec() == old: + self._deps[i] = MakeTargetRef(new, self._dirpath) + + +class UnknownTarget(Target): + + def __init__(self, dirpath, name, sort_id, target_type, deps): + super().__init__(dirpath, name, sort_id, deps=deps) + assert (isinstance(target_type, str)) + self._target_type = target_type + + def __repr__(self): + return 'UnknownTarget<{}: {}>'.format(self._target_type, self.spec()) + + def IsUnknown(self): + return True + + +class LibTarget(Target): + + def __init__(self, dirpath, name, sort_id, deps, srcs=None): + super().__init__(dirpath, name, sort_id, deps) + self.srcs = srcs or [] + + def __repr__(self): + return 'LibTarget<{}>'.format(self.spec()) + + +class ProtoLibTarget(LibTarget): + + def IsProto(self): + return True + + def __repr__(self): + return 'ProtoLibTarget<{}>'.format(self.spec()) + + def target_type(self): + return 'Proto Library' + + +class CcProtoLibTarget(Target): + + def IsProto(self): + return True + + def __repr__(self): + return 'CcProtoLibTarget<{}>'.format(self.spec()) + + def target_type(self): + return 'CC Proto Library' + + +class CcLibTarget(LibTarget): + + def __init__(self, dirpath, name, sort_id, deps, srcs=None, hdrs=None): + super().__init__(dirpath, name, sort_id, srcs=srcs, deps=deps) + self.hdrs = hdrs or [] + + def __repr__(self): + return 'CcLibTarget<{}>'.format(self.spec()) + + def target_type(self): + return 'CC Library' + + +############################################################## +# Target references. (Used mostly for dependencies) +############################################################## +def ParseTargetSpec(dep): + parts = dep.split(':') + dirpath = parts[0][2:] + if len(parts) == 1: + name = os.path.basename(dep) + elif len(parts) == 2: + name = parts[1] + else: + raise Exception('I do not know how to deal with this dep: "{}"'.format(dep)) + + return dirpath, name + + +def MakeTargetRef(dep, dirpath): + if dep[0] == ':': + return InTreeTargetRef(dirpath, dep[1:]) + if dep[:2] == '//': + dirpath, name = ParseTargetSpec(dep) + return InTreeTargetRef(dirpath, name) + + tink_base_prefix = '@tink_base' + if dep.startswith(tink_base_prefix): + dep = dep[len(tink_base_prefix):] + dirpath, name = ParseTargetSpec(dep) + return TinkBaseTargetRef(dirpath, name) + + absl_prefix = '@com_google_absl' + if dep.startswith(absl_prefix): + dep = dep[len(absl_prefix):] + dirpath, name = ParseTargetSpec(dep) + return AbslTargetRef(dirpath, name) + + if dep == '@com_google_protobuf//:protobuf_lite': + return ProtobufLiteTargetRef() + + if dep == '@com_google_protobuf//:protobuf': + return ProtobufLiteTargetRef() + + if dep == '@rapidjson': + return RapidJsonTargetRef() + + googletest_prefix = '@com_google_googletest' + if dep.startswith(googletest_prefix): + dep = dep[len(googletest_prefix):] + dirpath, name = ParseTargetSpec(dep) + return GoogleTestTargetRef(dirpath, name) + + boringssl_prefix = '@boringssl' + if dep.startswith(boringssl_prefix): + dep = dep[len(boringssl_prefix):] + dirpath, name = ParseTargetSpec(dep) + return BoringSslTargetRef(dirpath, name) + + return UnknownTargetRef(dirpath, dep) + + +class TargetRef(object): + + def InTree(self): + return False + + def IsUnknown(self): + return False + + +class UnknownTargetRef(TargetRef): + def __init__(self, dirpath, dep): + self._dirpath = dirpath + self._dep = dep + + def IsUnknown(self): + return True + + def spec(self): + return '<{} in {}'.format(self._dep, self._dirpath) + + +class PathTargetRef(TargetRef): + + def __init__(self, dirpath, name): + self._dirpath = dirpath + self._name = name + + def name(self): + return self._name + + def spec(self): + # When target is added to graph, the relative dirpath is computed by + # os.path.relpath(absdirpath, root_path). The function returns '.' as + # dirpath for the targets lives in root dir. The relative dirpath is + # also used to make TargetRefs for the target's dependencies. + # + # Skip dirpath '.' to avoid returning spec like '//.:target'. + dirpath = self._dirpath if self._dirpath != '.' else '' + return '//{}:{}'.format(dirpath, self._name) + + def dirpath(self): + return self._dirpath + + def __repr__(self): + return '{}<{}>'.format(type(self).__name__, self.spec()) + + +class TinkBaseTargetRef(PathTargetRef): + + def GetGnDep(self): + spec = self.spec() + prefix = '//' + if not spec.startswith(prefix): + raise Exception( + 'I do not know how to deal with Tink base dependency {}'.format(spec)) + return '//third_party/tink/' + spec[len(prefix):] + + +class InTreeTargetRef(PathTargetRef): + + def InTree(self): + return True + + +class AbslTargetRef(PathTargetRef): + + def GetGnDep(self): + spec = self.spec() + prefix = '//' + if not spec.startswith(prefix): + raise Exception( + 'I do not know how to deal with Absl dependency {}'.format(spec)) + return '//third_party/abseil-cpp/' + spec[len(prefix):] + + +class GoogleTestTargetRef(PathTargetRef): + pass + + +class ProtobufLiteTargetRef(TargetRef): + + def GetGnDep(self): + return '//third_party/protobuf:protobuf_lite' + + def spec(self): + return '@protobuf_lite' + + +class RapidJsonTargetRef(TargetRef): + + def spec(self): + return '@rapidjson' + + +class BoringSslTargetRef(PathTargetRef): + + def GetGnDep(self): + if self._dirpath: + raise Exception( + 'BoringSSL dep {} has dirpath {}. I do not know how to deal with that.' + .format(self.spec(), self._dirpath)) + return '//third_party/boringssl:' + self._name + + +############################################################## +# TargetFetcher grabs all the targets we need. +############################################################## +class TargetFetcher(object): + + def __init__(self, build_graph, initial_targets, error_on_unknown): + # _to_fetch is a list of target specs. + self._to_fetch = initial_targets + self._targets = [] + self._fetched = set() + self._build_graph = build_graph + self._error_on_unknown = error_on_unknown + + def FetchAll(self): + while self._to_fetch: + self.FetchNext() + return self._targets + + def FetchNext(self): + spec = self._to_fetch.pop(0) + if spec in self._fetched: + return + target = self._build_graph.GetTarget(spec) + if target.IsUnknown() and self._error_on_unknown: + raise Exception('Found unknown target: {}'.format(target)) + self._targets.append(target) + + # We add both the actual spec and the spec we tried to fetch just in + # case there was a remapping. + self._fetched.add(target.spec()) + self._fetched.add(spec) + for dep in target.deps(): + if dep.IsUnknown(): + raise Exception('Found unknown dep: {} for {}'.format(dep.spec(), target.spec())) + if not dep.InTree(): + continue + if dep.spec() not in self._fetched: + self._to_fetch.append(dep.spec()) + +############################################################## +# BuildFile holds the information necessary to create a build file. +############################################################## +class BuildFile(object): + + def __init__(self, dirpath, targets, subdirs): + self.dirpath = dirpath + # Directory mapping spec to target. + self.targets = targets + self.subdirs = sorted(subdirs) + + def HasProto(self): + return any(t.IsProto() for t in self.targets.values()) + + def HasCcLib(self): + return any(isinstance(t, CcLibTarget) for t in self.targets.values()) + + def __contains__(self, target_or_spec): + spec = target_or_spec + if hasattr(target_or_spec, 'spec'): + spec = target_or_spec.spec() + if not isinstance(spec, str): + raise Exception( + '{} should be a spec string or have a spec method.'.format( + target_or_spec)) + + return spec in self.targets + + +def CreateBuildFiles(targets): + build_file_targets = {} + for t in targets: + if t.dirpath() not in build_file_targets: + build_file_targets[t.dirpath()] = {} + build_file_targets[t.dirpath()][t.spec()] = t + + dirpaths = [k for k in build_file_targets.keys()] + build_files = [] + + for dirpath, targets in build_file_targets.items(): + subdirs = [] + for d in dirpaths: + # If d is an immediate subdirectory of dirpath, add it to subdirs + if not IsSubdir(dirpath, d): + continue + rel = os.path.relpath(d, dirpath) + if os.path.basename(rel) == rel: + subdirs.append(rel) + + build_files.append(BuildFile(dirpath, targets, subdirs)) + + return build_files + + +class BuildFileWriter(object): + + def __init__(self, rootdir, build_graph, max_line): + self._rootdir = rootdir + self._max_line = max_line + self._build_graph = build_graph + + def GetTargetForInTreeDep(self, dep): + assert (isinstance(dep, InTreeTargetRef)) + target = self._build_graph.GetTarget(dep.spec()) + + # We don't generate CcProtoLibTargets, so we try to dereference them to + # find the ProtoLibTarget that they refer to. + if isinstance(target, CcProtoLibTarget): + assert (len(target.deps()) == 1) + target = self._build_graph.GetTarget(target.deps()[0].spec()) + assert (isinstance(target, ProtoLibTarget)) + + return target + + def GetBuildFilePath(self, dirpath): + raise NotImplementedError + + def WriteBuildFile(self, build_file): + self._indent = 0 + self._filepath = self.GetBuildFilePath(build_file) + self._fp = open(self._filepath, 'w+') + self._build_file = build_file + self._nl = False + + print('Writing to {},'.format(self._filepath)) + self.WriteHeader() + # We generate a stable sort order to stabilize the .gn files. + targets = sorted( + build_file.targets.values(), key=lambda target: target.sort_id()) + + for target in targets: + self.WriteTarget(target) + + assert (self._indent == 0) + + def WriteHeader(self): + year = datetime.datetime.today().year + self.emitlines([ + '# Copyright {} The Fuchsia Authors. All rights reserved.'.format(year), + '# 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.' + ]) + + def WriteTarget(self, target): + self.emitnl('# {} : {}'.format(target.target_type(), target.name())) + + def emit(self, s): + if self._nl: + self._fp.write(' ' * self._indent) + self._nl = False + if not isinstance(s, str): + raise Exception('emit expected a string, not {}'.format(s)) + self._fp.write(s) + + def emitnl(self, s): + self.emit(s) + self.nl() + + def emitlines(self, lines): + for line in lines: + self.emitnl(line) + + def nl(self): + self._fp.write('\n') + self._nl = True + + def indent(self): + self._indent += 1 + + def deindent(self): + self._indent -= 1 + + +class GnWriter(BuildFileWriter): + + def __init__(self, rootdir, deps_prefix, build_graph, max_line): + super().__init__( + rootdir=rootdir, build_graph=build_graph, max_line=max_line) + assert (deps_prefix.startswith('//')) + assert (not deps_prefix.endswith('/')) + self._deps_prefix = deps_prefix + + def GetBuildFilePath(self, build_file): + return os.path.join(self._rootdir, build_file.dirpath, 'BUILD.gn') + + def WriteHeader(self): + super().WriteHeader() + if self._build_file.HasProto(): + self.nl() + self.emitnl('import("//third_party/protobuf/proto_library.gni")') + self.nl() + + def WriteTarget(self, target): + # Skip cc_proto_lib targets. + if isinstance(target, CcProtoLibTarget): + return + super().WriteTarget(target) + + if isinstance(target, CcLibTarget): + self.WriteCcLibTarget(target) + elif isinstance(target, ProtoLibTarget): + self.WriteProtoLibTarget(target) + else: + raise NotImplementedError('I do not know how to write {}'.format( + str(target))) + + self.nl() + + def GnDep(self, dep): + if not dep.InTree(): + return dep.GetGnDep() + + target = self.GetTargetForInTreeDep(dep) + + if target in self._build_file: + return ':{}'.format(target.name()) + if target.spec().startswith('//:'): + return '{}:{}'.format(self._deps_prefix, target.spec()[3:]) + return '{}/{}'.format(self._deps_prefix, target.spec()[2:]) + + def FormatValue(self, value): + if isinstance(value, str): + return '"{}"'.format(value) + + if isinstance(value, TargetRef): + return '"{}"'.format(self.GnDep(value)) + + raise Exception('I do not know how to write the {} value'.format( + repr(value))) + + def WriteGnVariable(self, name, value): + if isinstance(value, SetGnListValue): + self.WriteGnSetListVariable(name, value) + return + if isinstance(value, RemoveGnListValue): + self.WriteGnRemoveListVariable(name, value) + return + self.emitnl('{} = {}'.format(name, self.FormatValue(value))) + + def WriteGnListVariable(self, name, value, op): + if len(value) == 0: + return + + if len(value) == 1: + single_line = '{} {} [ {} ]'.format(name, op, self.FormatValue(value[0])) + if len(single_line) <= self._max_line: + self.emitnl(single_line) + return + + self.emitnl('{} {} ['.format(name, op)) + self.indent() + + for item in value: + self.emitnl('{},'.format(self.FormatValue(item))) + + self.deindent() + self.emitnl(']') + + def WriteGnSetListVariable(self, name, value): + self.WriteGnListVariable(name, value, "=") + + def WriteGnRemoveListVariable(self, name, value): + # Add and then remove the variable in case the var wasn't already added + self.WriteGnListVariable(name, value, "+=") + self.WriteGnListVariable(name, value, "-=") + + def WriteGnTarget(self, target_type, name, variables): + self.emitnl('{}("{}") {{'.format(target_type, name)) + self.indent() + for var, value in variables.items(): + self.WriteGnVariable(var, value) + self.deindent() + self.emitnl('}') + pass + + def WriteProtoLibTarget(self, target): + variables = GnVariables() + variables['cc_generator_options'] = 'lite' + variables['proto_in_dir'] = '//third_party/tink/cc' + variables['extra_configs'] = ['//third_party/tink:tink_config'] + variables['sources'] = sorted(target.srcs) + variables['deps'] = target.deps() + + self.WriteGnTarget('proto_library', target.name(), variables) + + def WriteCcLibTarget(self, target): + variables = GnVariables() + variables['configs'] = RemoveGnListValue(['//build/config:no_rtti']) + variables['sources'] = sorted(target.srcs + target.hdrs) + variables['public_deps'] = target.deps() + variables['public_configs'] = ['//third_party/tink:tink_config'] + + self.WriteGnTarget('source_set', target.name(), variables) + +def FetchTargets(targets, root_path, ignored_targets): + graph = BuildGraph(root_path, ignored_targets) + fetcher = TargetFetcher(graph, targets, error_on_unknown=True) + targets = fetcher.FetchAll() + print('Found {} targets.'.format(len(targets))) + return targets, graph + +def WriteTargetsToGn(targets, graph, root_path, deps_prefix): + build_files = CreateBuildFiles(targets) + gn_writer = GnWriter( + rootdir=root_path, + build_graph=graph, + max_line=80, + deps_prefix=deps_prefix) + for f in build_files: + gn_writer.WriteBuildFile(f) + +def main(args): + script_path = os.path.abspath(args[0]) + tools_path = os.path.dirname(script_path) + tink_path = os.path.dirname(tools_path) + cc_path = os.path.join(tink_path, 'cc') + + # Targets listed here will be ignored. + ignored_targets = frozenset([]) + + # Targets listed her are the start of the fetch. Put all the targets you plan + # on directly depending upon here. + targets = [ + '//hybrid:hybrid_config', + '//hybrid:hpke_config', + '//hybrid:hybrid_decrypt_factory', + '//hybrid:hybrid_encrypt_factory', + '//hybrid:hybrid_key_templates', + '//:binary_keyset_reader', + '//:binary_keyset_writer', + '//:cleartext_keyset_handle', + '//:hybrid_decrypt', + '//:hybrid_encrypt', + '//:keyset_handle', + ] + targets, graph = FetchTargets(targets, cc_path, ignored_targets) + WriteTargetsToGn(targets, graph, cc_path, '//third_party/tink/cc') + +if __name__ == '__main__': + sys.exit(main(sys.argv))