xref: /aosp_15_r20/external/tink/cc/config/BUILD.bazel (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
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