xref: /aosp_15_r20/external/tink/cc/util/BUILD.bazel (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1package(default_visibility = ["//:__subpackages__"])
2
3licenses(["notice"])
4
5cc_library(
6    name = "buffer",
7    srcs = ["buffer.cc"],
8    hdrs = ["buffer.h"],
9    include_prefix = "tink/util",
10    visibility = ["//visibility:public"],
11    deps = [
12        ":status",
13        ":statusor",
14        "@com_google_absl//absl/memory",
15        "@com_google_absl//absl/status",
16    ],
17)
18
19cc_library(
20    name = "constants",
21    srcs = ["constants.cc"],
22    hdrs = ["constants.h"],
23    include_prefix = "tink/util",
24    deps = ["@com_google_absl//absl/base:core_headers"],
25)
26
27cc_library(
28    name = "secret_data_internal",
29    hdrs = ["secret_data_internal.h"],
30    include_prefix = "tink/util",
31    visibility = ["//visibility:private"],
32    deps = [
33        "@boringssl//:crypto",
34        "@com_google_absl//absl/base:config",
35        "@com_google_absl//absl/base:core_headers",
36    ],
37)
38
39cc_library(
40    name = "secret_data",
41    hdrs = ["secret_data.h"],
42    include_prefix = "tink/util",
43    visibility = ["//visibility:public"],
44    deps = [
45        ":secret_data_internal",
46        "@com_google_absl//absl/strings",
47    ],
48)
49
50cc_library(
51    name = "secret_proto",
52    hdrs = ["secret_proto.h"],
53    include_prefix = "tink/util",
54    visibility = ["//visibility:public"],
55    deps = [
56        ":secret_data",
57        ":status",
58        ":statusor",
59        "@com_google_absl//absl/memory",
60        "@com_google_protobuf//:protobuf",
61    ],
62)
63
64cc_library(
65    name = "errors",
66    hdrs = ["errors.h"],
67    include_prefix = "tink/util",
68    deps = [
69        ":status",
70        "@com_google_absl//absl/strings:str_format",
71    ],
72)
73
74cc_library(
75    name = "enums",
76    srcs = ["enums.cc"],
77    hdrs = ["enums.h"],
78    include_prefix = "tink/util",
79    visibility = ["//visibility:public"],
80    deps = [
81        ":status",
82        ":statusor",
83        "//proto:common_cc_proto",
84        "//proto:ecdsa_cc_proto",
85        "//proto:tink_cc_proto",
86        "//subtle:common_enums",
87        "@com_google_absl//absl/status",
88        "@com_google_absl//absl/strings",
89    ],
90)
91
92cc_library(
93    name = "status",
94    hdrs = ["status.h"],
95    include_prefix = "tink/util",
96    visibility = ["//visibility:public"],
97    deps = ["@com_google_absl//absl/status"],
98)
99
100cc_library(
101    name = "statusor",
102    hdrs = ["statusor.h"],
103    include_prefix = "tink/util",
104    visibility = ["//visibility:public"],
105    deps = [
106        ":status",
107        "@com_google_absl//absl/status:statusor",
108    ],
109)
110
111cc_library(
112    name = "validation",
113    srcs = ["validation.cc"],
114    hdrs = ["validation.h"],
115    include_prefix = "tink/util",
116    deps = [
117        ":errors",
118        ":status",
119        "//proto:tink_cc_proto",
120        "@com_google_absl//absl/status",
121    ],
122)
123
124cc_library(
125    name = "file_input_stream",
126    srcs = ["file_input_stream.cc"],
127    hdrs = ["file_input_stream.h"],
128    include_prefix = "tink/util",
129    target_compatible_with = select({
130        "@platforms//os:windows": ["@platforms//:incompatible"],
131        "//conditions:default": [],
132    }),
133    visibility = ["//visibility:public"],
134    deps = [
135        ":errors",
136        ":status",
137        ":statusor",
138        "//:input_stream",
139        "@com_google_absl//absl/status",
140    ],
141)
142
143cc_library(
144    name = "file_output_stream",
145    srcs = ["file_output_stream.cc"],
146    hdrs = ["file_output_stream.h"],
147    include_prefix = "tink/util",
148    target_compatible_with = select({
149        "@platforms//os:windows": ["@platforms//:incompatible"],
150        "//conditions:default": [],
151    }),
152    visibility = ["//visibility:public"],
153    deps = [
154        ":errors",
155        ":status",
156        ":statusor",
157        "//:output_stream",
158        "@com_google_absl//absl/memory",
159        "@com_google_absl//absl/status",
160    ],
161)
162
163cc_library(
164    name = "file_random_access_stream",
165    srcs = ["file_random_access_stream.cc"],
166    hdrs = ["file_random_access_stream.h"],
167    include_prefix = "tink/util",
168    target_compatible_with = select({
169        "@platforms//os:windows": ["@platforms//:incompatible"],
170        "//conditions:default": [],
171    }),
172    visibility = ["//visibility:public"],
173    deps = [
174        ":buffer",
175        ":errors",
176        ":status",
177        ":statusor",
178        "//:random_access_stream",
179        "@com_google_absl//absl/memory",
180        "@com_google_absl//absl/status",
181    ],
182)
183
184cc_library(
185    name = "istream_input_stream",
186    srcs = ["istream_input_stream.cc"],
187    hdrs = ["istream_input_stream.h"],
188    include_prefix = "tink/util",
189    visibility = ["//visibility:public"],
190    deps = [
191        ":errors",
192        ":status",
193        ":statusor",
194        "//:input_stream",
195        "@com_google_absl//absl/memory",
196        "@com_google_absl//absl/status",
197    ],
198)
199
200cc_library(
201    name = "ostream_output_stream",
202    srcs = ["ostream_output_stream.cc"],
203    hdrs = ["ostream_output_stream.h"],
204    include_prefix = "tink/util",
205    visibility = ["//visibility:public"],
206    deps = [
207        ":errors",
208        ":status",
209        ":statusor",
210        "//:output_stream",
211        "@com_google_absl//absl/memory",
212        "@com_google_absl//absl/status",
213    ],
214)
215
216cc_library(
217    name = "test_util",
218    testonly = 1,
219    srcs = ["test_util.cc"],
220    hdrs = ["test_util.h"],
221    include_prefix = "tink/util",
222    visibility = ["//visibility:public"],
223    deps = [
224        ":buffer",
225        ":constants",
226        ":enums",
227        ":protobuf_helper",
228        ":secret_data",
229        ":status",
230        ":statusor",
231        "//:aead",
232        "//:cleartext_keyset_handle",
233        "//:deterministic_aead",
234        "//:hybrid_decrypt",
235        "//:hybrid_encrypt",
236        "//:input_stream",
237        "//:keyset_handle",
238        "//:kms_client",
239        "//:mac",
240        "//:output_stream",
241        "//:public_key_sign",
242        "//:public_key_verify",
243        "//:random_access_stream",
244        "//:streaming_aead",
245        "//aead:aes_ctr_hmac_aead_key_manager",
246        "//aead:aes_gcm_key_manager",
247        "//aead:cord_aead",
248        "//aead:xchacha20_poly1305_key_manager",
249        "//daead:aes_siv_key_manager",
250        "//internal:ec_util",
251        "//proto:aes_ctr_cc_proto",
252        "//proto:aes_ctr_hmac_aead_cc_proto",
253        "//proto:aes_siv_cc_proto",
254        "//proto:common_cc_proto",
255        "//proto:ecdsa_cc_proto",
256        "//proto:ecies_aead_hkdf_cc_proto",
257        "//proto:ed25519_cc_proto",
258        "//proto:hmac_cc_proto",
259        "//proto:tink_cc_proto",
260        "//proto:xchacha20_poly1305_cc_proto",
261        "//subtle:common_enums",
262        "//subtle:random",
263        "//subtle/mac:stateful_mac",
264        "@com_google_absl//absl/base:core_headers",
265        "@com_google_absl//absl/memory",
266        "@com_google_absl//absl/status",
267        "@com_google_absl//absl/strings",
268        "@com_google_absl//absl/strings:cord",
269        "@com_google_absl//absl/synchronization",
270    ],
271)
272
273cc_library(
274    name = "test_matchers",
275    testonly = 1,
276    hdrs = ["test_matchers.h"],
277    include_prefix = "tink/util",
278    visibility = ["//visibility:public"],
279    deps = [
280        ":status",
281        ":statusor",
282        "@com_google_absl//absl/status",
283        "@com_google_googletest//:gtest",
284    ],
285)
286
287cc_library(
288    name = "protobuf_helper",
289    hdrs = ["protobuf_helper.h"],
290    include_prefix = "tink/util",
291    deps = ["@com_google_protobuf//:protobuf"],
292)
293
294cc_library(
295    name = "test_keyset_handle",
296    testonly = 1,
297    srcs = ["test_keyset_handle.cc"],
298    hdrs = ["test_keyset_handle.h"],
299    include_prefix = "tink/util",
300    deps = [
301        "//:keyset_handle",
302        "//proto:tink_cc_proto",
303        "@com_google_absl//absl/memory",
304    ],
305)
306
307cc_library(
308    name = "input_stream_util",
309    srcs = ["input_stream_util.cc"],
310    hdrs = ["input_stream_util.h"],
311    include_prefix = "tink/util",
312    deps = [
313        ":secret_data",
314        ":statusor",
315        "//:input_stream",
316        "@com_google_absl//absl/algorithm:container",
317        "@com_google_absl//absl/strings",
318        "@com_google_absl//absl/types:span",
319    ],
320)
321
322cc_library(
323    name = "keyset_util",
324    srcs = ["keyset_util.cc"],
325    hdrs = ["keyset_util.h"],
326    include_prefix = "tink/util",
327    deps = ["//proto:tink_cc_proto"],
328)
329
330cc_library(
331    name = "fake_kms_client",
332    testonly = 1,
333    srcs = ["fake_kms_client.cc"],
334    hdrs = ["fake_kms_client.h"],
335    include_prefix = "tink/util",
336    visibility = ["//visibility:public"],
337    deps = [
338        ":errors",
339        ":status",
340        ":statusor",
341        "//:aead",
342        "//:binary_keyset_reader",
343        "//:binary_keyset_writer",
344        "//:cleartext_keyset_handle",
345        "//:keyset_handle",
346        "//:kms_client",
347        "//:kms_clients",
348        "//aead:aead_key_templates",
349        "@com_google_absl//absl/status",
350        "@com_google_absl//absl/strings",
351    ],
352)
353
354# tests
355
356cc_test(
357    name = "buffer_test",
358    size = "small",
359    srcs = ["buffer_test.cc"],
360    deps = [
361        ":buffer",
362        ":status",
363        ":test_matchers",
364        "//subtle:random",
365        "@com_google_absl//absl/memory",
366        "@com_google_absl//absl/status",
367        "@com_google_absl//absl/strings",
368        "@com_google_googletest//:gtest_main",
369    ],
370)
371
372cc_test(
373    name = "errors_test",
374    size = "small",
375    srcs = ["errors_test.cc"],
376    deps = [
377        ":errors",
378        ":status",
379        "@com_google_absl//absl/status",
380        "@com_google_googletest//:gtest_main",
381    ],
382)
383
384cc_test(
385    name = "enums_test",
386    size = "small",
387    srcs = ["enums_test.cc"],
388    deps = [
389        ":enums",
390        "//proto:common_cc_proto",
391        "//subtle:common_enums",
392        "@com_google_googletest//:gtest_main",
393    ],
394)
395
396cc_test(
397    name = "file_input_stream_test",
398    srcs = ["file_input_stream_test.cc"],
399    target_compatible_with = select({
400        "@platforms//os:windows": ["@platforms//:incompatible"],
401        "//conditions:default": [],
402    }),
403    deps = [
404        ":file_input_stream",
405        ":status",
406        ":test_matchers",
407        ":test_util",
408        "//internal:test_file_util",
409        "//subtle:random",
410        "@com_google_absl//absl/memory",
411        "@com_google_absl//absl/status",
412        "@com_google_absl//absl/strings",
413        "@com_google_googletest//:gtest_main",
414    ],
415)
416
417cc_test(
418    name = "file_output_stream_test",
419    srcs = ["file_output_stream_test.cc"],
420    target_compatible_with = select({
421        "@platforms//os:windows": ["@platforms//:incompatible"],
422        "//conditions:default": [],
423    }),
424    deps = [
425        ":file_output_stream",
426        ":test_matchers",
427        ":test_util",
428        "//internal:test_file_util",
429        "//subtle:random",
430        "@com_google_absl//absl/memory",
431        "@com_google_absl//absl/strings",
432        "@com_google_googletest//:gtest_main",
433    ],
434)
435
436cc_test(
437    name = "file_random_access_stream_test",
438    srcs = ["file_random_access_stream_test.cc"],
439    target_compatible_with = select({
440        "@platforms//os:windows": ["@platforms//:incompatible"],
441        "//conditions:default": [],
442    }),
443    deps = [
444        ":buffer",
445        ":file_random_access_stream",
446        ":test_matchers",
447        ":test_util",
448        "//internal:test_file_util",
449        "//subtle:random",
450        "@com_google_absl//absl/memory",
451        "@com_google_absl//absl/status",
452        "@com_google_absl//absl/strings",
453        "@com_google_googletest//:gtest_main",
454    ],
455)
456
457cc_test(
458    name = "istream_input_stream_test",
459    srcs = ["istream_input_stream_test.cc"],
460    deps = [
461        ":istream_input_stream",
462        ":test_util",
463        "//internal:test_file_util",
464        "//subtle:random",
465        "@com_google_absl//absl/memory",
466        "@com_google_absl//absl/status",
467        "@com_google_absl//absl/status:statusor",
468        "@com_google_absl//absl/strings",
469        "@com_google_googletest//:gtest_main",
470    ],
471)
472
473cc_test(
474    name = "ostream_output_stream_test",
475    srcs = ["ostream_output_stream_test.cc"],
476    deps = [
477        ":ostream_output_stream",
478        ":test_util",
479        "//internal:test_file_util",
480        "//subtle:random",
481        "@com_google_absl//absl/memory",
482        "@com_google_absl//absl/strings",
483        "@com_google_googletest//:gtest_main",
484    ],
485)
486
487cc_test(
488    name = "secret_data_test",
489    srcs = ["secret_data_test.cc"],
490    deps = [
491        ":secret_data",
492        "@com_google_absl//absl/strings",
493        "@com_google_googletest//:gtest_main",
494    ],
495)
496
497cc_test(
498    name = "secret_proto_test",
499    srcs = ["secret_proto_test.cc"],
500    deps = [
501        ":secret_proto",
502        "//proto:test_proto_cc_proto",
503        "@com_google_absl//absl/memory",
504        "@com_google_googletest//:gtest_main",
505        "@com_google_protobuf//:protobuf",
506    ],
507)
508
509cc_test(
510    name = "test_util_test",
511    srcs = ["test_util_test.cc"],
512    deps = [
513        ":buffer",
514        ":ostream_output_stream",
515        ":statusor",
516        ":test_matchers",
517        ":test_util",
518        "//:output_stream",
519        "//:random_access_stream",
520        "//internal:test_random_access_stream",
521        "//proto:aes_gcm_cc_proto",
522        "//proto:tink_cc_proto",
523        "//subtle",
524        "//subtle:test_util",
525        "@com_google_absl//absl/strings",
526        "@com_google_googletest//:gtest_main",
527    ],
528)
529
530cc_test(
531    name = "validation_test",
532    srcs = ["validation_test.cc"],
533    deps = [
534        ":test_matchers",
535        ":validation",
536        "@com_google_absl//absl/status",
537        "@com_google_googletest//:gtest_main",
538    ],
539)
540
541cc_test(
542    name = "input_stream_util_test",
543    srcs = ["input_stream_util_test.cc"],
544    deps = [
545        ":input_stream_util",
546        ":istream_input_stream",
547        ":secret_data",
548        ":status",
549        ":test_matchers",
550        "@com_google_absl//absl/memory",
551        "@com_google_googletest//:gtest_main",
552    ],
553)
554
555cc_test(
556    name = "fake_kms_client_test",
557    srcs = ["fake_kms_client_test.cc"],
558    deps = [
559        ":fake_kms_client",
560        ":status",
561        ":statusor",
562        ":test_matchers",
563        ":test_util",
564        "//aead:aead_config",
565        "//aead:aead_key_templates",
566        "//proto:kms_aead_cc_proto",
567        "//proto:kms_envelope_cc_proto",
568        "@com_google_googletest//:gtest_main",
569    ],
570)
571