xref: /aosp_15_r20/external/federated-compute/fcp/secagg/shared/BUILD (revision 14675a029014e728ec732f129a32e299b2da0601)
1# Description:
2#   SecAgg components shared between client and server.
3
4load("//fcp:config.bzl", "FCP_COPTS")
5
6package(
7    default_visibility = ["//fcp:internal"],
8)
9
10proto_library(
11    name = "proto",
12    srcs = ["secagg_messages.proto"],
13    visibility = ["//visibility:public"],
14    deps = [
15        "@com_google_protobuf//:any_proto",
16    ],
17)
18
19cc_proto_library(
20    name = "cc_proto",
21    visibility = ["//visibility:public"],
22    deps = [
23        ":proto",
24    ],
25)
26
27cc_library(
28    name = "shared",
29    srcs = [
30        "aes_ctr_prng.cc",
31        "aes_ctr_prng_factory.cc",
32        "aes_gcm_encryption.cc",
33        "aes_key.cc",
34        "compute_session_id.cc",
35        "crypto_rand_prng.cc",
36        "ecdh_key_agreement.cc",
37        "input_vector_specification.cc",
38        "map_of_masks.cc",
39        "secagg_vector.cc",
40        "shamir_secret_sharing.cc",
41    ],
42    hdrs = [
43        "aes_ctr_prng.h",
44        "aes_ctr_prng_factory.h",
45        "aes_gcm_encryption.h",
46        "aes_key.h",
47        "aes_prng_factory.h",
48        "async_abort.h",
49        "compute_session_id.h",
50        "crypto_rand_prng.h",
51        "ecdh_key_agreement.h",
52        "ecdh_keys.h",
53        "input_vector_specification.h",
54        "key.h",
55        "map_of_masks.h",
56        "math.h",
57        "prng.h",
58        "secagg_vector.h",
59        "shamir_secret_sharing.h",
60    ],
61    copts = FCP_COPTS,
62    deps = [
63        ":cc_proto",
64        "//fcp/base",
65        "@boringssl//:crypto",
66        "@com_google_absl//absl/base:core_headers",
67        "@com_google_absl//absl/base:endian",
68        "@com_google_absl//absl/container:flat_hash_map",
69        "@com_google_absl//absl/container:node_hash_map",
70        "@com_google_absl//absl/numeric:bits",
71        "@com_google_absl//absl/numeric:int128",
72        "@com_google_absl//absl/status:statusor",
73        "@com_google_absl//absl/strings",
74        "@com_google_absl//absl/synchronization",
75        "@com_google_absl//absl/types:span",
76    ],
77)
78
79cc_test(
80    name = "aes_gcm_encryption_test",
81    size = "small",
82    srcs = [
83        "aes_gcm_encryption_test.cc",
84    ],
85    copts = FCP_COPTS,
86    deps = [
87        ":shared",
88        "@com_google_googletest//:gtest_main",
89    ],
90)
91
92cc_test(
93    name = "aes_key_test",
94    size = "small",
95    srcs = [
96        "aes_key_test.cc",
97    ],
98    copts = FCP_COPTS,
99    deps = [
100        ":shared",
101        "@com_google_absl//absl/strings",
102        "@com_google_googletest//:gtest_main",
103    ],
104)
105
106cc_test(
107    name = "aes_prng_tests",
108    size = "small",
109    srcs = [
110        "aes_ctr_prng_test.cc",
111    ],
112    copts = FCP_COPTS,
113    deps = [
114        ":shared",
115        "@com_google_googletest//:gtest_main",
116    ],
117)
118
119cc_test(
120    name = "compute_session_id_test",
121    size = "small",
122    srcs = [
123        "compute_session_id_test.cc",
124    ],
125    copts = FCP_COPTS,
126    deps = [
127        ":shared",
128        "@com_google_googletest//:gtest_main",
129    ],
130)
131
132cc_test(
133    name = "ecdh_test",
134    size = "small",
135    srcs = ["ecdh_key_agreement_test.cc"],
136    copts = FCP_COPTS,
137    deps = [
138        ":shared",
139        "//fcp/secagg/testing:common_mocks",
140        "@com_google_googletest//:gtest_main",
141    ],
142)
143
144cc_test(
145    name = "input_vector_specification_test",
146    size = "small",
147    srcs = [
148        "input_vector_specification_test.cc",
149    ],
150    copts = FCP_COPTS,
151    deps = [
152        ":shared",
153        "@com_google_googletest//:gtest_main",
154    ],
155)
156
157cc_test(
158    name = "map_of_masks_test",
159    size = "small",
160    srcs = [
161        "map_of_masks_test.cc",
162    ],
163    copts = FCP_COPTS,
164    deps = [
165        ":shared",
166        "@com_google_absl//absl/container:flat_hash_map",
167        "@com_google_absl//absl/container:node_hash_map",
168        "@com_google_absl//absl/numeric:bits",
169        "@com_google_absl//absl/strings",
170        "@com_google_googletest//:gtest_main",
171    ],
172)
173
174cc_test(
175    name = "map_of_masks_bench",
176    size = "large",
177    srcs = [
178        "map_of_masks_bench.cc",
179    ],
180    copts = FCP_COPTS,
181    linkstatic = 1,
182    deps = [
183        ":shared",
184        "@com_google_absl//absl/numeric:bits",
185        "@com_google_absl//absl/strings",
186        "@com_google_benchmark//:benchmark_main",
187    ],
188)
189
190cc_test(
191    name = "math_test",
192    size = "small",
193    srcs = [
194        "math_test.cc",
195    ],
196    copts = FCP_COPTS,
197    deps = [
198        ":shared",
199        "@com_google_googletest//:gtest_main",
200    ],
201)
202
203cc_test(
204    name = "secagg_vector_test",
205    size = "large",
206    srcs = [
207        "secagg_vector_test.cc",
208    ],
209    copts = FCP_COPTS,
210    deps = [
211        ":shared",
212        "@com_google_googletest//:gtest_main",
213    ],
214)
215
216cc_test(
217    name = "secagg_vector_bench",
218    size = "large",
219    srcs = [
220        "secagg_vector_bench.cc",
221    ],
222    copts = FCP_COPTS,
223    linkstatic = 1,
224    deps = [
225        ":shared",
226        "@com_google_benchmark//:benchmark_main",
227    ],
228)
229
230cc_test(
231    name = "shamir_secret_sharing_test",
232    size = "small",
233    srcs = [
234        "shamir_secret_sharing_test.cc",
235    ],
236    copts = FCP_COPTS,
237    deps = [
238        ":shared",
239        "//fcp/secagg/testing:common_mocks",
240        "@com_google_googletest//:gtest_main",
241    ],
242)
243
244cc_binary(
245    name = "add_maps_bench",
246    testonly = 1,
247    srcs = [
248        "add_maps_bench.cc",
249    ],
250    copts = FCP_COPTS,
251    deps = [
252        ":shared",
253        "@com_google_benchmark//:benchmark_main",
254    ],
255)
256