1load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") 2 3package(default_visibility = ["//:__subpackages__"]) 4 5licenses(["notice"]) 6 7cc_library( 8 name = "tink_config", 9 srcs = ["tink_config.cc"], 10 hdrs = ["tink_config.h"], 11 include_prefix = "tink/config", 12 visibility = ["//visibility:public"], 13 deps = [ 14 "//:key_manager", 15 "//:registry", 16 "//daead:deterministic_aead_config", 17 "//hybrid:hybrid_config", 18 "//prf:prf_config", 19 "//proto:config_cc_proto", 20 "//signature:signature_config", 21 "//streamingaead:streaming_aead_config", 22 "//util:status", 23 "@com_google_absl//absl/base:core_headers", 24 ], 25) 26 27cc_library( 28 name = "config_util", 29 srcs = ["config_util.cc"], 30 hdrs = ["config_util.h"], 31 include_prefix = "tink/config", 32 deps = ["//proto:config_cc_proto"], 33) 34 35bool_flag( 36 name = "use_only_fips", 37 build_setting_default = False, 38) 39 40cc_library( 41 name = "tink_fips", 42 srcs = ["tink_fips.cc"], 43 hdrs = ["tink_fips.h"], 44 include_prefix = "tink/config", 45 visibility = ["//visibility:public"], 46 deps = [ 47 "//internal:fips_utils", 48 "//internal:registry_impl", 49 "//util:status", 50 "@boringssl//:crypto", 51 "@com_google_absl//absl/base:core_headers", 52 ], 53) 54 55cc_library( 56 name = "global_registry", 57 srcs = ["global_registry.cc"], 58 hdrs = ["global_registry.h"], 59 include_prefix = "tink/config", 60 deps = [ 61 "//:configuration", 62 "//:key_gen_configuration", 63 "//internal:configuration_impl", 64 "//internal:key_gen_configuration_impl", 65 "@com_google_absl//absl/log:check", 66 ], 67) 68 69cc_library( 70 name = "fips_140_2", 71 srcs = ["fips_140_2.cc"], 72 hdrs = ["fips_140_2.h"], 73 include_prefix = "tink/config", 74 visibility = ["//visibility:public"], 75 deps = [ 76 "//:configuration", 77 "//aead:aead_wrapper", 78 "//aead:aes_ctr_hmac_aead_key_manager", 79 "//aead:aes_gcm_key_manager", 80 "//internal:configuration_impl", 81 "//internal:fips_utils", 82 "//mac:hmac_key_manager", 83 "//mac:mac_wrapper", 84 "//mac/internal:chunked_mac_wrapper", 85 "//prf:hmac_prf_key_manager", 86 "//prf:prf_set_wrapper", 87 "//signature:ecdsa_sign_key_manager", 88 "//signature:ecdsa_verify_key_manager", 89 "//signature:public_key_sign_wrapper", 90 "//signature:public_key_verify_wrapper", 91 "//signature:rsa_ssa_pkcs1_sign_key_manager", 92 "//signature:rsa_ssa_pkcs1_verify_key_manager", 93 "//signature:rsa_ssa_pss_sign_key_manager", 94 "//signature:rsa_ssa_pss_verify_key_manager", 95 "@com_google_absl//absl/log:check", 96 ], 97) 98 99cc_library( 100 name = "key_gen_fips_140_2", 101 srcs = ["key_gen_fips_140_2.cc"], 102 hdrs = ["key_gen_fips_140_2.h"], 103 include_prefix = "tink/config", 104 visibility = ["//visibility:public"], 105 deps = [ 106 "//:key_gen_configuration", 107 "//aead:aes_ctr_hmac_aead_key_manager", 108 "//aead:aes_gcm_key_manager", 109 "//internal:fips_utils", 110 "//internal:key_gen_configuration_impl", 111 "//mac:hmac_key_manager", 112 "//prf:hmac_prf_key_manager", 113 "//signature:ecdsa_sign_key_manager", 114 "//signature:ecdsa_verify_key_manager", 115 "//signature:rsa_ssa_pkcs1_sign_key_manager", 116 "//signature:rsa_ssa_pkcs1_verify_key_manager", 117 "//signature:rsa_ssa_pss_sign_key_manager", 118 "//signature:rsa_ssa_pss_verify_key_manager", 119 "@com_google_absl//absl/log:check", 120 ], 121) 122 123cc_library( 124 name = "v0", 125 srcs = ["v0.cc"], 126 hdrs = ["v0.h"], 127 include_prefix = "tink/config", 128 tags = ["requires_boringcrypto_update"], 129 deps = [ 130 "//:configuration", 131 "//aead:aead_wrapper", 132 "//aead:aes_ctr_hmac_aead_key_manager", 133 "//aead:aes_eax_key_manager", 134 "//aead:aes_gcm_key_manager", 135 "//aead:aes_gcm_siv_key_manager", 136 "//aead:xchacha20_poly1305_key_manager", 137 "//daead:aes_siv_key_manager", 138 "//daead:deterministic_aead_wrapper", 139 "//hybrid:ecies_aead_hkdf_private_key_manager", 140 "//hybrid:ecies_aead_hkdf_public_key_manager", 141 "//hybrid:hybrid_decrypt_wrapper", 142 "//hybrid:hybrid_encrypt_wrapper", 143 "//hybrid/internal:hpke_private_key_manager", 144 "//hybrid/internal:hpke_public_key_manager", 145 "//internal:configuration_impl", 146 "//mac:aes_cmac_key_manager", 147 "//mac:hmac_key_manager", 148 "//mac:mac_wrapper", 149 "//mac/internal:chunked_mac_wrapper", 150 "//prf:aes_cmac_prf_key_manager", 151 "//prf:hkdf_prf_key_manager", 152 "//prf:hmac_prf_key_manager", 153 "//prf:prf_set_wrapper", 154 "//signature:ecdsa_sign_key_manager", 155 "//signature:ecdsa_verify_key_manager", 156 "//signature:ed25519_sign_key_manager", 157 "//signature:ed25519_verify_key_manager", 158 "//signature:public_key_sign_wrapper", 159 "//signature:public_key_verify_wrapper", 160 "//signature:rsa_ssa_pkcs1_sign_key_manager", 161 "//signature:rsa_ssa_pkcs1_verify_key_manager", 162 "//signature:rsa_ssa_pss_sign_key_manager", 163 "//signature:rsa_ssa_pss_verify_key_manager", 164 "//streamingaead:aes_ctr_hmac_streaming_key_manager", 165 "//streamingaead:aes_gcm_hkdf_streaming_key_manager", 166 "//streamingaead:streaming_aead_wrapper", 167 "@com_google_absl//absl/log:check", 168 ], 169) 170 171cc_library( 172 name = "key_gen_v0", 173 srcs = ["key_gen_v0.cc"], 174 hdrs = ["key_gen_v0.h"], 175 include_prefix = "tink/config", 176 tags = ["requires_boringcrypto_update"], 177 deps = [ 178 "//:configuration", 179 "//:key_gen_configuration", 180 "//aead:aes_ctr_hmac_aead_key_manager", 181 "//aead:aes_eax_key_manager", 182 "//aead:aes_gcm_key_manager", 183 "//aead:aes_gcm_siv_key_manager", 184 "//aead:xchacha20_poly1305_key_manager", 185 "//daead:aes_siv_key_manager", 186 "//hybrid:ecies_aead_hkdf_private_key_manager", 187 "//hybrid:ecies_aead_hkdf_public_key_manager", 188 "//hybrid/internal:hpke_private_key_manager", 189 "//hybrid/internal:hpke_public_key_manager", 190 "//internal:key_gen_configuration_impl", 191 "//mac:aes_cmac_key_manager", 192 "//mac:hmac_key_manager", 193 "//prf:aes_cmac_prf_key_manager", 194 "//prf:hkdf_prf_key_manager", 195 "//prf:hmac_prf_key_manager", 196 "//signature:ecdsa_sign_key_manager", 197 "//signature:ecdsa_verify_key_manager", 198 "//signature:ed25519_sign_key_manager", 199 "//signature:ed25519_verify_key_manager", 200 "//signature:rsa_ssa_pkcs1_sign_key_manager", 201 "//signature:rsa_ssa_pkcs1_verify_key_manager", 202 "//signature:rsa_ssa_pss_sign_key_manager", 203 "//signature:rsa_ssa_pss_verify_key_manager", 204 "//streamingaead:aes_ctr_hmac_streaming_key_manager", 205 "//streamingaead:aes_gcm_hkdf_streaming_key_manager", 206 "@com_google_absl//absl/log:check", 207 ], 208) 209 210# tests 211 212cc_test( 213 name = "tink_config_test", 214 size = "small", 215 srcs = ["tink_config_test.cc"], 216 deps = [ 217 ":tink_config", 218 "//:aead", 219 "//:deterministic_aead", 220 "//:hybrid_decrypt", 221 "//:hybrid_encrypt", 222 "//:mac", 223 "//:registry", 224 "//:streaming_aead", 225 "//:tink_cc", 226 "//aead:aes_gcm_key_manager", 227 "//util:status", 228 "//util:test_matchers", 229 "@com_google_absl//absl/status", 230 "@com_google_googletest//:gtest_main", 231 ], 232) 233 234cc_test( 235 name = "config_util_test", 236 size = "small", 237 srcs = ["config_util_test.cc"], 238 deps = [ 239 ":config_util", 240 "@com_google_googletest//:gtest_main", 241 ], 242) 243 244cc_test( 245 name = "tink_fips_test", 246 size = "small", 247 srcs = ["tink_fips_test.cc"], 248 tags = ["fips"], 249 deps = [ 250 ":tink_fips", 251 "//:registry", 252 "//aead:aead_config", 253 "//internal:fips_utils", 254 "//util:status", 255 "//util:test_matchers", 256 "@boringssl//:crypto", 257 "@com_google_absl//absl/status", 258 "@com_google_googletest//:gtest_main", 259 ], 260) 261 262cc_test( 263 name = "global_registry_test", 264 srcs = ["global_registry_test.cc"], 265 deps = [ 266 ":global_registry", 267 "//:keyset_handle", 268 "//proto:aes_gcm_cc_proto", 269 "//proto:tink_cc_proto", 270 "//util:test_matchers", 271 "@com_google_absl//absl/status", 272 "@com_google_googletest//:gtest_main", 273 ], 274) 275 276cc_test( 277 name = "fips_140_2_test", 278 srcs = ["fips_140_2_test.cc"], 279 deps = [ 280 ":fips_140_2", 281 ":key_gen_fips_140_2", 282 "//:aead", 283 "//:chunked_mac", 284 "//:keyset_handle", 285 "//:mac", 286 "//:public_key_sign", 287 "//:public_key_verify", 288 "//aead:aead_key_templates", 289 "//aead:aes_ctr_hmac_aead_key_manager", 290 "//aead:aes_gcm_key_manager", 291 "//internal:configuration_impl", 292 "//internal:fips_utils", 293 "//internal:key_type_info_store", 294 "//mac:aes_cmac_key_manager", 295 "//mac:hmac_key_manager", 296 "//prf:hmac_prf_key_manager", 297 "//signature:ecdsa_verify_key_manager", 298 "//signature:rsa_ssa_pkcs1_verify_key_manager", 299 "//signature:rsa_ssa_pss_verify_key_manager", 300 "//util:test_matchers", 301 "@com_google_googletest//:gtest_main", 302 ], 303) 304 305cc_test( 306 name = "key_gen_fips_140_2_test", 307 srcs = ["key_gen_fips_140_2_test.cc"], 308 deps = [ 309 ":key_gen_fips_140_2", 310 "//:keyset_handle", 311 "//aead:aead_key_templates", 312 "//aead:aes_ctr_hmac_aead_key_manager", 313 "//aead:aes_gcm_key_manager", 314 "//internal:fips_utils", 315 "//internal:key_gen_configuration_impl", 316 "//mac:aes_cmac_key_manager", 317 "//mac:hmac_key_manager", 318 "//prf:hmac_prf_key_manager", 319 "//signature:ecdsa_verify_key_manager", 320 "//signature:rsa_ssa_pkcs1_verify_key_manager", 321 "//signature:rsa_ssa_pss_verify_key_manager", 322 "//util:test_matchers", 323 "@com_google_googletest//:gtest_main", 324 ], 325) 326 327cc_test( 328 name = "v0_test", 329 srcs = ["v0_test.cc"], 330 tags = ["requires_boringcrypto_update"], 331 deps = [ 332 ":key_gen_v0", 333 ":v0", 334 "//:aead", 335 "//:chunked_mac", 336 "//:configuration", 337 "//:deterministic_aead", 338 "//:hybrid_decrypt", 339 "//:hybrid_encrypt", 340 "//:keyset_handle", 341 "//:mac", 342 "//:public_key_sign", 343 "//:public_key_verify", 344 "//:streaming_aead", 345 "//aead:aead_key_templates", 346 "//aead:aes_ctr_hmac_aead_key_manager", 347 "//aead:aes_eax_key_manager", 348 "//aead:aes_gcm_key_manager", 349 "//aead:aes_gcm_siv_key_manager", 350 "//aead:xchacha20_poly1305_key_manager", 351 "//daead:aes_siv_key_manager", 352 "//hybrid:ecies_aead_hkdf_public_key_manager", 353 "//hybrid/internal:hpke_public_key_manager", 354 "//internal:configuration_impl", 355 "//internal:keyset_wrapper_store", 356 "//mac:aes_cmac_key_manager", 357 "//mac:hmac_key_manager", 358 "//prf:aes_cmac_prf_key_manager", 359 "//prf:hkdf_prf_key_manager", 360 "//prf:hmac_prf_key_manager", 361 "//prf:prf_set", 362 "//signature:ecdsa_verify_key_manager", 363 "//signature:ed25519_verify_key_manager", 364 "//signature:rsa_ssa_pkcs1_verify_key_manager", 365 "//signature:rsa_ssa_pss_verify_key_manager", 366 "//streamingaead:aes_ctr_hmac_streaming_key_manager", 367 "//streamingaead:aes_gcm_hkdf_streaming_key_manager", 368 "//util:test_matchers", 369 "@com_google_googletest//:gtest_main", 370 ], 371) 372 373cc_test( 374 name = "key_gen_v0_test", 375 srcs = ["key_gen_v0_test.cc"], 376 tags = ["requires_boringcrypto_update"], 377 deps = [ 378 ":key_gen_v0", 379 "//:key_gen_configuration", 380 "//:keyset_handle", 381 "//aead:aead_key_templates", 382 "//aead:aes_ctr_hmac_aead_key_manager", 383 "//aead:aes_eax_key_manager", 384 "//aead:aes_gcm_key_manager", 385 "//aead:aes_gcm_siv_key_manager", 386 "//aead:xchacha20_poly1305_key_manager", 387 "//daead:aes_siv_key_manager", 388 "//hybrid:ecies_aead_hkdf_public_key_manager", 389 "//hybrid/internal:hpke_public_key_manager", 390 "//internal:key_gen_configuration_impl", 391 "//mac:aes_cmac_key_manager", 392 "//mac:hmac_key_manager", 393 "//prf:aes_cmac_prf_key_manager", 394 "//prf:hkdf_prf_key_manager", 395 "//prf:hmac_prf_key_manager", 396 "//signature:ecdsa_verify_key_manager", 397 "//signature:ed25519_verify_key_manager", 398 "//signature:rsa_ssa_pkcs1_verify_key_manager", 399 "//signature:rsa_ssa_pss_verify_key_manager", 400 "//streamingaead:aes_ctr_hmac_streaming_key_manager", 401 "//streamingaead:aes_gcm_hkdf_streaming_key_manager", 402 "//util:test_matchers", 403 "@com_google_googletest//:gtest_main", 404 ], 405) 406