1package { 2 default_visibility: ["//visibility:private"], 3 default_applicable_licenses: ["libpjc_license"], 4} 5 6license { 7 name: "libpjc_license", 8 visibility: [":__subpackages__"], 9 license_kinds: ["SPDX-license-identifier-Apache-2.0"], 10 license_text: ["LICENSE"], 11} 12 13cc_defaults { 14 name: "libpjc_defaults", 15 host_supported: true, 16} 17 18filegroup { 19 name: "private-join-and-compute-proto", 20 srcs: [ 21 "**/*.proto", 22 ], 23 visibility: ["//packages/modules/AdServices:__subpackages__"], 24} 25 26cc_library { 27 name: "libpjc_crypto", 28 min_sdk_version: "30", 29 sdk_version: "current", 30 stl: "libc++_static", 31 visibility: [ 32 "//external/anonymous-counting-tokens:__subpackages__", 33 "//packages/modules/AdServices/adservices/service-core", 34 ], 35 defaults: ["libpjc_defaults"], 36 srcs: [ 37 "private_join_and_compute/crypto/big_num.cc", 38 "private_join_and_compute/crypto/camenisch_shoup.cc", 39 "private_join_and_compute/crypto/commutative_elgamal.cc", 40 "private_join_and_compute/crypto/context.cc", 41 "private_join_and_compute/crypto/dodis_yampolskiy_prf/bb_oblivious_signature.cc", 42 "private_join_and_compute/crypto/dodis_yampolskiy_prf/bb_oblivious_signature.proto", 43 "private_join_and_compute/crypto/dodis_yampolskiy_prf/dy_verifiable_random_function.cc", 44 "private_join_and_compute/crypto/dodis_yampolskiy_prf/dy_verifiable_random_function.proto", 45 "private_join_and_compute/crypto/ec_commutative_cipher.cc", 46 "private_join_and_compute/crypto/ec_group.cc", 47 "private_join_and_compute/crypto/ec_key.proto", 48 "private_join_and_compute/crypto/ec_point.cc", 49 "private_join_and_compute/crypto/ec_point_util.cc", 50 "private_join_and_compute/crypto/elgamal.cc", 51 "private_join_and_compute/crypto/elgamal.proto", 52 "private_join_and_compute/crypto/fixed_base_exp.cc", 53 "private_join_and_compute/crypto/mont_mul.cc", 54 "private_join_and_compute/crypto/openssl_init.cc", 55 "private_join_and_compute/crypto/paillier.cc", 56 "private_join_and_compute/crypto/paillier.proto", 57 "private_join_and_compute/crypto/pedersen_over_zn.cc", 58 "private_join_and_compute/crypto/proto/big_num.proto", 59 "private_join_and_compute/crypto/proto/camenisch_shoup.proto", 60 "private_join_and_compute/crypto/proto/ec_point.proto", 61 "private_join_and_compute/crypto/proto/pedersen.proto", 62 "private_join_and_compute/crypto/proto/proto_util.cc", 63 "private_join_and_compute/crypto/shanks_discrete_log.cc", 64 "private_join_and_compute/crypto/simultaneous_fixed_bases_exp.cc", 65 "private_join_and_compute/crypto/two_modulus_crt.cc", 66 ], 67 export_include_dirs: [ 68 "private_join_and_compute/crypto/", 69 ".", 70 ], 71 include_dirs: [ 72 "external/protobuf", 73 ], 74 shared_libs: [ 75 "libcrypto", 76 "liblog", 77 ], 78 static_libs: [ 79 "libabsl", 80 ], 81 cflags: ["-Wno-unused-parameter"], 82 proto: { 83 type: "lite", 84 export_proto_headers: true, 85 local_include_dirs: [ 86 ".", 87 ], 88 include_dirs: [ 89 "external/protobuf", 90 ], 91 }, 92 sanitize: { 93 integer_overflow: true, 94 misc_undefined: ["bounds"], 95 }, 96 apex_available: [ 97 "com.android.adservices", 98 "com.android.extservices", 99 ], 100 target: { 101 host: { 102 static_libs: [ 103 "libprotobuf-cpp-lite", 104 ], 105 }, 106 android: { 107 static_libs: [ 108 "libprotobuf-cpp-lite-ndk", 109 ], 110 }, 111 }, 112} 113 114cc_test { 115 name: "libpjc_crypto_test", 116 defaults: ["libpjc_defaults"], 117 srcs: [ 118 "private_join_and_compute/crypto/proto/proto_util_test.cc", 119 "private_join_and_compute/crypto/dodis_yampolskiy_prf/dy_verifiable_random_function_test.cc", 120 "private_join_and_compute/crypto/camenisch_shoup_test.cc", 121 "private_join_and_compute/crypto/pedersen_over_zn_test.cc", 122 "private_join_and_compute/crypto/simultaneous_fixed_bases_exp_test.cc", 123 ], 124 shared_libs: [ 125 "libcrypto", 126 "liblog", 127 "libpjc_crypto", 128 ], 129 static_libs: [ 130 "libgmock", 131 "libabsl", 132 ], 133 include_dirs: [ 134 "external/protobuf", 135 ], 136 test_suites: ["general-tests"], 137 target: { 138 host: { 139 static_libs: [ 140 "libprotobuf-cpp-lite", 141 ], 142 }, 143 android: { 144 static_libs: [ 145 "libprotobuf-cpp-lite-ndk", 146 ], 147 }, 148 }, 149} 150 151/* This test takes longer than the bazel timeout atest uses, and there 152 is no option to override (see b/222233444). 153 154cc_test { 155 name: "libpjc_crypto_bb_oblivious_signature_test", 156 defaults: ["libpjc_defaults"], 157 srcs: [ 158 "private_join_and_compute/crypto/dodis_yampolskiy_prf/bb_oblivious_signature_test.cc", 159 ], 160 shared_libs: [ 161 "libcrypto", 162 "liblog", 163 "libpjc_crypto", 164 ], 165 static_libs: [ 166 "libgmock", 167 "libabsl", 168 ], 169 target: { 170 host: { 171 static_libs: [ 172 "libprotobuf-cpp-lite", 173 ], 174 }, 175 android: { 176 static_libs: [ 177 "libprotobuf-cpp-lite-ndk", 178 ], 179 }, 180 }, 181} 182*/ 183