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