xref: /aosp_15_r20/external/private-join-and-compute/private_join_and_compute/BUILD (revision a6aa18fbfbf9cb5cd47356a9d1b057768998488c)
1*a6aa18fbSYabin Cui# Copyright 2019 Google LLC.
2*a6aa18fbSYabin Cui#
3*a6aa18fbSYabin Cui# Licensed under the Apache License, Version 2.0 (the "License");
4*a6aa18fbSYabin Cui# you may not use this file except in compliance with the License.
5*a6aa18fbSYabin Cui# You may obtain a copy of the License at
6*a6aa18fbSYabin Cui#
7*a6aa18fbSYabin Cui#     https://www.apache.org/licenses/LICENSE-2.0
8*a6aa18fbSYabin Cui#
9*a6aa18fbSYabin Cui# Unless required by applicable law or agreed to in writing, software
10*a6aa18fbSYabin Cui# distributed under the License is distributed on an "AS IS" BASIS,
11*a6aa18fbSYabin Cui# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*a6aa18fbSYabin Cui# See the License for the specific language governing permissions and
13*a6aa18fbSYabin Cui# limitations under the License.
14*a6aa18fbSYabin Cui
15*a6aa18fbSYabin Cuiload("@com_github_grpc_grpc//bazel:grpc_build_system.bzl", "grpc_proto_library")
16*a6aa18fbSYabin Cui
17*a6aa18fbSYabin Cuipackage(default_visibility = ["//visibility:public"])
18*a6aa18fbSYabin Cui
19*a6aa18fbSYabin Cuigrpc_proto_library(
20*a6aa18fbSYabin Cui    name = "match_proto",
21*a6aa18fbSYabin Cui    srcs = ["match.proto"],
22*a6aa18fbSYabin Cui)
23*a6aa18fbSYabin Cui
24*a6aa18fbSYabin Cuigrpc_proto_library(
25*a6aa18fbSYabin Cui    name = "private_intersection_sum_proto",
26*a6aa18fbSYabin Cui    srcs = ["private_intersection_sum.proto"],
27*a6aa18fbSYabin Cui    deps = [
28*a6aa18fbSYabin Cui        ":match_proto",
29*a6aa18fbSYabin Cui    ],
30*a6aa18fbSYabin Cui)
31*a6aa18fbSYabin Cui
32*a6aa18fbSYabin Cuigrpc_proto_library(
33*a6aa18fbSYabin Cui    name = "private_join_and_compute_proto",
34*a6aa18fbSYabin Cui    srcs = ["private_join_and_compute.proto"],
35*a6aa18fbSYabin Cui    deps = [
36*a6aa18fbSYabin Cui        ":private_intersection_sum_proto",
37*a6aa18fbSYabin Cui    ],
38*a6aa18fbSYabin Cui)
39*a6aa18fbSYabin Cui
40*a6aa18fbSYabin Cuicc_library(
41*a6aa18fbSYabin Cui    name = "message_sink",
42*a6aa18fbSYabin Cui    hdrs = ["message_sink.h"],
43*a6aa18fbSYabin Cui    deps = [
44*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
45*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
46*a6aa18fbSYabin Cui        "@com_google_absl//absl/memory",
47*a6aa18fbSYabin Cui    ],
48*a6aa18fbSYabin Cui)
49*a6aa18fbSYabin Cui
50*a6aa18fbSYabin Cuicc_library(
51*a6aa18fbSYabin Cui    name = "protocol_client",
52*a6aa18fbSYabin Cui    hdrs = ["protocol_client.h"],
53*a6aa18fbSYabin Cui    deps = [
54*a6aa18fbSYabin Cui        ":message_sink",
55*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
56*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
57*a6aa18fbSYabin Cui    ],
58*a6aa18fbSYabin Cui)
59*a6aa18fbSYabin Cui
60*a6aa18fbSYabin Cuicc_library(
61*a6aa18fbSYabin Cui    name = "client_impl",
62*a6aa18fbSYabin Cui    srcs = ["client_impl.cc"],
63*a6aa18fbSYabin Cui    hdrs = ["client_impl.h"],
64*a6aa18fbSYabin Cui    deps = [
65*a6aa18fbSYabin Cui        ":match_proto",
66*a6aa18fbSYabin Cui        ":message_sink",
67*a6aa18fbSYabin Cui        ":private_intersection_sum_proto",
68*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
69*a6aa18fbSYabin Cui        ":protocol_client",
70*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:bn_util",
71*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:ec_commutative_cipher",
72*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:paillier",
73*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
74*a6aa18fbSYabin Cui    ],
75*a6aa18fbSYabin Cui)
76*a6aa18fbSYabin Cui
77*a6aa18fbSYabin Cuicc_library(
78*a6aa18fbSYabin Cui    name = "protocol_server",
79*a6aa18fbSYabin Cui    hdrs = ["protocol_server.h"],
80*a6aa18fbSYabin Cui    deps = [
81*a6aa18fbSYabin Cui        ":message_sink",
82*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
83*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
84*a6aa18fbSYabin Cui    ],
85*a6aa18fbSYabin Cui)
86*a6aa18fbSYabin Cui
87*a6aa18fbSYabin Cuicc_library(
88*a6aa18fbSYabin Cui    name = "server_impl",
89*a6aa18fbSYabin Cui    srcs = ["server_impl.cc"],
90*a6aa18fbSYabin Cui    hdrs = ["server_impl.h"],
91*a6aa18fbSYabin Cui    deps = [
92*a6aa18fbSYabin Cui        ":match_proto",
93*a6aa18fbSYabin Cui        ":message_sink",
94*a6aa18fbSYabin Cui        ":private_intersection_sum_proto",
95*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
96*a6aa18fbSYabin Cui        ":protocol_server",
97*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:bn_util",
98*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:ec_commutative_cipher",
99*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:paillier",
100*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
101*a6aa18fbSYabin Cui    ],
102*a6aa18fbSYabin Cui)
103*a6aa18fbSYabin Cui
104*a6aa18fbSYabin Cuicc_library(
105*a6aa18fbSYabin Cui    name = "data_util",
106*a6aa18fbSYabin Cui    srcs = ["data_util.cc"],
107*a6aa18fbSYabin Cui    hdrs = ["data_util.h"],
108*a6aa18fbSYabin Cui    deps = [
109*a6aa18fbSYabin Cui        ":match_proto",
110*a6aa18fbSYabin Cui        "//private_join_and_compute/crypto:bn_util",
111*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
112*a6aa18fbSYabin Cui        "@com_google_absl//absl/container:btree",
113*a6aa18fbSYabin Cui        "@com_google_absl//absl/strings",
114*a6aa18fbSYabin Cui    ],
115*a6aa18fbSYabin Cui)
116*a6aa18fbSYabin Cui
117*a6aa18fbSYabin Cuicc_binary(
118*a6aa18fbSYabin Cui    name = "generate_dummy_data",
119*a6aa18fbSYabin Cui    srcs = ["generate_dummy_data.cc"],
120*a6aa18fbSYabin Cui    deps = [
121*a6aa18fbSYabin Cui        ":data_util",
122*a6aa18fbSYabin Cui        "@com_google_absl//absl/base",
123*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:flag",
124*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:parse",
125*a6aa18fbSYabin Cui        "@com_google_absl//absl/log",
126*a6aa18fbSYabin Cui    ],
127*a6aa18fbSYabin Cui)
128*a6aa18fbSYabin Cui
129*a6aa18fbSYabin Cuicc_library(
130*a6aa18fbSYabin Cui    name = "private_join_and_compute_rpc_impl",
131*a6aa18fbSYabin Cui    srcs = ["private_join_and_compute_rpc_impl.cc"],
132*a6aa18fbSYabin Cui    hdrs = ["private_join_and_compute_rpc_impl.h"],
133*a6aa18fbSYabin Cui    deps = [
134*a6aa18fbSYabin Cui        ":message_sink",
135*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
136*a6aa18fbSYabin Cui        ":protocol_server",
137*a6aa18fbSYabin Cui        "//private_join_and_compute/util:status_includes",
138*a6aa18fbSYabin Cui        "@com_github_grpc_grpc//:grpc++",
139*a6aa18fbSYabin Cui    ],
140*a6aa18fbSYabin Cui)
141*a6aa18fbSYabin Cui
142*a6aa18fbSYabin Cuicc_binary(
143*a6aa18fbSYabin Cui    name = "server",
144*a6aa18fbSYabin Cui    srcs = ["server.cc"],
145*a6aa18fbSYabin Cui    deps = [
146*a6aa18fbSYabin Cui        ":data_util",
147*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
148*a6aa18fbSYabin Cui        ":private_join_and_compute_rpc_impl",
149*a6aa18fbSYabin Cui        ":protocol_server",
150*a6aa18fbSYabin Cui        ":server_impl",
151*a6aa18fbSYabin Cui        "@com_github_grpc_grpc//:grpc",
152*a6aa18fbSYabin Cui        "@com_github_grpc_grpc//:grpc++",
153*a6aa18fbSYabin Cui        "@com_google_absl//absl/base",
154*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:flag",
155*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:parse",
156*a6aa18fbSYabin Cui    ],
157*a6aa18fbSYabin Cui)
158*a6aa18fbSYabin Cui
159*a6aa18fbSYabin Cuicc_binary(
160*a6aa18fbSYabin Cui    name = "client",
161*a6aa18fbSYabin Cui    srcs = ["client.cc"],
162*a6aa18fbSYabin Cui    deps = [
163*a6aa18fbSYabin Cui        ":client_impl",
164*a6aa18fbSYabin Cui        ":data_util",
165*a6aa18fbSYabin Cui        ":private_join_and_compute_proto",
166*a6aa18fbSYabin Cui        ":protocol_client",
167*a6aa18fbSYabin Cui        "@com_github_grpc_grpc//:grpc",
168*a6aa18fbSYabin Cui        "@com_github_grpc_grpc//:grpc++",
169*a6aa18fbSYabin Cui        "@com_google_absl//absl/base",
170*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:flag",
171*a6aa18fbSYabin Cui        "@com_google_absl//absl/flags:parse",
172*a6aa18fbSYabin Cui        "@com_google_absl//absl/strings",
173*a6aa18fbSYabin Cui    ],
174*a6aa18fbSYabin Cui)
175