• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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