1# package containing hybrid encryption implementations of PQC primitives 2 3package(default_visibility = ["//:__subpackages__"]) 4 5licenses(["notice"]) 6 7cc_library( 8 name = "cecpq2_hybrid_config", 9 srcs = ["cecpq2_hybrid_config.cc"], 10 hdrs = ["cecpq2_hybrid_config.h"], 11 include_prefix = "tink/experimental/pqcrypto/kem/", 12 deps = [ 13 ":cecpq2_aead_hkdf_private_key_manager", 14 ":cecpq2_aead_hkdf_public_key_manager", 15 "//:registry", 16 "//aead:aead_config", 17 "//config:tink_fips", 18 "//hybrid:hybrid_decrypt_wrapper", 19 "//hybrid:hybrid_encrypt_wrapper", 20 "//util:status", 21 "@com_google_absl//absl/base:core_headers", 22 "@com_google_absl//absl/memory", 23 ], 24) 25 26cc_library( 27 name = "cecpq2_hybrid_key_templates", 28 srcs = ["cecpq2_hybrid_key_templates.cc"], 29 hdrs = ["cecpq2_hybrid_key_templates.h"], 30 include_prefix = "tink/experimental/pqcrypto/kem/", 31 deps = [ 32 "//aead:aead_key_templates", 33 "//daead:deterministic_aead_key_templates", 34 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 35 "//proto:common_cc_proto", 36 "//proto:tink_cc_proto", 37 "@com_google_absl//absl/strings", 38 ], 39) 40 41cc_library( 42 name = "cecpq2_aead_hkdf_dem_helper", 43 srcs = ["cecpq2_aead_hkdf_dem_helper.cc"], 44 hdrs = ["cecpq2_aead_hkdf_dem_helper.h"], 45 include_prefix = "tink/experimental/pqcrypto/kem/", 46 deps = [ 47 "//:aead", 48 "//:deterministic_aead", 49 "//:registry", 50 "//daead/subtle:aead_or_daead", 51 "//proto:tink_cc_proto", 52 "//util:errors", 53 "//util:istream_input_stream", 54 "//util:protobuf_helper", 55 "//util:secret_data", 56 "//util:statusor", 57 "@com_google_absl//absl/memory", 58 "@com_google_absl//absl/status", 59 ], 60) 61 62cc_library( 63 name = "cecpq2_aead_hkdf_private_key_manager", 64 srcs = ["cecpq2_aead_hkdf_private_key_manager.cc"], 65 hdrs = ["cecpq2_aead_hkdf_private_key_manager.h"], 66 include_prefix = "tink/experimental/pqcrypto/kem/", 67 deps = [ 68 ":cecpq2_aead_hkdf_dem_helper", 69 ":cecpq2_aead_hkdf_public_key_manager", 70 "//:core/key_type_manager", 71 "//:core/private_key_type_manager", 72 "//:hybrid_decrypt", 73 "//experimental/pqcrypto/kem/subtle:cecpq2_aead_hkdf_hybrid_decrypt", 74 "//experimental/pqcrypto/kem/subtle:cecpq2_subtle_boringssl_util", 75 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 76 "//proto:tink_cc_proto", 77 "//subtle:random", 78 "//subtle:subtle_util", 79 "//util:enums", 80 "//util:secret_data", 81 "//util:status", 82 "//util:statusor", 83 "//util:validation", 84 "@boringssl//:crypto", 85 "@com_google_absl//absl/memory", 86 "@com_google_absl//absl/status", 87 "@com_google_absl//absl/strings", 88 ], 89) 90 91cc_library( 92 name = "cecpq2_aead_hkdf_public_key_manager", 93 srcs = ["cecpq2_aead_hkdf_public_key_manager.cc"], 94 hdrs = ["cecpq2_aead_hkdf_public_key_manager.h"], 95 include_prefix = "tink/experimental/pqcrypto/kem/", 96 deps = [ 97 ":cecpq2_aead_hkdf_dem_helper", 98 "//:core/key_type_manager", 99 "//:hybrid_encrypt", 100 "//experimental/pqcrypto/kem/subtle:cecpq2_aead_hkdf_hybrid_encrypt", 101 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 102 "//proto:common_cc_proto", 103 "//proto:tink_cc_proto", 104 "//util:enums", 105 "//util:errors", 106 "//util:protobuf_helper", 107 "//util:status", 108 "//util:statusor", 109 "//util:validation", 110 "@com_google_absl//absl/memory", 111 "@com_google_absl//absl/status", 112 "@com_google_absl//absl/strings", 113 ], 114) 115 116# tests 117 118cc_test( 119 name = "cecpq2_hybrid_config_test", 120 size = "small", 121 srcs = ["cecpq2_hybrid_config_test.cc"], 122 deps = [ 123 ":cecpq2_aead_hkdf_private_key_manager", 124 ":cecpq2_aead_hkdf_public_key_manager", 125 ":cecpq2_hybrid_config", 126 ":cecpq2_hybrid_key_templates", 127 "//:hybrid_decrypt", 128 "//:hybrid_encrypt", 129 "//:keyset_handle", 130 "//:registry", 131 "//config:tink_fips", 132 "//util:status", 133 "//util:test_matchers", 134 "//util:test_util", 135 "@com_google_absl//absl/status", 136 "@com_google_googletest//:gtest_main", 137 ], 138) 139 140cc_test( 141 name = "cecpq2_hybrid_key_templates_test", 142 size = "small", 143 srcs = ["cecpq2_hybrid_key_templates_test.cc"], 144 deps = [ 145 ":cecpq2_aead_hkdf_private_key_manager", 146 ":cecpq2_hybrid_config", 147 ":cecpq2_hybrid_key_templates", 148 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 149 "//util:test_matchers", 150 "@com_google_googletest//:gtest_main", 151 ], 152) 153 154cc_test( 155 name = "cecpq2_aead_hkdf_dem_helper_test", 156 size = "small", 157 srcs = ["cecpq2_aead_hkdf_dem_helper_test.cc"], 158 deps = [ 159 ":cecpq2_aead_hkdf_dem_helper", 160 "//:registry", 161 "//aead:aes_gcm_key_manager", 162 "//aead:xchacha20_poly1305_key_manager", 163 "//config:tink_config", 164 "//daead:aes_siv_key_manager", 165 "//util:secret_data", 166 "//util:test_matchers", 167 "//util:test_util", 168 "@com_google_absl//absl/status", 169 "@com_google_googletest//:gtest_main", 170 ], 171) 172 173cc_test( 174 name = "cecpq2_aead_hkdf_private_key_manager_test", 175 srcs = ["cecpq2_aead_hkdf_private_key_manager_test.cc"], 176 deps = [ 177 ":cecpq2_aead_hkdf_private_key_manager", 178 ":cecpq2_aead_hkdf_public_key_manager", 179 "//:hybrid_decrypt", 180 "//:registry", 181 "//aead:aead_key_templates", 182 "//aead:aes_ctr_hmac_aead_key_manager", 183 "//aead:aes_gcm_key_manager", 184 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 185 "//proto:aes_eax_cc_proto", 186 "//proto:common_cc_proto", 187 "//proto:tink_cc_proto", 188 "//util:status", 189 "//util:statusor", 190 "//util:test_matchers", 191 "//util:test_util", 192 "@com_google_absl//absl/status", 193 "@com_google_googletest//:gtest_main", 194 ], 195) 196 197cc_test( 198 name = "cecpq2_aead_hkdf_public_key_manager_test", 199 srcs = ["cecpq2_aead_hkdf_public_key_manager_test.cc"], 200 deps = [ 201 ":cecpq2_aead_hkdf_private_key_manager", 202 ":cecpq2_aead_hkdf_public_key_manager", 203 "//:hybrid_encrypt", 204 "//:registry", 205 "//aead:aead_key_templates", 206 "//aead:aes_gcm_key_manager", 207 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 208 "//proto:aes_eax_cc_proto", 209 "//proto:common_cc_proto", 210 "//proto:tink_cc_proto", 211 "//util:status", 212 "//util:statusor", 213 "//util:test_matchers", 214 "//util:test_util", 215 "@com_google_absl//absl/status", 216 "@com_google_googletest//:gtest_main", 217 ], 218) 219