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