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 ], 168 host_supported: true, 169 static_libs: [ 170 "jsr305", 171 ], 172 visibility: ["//visibility:public"], 173 required: [ 174 "libukey2_jni_shared", 175 ], 176} 177 178rust_library_rlib { 179 name: "libnp_adv", 180 crate_name: "np_adv", 181 defaults: ["beto_rust_defaults"], 182 srcs: ["presence/np_adv/src/lib.rs"], 183 rustlibs: [ 184 "libarray_view", 185 "libldt_np_adv", 186 "libldt", 187 "libnp_hkdf", 188 "libnp_ed25519", 189 "libxts_aes", 190 "libcrypto_provider", 191 "libstrum", 192 "libnom", 193 "liblazy_static", 194 "libsink", 195 "libtinyvec", 196 ], 197 proc_macros: [ 198 "libstrum_macros", 199 ], 200} 201 202rust_library_rlib { 203 name: "libarray_view", 204 crate_name: "array_view", 205 defaults: ["beto_rust_defaults"], 206 srcs: ["presence/array_view/src/lib.rs"], 207} 208 209rust_library_rlib { 210 name: "libldt", 211 crate_name: "ldt", 212 defaults: ["beto_rust_defaults"], 213 srcs: ["presence/ldt/src/lib.rs"], 214 rustlibs: [ 215 "libcrypto_provider", 216 "libldt_tbc", 217 ], 218} 219 220rust_library_rlib { 221 name: "libldt_tbc", 222 crate_name: "ldt_tbc", 223 defaults: ["beto_rust_defaults"], 224 srcs: ["presence/ldt_tbc/src/lib.rs"], 225 rustlibs: [ 226 "libcrypto_provider", 227 ], 228} 229 230rust_library_rlib { 231 name: "libldt_np_adv", 232 crate_name: "ldt_np_adv", 233 defaults: ["beto_rust_defaults"], 234 srcs: ["presence/ldt_np_adv/src/lib.rs"], 235 rustlibs: [ 236 "libcrypto_provider", 237 "libarray_view", 238 "libldt", 239 "libnp_hkdf", 240 "libxts_aes", 241 "libldt_tbc", 242 ], 243} 244 245rust_library_rlib { 246 name: "libnp_hkdf", 247 crate_name: "np_hkdf", 248 defaults: ["beto_rust_defaults"], 249 srcs: ["presence/np_hkdf/src/lib.rs"], 250 rustlibs: [ 251 "libcrypto_provider", 252 "libldt", 253 "libxts_aes", 254 ], 255} 256 257rust_library_rlib { 258 name: "libnp_ed25519", 259 crate_name: "np_ed25519", 260 defaults: ["beto_rust_defaults"], 261 srcs: ["presence/np_ed25519/src/lib.rs"], 262 rustlibs: [ 263 "libarray_view", 264 "libcrypto_provider", 265 "libsink", 266 "libtinyvec", 267 ], 268} 269 270rust_library_rlib { 271 name: "libxts_aes", 272 crate_name: "xts_aes", 273 defaults: ["beto_rust_defaults"], 274 srcs: ["presence/xts_aes/src/lib.rs"], 275 rustlibs: [ 276 "libarray_ref", 277 "libcrypto_provider", 278 "libldt_tbc", 279 ], 280} 281 282rust_library_rlib { 283 name: "libarray_ref", 284 crate_name: "array_ref", 285 defaults: ["beto_rust_defaults"], 286 srcs: ["presence/array_ref/src/lib.rs"], 287} 288 289rust_library_rlib { 290 name: "libsink", 291 crate_name: "sink", 292 defaults: ["beto_rust_defaults"], 293 srcs: ["presence/sink/src/lib.rs"], 294 rustlibs: [ 295 "libtinyvec", 296 ], 297} 298