https://github.com/google/tink
Tip revision: ca852750014fb65590585285e2ed7deeb04cb36a authored by thaidn on 15 October 2020, 23:44:41 UTC
Enable GitHub CodeQL scanning.
Enable GitHub CodeQL scanning.
Tip revision: ca85275
BUILD.bazel
load("@tink_base//:tink_version.bzl", "TINK_VERSION_LABEL")
load("@tink_base//tools:common.bzl", "template_rule")
package(default_visibility = ["//:__subpackages__"])
licenses(["notice"])
# public libraries
PUBLIC_APIS = [
"aead.h",
"aead_config.h",
"aead_factory.h",
"aead_key_templates.h",
"binary_keyset_reader.h",
"binary_keyset_writer.h",
"catalogue.h",
"config.h",
"deterministic_aead.h",
"deterministic_aead_config.h",
"deterministic_aead_factory.h",
"deterministic_aead_key_templates.h",
"hybrid_config.h",
"hybrid_decrypt.h",
"hybrid_decrypt_factory.h",
"hybrid_encrypt.h",
"hybrid_encrypt_factory.h",
"hybrid_key_templates.h",
"input_stream.h",
"json_keyset_reader.h",
"json_keyset_writer.h",
"key_manager.h",
"keyset_handle.h",
"keyset_manager.h",
"keyset_reader.h",
"keyset_writer.h",
"kms_client.h",
"mac.h",
"mac_config.h",
"mac_factory.h",
"mac_key_templates.h",
"output_stream_with_result.h",
"output_stream.h",
"public_key_sign.h",
"public_key_sign_factory.h",
"public_key_verify.h",
"public_key_verify_factory.h",
"random_access_stream.h",
"registry.h",
"signature_config.h",
"signature_key_templates.h",
"streaming_aead.h",
"streaming_aead_config.h",
"streaming_aead_key_templates.h",
"streaming_mac.h",
"tink_config.h",
"version.h",
]
PUBLIC_API_DEPS = [
":aead",
":binary_keyset_reader",
":binary_keyset_writer",
":deterministic_aead",
":hybrid_decrypt",
":hybrid_encrypt",
":json_keyset_reader",
":json_keyset_writer",
":input_stream",
":key_manager",
":keyset_handle",
":keyset_manager",
":keyset_reader",
":keyset_writer",
":kms_client",
":mac",
":output_stream_with_result",
":output_stream",
":primitive_set",
":public_key_sign",
":public_key_verify",
":streaming_aead",
":streaming_mac",
":random_access_stream",
":registry",
":registry_impl",
":version",
"//aead:aead_config",
"//aead:aead_factory",
"//aead:aead_key_templates",
"//config:tink_config",
"//daead:deterministic_aead_config",
"//daead:deterministic_aead_factory",
"//daead:deterministic_aead_key_templates",
"//hybrid:hybrid_config",
"//hybrid:hybrid_decrypt_factory",
"//hybrid:hybrid_encrypt_factory",
"//hybrid:hybrid_key_templates",
"//internal:key_info",
"//mac:mac_config",
"//mac:mac_factory",
"//mac:mac_key_templates",
"//signature:public_key_sign_factory",
"//signature:public_key_verify_factory",
"//signature:signature_config",
"//signature:signature_key_templates",
"//streamingaead:streaming_aead_config",
"//streamingaead:streaming_aead_key_templates",
"//util:buffer",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"//util:validation",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/synchronization",
]
cc_library(
name = "tink_cc",
hdrs = PUBLIC_APIS,
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = PUBLIC_API_DEPS,
)
cc_library(
name = "input_stream",
hdrs = ["input_stream.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:status",
"//util:statusor",
],
)
cc_library(
name = "output_stream",
hdrs = ["output_stream.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:status",
"//util:statusor",
],
)
cc_library(
name = "random_access_stream",
hdrs = ["random_access_stream.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:buffer",
"//util:status",
"//util:statusor",
],
)
cc_library(
name = "output_stream_with_result",
hdrs = ["output_stream_with_result.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":output_stream",
"//util:status",
"//util:statusor",
],
)
cc_library(
name = "aead",
hdrs = ["aead.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "deterministic_aead",
hdrs = ["deterministic_aead.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "streaming_aead",
hdrs = ["streaming_aead.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":input_stream",
":output_stream",
":random_access_stream",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "streaming_mac",
hdrs = ["streaming_mac.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":output_stream_with_result",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "hybrid_decrypt",
hdrs = ["hybrid_decrypt.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "hybrid_encrypt",
hdrs = ["hybrid_encrypt.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "mac",
hdrs = ["mac.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "public_key_sign",
hdrs = ["public_key_sign.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "public_key_verify",
hdrs = ["public_key_verify.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//util:status",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "keyset_reader",
hdrs = ["keyset_reader.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//proto:tink_cc_proto",
"//util:statusor",
],
)
cc_library(
name = "keyset_writer",
hdrs = ["keyset_writer.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
"//proto:tink_cc_proto",
"//util:status",
],
)
cc_library(
name = "binary_keyset_reader",
srcs = ["core/binary_keyset_reader.cc"],
hdrs = ["binary_keyset_reader.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_reader",
"//proto:tink_cc_proto",
"//util:errors",
"//util:statusor",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_protobuf//:protobuf_lite",
],
)
cc_library(
name = "binary_keyset_writer",
srcs = ["core/binary_keyset_writer.cc"],
hdrs = ["binary_keyset_writer.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_writer",
"//proto:tink_cc_proto",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "json_keyset_reader",
srcs = ["core/json_keyset_reader.cc"],
hdrs = ["json_keyset_reader.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_reader",
"//proto:tink_cc_proto",
"//util:enums",
"//util:errors",
"//util:protobuf_helper",
"//util:statusor",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@rapidjson",
],
)
cc_library(
name = "json_keyset_writer",
srcs = ["core/json_keyset_writer.cc"],
hdrs = ["json_keyset_writer.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_writer",
"//proto:tink_cc_proto",
"//util:enums",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
"@rapidjson",
],
)
cc_library(
name = "catalogue",
hdrs = ["catalogue.h"],
include_prefix = "tink",
deps = [
":key_manager",
"//util:statusor",
"@com_google_absl//absl/base:core_headers",
],
)
cc_library(
name = "config",
srcs = ["core/config.cc"],
hdrs = ["config.h"],
include_prefix = "tink",
deps = [
":catalogue",
":key_manager",
":registry",
"//aead:aead_config",
"//daead:deterministic_aead_config",
"//hybrid:hybrid_config",
"//mac:mac_config",
"//proto:config_cc_proto",
"//signature:signature_config",
"//streamingaead:streaming_aead_config",
"//util:errors",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "crypto_format",
srcs = ["core/crypto_format.cc"],
hdrs = ["crypto_format.h"],
include_prefix = "tink",
deps = [
"//proto:tink_cc_proto",
"//util:errors",
"//util:statusor",
],
)
cc_library(
name = "primitive_set",
srcs = ["primitive_set.h"],
hdrs = ["primitive_set.h"],
include_prefix = "tink",
deps = [
":crypto_format",
"//proto:tink_cc_proto",
"//util:errors",
"//util:statusor",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/synchronization",
],
)
cc_library(
name = "primitive_wrapper",
hdrs = ["primitive_wrapper.h"],
include_prefix = "tink",
deps = [
":primitive_set",
"//util:statusor",
],
)
cc_library(
name = "registry",
hdrs = ["registry.h"],
include_prefix = "tink",
deps = [
":registry_impl",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "registry_impl",
srcs = ["core/registry_impl.cc"],
hdrs = ["core/registry_impl.h"],
include_prefix = "tink",
deps = [
":catalogue",
":core/key_manager_impl",
":core/key_type_manager",
":core/private_key_manager_impl",
":core/private_key_type_manager",
":key_manager",
":primitive_set",
":primitive_wrapper",
"//proto:tink_cc_proto",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"//util:validation",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/synchronization",
"@com_google_absl//absl/types:optional",
],
)
template_rule(
name = "version_h",
src = "version.h.templ",
out = "version.h",
substitutions = {
"@TINK_VERSION_LABEL@": "%s" % TINK_VERSION_LABEL,
},
)
cc_library(
name = "version",
srcs = ["core/version.cc"],
hdrs = [":version_h"],
include_prefix = "tink",
)
cc_library(
name = "keyset_handle",
srcs = ["core/keyset_handle.cc"],
hdrs = ["keyset_handle.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":aead",
":key_manager",
":keyset_reader",
":keyset_writer",
":primitive_set",
":registry",
"//internal:key_info",
"//proto:tink_cc_proto",
"//util:errors",
"//util:keyset_util",
"@com_google_absl//absl/memory",
],
)
cc_library(
name = "cleartext_keyset_handle",
srcs = ["core/cleartext_keyset_handle.cc"],
hdrs = ["cleartext_keyset_handle.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_handle",
"//proto:tink_cc_proto",
"//util:errors",
"//util:status",
"//util:statusor",
],
)
cc_library(
name = "key_manager",
srcs = ["core/key_manager.cc"],
hdrs = ["key_manager.h"],
include_prefix = "tink",
deps = [
"//proto:tink_cc_proto",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "keyset_manager",
srcs = ["core/keyset_manager.cc"],
hdrs = ["keyset_manager.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":keyset_handle",
":keyset_reader",
":registry",
"//proto:tink_cc_proto",
"//util:enums",
"//util:errors",
"//util:protobuf_helper",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/synchronization",
],
)
cc_library(
name = "kms_client",
hdrs = ["kms_client.h"],
include_prefix = "tink",
deps = [
":aead",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "kms_clients",
srcs = ["core/kms_clients.cc"],
hdrs = ["kms_clients.h"],
include_prefix = "tink",
visibility = ["//visibility:public"],
deps = [
":kms_client",
"//util:errors",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/base",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/synchronization",
],
)
cc_library(
name = "core/template_util",
hdrs = ["core/template_util.h"],
include_prefix = "tink",
deps = ["@com_google_absl//absl/meta:type_traits"],
)
cc_library(
name = "core/key_type_manager",
hdrs = ["core/key_type_manager.h"],
include_prefix = "tink",
deps = [
":core/template_util",
":input_stream",
"//proto:tink_cc_proto",
"//util:status",
"//util:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "core/key_manager_impl",
hdrs = ["core/key_manager_impl.h"],
include_prefix = "tink",
deps = [
":core/key_type_manager",
":key_manager",
"//proto:tink_cc_proto",
"//util:constants",
"//util:status",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "core/private_key_type_manager",
hdrs = ["core/private_key_type_manager.h"],
include_prefix = "tink",
deps = [
":core/key_type_manager",
"//util:statusor",
],
)
cc_library(
name = "core/private_key_manager_impl",
hdrs = ["core/private_key_manager_impl.h"],
include_prefix = "tink",
deps = [
":core/key_manager_impl",
":core/private_key_type_manager",
":key_manager",
"//util:validation",
],
)
# Settings for building in various environments.
config_setting(
name = "linux_x86_64",
values = {"cpu": "k8"},
)
config_setting(
name = "mac_x86_64",
values = {"cpu": "darwin"},
)
# tests
cc_test(
name = "registry_test",
size = "small",
srcs = ["core/registry_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":aead",
":catalogue",
":core/key_manager_impl",
":core/key_type_manager",
":crypto_format",
":keyset_manager",
":registry",
"//aead:aead_wrapper",
"//aead:aes_gcm_key_manager",
"//hybrid:ecies_aead_hkdf_private_key_manager",
"//hybrid:ecies_aead_hkdf_public_key_manager",
"//proto:aes_ctr_hmac_aead_cc_proto",
"//proto:aes_gcm_cc_proto",
"//proto:common_cc_proto",
"//proto:ecdsa_cc_proto",
"//proto:tink_cc_proto",
"//subtle:aes_gcm_boringssl",
"//subtle:random",
"//util:istream_input_stream",
"//util:protobuf_helper",
"//util:secret_data",
"//util:status",
"//util:statusor",
"//util:test_keyset_handle",
"//util:test_matchers",
"//util:test_util",
"@com_google_absl//absl/memory",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "version_test",
size = "small",
srcs = ["core/version_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":version",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "binary_keyset_reader_test",
size = "small",
srcs = ["core/binary_keyset_reader_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":binary_keyset_reader",
"//proto:tink_cc_proto",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "binary_keyset_writer_test",
size = "small",
srcs = ["core/binary_keyset_writer_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":binary_keyset_writer",
"//proto:tink_cc_proto",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "json_keyset_reader_test",
size = "small",
srcs = ["core/json_keyset_reader_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":json_keyset_reader",
"//proto:aes_eax_cc_proto",
"//proto:aes_gcm_cc_proto",
"//proto:tink_cc_proto",
"//util:protobuf_helper",
"//util:test_matchers",
"//util:test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "json_keyset_writer_test",
size = "small",
srcs = ["core/json_keyset_writer_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":json_keyset_reader",
":json_keyset_writer",
"//proto:aes_eax_cc_proto",
"//proto:aes_gcm_cc_proto",
"//proto:tink_cc_proto",
"//util:protobuf_helper",
"//util:test_matchers",
"//util:test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
"@rapidjson",
],
)
cc_test(
name = "config_test",
size = "small",
srcs = ["core/config_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":config",
":mac",
"//proto:config_cc_proto",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "crypto_format_test",
size = "small",
srcs = ["core/crypto_format_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":crypto_format",
"//proto:tink_cc_proto",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "keyset_handle_test",
size = "small",
srcs = ["core/keyset_handle_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":binary_keyset_reader",
":cleartext_keyset_handle",
":config",
":core/key_manager_impl",
":json_keyset_reader",
":json_keyset_writer",
":keyset_handle",
":tink_cc",
"//aead:aead_key_templates",
"//aead:aead_wrapper",
"//aead:aes_gcm_key_manager",
"//config:tink_config",
"//proto:tink_cc_proto",
"//signature:ecdsa_sign_key_manager",
"//signature:signature_key_templates",
"//util:protobuf_helper",
"//util:test_keyset_handle",
"//util:test_matchers",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "key_manager_test",
size = "small",
srcs = ["core/key_manager_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":key_manager",
"//proto:empty_cc_proto",
"//util:status",
"//util:test_matchers",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "keyset_manager_test",
size = "small",
srcs = ["core/keyset_manager_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":config",
":keyset_handle",
":keyset_manager",
"//aead:aead_config",
"//aead:aes_gcm_key_manager",
"//proto:aes_gcm_cc_proto",
"//proto:tink_cc_proto",
"//util:test_keyset_handle",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "cleartext_keyset_handle_test",
size = "small",
srcs = ["core/cleartext_keyset_handle_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":binary_keyset_reader",
":cleartext_keyset_handle",
":keyset_handle",
":keyset_reader",
"//proto:tink_cc_proto",
"//util:test_keyset_handle",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "primitive_set_test",
size = "small",
srcs = ["core/primitive_set_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":crypto_format",
":mac",
":primitive_set",
"//proto:tink_cc_proto",
"//util:protobuf_helper",
"//util:test_matchers",
"//util:test_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "kms_clients_test",
size = "small",
srcs = ["core/kms_clients_test.cc"],
copts = ["-Iexternal/gtest/include"],
deps = [
":aead",
":kms_client",
":kms_clients",
"//util:status",
"//util:statusor",
"//util:test_matchers",
"//util:test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "core/template_util_test",
srcs = ["core/template_util_test.cc"],
deps = [
":core/template_util",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "core/key_type_manager_test",
srcs = ["core/key_type_manager_test.cc"],
deps = [
":aead",
":core/key_type_manager",
"//proto:aes_gcm_cc_proto",
"//subtle",
"//util:secret_data",
"//util:status",
"//util:statusor",
"//util:test_matchers",
"//util:validation",
"@com_google_absl//absl/memory",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "core/key_manager_impl_test",
srcs = ["core/key_manager_impl_test.cc"],
deps = [
":aead",
":core/key_manager_impl",
"//proto:aes_gcm_cc_proto",
"//subtle",
"//util:input_stream_util",
"//util:istream_input_stream",
"//util:secret_data",
"//util:status",
"//util:statusor",
"//util:test_matchers",
"//util:test_util",
"//util:validation",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "core/private_key_manager_impl_test",
srcs = ["core/private_key_manager_impl_test.cc"],
deps = [
":core/key_manager_impl",
":core/private_key_manager_impl",
":core/private_key_type_manager",
":registry",
"//proto:ecdsa_cc_proto",
"//subtle",
"//util:status",
"//util:statusor",
"//util:test_matchers",
"//util:test_util",
"//util:validation",
"@com_google_googletest//:gtest_main",
],
)