xref: /aosp_15_r20/external/anonymous-counting-tokens/act/act_v0/BUILD (revision a26f13018b999b025c962678da434c0a5aec4dae)
1# Copyright 2023 Google LLC.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15load("@rules_cc//cc:defs.bzl", "cc_library")
16load("@rules_proto//proto:defs.bzl", "proto_library")
17
18package(default_visibility = ["//visibility:public"])
19
20proto_library(
21    name = "act_v0_proto",
22    srcs = ["act_v0.proto"],
23    deps = [
24        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:bb_oblivious_signature_proto",
25        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:dy_verifiable_random_function_proto",
26        "@private_join_and_compute//private_join_and_compute/crypto/proto:big_num_proto",
27        "@private_join_and_compute//private_join_and_compute/crypto/proto:camenisch_shoup_proto",
28        "@private_join_and_compute//private_join_and_compute/crypto/proto:pedersen_proto",
29    ],
30)
31
32cc_proto_library(
33    name = "act_v0_cc_proto",
34    deps = [":act_v0_proto"],
35)
36
37cc_library(
38    name = "act_v0",
39    srcs = ["act_v0.cc"],
40    hdrs = ["act_v0.h"],
41    deps = [
42        ":act_v0_cc_proto",
43        "//act",
44        "//act:act_cc_proto",
45        "@private_join_and_compute//private_join_and_compute/crypto:bn_util",
46        "@private_join_and_compute//private_join_and_compute/crypto:camenisch_shoup",
47        "@private_join_and_compute//private_join_and_compute/crypto:ec_util",
48        "@private_join_and_compute//private_join_and_compute/crypto:pedersen_over_zn",
49        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:bb_oblivious_signature",
50        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:bb_oblivious_signature_cc_proto",
51        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:dy_verifiable_random_function",
52        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:dy_verifiable_random_function_cc_proto",
53        "@private_join_and_compute//private_join_and_compute/crypto/proto:ec_point_cc_proto",
54        "@private_join_and_compute//private_join_and_compute/crypto/proto:proto_util",
55        "@private_join_and_compute//private_join_and_compute/util:status_includes",
56    ],
57)
58
59cc_test(
60    name = "act_v0_test",
61    srcs = ["act_v0_test.cc"],
62    deps = [
63        ":act_v0",
64        ":act_v0_cc_proto",
65        ":parameters",
66        "//act",
67        "//act:act_cc_proto",
68        "@com_github_google_googletest//:gtest_main",
69        "@private_join_and_compute//private_join_and_compute/crypto:bn_util",
70        "@private_join_and_compute//private_join_and_compute/crypto:camenisch_shoup",
71        "@private_join_and_compute//private_join_and_compute/crypto:ec_util",
72        "@private_join_and_compute//private_join_and_compute/crypto:pedersen_over_zn",
73        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:bb_oblivious_signature",
74        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:bb_oblivious_signature_cc_proto",
75        "@private_join_and_compute//private_join_and_compute/crypto/dodis_yampolskiy_prf:dy_verifiable_random_function_cc_proto",
76        "@private_join_and_compute//private_join_and_compute/crypto/proto:big_num_cc_proto",
77        "@private_join_and_compute//private_join_and_compute/crypto/proto:camenisch_shoup_cc_proto",
78        "@private_join_and_compute//private_join_and_compute/crypto/proto:pedersen_cc_proto",
79        "@private_join_and_compute//private_join_and_compute/util:status_includes",
80        "@private_join_and_compute//private_join_and_compute/util:status_testing_includes",
81    ],
82)
83
84cc_library(
85    name = "parameters",
86    srcs = ["parameters.cc"],
87    hdrs = ["parameters.h"],
88    deps = [
89        ":act_v0_cc_proto",
90        "//act:act_cc_proto",
91        "@com_google_absl//absl/strings",
92        "@private_join_and_compute//private_join_and_compute/crypto:openssl_includes",
93    ],
94)
95
96cc_test(
97    name = "parameters_test",
98    size = "enormous",
99    srcs = ["parameters_test.cc"],
100    deps = [
101        ":act_v0",
102        ":parameters",
103        "//act",
104        "//act:act_cc_proto",
105        "@com_github_google_googletest//:gtest_main",
106        "@com_google_absl//absl/strings",
107        "@private_join_and_compute//private_join_and_compute/util:status_includes",
108        "@private_join_and_compute//private_join_and_compute/util:status_testing_includes",
109    ],
110)
111