xref: /aosp_15_r20/external/tink/cc/mac/BUILD.bazel (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1package(default_visibility = ["//:__subpackages__"])
2
3licenses(["notice"])
4
5cc_library(
6    name = "mac_wrapper",
7    srcs = ["mac_wrapper.cc"],
8    hdrs = ["mac_wrapper.h"],
9    include_prefix = "tink/mac",
10    deps = [
11        "//:crypto_format",
12        "//:mac",
13        "//:primitive_set",
14        "//:primitive_wrapper",
15        "//internal:monitoring_util",
16        "//internal:registry_impl",
17        "//internal:util",
18        "//monitoring",
19        "//proto:tink_cc_proto",
20        "//util:status",
21        "//util:statusor",
22        "@com_google_absl//absl/status",
23        "@com_google_absl//absl/strings",
24    ],
25)
26
27cc_library(
28    name = "mac_config",
29    srcs = ["mac_config.cc"],
30    hdrs = ["mac_config.h"],
31    include_prefix = "tink/mac",
32    visibility = ["//visibility:public"],
33    deps = [
34        ":aes_cmac_key_manager",
35        ":aes_cmac_proto_serialization",
36        ":hmac_key_manager",
37        ":hmac_proto_serialization",
38        ":mac_wrapper",
39        "//:registry",
40        "//config:config_util",
41        "//config:tink_fips",
42        "//mac/internal:chunked_mac_wrapper",
43        "//proto:config_cc_proto",
44        "//util:status",
45        "@com_google_absl//absl/base:core_headers",
46        "@com_google_absl//absl/memory",
47    ],
48)
49
50cc_library(
51    name = "mac_factory",
52    srcs = ["mac_factory.cc"],
53    hdrs = ["mac_factory.h"],
54    include_prefix = "tink/mac",
55    deps = [
56        ":mac_wrapper",
57        "//:key_manager",
58        "//:keyset_handle",
59        "//:mac",
60        "//:registry",
61        "//util:status",
62        "//util:statusor",
63        "@com_google_absl//absl/base:core_headers",
64    ],
65)
66
67cc_library(
68    name = "mac_key_templates",
69    srcs = ["mac_key_templates.cc"],
70    hdrs = ["mac_key_templates.h"],
71    include_prefix = "tink/mac",
72    visibility = ["//visibility:public"],
73    deps = [
74        "//proto:aes_cmac_cc_proto",
75        "//proto:common_cc_proto",
76        "//proto:hmac_cc_proto",
77        "//proto:tink_cc_proto",
78    ],
79)
80
81cc_library(
82    name = "aes_cmac_key_manager",
83    hdrs = ["aes_cmac_key_manager.h"],
84    include_prefix = "tink/mac",
85    deps = [
86        "//:chunked_mac",
87        "//:core/key_type_manager",
88        "//:key_manager",
89        "//:mac",
90        "//mac/internal:chunked_mac_impl",
91        "//proto:aes_cmac_cc_proto",
92        "//proto:tink_cc_proto",
93        "//subtle:aes_cmac_boringssl",
94        "//subtle:random",
95        "//util:constants",
96        "//util:errors",
97        "//util:protobuf_helper",
98        "//util:secret_data",
99        "//util:status",
100        "//util:statusor",
101        "//util:validation",
102        "@com_google_absl//absl/memory",
103        "@com_google_absl//absl/status",
104        "@com_google_absl//absl/strings",
105    ],
106)
107
108cc_library(
109    name = "hmac_key_manager",
110    srcs = ["hmac_key_manager.cc"],
111    hdrs = ["hmac_key_manager.h"],
112    include_prefix = "tink/mac",
113    deps = [
114        "//:chunked_mac",
115        "//:core/key_type_manager",
116        "//:mac",
117        "//mac/internal:chunked_mac_impl",
118        "//proto:common_cc_proto",
119        "//proto:hmac_cc_proto",
120        "//proto:tink_cc_proto",
121        "//subtle:hmac_boringssl",
122        "//subtle:random",
123        "//util:constants",
124        "//util:enums",
125        "//util:errors",
126        "//util:input_stream_util",
127        "//util:protobuf_helper",
128        "//util:secret_data",
129        "//util:status",
130        "//util:statusor",
131        "//util:validation",
132        "@com_google_absl//absl/memory",
133        "@com_google_absl//absl/status",
134        "@com_google_absl//absl/strings",
135    ],
136)
137
138cc_library(
139    name = "mac_parameters",
140    hdrs = ["mac_parameters.h"],
141    include_prefix = "tink/mac",
142    deps = ["//:parameters"],
143)
144
145cc_library(
146    name = "mac_key",
147    hdrs = ["mac_key.h"],
148    include_prefix = "tink/mac",
149    deps = [
150        ":mac_parameters",
151        "//:key",
152        "//util:statusor",
153    ],
154)
155
156cc_library(
157    name = "failing_mac",
158    testonly = 1,
159    srcs = ["failing_mac.cc"],
160    hdrs = ["failing_mac.h"],
161    include_prefix = "tink/mac",
162    visibility = ["//visibility:public"],
163    deps = [
164        "//:mac",
165        "@com_google_absl//absl/strings",
166    ],
167)
168
169cc_library(
170    name = "aes_cmac_parameters",
171    srcs = ["aes_cmac_parameters.cc"],
172    hdrs = ["aes_cmac_parameters.h"],
173    include_prefix = "tink/mac",
174    deps = [
175        ":mac_parameters",
176        "//:crypto_format",
177        "//internal:util",
178        "//util:status",
179        "//util:statusor",
180        "@com_google_absl//absl/log",
181    ],
182)
183
184cc_library(
185    name = "aes_cmac_key",
186    srcs = ["aes_cmac_key.cc"],
187    hdrs = ["aes_cmac_key.h"],
188    include_prefix = "tink/mac",
189    deps = [
190        ":aes_cmac_parameters",
191        ":mac_key",
192        "//:partial_key_access_token",
193        "//:restricted_data",
194        "//subtle:subtle_util",
195        "//util:status",
196        "//util:statusor",
197        "@boringssl//:crypto",
198        "@com_google_absl//absl/base:core_headers",
199        "@com_google_absl//absl/strings",
200        "@com_google_absl//absl/strings:str_format",
201        "@com_google_absl//absl/types:optional",
202    ],
203)
204
205cc_library(
206    name = "aes_cmac_proto_serialization",
207    srcs = ["aes_cmac_proto_serialization.cc"],
208    hdrs = ["aes_cmac_proto_serialization.h"],
209    include_prefix = "tink/mac",
210    deps = [
211        ":aes_cmac_key",
212        ":aes_cmac_parameters",
213        "//:partial_key_access",
214        "//:restricted_data",
215        "//:secret_key_access_token",
216        "//internal:key_parser",
217        "//internal:key_serializer",
218        "//internal:mutable_serialization_registry",
219        "//internal:parameters_parser",
220        "//internal:parameters_serializer",
221        "//internal:proto_key_serialization",
222        "//internal:proto_parameters_serialization",
223        "//proto:aes_cmac_cc_proto",
224        "//proto:tink_cc_proto",
225        "//util:status",
226        "//util:statusor",
227        "@com_google_absl//absl/status",
228        "@com_google_absl//absl/types:optional",
229    ],
230)
231
232cc_library(
233    name = "hmac_parameters",
234    srcs = ["hmac_parameters.cc"],
235    hdrs = ["hmac_parameters.h"],
236    include_prefix = "tink/mac",
237    deps = [
238        ":mac_parameters",
239        "//:crypto_format",
240        "//internal:util",
241        "//util:status",
242        "//util:statusor",
243        "@com_google_absl//absl/log",
244    ],
245)
246
247cc_library(
248    name = "hmac_key",
249    srcs = ["hmac_key.cc"],
250    hdrs = ["hmac_key.h"],
251    include_prefix = "tink/mac",
252    deps = [
253        ":hmac_parameters",
254        ":mac_key",
255        "//:partial_key_access_token",
256        "//:restricted_data",
257        "//subtle:subtle_util",
258        "//util:status",
259        "//util:statusor",
260        "@com_google_absl//absl/base:core_headers",
261        "@com_google_absl//absl/strings",
262        "@com_google_absl//absl/strings:str_format",
263        "@com_google_absl//absl/types:optional",
264    ],
265)
266
267cc_library(
268    name = "hmac_proto_serialization",
269    srcs = ["hmac_proto_serialization.cc"],
270    hdrs = ["hmac_proto_serialization.h"],
271    include_prefix = "tink/mac",
272    deps = [
273        ":hmac_key",
274        ":hmac_parameters",
275        "//:partial_key_access",
276        "//:restricted_data",
277        "//:secret_key_access_token",
278        "//internal:key_parser",
279        "//internal:key_serializer",
280        "//internal:mutable_serialization_registry",
281        "//internal:parameters_parser",
282        "//internal:parameters_serializer",
283        "//internal:proto_key_serialization",
284        "//internal:proto_parameters_serialization",
285        "//proto:common_cc_proto",
286        "//proto:hmac_cc_proto",
287        "//proto:tink_cc_proto",
288        "//util:status",
289        "//util:statusor",
290        "@com_google_absl//absl/status",
291        "@com_google_absl//absl/types:optional",
292    ],
293)
294
295# tests
296
297cc_test(
298    name = "mac_wrapper_test",
299    size = "small",
300    srcs = ["mac_wrapper_test.cc"],
301    deps = [
302        ":failing_mac",
303        ":mac_wrapper",
304        "//:crypto_format",
305        "//:mac",
306        "//:primitive_set",
307        "//internal:registry_impl",
308        "//monitoring",
309        "//monitoring:monitoring_client_mocks",
310        "//proto:tink_cc_proto",
311        "//util:status",
312        "//util:test_matchers",
313        "//util:test_util",
314        "@com_google_absl//absl/strings",
315        "@com_google_googletest//:gtest_main",
316    ],
317)
318
319cc_test(
320    name = "mac_config_test",
321    size = "small",
322    srcs = ["mac_config_test.cc"],
323    tags = ["fips"],
324    deps = [
325        ":aes_cmac_key",
326        ":aes_cmac_key_manager",
327        ":aes_cmac_parameters",
328        ":hmac_key",
329        ":hmac_key_manager",
330        ":hmac_parameters",
331        ":mac_config",
332        ":mac_key_templates",
333        "//:chunked_mac",
334        "//:insecure_secret_key_access",
335        "//:keyset_handle",
336        "//:mac",
337        "//:partial_key_access",
338        "//:registry",
339        "//internal:fips_utils",
340        "//internal:mutable_serialization_registry",
341        "//internal:proto_key_serialization",
342        "//internal:proto_parameters_serialization",
343        "//proto:common_cc_proto",
344        "//proto:tink_cc_proto",
345        "//util:status",
346        "//util:test_matchers",
347        "//util:test_util",
348        "@boringssl//:crypto",
349        "@com_google_absl//absl/status",
350        "@com_google_googletest//:gtest_main",
351    ],
352)
353
354cc_test(
355    name = "mac_factory_test",
356    size = "small",
357    srcs = ["mac_factory_test.cc"],
358    deps = [
359        ":hmac_key_manager",
360        ":mac_config",
361        ":mac_factory",
362        "//:crypto_format",
363        "//:keyset_handle",
364        "//:mac",
365        "//internal:key_info",
366        "//proto:common_cc_proto",
367        "//proto:hmac_cc_proto",
368        "//proto:tink_cc_proto",
369        "//util:status",
370        "//util:test_keyset_handle",
371        "//util:test_util",
372        "@com_google_googletest//:gtest_main",
373    ],
374)
375
376cc_test(
377    name = "mac_key_templates_test",
378    size = "small",
379    srcs = ["mac_key_templates_test.cc"],
380    deps = [
381        ":aes_cmac_key_manager",
382        ":hmac_key_manager",
383        ":mac_key_templates",
384        "//:core/key_manager_impl",
385        "//proto:aes_cmac_cc_proto",
386        "//proto:common_cc_proto",
387        "//proto:hmac_cc_proto",
388        "//proto:tink_cc_proto",
389        "//util:test_matchers",
390        "@com_google_googletest//:gtest_main",
391    ],
392)
393
394cc_test(
395    name = "aes_cmac_key_manager_test",
396    size = "small",
397    srcs = ["aes_cmac_key_manager_test.cc"],
398    deps = [
399        ":aes_cmac_key_manager",
400        "//:chunked_mac",
401        "//:mac",
402        "//proto:aes_cmac_cc_proto",
403        "//util:status",
404        "//util:statusor",
405        "//util:test_matchers",
406        "@com_google_googletest//:gtest_main",
407    ],
408)
409
410cc_test(
411    name = "hmac_key_manager_test",
412    size = "small",
413    srcs = ["hmac_key_manager_test.cc"],
414    deps = [
415        ":hmac_key_manager",
416        "//:chunked_mac",
417        "//:core/key_manager_impl",
418        "//:mac",
419        "//proto:hmac_cc_proto",
420        "//util:istream_input_stream",
421        "//util:secret_data",
422        "//util:status",
423        "//util:statusor",
424        "//util:test_matchers",
425        "@com_google_absl//absl/status",
426        "@com_google_googletest//:gtest_main",
427    ],
428)
429
430cc_test(
431    name = "failing_mac_test",
432    srcs = ["failing_mac_test.cc"],
433    deps = [
434        ":failing_mac",
435        "//util:test_matchers",
436        "@com_google_absl//absl/status",
437        "@com_google_googletest//:gtest_main",
438    ],
439)
440
441cc_test(
442    name = "aes_cmac_parameters_test",
443    size = "small",
444    srcs = ["aes_cmac_parameters_test.cc"],
445    deps = [
446        ":aes_cmac_parameters",
447        "//util:statusor",
448        "//util:test_matchers",
449        "@com_google_googletest//:gtest_main",
450    ],
451)
452
453cc_test(
454    name = "aes_cmac_key_test",
455    size = "small",
456    srcs = ["aes_cmac_key_test.cc"],
457    deps = [
458        ":aes_cmac_key",
459        ":aes_cmac_parameters",
460        "//:partial_key_access",
461        "//:restricted_data",
462        "//util:statusor",
463        "//util:test_matchers",
464        "@com_google_absl//absl/types:optional",
465        "@com_google_googletest//:gtest_main",
466    ],
467)
468
469cc_test(
470    name = "aes_cmac_proto_serialization_test",
471    size = "small",
472    srcs = ["aes_cmac_proto_serialization_test.cc"],
473    deps = [
474        ":aes_cmac_key",
475        ":aes_cmac_parameters",
476        ":aes_cmac_proto_serialization",
477        "//:insecure_secret_key_access",
478        "//:partial_key_access",
479        "//:restricted_data",
480        "//internal:mutable_serialization_registry",
481        "//internal:proto_key_serialization",
482        "//internal:proto_parameters_serialization",
483        "//proto:aes_cmac_cc_proto",
484        "//proto:tink_cc_proto",
485        "//subtle:random",
486        "//util:test_matchers",
487        "@com_google_googletest//:gtest_main",
488    ],
489)
490
491cc_test(
492    name = "hmac_parameters_test",
493    size = "small",
494    srcs = ["hmac_parameters_test.cc"],
495    deps = [
496        ":hmac_parameters",
497        "//util:statusor",
498        "//util:test_matchers",
499        "@com_google_googletest//:gtest_main",
500    ],
501)
502
503cc_test(
504    name = "hmac_key_test",
505    srcs = ["hmac_key_test.cc"],
506    deps = [
507        ":hmac_key",
508        ":hmac_parameters",
509        "//:partial_key_access",
510        "//:restricted_data",
511        "//util:statusor",
512        "//util:test_matchers",
513        "@com_google_absl//absl/types:optional",
514        "@com_google_googletest//:gtest_main",
515    ],
516)
517
518cc_test(
519    name = "hmac_proto_serialization_test",
520    srcs = ["hmac_proto_serialization_test.cc"],
521    deps = [
522        ":hmac_key",
523        ":hmac_parameters",
524        ":hmac_proto_serialization",
525        "//:insecure_secret_key_access",
526        "//:partial_key_access",
527        "//:restricted_data",
528        "//internal:mutable_serialization_registry",
529        "//internal:proto_key_serialization",
530        "//internal:proto_parameters_serialization",
531        "//proto:common_cc_proto",
532        "//proto:hmac_cc_proto",
533        "//proto:tink_cc_proto",
534        "//subtle:random",
535        "//util:test_matchers",
536        "@com_google_googletest//:gtest_main",
537    ],
538)
539