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