package(default_visibility = ["//:__subpackages__"]) licenses(["notice"]) cc_library( name = "hybrid_config", srcs = ["hybrid_config.cc"], hdrs = ["hybrid_config.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:public"], deps = [ ":ecies_aead_hkdf_private_key_manager", ":ecies_aead_hkdf_public_key_manager", ":hybrid_decrypt_wrapper", ":hybrid_encrypt_wrapper", "//:registry", "//aead:aead_config", "//config:config_util", "//config:tink_fips", "//proto:config_cc_proto", "//util:status", "@com_google_absl//absl/base:core_headers", "@com_google_absl//absl/memory", ], ) cc_library( name = "hpke_config", srcs = ["hpke_config.cc"], hdrs = ["hpke_config.h"], include_prefix = "tink/hybrid", tags = ["requires_boringcrypto_update"], visibility = ["//visibility:public"], deps = [ ":hybrid_decrypt_wrapper", ":hybrid_encrypt_wrapper", "//:registry", "//aead:aead_config", "//config:tink_fips", "//hybrid/internal:hpke_private_key_manager", "//hybrid/internal:hpke_public_key_manager", "//util:status", ], ) cc_library( name = "hybrid_decrypt_wrapper", srcs = ["hybrid_decrypt_wrapper.cc"], hdrs = ["hybrid_decrypt_wrapper.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:public"], deps = [ "//:crypto_format", "//:hybrid_decrypt", "//:primitive_set", "//:primitive_wrapper", "//internal:monitoring_util", "//internal:registry_impl", "//internal:util", "//monitoring", "//proto:tink_cc_proto", "//util:status", "//util:statusor", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", ], ) cc_library( name = "hybrid_encrypt_wrapper", srcs = ["hybrid_encrypt_wrapper.cc"], hdrs = ["hybrid_encrypt_wrapper.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:public"], deps = [ "//:crypto_format", "//:hybrid_encrypt", "//:primitive_set", "//:primitive_wrapper", "//internal:monitoring_util", "//internal:registry_impl", "//internal:util", "//monitoring", "//proto:tink_cc_proto", "//util:status", "//util:statusor", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", ], ) cc_library( name = "hybrid_decrypt_factory", srcs = ["hybrid_decrypt_factory.cc"], hdrs = ["hybrid_decrypt_factory.h"], include_prefix = "tink/hybrid", deps = [ ":hybrid_decrypt_wrapper", "//:hybrid_decrypt", "//:key_manager", "//:keyset_handle", "//:registry", "//util:status", "//util:statusor", "@com_google_absl//absl/base:core_headers", ], ) cc_library( name = "hybrid_encrypt_factory", srcs = ["hybrid_encrypt_factory.cc"], hdrs = ["hybrid_encrypt_factory.h"], include_prefix = "tink/hybrid", deps = [ ":hybrid_encrypt_wrapper", "//:hybrid_encrypt", "//:key_manager", "//:keyset_handle", "//:registry", "//util:status", "//util:statusor", "@com_google_absl//absl/base:core_headers", ], ) cc_library( name = "hybrid_key_templates", srcs = ["hybrid_key_templates.cc"], hdrs = ["hybrid_key_templates.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:public"], deps = [ "//aead:aead_key_templates", "//daead:deterministic_aead_key_templates", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//proto:hpke_cc_proto", "//proto:tink_cc_proto", "@com_google_absl//absl/strings", ], ) cc_library( name = "ecies_aead_hkdf_dem_helper", srcs = ["ecies_aead_hkdf_dem_helper.cc"], hdrs = ["ecies_aead_hkdf_dem_helper.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:private"], deps = [ "//:aead", "//:deterministic_aead", "//aead:aes_ctr_hmac_aead_key_manager", "//daead/subtle:aead_or_daead", "//proto:aes_ctr_cc_proto", "//proto:aes_ctr_hmac_aead_cc_proto", "//proto:aes_gcm_cc_proto", "//proto:aes_siv_cc_proto", "//proto:common_cc_proto", "//proto:hmac_cc_proto", "//proto:tink_cc_proto", "//proto:xchacha20_poly1305_cc_proto", "//subtle:aes_gcm_boringssl", "//subtle:aes_siv_boringssl", "//subtle:xchacha20_poly1305_boringssl", "//util:errors", "//util:protobuf_helper", "//util:secret_data", "//util:statusor", "@com_google_absl//absl/memory", "@com_google_absl//absl/status", "@com_google_absl//absl/status:statusor", "@com_google_absl//absl/strings", ], ) cc_library( name = "ecies_aead_hkdf_hybrid_decrypt", srcs = ["ecies_aead_hkdf_hybrid_decrypt.cc"], hdrs = ["ecies_aead_hkdf_hybrid_decrypt.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:private"], deps = [ ":ecies_aead_hkdf_dem_helper", "//:hybrid_decrypt", "//internal:ec_util", "//proto:ecies_aead_hkdf_cc_proto", "//subtle:ecies_hkdf_recipient_kem_boringssl", "//util:enums", "//util:secret_data", "//util:status", "//util:statusor", "@com_google_absl//absl/memory", "@com_google_absl//absl/status", ], ) cc_library( name = "ecies_aead_hkdf_hybrid_encrypt", srcs = ["ecies_aead_hkdf_hybrid_encrypt.cc"], hdrs = ["ecies_aead_hkdf_hybrid_encrypt.h"], include_prefix = "tink/hybrid", visibility = ["//visibility:private"], deps = [ ":ecies_aead_hkdf_dem_helper", "//:aead", "//:hybrid_encrypt", "//proto:ecies_aead_hkdf_cc_proto", "//subtle:ecies_hkdf_sender_kem_boringssl", "//util:enums", "//util:status", "//util:statusor", "@com_google_absl//absl/memory", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", ], ) cc_library( name = "ecies_aead_hkdf_private_key_manager", srcs = ["ecies_aead_hkdf_private_key_manager.cc"], hdrs = ["ecies_aead_hkdf_private_key_manager.h"], include_prefix = "tink/hybrid", deps = [ ":ecies_aead_hkdf_hybrid_decrypt", ":ecies_aead_hkdf_public_key_manager", "//:core/key_type_manager", "//:core/private_key_type_manager", "//:hybrid_decrypt", "//:key_manager", "//internal:ec_util", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//util:constants", "//util:enums", "//util:errors", "//util:protobuf_helper", "//util:secret_data", "//util:status", "//util:statusor", "//util:validation", "@com_google_absl//absl/memory", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", ], ) cc_library( name = "ecies_aead_hkdf_public_key_manager", srcs = ["ecies_aead_hkdf_public_key_manager.cc"], hdrs = ["ecies_aead_hkdf_public_key_manager.h"], include_prefix = "tink/hybrid", deps = [ ":ecies_aead_hkdf_hybrid_encrypt", "//:core/key_type_manager", "//:hybrid_encrypt", "//:key_manager", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//util:constants", "//util:errors", "//util:protobuf_helper", "//util:status", "//util:statusor", "//util:validation", "@com_google_absl//absl/memory", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", ], ) cc_library( name = "failing_hybrid", srcs = ["failing_hybrid.cc"], hdrs = ["failing_hybrid.h"], include_prefix = "tink/hybrid", deps = [ "//:hybrid_decrypt", "//:hybrid_encrypt", "@com_google_absl//absl/strings", ], ) cc_library( name = "hybrid_parameters", hdrs = ["hybrid_parameters.h"], include_prefix = "tink/hybrid", deps = ["//:parameters"], ) cc_library( name = "hybrid_public_key", hdrs = ["hybrid_public_key.h"], include_prefix = "tink/hybrid", deps = [ ":hybrid_parameters", "//:key", "@com_google_absl//absl/strings", ], ) cc_library( name = "hybrid_private_key", hdrs = ["hybrid_private_key.h"], include_prefix = "tink/hybrid", deps = [ ":hybrid_parameters", ":hybrid_public_key", "//:key", "//:private_key", "@com_google_absl//absl/strings", ], ) # tests cc_test( name = "hybrid_config_test", size = "small", srcs = ["hybrid_config_test.cc"], tags = ["fips"], deps = [ ":ecies_aead_hkdf_private_key_manager", ":ecies_aead_hkdf_public_key_manager", ":hybrid_config", ":hybrid_key_templates", "//:hybrid_decrypt", "//:hybrid_encrypt", "//:keyset_handle", "//:registry", "//internal:fips_utils", "//util:status", "//util:test_matchers", "//util:test_util", "@boringssl//:crypto", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hpke_config_test", size = "small", srcs = ["hpke_config_test.cc"], tags = ["requires_boringcrypto_update"], deps = [ ":hpke_config", ":hybrid_key_templates", "//:hybrid_decrypt", "//:hybrid_encrypt", "//:keyset_handle", "//:registry", "//config:tink_fips", "//hybrid/internal:hpke_private_key_manager", "//hybrid/internal:hpke_public_key_manager", "//util:status", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hybrid_decrypt_wrapper_test", size = "small", srcs = ["hybrid_decrypt_wrapper_test.cc"], deps = [ ":failing_hybrid", ":hybrid_decrypt_wrapper", "//:hybrid_decrypt", "//:hybrid_encrypt", "//:primitive_set", "//internal:registry_impl", "//monitoring", "//monitoring:monitoring_client_mocks", "//proto:tink_cc_proto", "//util:status", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/strings", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hybrid_encrypt_wrapper_test", size = "small", srcs = ["hybrid_encrypt_wrapper_test.cc"], deps = [ ":failing_hybrid", ":hybrid_encrypt_wrapper", "//:hybrid_encrypt", "//:primitive_set", "//internal:registry_impl", "//monitoring", "//monitoring:monitoring_client_mocks", "//proto:tink_cc_proto", "//util:status", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hybrid_decrypt_factory_test", size = "small", srcs = ["hybrid_decrypt_factory_test.cc"], deps = [ ":ecies_aead_hkdf_public_key_manager", ":hybrid_config", ":hybrid_decrypt_factory", "//:crypto_format", "//:hybrid_decrypt", "//:hybrid_encrypt", "//:keyset_handle", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//util:status", "//util:test_keyset_handle", "//util:test_util", "@com_google_absl//absl/memory", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hybrid_encrypt_factory_test", size = "small", srcs = ["hybrid_encrypt_factory_test.cc"], deps = [ ":hybrid_config", ":hybrid_encrypt_factory", "//:crypto_format", "//:hybrid_encrypt", "//:keyset_handle", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//util:status", "//util:test_keyset_handle", "//util:test_util", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "hybrid_key_templates_test", size = "small", srcs = ["hybrid_key_templates_test.cc"], deps = [ ":ecies_aead_hkdf_private_key_manager", ":hybrid_config", ":hybrid_key_templates", "//aead:aead_key_templates", "//daead:deterministic_aead_key_templates", "//hybrid/internal:hpke_private_key_manager", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//proto:hpke_cc_proto", "//proto:tink_cc_proto", "//util:test_matchers", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "ecies_aead_hkdf_dem_helper_test", size = "small", srcs = ["ecies_aead_hkdf_dem_helper_test.cc"], deps = [ ":ecies_aead_hkdf_dem_helper", "//aead:aes_gcm_key_manager", "//daead:aes_siv_key_manager", "//util:secret_data", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "ecies_aead_hkdf_hybrid_decrypt_test", size = "large", srcs = ["ecies_aead_hkdf_hybrid_decrypt_test.cc"], deps = [ ":ecies_aead_hkdf_hybrid_decrypt", ":ecies_aead_hkdf_hybrid_encrypt", "//:hybrid_decrypt", "//aead:aes_ctr_hmac_aead_key_manager", "//aead:aes_gcm_key_manager", "//aead:xchacha20_poly1305_key_manager", "//daead:aes_siv_key_manager", "//internal:ec_util", "//internal:ssl_util", "//proto:aes_gcm_cc_proto", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//subtle:random", "//util:enums", "//util:statusor", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/memory", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "ecies_aead_hkdf_hybrid_encrypt_test", size = "small", srcs = ["ecies_aead_hkdf_hybrid_encrypt_test.cc"], deps = [ ":ecies_aead_hkdf_hybrid_encrypt", "//:hybrid_encrypt", "//aead:aes_gcm_key_manager", "//internal:ec_util", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//util:enums", "//util:statusor", "//util:test_util", "@com_google_absl//absl/memory", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "ecies_aead_hkdf_private_key_manager_test", size = "small", srcs = ["ecies_aead_hkdf_private_key_manager_test.cc"], deps = [ ":ecies_aead_hkdf_private_key_manager", ":ecies_aead_hkdf_public_key_manager", ":hybrid_key_templates", "//:hybrid_decrypt", "//:registry", "//aead:aead_key_templates", "//aead:aes_ctr_hmac_aead_key_manager", "//aead:aes_gcm_key_manager", "//proto:aes_eax_cc_proto", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//subtle:hybrid_test_util", "//util:status", "//util:statusor", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "ecies_aead_hkdf_public_key_manager_test", size = "small", srcs = ["ecies_aead_hkdf_public_key_manager_test.cc"], deps = [ ":ecies_aead_hkdf_private_key_manager", ":ecies_aead_hkdf_public_key_manager", "//:hybrid_encrypt", "//:registry", "//aead:aead_key_templates", "//aead:aes_gcm_key_manager", "//proto:aes_eax_cc_proto", "//proto:common_cc_proto", "//proto:ecies_aead_hkdf_cc_proto", "//proto:tink_cc_proto", "//util:status", "//util:statusor", "//util:test_matchers", "//util:test_util", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], ) cc_test( name = "failing_hybrid_test", srcs = ["failing_hybrid_test.cc"], deps = [ ":failing_hybrid", "//util:test_matchers", "@com_google_absl//absl/status", "@com_google_googletest//:gtest_main", ], )