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