• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "external_rust_beto-rust_license"
5    // to get the below license kinds:
6    //   legacy_unencumbered
7    //   SPDX-license-identifier-Apache-2.0
8    //   SPDX-license-identifier-Unlicense
9    default_visibility: [":__subpackages__"],
10    default_applicable_licenses: ["external_rust_beto-rust_license"],
11}
12
13rust_library_rlib {
14    name: "libcrypto_provider",
15    crate_name: "crypto_provider",
16    defaults: ["beto_rust_defaults"],
17    srcs: ["crypto/crypto_provider/src/lib.rs"],
18    features: [
19        "std",
20        "alloc",
21        "default",
22        "gcm_siv",
23    ],
24    rustlibs: [
25        "libhex",
26        "librand",
27        "libtinyvec",
28    ],
29}
30
31rust_library_rlib {
32    name: "libcrypto_provider_stubs",
33    crate_name: "crypto_provider_stubs",
34    defaults: ["beto_rust_defaults"],
35    srcs: ["crypto/crypto_provider_stubs/src/lib.rs"],
36    rustlibs: [
37        "libcrypto_provider",
38    ],
39}
40
41rust_library_rlib {
42    name: "libcrypto_provider_default",
43    crate_name: "crypto_provider_default",
44    defaults: ["beto_rust_defaults"],
45    srcs: ["crypto/crypto_provider_default/src/lib.rs"],
46    features: ["boringssl"],
47    rustlibs: [
48        "libcfg_if",
49        "libcrypto_provider",
50        "libcrypto_provider_boringssl",
51    ],
52}
53
54rust_library_rlib {
55    name: "libcrypto_provider_boringssl",
56    crate_name: "crypto_provider_boringssl",
57    defaults: ["beto_rust_defaults"],
58    srcs: ["crypto/crypto_provider_boringssl/src/lib.rs"],
59    rustlibs: [
60        "libcfg_if",
61        "libcrypto_provider",
62        "libcrypto_provider_stubs",
63        "libbssl_crypto",
64        "librand",
65    ],
66}
67
68rust_ffi_shared {
69    name: "libukey2_c_ffi_shared",
70    stem: "libukey2_c_ffi",
71    crate_name: "ukey2_c_ffi",
72    defaults: ["beto_rust_defaults"],
73    srcs: ["connections/ukey2/ukey2_c_ffi/src/lib.rs"],
74    features: [
75        "openssl",
76        "std",
77    ],
78    rlibs: [
79        "libcfg_if",
80        "libcrypto_provider_default",
81        "liblazy_static",
82        "liblock_adapter",
83        "liblog_rust",
84        "librand",
85        "librand_chacha",
86        "libukey2_connections",
87        "libukey2_rs",
88    ],
89}
90
91rust_library_rlib {
92    name: "libukey2_connections",
93    crate_name: "ukey2_connections",
94    defaults: ["beto_rust_defaults"],
95    srcs: ["connections/ukey2/ukey2_connections/src/lib.rs"],
96    rustlibs: [
97        "libbytes",
98        "libcrypto_provider",
99        "libnom",
100        "librand",
101        "libukey2_proto",
102        "libukey2_rs",
103    ],
104}
105
106rust_ffi_shared {
107    name: "libukey2_jni_shared",
108    stem: "libukey2_jni",
109    crate_name: "ukey2_jni",
110    defaults: ["beto_rust_defaults"],
111    srcs: ["connections/ukey2/ukey2_jni/src/lib.rs"],
112    features: [
113        "openssl",
114        "std",
115    ],
116    // Using rlibs instead of rustlibs here to minimize the size impact on the system image. Since
117    // most of the transitive dependencies are included only by this project for U, building this
118    // as a single dylib will be more space-efficient. As more Rust project gets added, this may
119    // change and it may be better for different projects to share the same dylib, especially for
120    // common projects like libjni and libprotobuf.
121    rlibs: [
122        "libcfg_if",
123        "libcrypto_provider_default",
124        "libjni",
125        "liblazy_static",
126        "liblock_adapter",
127        "librand",
128        "librand_chacha",
129        "libukey2_connections",
130        "libukey2_rs",
131    ],
132    compile_multilib: "first",
133    visibility: ["//visibility:public"],
134}
135
136rust_library_rlib {
137    name: "libukey2_proto",
138    crate_name: "ukey2_proto",
139    defaults: ["beto_rust_defaults"],
140    srcs: ["connections/ukey2/ukey2_proto/src/lib.rs"],
141    features: [
142        "default",
143    ],
144    rustlibs: [
145        "libprotobuf",
146    ],
147}
148
149rust_library_rlib {
150    name: "libukey2_rs",
151    crate_name: "ukey2_rs",
152    defaults: ["beto_rust_defaults"],
153    srcs: ["connections/ukey2/ukey2/src/lib.rs"],
154    rustlibs: [
155        "libcrypto_provider",
156        "libnum_bigint",
157        "liblog_rust",
158        "librand",
159        "libukey2_proto",
160    ],
161}
162
163java_library_static {
164    name: "ukey2_jni",
165    srcs: [
166        "connections/ukey2/ukey2_jni/java/src/main/**/*.java",
167        "connections/ukey2/ukey2_jni/java/src/main/**/*.kt",
168    ],
169    host_supported: true,
170    static_libs: [
171        "jsr305",
172    ],
173    visibility: ["//visibility:public"],
174    required: [
175        "libukey2_jni_shared",
176    ],
177}
178
179rust_library_rlib {
180    name: "libnp_adv",
181    crate_name: "np_adv",
182    defaults: ["beto_rust_defaults"],
183    srcs: ["presence/np_adv/src/lib.rs"],
184    rustlibs: [
185        "libarray_view",
186        "libldt_np_adv",
187        "libldt",
188        "libnp_hkdf",
189        "libnp_ed25519",
190        "libxts_aes",
191        "libcrypto_provider",
192        "libstrum",
193        "libnom",
194        "liblazy_static",
195        "libsink",
196        "libtinyvec",
197    ],
198    proc_macros: [
199        "libstrum_macros",
200    ],
201}
202
203rust_library_rlib {
204    name: "libarray_view",
205    crate_name: "array_view",
206    defaults: ["beto_rust_defaults"],
207    srcs: ["presence/array_view/src/lib.rs"],
208}
209
210rust_library_rlib {
211    name: "libldt",
212    crate_name: "ldt",
213    defaults: ["beto_rust_defaults"],
214    srcs: ["presence/ldt/src/lib.rs"],
215    rustlibs: [
216        "libcrypto_provider",
217        "libldt_tbc",
218    ],
219}
220
221rust_library_rlib {
222    name: "libldt_tbc",
223    crate_name: "ldt_tbc",
224    defaults: ["beto_rust_defaults"],
225    srcs: ["presence/ldt_tbc/src/lib.rs"],
226    rustlibs: [
227        "libcrypto_provider",
228    ],
229}
230
231rust_library_rlib {
232    name: "libldt_np_adv",
233    crate_name: "ldt_np_adv",
234    defaults: ["beto_rust_defaults"],
235    srcs: ["presence/ldt_np_adv/src/lib.rs"],
236    rustlibs: [
237        "libcrypto_provider",
238        "libarray_view",
239        "libldt",
240        "libnp_hkdf",
241        "libxts_aes",
242        "libldt_tbc",
243    ],
244}
245
246rust_library_rlib {
247    name: "libnp_hkdf",
248    crate_name: "np_hkdf",
249    defaults: ["beto_rust_defaults"],
250    srcs: ["presence/np_hkdf/src/lib.rs"],
251    rustlibs: [
252        "libcrypto_provider",
253        "libldt",
254        "libxts_aes",
255    ],
256}
257
258rust_library_rlib {
259    name: "libnp_ed25519",
260    crate_name: "np_ed25519",
261    defaults: ["beto_rust_defaults"],
262    srcs: ["presence/np_ed25519/src/lib.rs"],
263    rustlibs: [
264        "libarray_view",
265        "libcrypto_provider",
266        "libsink",
267        "libtinyvec",
268    ],
269}
270
271rust_library_rlib {
272    name: "libxts_aes",
273    crate_name: "xts_aes",
274    defaults: ["beto_rust_defaults"],
275    srcs: ["presence/xts_aes/src/lib.rs"],
276    rustlibs: [
277        "libarray_ref",
278        "libcrypto_provider",
279        "libldt_tbc",
280    ],
281}
282
283rust_library_rlib {
284    name: "libarray_ref",
285    crate_name: "array_ref",
286    defaults: ["beto_rust_defaults"],
287    srcs: ["presence/array_ref/src/lib.rs"],
288}
289
290rust_library_rlib {
291    name: "libsink",
292    crate_name: "sink",
293    defaults: ["beto_rust_defaults"],
294    srcs: ["presence/sink/src/lib.rs"],
295    rustlibs: [
296        "libtinyvec",
297    ],
298}
299