1*8fb009dcSAndroid Build Coastguard Worker// Note that some host libraries have the same module name as the target 2*8fb009dcSAndroid Build Coastguard Worker// libraries. This is currently needed to build, for example, adb. But it's 3*8fb009dcSAndroid Build Coastguard Worker// probably something that should be changed. 4*8fb009dcSAndroid Build Coastguard Worker 5*8fb009dcSAndroid Build Coastguard Workerpackage { 6*8fb009dcSAndroid Build Coastguard Worker default_visibility: ["//visibility:private"], 7*8fb009dcSAndroid Build Coastguard Worker default_applicable_licenses: ["external_boringssl_license"], 8*8fb009dcSAndroid Build Coastguard Worker} 9*8fb009dcSAndroid Build Coastguard Worker 10*8fb009dcSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 11*8fb009dcSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 12*8fb009dcSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 13*8fb009dcSAndroid Build Coastguard Worker// 14*8fb009dcSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 15*8fb009dcSAndroid Build Coastguard Worker// 16*8fb009dcSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 17*8fb009dcSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 18*8fb009dcSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 19*8fb009dcSAndroid Build Coastguard Worker// 20*8fb009dcSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 21*8fb009dcSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 22*8fb009dcSAndroid Build Coastguard Worker// used in the current project. 23*8fb009dcSAndroid Build Coastguard Worker// See: http://go/android-license-faq 24*8fb009dcSAndroid Build Coastguard Workerlicense { 25*8fb009dcSAndroid Build Coastguard Worker name: "external_boringssl_license", 26*8fb009dcSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 27*8fb009dcSAndroid Build Coastguard Worker license_kinds: [ 28*8fb009dcSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 29*8fb009dcSAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 30*8fb009dcSAndroid Build Coastguard Worker "SPDX-license-identifier-ISC", 31*8fb009dcSAndroid Build Coastguard Worker "SPDX-license-identifier-MIT", 32*8fb009dcSAndroid Build Coastguard Worker "SPDX-license-identifier-OpenSSL", 33*8fb009dcSAndroid Build Coastguard Worker "legacy_unencumbered", 34*8fb009dcSAndroid Build Coastguard Worker ], 35*8fb009dcSAndroid Build Coastguard Worker license_text: [ 36*8fb009dcSAndroid Build Coastguard Worker "NOTICE", 37*8fb009dcSAndroid Build Coastguard Worker ], 38*8fb009dcSAndroid Build Coastguard Worker} 39*8fb009dcSAndroid Build Coastguard Worker 40*8fb009dcSAndroid Build Coastguard Worker// Pull in the autogenerated sources modules 41*8fb009dcSAndroid Build Coastguard Workerbuild = ["sources.bp"] 42*8fb009dcSAndroid Build Coastguard Worker 43*8fb009dcSAndroid Build Coastguard Worker// Used by libcrypto, libssl, bssl tool, and native tests 44*8fb009dcSAndroid Build Coastguard Workercc_defaults { 45*8fb009dcSAndroid Build Coastguard Worker // This contains the common options between boringssl_flags and 46*8fb009dcSAndroid Build Coastguard Worker // boringssl_flags_baremetal. Nothing else should include this target 47*8fb009dcSAndroid Build Coastguard Worker // directly. 48*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_flags_common", 49*8fb009dcSAndroid Build Coastguard Worker 50*8fb009dcSAndroid Build Coastguard Worker cflags: [ 51*8fb009dcSAndroid Build Coastguard Worker "-fvisibility=hidden", 52*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_SHARED_LIBRARY", 53*8fb009dcSAndroid Build Coastguard Worker "-DOPENSSL_SMALL", 54*8fb009dcSAndroid Build Coastguard Worker "-Werror", 55*8fb009dcSAndroid Build Coastguard Worker "-Wno-unused-parameter", 56*8fb009dcSAndroid Build Coastguard Worker ], 57*8fb009dcSAndroid Build Coastguard Worker 58*8fb009dcSAndroid Build Coastguard Worker cppflags: [ 59*8fb009dcSAndroid Build Coastguard Worker "-Wall", 60*8fb009dcSAndroid Build Coastguard Worker "-Werror", 61*8fb009dcSAndroid Build Coastguard Worker ], 62*8fb009dcSAndroid Build Coastguard Worker 63*8fb009dcSAndroid Build Coastguard Worker // Build BoringSSL and its tests against the same STL. 64*8fb009dcSAndroid Build Coastguard Worker stl: "libc++_static", 65*8fb009dcSAndroid Build Coastguard Worker} 66*8fb009dcSAndroid Build Coastguard Worker 67*8fb009dcSAndroid Build Coastguard Workercc_defaults { 68*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_flags", 69*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 70*8fb009dcSAndroid Build Coastguard Worker product_available: true, 71*8fb009dcSAndroid Build Coastguard Worker cflags: ["-DBORINGSSL_ANDROID_SYSTEM"], 72*8fb009dcSAndroid Build Coastguard Worker defaults: ["boringssl_flags_common"], 73*8fb009dcSAndroid Build Coastguard Worker sdk_version: "9", 74*8fb009dcSAndroid Build Coastguard Worker} 75*8fb009dcSAndroid Build Coastguard Worker 76*8fb009dcSAndroid Build Coastguard Workercc_defaults { 77*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_flags_baremetal", 78*8fb009dcSAndroid Build Coastguard Worker cflags: [ 79*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_NO_STATIC_INITIALIZER", 80*8fb009dcSAndroid Build Coastguard Worker "-DANDROID_BAREMETAL", 81*8fb009dcSAndroid Build Coastguard Worker ], 82*8fb009dcSAndroid Build Coastguard Worker defaults: [ 83*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags_common", 84*8fb009dcSAndroid Build Coastguard Worker "cc_baremetal_defaults", 85*8fb009dcSAndroid Build Coastguard Worker ], 86*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 87*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 88*8fb009dcSAndroid Build Coastguard Worker ], 89*8fb009dcSAndroid Build Coastguard Worker} 90*8fb009dcSAndroid Build Coastguard Worker 91*8fb009dcSAndroid Build Coastguard Worker// Used by libcrypto + libssl 92*8fb009dcSAndroid Build Coastguard Workercc_defaults { 93*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_defaults", 94*8fb009dcSAndroid Build Coastguard Worker 95*8fb009dcSAndroid Build Coastguard Worker local_include_dirs: ["src/include"], 96*8fb009dcSAndroid Build Coastguard Worker export_include_dirs: ["src/include"], 97*8fb009dcSAndroid Build Coastguard Worker cflags: ["-DBORINGSSL_IMPLEMENTATION"], 98*8fb009dcSAndroid Build Coastguard Worker 99*8fb009dcSAndroid Build Coastguard Worker cmake_snapshot_supported: true, 100*8fb009dcSAndroid Build Coastguard Worker} 101*8fb009dcSAndroid Build Coastguard Worker 102*8fb009dcSAndroid Build Coastguard Worker//// libcrypto, but not libcrypto_baremetal. libcrypto_baremetal is a single 103*8fb009dcSAndroid Build Coastguard Worker//// target, so there is no need for a libcrypto_defaults_baremetal. 104*8fb009dcSAndroid Build Coastguard Workercc_defaults { 105*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_defaults", 106*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 107*8fb009dcSAndroid Build Coastguard Worker ramdisk_available: true, 108*8fb009dcSAndroid Build Coastguard Worker vendor_ramdisk_available: true, 109*8fb009dcSAndroid Build Coastguard Worker 110*8fb009dcSAndroid Build Coastguard Worker target: { 111*8fb009dcSAndroid Build Coastguard Worker windows: { 112*8fb009dcSAndroid Build Coastguard Worker enabled: true, 113*8fb009dcSAndroid Build Coastguard Worker host_ldlibs: ["-lws2_32"], 114*8fb009dcSAndroid Build Coastguard Worker }, 115*8fb009dcSAndroid Build Coastguard Worker host: { 116*8fb009dcSAndroid Build Coastguard Worker host_ldlibs: ["-lpthread"], 117*8fb009dcSAndroid Build Coastguard Worker }, 118*8fb009dcSAndroid Build Coastguard Worker android: { 119*8fb009dcSAndroid Build Coastguard Worker // On FIPS builds (i.e. Android only) prevent other libraries 120*8fb009dcSAndroid Build Coastguard Worker // from pre-empting symbols in libcrypto which could affect FIPS 121*8fb009dcSAndroid Build Coastguard Worker // compliance and cause integrity checks to fail. See b/160231064. 122*8fb009dcSAndroid Build Coastguard Worker ldflags: ["-Wl,-Bsymbolic"], 123*8fb009dcSAndroid Build Coastguard Worker }, 124*8fb009dcSAndroid Build Coastguard Worker }, 125*8fb009dcSAndroid Build Coastguard Worker 126*8fb009dcSAndroid Build Coastguard Worker stl: "none", 127*8fb009dcSAndroid Build Coastguard Worker} 128*8fb009dcSAndroid Build Coastguard Worker 129*8fb009dcSAndroid Build Coastguard Worker// Boring Crypto Module object file. 130*8fb009dcSAndroid Build Coastguard Worker// Common settings between bcm_object and bcm_object_for_testing. 131*8fb009dcSAndroid Build Coastguard Workercc_defaults { 132*8fb009dcSAndroid Build Coastguard Worker name: "bcm_object_defaults", 133*8fb009dcSAndroid Build Coastguard Worker device_supported: true, 134*8fb009dcSAndroid Build Coastguard Worker defaults: [ 135*8fb009dcSAndroid Build Coastguard Worker "libcrypto_bcm_sources", 136*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 137*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 138*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 139*8fb009dcSAndroid Build Coastguard Worker ], 140*8fb009dcSAndroid Build Coastguard Worker sanitize: { 141*8fb009dcSAndroid Build Coastguard Worker address: false, 142*8fb009dcSAndroid Build Coastguard Worker hwaddress: false, 143*8fb009dcSAndroid Build Coastguard Worker memtag_stack: false, 144*8fb009dcSAndroid Build Coastguard Worker memtag_globals: false, 145*8fb009dcSAndroid Build Coastguard Worker fuzzer: false, 146*8fb009dcSAndroid Build Coastguard Worker }, 147*8fb009dcSAndroid Build Coastguard Worker target: { 148*8fb009dcSAndroid Build Coastguard Worker android: { 149*8fb009dcSAndroid Build Coastguard Worker cflags: [ 150*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_FIPS", 151*8fb009dcSAndroid Build Coastguard Worker "-fPIC", 152*8fb009dcSAndroid Build Coastguard Worker // -fno[data|text]-sections required to ensure a 153*8fb009dcSAndroid Build Coastguard Worker // single text and data section for FIPS integrity check 154*8fb009dcSAndroid Build Coastguard Worker "-fno-data-sections", 155*8fb009dcSAndroid Build Coastguard Worker "-fno-function-sections", 156*8fb009dcSAndroid Build Coastguard Worker ], 157*8fb009dcSAndroid Build Coastguard Worker linker_script: "src/crypto/fipsmodule/fips_shared.lds", 158*8fb009dcSAndroid Build Coastguard Worker }, 159*8fb009dcSAndroid Build Coastguard Worker // Temporary hack to let BoringSSL build with a new compiler. 160*8fb009dcSAndroid Build Coastguard Worker // This doesn't enable HWASAN unconditionally, it just causes 161*8fb009dcSAndroid Build Coastguard Worker // BoringSSL's asm code to unconditionally use a HWASAN-compatible 162*8fb009dcSAndroid Build Coastguard Worker // global variable reference so that the non-HWASANified (because of 163*8fb009dcSAndroid Build Coastguard Worker // sanitize: { hwaddress: false } above) code in the BCM can 164*8fb009dcSAndroid Build Coastguard Worker // successfully link against the HWASANified code in the rest of 165*8fb009dcSAndroid Build Coastguard Worker // BoringSSL in HWASAN builds. 166*8fb009dcSAndroid Build Coastguard Worker android_arm64: { 167*8fb009dcSAndroid Build Coastguard Worker asflags: [ 168*8fb009dcSAndroid Build Coastguard Worker "-fsanitize=hwaddress", 169*8fb009dcSAndroid Build Coastguard Worker ], 170*8fb009dcSAndroid Build Coastguard Worker }, 171*8fb009dcSAndroid Build Coastguard Worker }, 172*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 173*8fb009dcSAndroid Build Coastguard Worker} 174*8fb009dcSAndroid Build Coastguard Worker 175*8fb009dcSAndroid Build Coastguard Workercc_object { 176*8fb009dcSAndroid Build Coastguard Worker name: "bcm_object", 177*8fb009dcSAndroid Build Coastguard Worker recovery_available: true, 178*8fb009dcSAndroid Build Coastguard Worker native_bridge_supported: true, 179*8fb009dcSAndroid Build Coastguard Worker defaults: [ 180*8fb009dcSAndroid Build Coastguard Worker "bcm_object_defaults", 181*8fb009dcSAndroid Build Coastguard Worker ], 182*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 183*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 184*8fb009dcSAndroid Build Coastguard Worker "com.android.adbd", 185*8fb009dcSAndroid Build Coastguard Worker "com.android.adservices", 186*8fb009dcSAndroid Build Coastguard Worker "com.android.btservices", 187*8fb009dcSAndroid Build Coastguard Worker "com.android.compos", 188*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 189*8fb009dcSAndroid Build Coastguard Worker "com.android.conscrypt", 190*8fb009dcSAndroid Build Coastguard Worker "com.android.extservices", 191*8fb009dcSAndroid Build Coastguard Worker "com.android.ondevicepersonalization", 192*8fb009dcSAndroid Build Coastguard Worker "com.android.resolv", 193*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 194*8fb009dcSAndroid Build Coastguard Worker "com.android.wifi", 195*8fb009dcSAndroid Build Coastguard Worker ], 196*8fb009dcSAndroid Build Coastguard Worker} 197*8fb009dcSAndroid Build Coastguard Worker 198*8fb009dcSAndroid Build Coastguard Worker// Version of bcm_object built with BORINGSSL_FIPS_BREAK_TESTS defined. 199*8fb009dcSAndroid Build Coastguard Worker// Only for use with the FIPS break-tests.sh script. 200*8fb009dcSAndroid Build Coastguard Workercc_object { 201*8fb009dcSAndroid Build Coastguard Worker name: "bcm_object_for_testing", 202*8fb009dcSAndroid Build Coastguard Worker visibility: [ 203*8fb009dcSAndroid Build Coastguard Worker "//external/boringssl", 204*8fb009dcSAndroid Build Coastguard Worker ], 205*8fb009dcSAndroid Build Coastguard Worker defaults: [ 206*8fb009dcSAndroid Build Coastguard Worker "bcm_object_defaults", 207*8fb009dcSAndroid Build Coastguard Worker ], 208*8fb009dcSAndroid Build Coastguard Worker target: { 209*8fb009dcSAndroid Build Coastguard Worker android: { 210*8fb009dcSAndroid Build Coastguard Worker cflags: ["-DBORINGSSL_FIPS_BREAK_TESTS"], 211*8fb009dcSAndroid Build Coastguard Worker }, 212*8fb009dcSAndroid Build Coastguard Worker }, 213*8fb009dcSAndroid Build Coastguard Worker} 214*8fb009dcSAndroid Build Coastguard Worker 215*8fb009dcSAndroid Build Coastguard Workerbootstrap_go_package { 216*8fb009dcSAndroid Build Coastguard Worker name: "bssl_ar", 217*8fb009dcSAndroid Build Coastguard Worker pkgPath: "boringssl.googlesource.com/boringssl/util/ar", 218*8fb009dcSAndroid Build Coastguard Worker srcs: [ 219*8fb009dcSAndroid Build Coastguard Worker "src/util/ar/ar.go", 220*8fb009dcSAndroid Build Coastguard Worker ], 221*8fb009dcSAndroid Build Coastguard Worker testSrcs: [ 222*8fb009dcSAndroid Build Coastguard Worker "src/util/ar/ar_test.go", 223*8fb009dcSAndroid Build Coastguard Worker ], 224*8fb009dcSAndroid Build Coastguard Worker} 225*8fb009dcSAndroid Build Coastguard Worker 226*8fb009dcSAndroid Build Coastguard Workerbootstrap_go_package { 227*8fb009dcSAndroid Build Coastguard Worker name: "bssl_fipscommon", 228*8fb009dcSAndroid Build Coastguard Worker pkgPath: "boringssl.googlesource.com/boringssl/util/fipstools/fipscommon", 229*8fb009dcSAndroid Build Coastguard Worker srcs: [ 230*8fb009dcSAndroid Build Coastguard Worker "src/util/fipstools/fipscommon/const.go", 231*8fb009dcSAndroid Build Coastguard Worker ], 232*8fb009dcSAndroid Build Coastguard Worker} 233*8fb009dcSAndroid Build Coastguard Worker 234*8fb009dcSAndroid Build Coastguard Workerblueprint_go_binary { 235*8fb009dcSAndroid Build Coastguard Worker name: "bssl_inject_hash", 236*8fb009dcSAndroid Build Coastguard Worker srcs: [ 237*8fb009dcSAndroid Build Coastguard Worker "src/util/fipstools/inject_hash/inject_hash.go", 238*8fb009dcSAndroid Build Coastguard Worker ], 239*8fb009dcSAndroid Build Coastguard Worker deps: [ 240*8fb009dcSAndroid Build Coastguard Worker "bssl_ar", 241*8fb009dcSAndroid Build Coastguard Worker "bssl_fipscommon", 242*8fb009dcSAndroid Build Coastguard Worker ], 243*8fb009dcSAndroid Build Coastguard Worker} 244*8fb009dcSAndroid Build Coastguard Worker 245*8fb009dcSAndroid Build Coastguard Worker// Target and host library. 246*8fb009dcSAndroid Build Coastguard Worker// Any changes here must also be reflected in libcrypto_for_test below. 247*8fb009dcSAndroid Build Coastguard Workercc_library { 248*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto", 249*8fb009dcSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 250*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 251*8fb009dcSAndroid Build Coastguard Worker product_available: true, 252*8fb009dcSAndroid Build Coastguard Worker native_bridge_supported: true, 253*8fb009dcSAndroid Build Coastguard Worker double_loadable: true, 254*8fb009dcSAndroid Build Coastguard Worker recovery_available: true, 255*8fb009dcSAndroid Build Coastguard Worker defaults: [ 256*8fb009dcSAndroid Build Coastguard Worker "libcrypto_sources", 257*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 258*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 259*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 260*8fb009dcSAndroid Build Coastguard Worker ], 261*8fb009dcSAndroid Build Coastguard Worker unique_host_soname: true, 262*8fb009dcSAndroid Build Coastguard Worker srcs: [ 263*8fb009dcSAndroid Build Coastguard Worker ":bcm_object", 264*8fb009dcSAndroid Build Coastguard Worker ], 265*8fb009dcSAndroid Build Coastguard Worker target: { 266*8fb009dcSAndroid Build Coastguard Worker android: { 267*8fb009dcSAndroid Build Coastguard Worker cflags: [ 268*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_FIPS", 269*8fb009dcSAndroid Build Coastguard Worker ], 270*8fb009dcSAndroid Build Coastguard Worker sanitize: { 271*8fb009dcSAndroid Build Coastguard Worker // Disable address sanitizing otherwise libcrypto will not report 272*8fb009dcSAndroid Build Coastguard Worker // itself as being in FIPS mode, which causes boringssl_self_test 273*8fb009dcSAndroid Build Coastguard Worker // to fail. 274*8fb009dcSAndroid Build Coastguard Worker address: false, 275*8fb009dcSAndroid Build Coastguard Worker }, 276*8fb009dcSAndroid Build Coastguard Worker inject_bssl_hash: true, 277*8fb009dcSAndroid Build Coastguard Worker static: { 278*8fb009dcSAndroid Build Coastguard Worker // Disable the static version of libcrypto, as it causes 279*8fb009dcSAndroid Build Coastguard Worker // problems for FIPS certification. Use libcrypto_static for 280*8fb009dcSAndroid Build Coastguard Worker // modules that need static libcrypto but do not need FIPS self 281*8fb009dcSAndroid Build Coastguard Worker // testing, or use dynamic libcrypto. 282*8fb009dcSAndroid Build Coastguard Worker enabled: false, 283*8fb009dcSAndroid Build Coastguard Worker }, 284*8fb009dcSAndroid Build Coastguard Worker }, 285*8fb009dcSAndroid Build Coastguard Worker }, 286*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 287*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 288*8fb009dcSAndroid Build Coastguard Worker "com.android.adbd", 289*8fb009dcSAndroid Build Coastguard Worker "com.android.adservices", 290*8fb009dcSAndroid Build Coastguard Worker "com.android.btservices", 291*8fb009dcSAndroid Build Coastguard Worker "com.android.compos", 292*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 293*8fb009dcSAndroid Build Coastguard Worker "com.android.conscrypt", 294*8fb009dcSAndroid Build Coastguard Worker "com.android.extservices", 295*8fb009dcSAndroid Build Coastguard Worker "com.android.ondevicepersonalization", 296*8fb009dcSAndroid Build Coastguard Worker "com.android.resolv", 297*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 298*8fb009dcSAndroid Build Coastguard Worker "com.android.wifi", 299*8fb009dcSAndroid Build Coastguard Worker ], 300*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 301*8fb009dcSAndroid Build Coastguard Worker afdo: true, 302*8fb009dcSAndroid Build Coastguard Worker} 303*8fb009dcSAndroid Build Coastguard Worker 304*8fb009dcSAndroid Build Coastguard Worker// Version of libcrypto build with BORINGSSL_FIPS_BREAK_TESTS defined 305*8fb009dcSAndroid Build Coastguard Worker// Only for use with the FIPS break-tests.sh script. 306*8fb009dcSAndroid Build Coastguard Worker// Must be kept in sync with libcrypto. 307*8fb009dcSAndroid Build Coastguard Workercc_library { 308*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_for_testing", 309*8fb009dcSAndroid Build Coastguard Worker visibility: [ 310*8fb009dcSAndroid Build Coastguard Worker "//external/boringssl", 311*8fb009dcSAndroid Build Coastguard Worker ], 312*8fb009dcSAndroid Build Coastguard Worker defaults: [ 313*8fb009dcSAndroid Build Coastguard Worker "libcrypto_sources", 314*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 315*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 316*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 317*8fb009dcSAndroid Build Coastguard Worker ], 318*8fb009dcSAndroid Build Coastguard Worker unique_host_soname: true, 319*8fb009dcSAndroid Build Coastguard Worker srcs: [ 320*8fb009dcSAndroid Build Coastguard Worker ":bcm_object_for_testing", 321*8fb009dcSAndroid Build Coastguard Worker ], 322*8fb009dcSAndroid Build Coastguard Worker target: { 323*8fb009dcSAndroid Build Coastguard Worker android: { 324*8fb009dcSAndroid Build Coastguard Worker cflags: [ 325*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_FIPS", 326*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_FIPS_BREAK_TESTS", 327*8fb009dcSAndroid Build Coastguard Worker ], 328*8fb009dcSAndroid Build Coastguard Worker sanitize: { 329*8fb009dcSAndroid Build Coastguard Worker // Disable address sanitizing otherwise libcrypto will not report 330*8fb009dcSAndroid Build Coastguard Worker // itself as being in FIPS mode, which causes boringssl_self_test 331*8fb009dcSAndroid Build Coastguard Worker // to fail. 332*8fb009dcSAndroid Build Coastguard Worker address: false, 333*8fb009dcSAndroid Build Coastguard Worker }, 334*8fb009dcSAndroid Build Coastguard Worker inject_bssl_hash: true, 335*8fb009dcSAndroid Build Coastguard Worker static: { 336*8fb009dcSAndroid Build Coastguard Worker // Disable the static version of libcrypto, as it causes 337*8fb009dcSAndroid Build Coastguard Worker // problems for FIPS certification. Use libcrypto_static for 338*8fb009dcSAndroid Build Coastguard Worker // modules that need static libcrypto but do not need FIPS self 339*8fb009dcSAndroid Build Coastguard Worker // testing, or use dynamic libcrypto. 340*8fb009dcSAndroid Build Coastguard Worker enabled: false, 341*8fb009dcSAndroid Build Coastguard Worker }, 342*8fb009dcSAndroid Build Coastguard Worker }, 343*8fb009dcSAndroid Build Coastguard Worker }, 344*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 345*8fb009dcSAndroid Build Coastguard Worker} 346*8fb009dcSAndroid Build Coastguard Worker 347*8fb009dcSAndroid Build Coastguard Worker// Static library 348*8fb009dcSAndroid Build Coastguard Worker// This version of libcrypto will not have FIPS self tests enabled, so its 349*8fb009dcSAndroid Build Coastguard Worker// usage is protected through visibility to ensure it doesn't end up used 350*8fb009dcSAndroid Build Coastguard Worker// somewhere that needs the FIPS version. 351*8fb009dcSAndroid Build Coastguard Workercc_library_static { 352*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_static", 353*8fb009dcSAndroid Build Coastguard Worker visibility: [ 354*8fb009dcSAndroid Build Coastguard Worker "//bootable/recovery/updater", 355*8fb009dcSAndroid Build Coastguard Worker "//bootable/deprecated-ota/updater", 356*8fb009dcSAndroid Build Coastguard Worker "//external/conscrypt", 357*8fb009dcSAndroid Build Coastguard Worker "//external/python/cpython2", 358*8fb009dcSAndroid Build Coastguard Worker "//external/rust/android-crates-io/crates/quiche", 359*8fb009dcSAndroid Build Coastguard Worker // Strictly, only the *static* toybox for legacy devices should have 360*8fb009dcSAndroid Build Coastguard Worker // access to libcrypto_static, but we can't express that. 361*8fb009dcSAndroid Build Coastguard Worker "//external/toybox", 362*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/confirmationui/1.0/vts/functional", 363*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/drm/1.0/vts/functional", 364*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/drm/1.2/vts/functional", 365*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/drm/1.3/vts/functional", 366*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/keymaster/3.0/vts/functional", 367*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/keymaster/4.0/vts/functional", 368*8fb009dcSAndroid Build Coastguard Worker "//hardware/interfaces/keymaster/4.1/vts/functional", 369*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/adb", 370*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/AdServices:__subpackages__", 371*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/DnsResolver/tests:__subpackages__", 372*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/NeuralNetworks:__subpackages__", 373*8fb009dcSAndroid Build Coastguard Worker "//system/core/init", 374*8fb009dcSAndroid Build Coastguard Worker "//system/core/fs_mgr/liblp", 375*8fb009dcSAndroid Build Coastguard Worker "//system/core/fs_mgr/liblp/vts_core", 376*8fb009dcSAndroid Build Coastguard Worker "//system/core/fs_mgr/libsnapshot", 377*8fb009dcSAndroid Build Coastguard Worker "//system/libvintf/test", 378*8fb009dcSAndroid Build Coastguard Worker "//system/security/keystore/tests", 379*8fb009dcSAndroid Build Coastguard Worker "//system/security/provisioner", 380*8fb009dcSAndroid Build Coastguard Worker "//test/vts-testcase/security/avb", 381*8fb009dcSAndroid Build Coastguard Worker "//vendor:__subpackages__", 382*8fb009dcSAndroid Build Coastguard Worker ], 383*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 384*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 385*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 386*8fb009dcSAndroid Build Coastguard Worker "com.android.adservices", 387*8fb009dcSAndroid Build Coastguard Worker "com.android.extservices", 388*8fb009dcSAndroid Build Coastguard Worker "com.android.neuralnetworks", 389*8fb009dcSAndroid Build Coastguard Worker ], 390*8fb009dcSAndroid Build Coastguard Worker defaults: [ 391*8fb009dcSAndroid Build Coastguard Worker "libcrypto_bcm_sources", 392*8fb009dcSAndroid Build Coastguard Worker "libcrypto_sources", 393*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 394*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 395*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 396*8fb009dcSAndroid Build Coastguard Worker ], 397*8fb009dcSAndroid Build Coastguard Worker} 398*8fb009dcSAndroid Build Coastguard Worker 399*8fb009dcSAndroid Build Coastguard Worker// Static library for use in bare-metal environments 400*8fb009dcSAndroid Build Coastguard Workercc_library_static { 401*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_baremetal", 402*8fb009dcSAndroid Build Coastguard Worker defaults: [ 403*8fb009dcSAndroid Build Coastguard Worker "libcrypto_bcm_sources", 404*8fb009dcSAndroid Build Coastguard Worker "libcrypto_sources", 405*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 406*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags_baremetal", 407*8fb009dcSAndroid Build Coastguard Worker ], 408*8fb009dcSAndroid Build Coastguard Worker visibility: [ 409*8fb009dcSAndroid Build Coastguard Worker "//external/avb:__subpackages__", 410*8fb009dcSAndroid Build Coastguard Worker "//external/open-dice", 411*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/Virtualization:__subpackages__", 412*8fb009dcSAndroid Build Coastguard Worker "//system/security/diced/open_dice", 413*8fb009dcSAndroid Build Coastguard Worker ], 414*8fb009dcSAndroid Build Coastguard Worker 415*8fb009dcSAndroid Build Coastguard Worker // b/336916369: This library gets linked into a rust rlib. Disable LTO 416*8fb009dcSAndroid Build Coastguard Worker // until cross-language lto is supported. 417*8fb009dcSAndroid Build Coastguard Worker lto: { 418*8fb009dcSAndroid Build Coastguard Worker never: true, 419*8fb009dcSAndroid Build Coastguard Worker }, 420*8fb009dcSAndroid Build Coastguard Worker} 421*8fb009dcSAndroid Build Coastguard Worker 422*8fb009dcSAndroid Build Coastguard Worker// For static linking into the ART module to provide limited functionality: 423*8fb009dcSAndroid Build Coastguard Worker// bignums and SHA1 for ELF checksums. 424*8fb009dcSAndroid Build Coastguard Workercc_library_static { 425*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_for_art", 426*8fb009dcSAndroid Build Coastguard Worker defaults: [ 427*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 428*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 429*8fb009dcSAndroid Build Coastguard Worker ], 430*8fb009dcSAndroid Build Coastguard Worker srcs: [ 431*8fb009dcSAndroid Build Coastguard Worker "src/crypto/cpu_*.c", 432*8fb009dcSAndroid Build Coastguard Worker "src/crypto/crypto.c", 433*8fb009dcSAndroid Build Coastguard Worker "src/crypto/err/err.c", 434*8fb009dcSAndroid Build Coastguard Worker "src/crypto/fipsmodule/bn/*.c", 435*8fb009dcSAndroid Build Coastguard Worker "src/crypto/fipsmodule/bn/asm/*.c", 436*8fb009dcSAndroid Build Coastguard Worker "src/crypto/fipsmodule/rand/*.c", 437*8fb009dcSAndroid Build Coastguard Worker "src/crypto/fipsmodule/sha/sha1.c", 438*8fb009dcSAndroid Build Coastguard Worker "src/crypto/mem.c", 439*8fb009dcSAndroid Build Coastguard Worker "src/crypto/stack/stack.c", 440*8fb009dcSAndroid Build Coastguard Worker "src/crypto/thread_pthread.c", 441*8fb009dcSAndroid Build Coastguard Worker "src/gen/crypto/err_data.c", 442*8fb009dcSAndroid Build Coastguard Worker ], 443*8fb009dcSAndroid Build Coastguard Worker target: { 444*8fb009dcSAndroid Build Coastguard Worker linux: { 445*8fb009dcSAndroid Build Coastguard Worker srcs: [ 446*8fb009dcSAndroid Build Coastguard Worker "src/gen/bcm/*-linux.S", 447*8fb009dcSAndroid Build Coastguard Worker ], 448*8fb009dcSAndroid Build Coastguard Worker }, 449*8fb009dcSAndroid Build Coastguard Worker }, 450*8fb009dcSAndroid Build Coastguard Worker visibility: [ 451*8fb009dcSAndroid Build Coastguard Worker "//art:__subpackages__", 452*8fb009dcSAndroid Build Coastguard Worker "//libcore:__subpackages__", 453*8fb009dcSAndroid Build Coastguard Worker ], 454*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 455*8fb009dcSAndroid Build Coastguard Worker "com.android.art", 456*8fb009dcSAndroid Build Coastguard Worker "com.android.art.debug", 457*8fb009dcSAndroid Build Coastguard Worker "com.android.art.testing", 458*8fb009dcSAndroid Build Coastguard Worker ], 459*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 460*8fb009dcSAndroid Build Coastguard Worker} 461*8fb009dcSAndroid Build Coastguard Worker 462*8fb009dcSAndroid Build Coastguard Worker// Common defaults for lib*_fuzz_unsafe. These are unsafe and deterministic 463*8fb009dcSAndroid Build Coastguard Worker// libraries for testing and fuzzing only. See src/FUZZING.md. 464*8fb009dcSAndroid Build Coastguard Workercc_defaults { 465*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_fuzz_unsafe_defaults", 466*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 467*8fb009dcSAndroid Build Coastguard Worker cflags: [ 468*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE", 469*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_UNSAFE_FUZZER_MODE", 470*8fb009dcSAndroid Build Coastguard Worker ], 471*8fb009dcSAndroid Build Coastguard Worker visibility: [ 472*8fb009dcSAndroid Build Coastguard Worker "//frameworks/native/libs/binder/tests:__subpackages__", 473*8fb009dcSAndroid Build Coastguard Worker ], 474*8fb009dcSAndroid Build Coastguard Worker} 475*8fb009dcSAndroid Build Coastguard Worker 476*8fb009dcSAndroid Build Coastguard Worker// Unsafe and deterministic version of libcrypto. For testing and fuzzing only. 477*8fb009dcSAndroid Build Coastguard Worker// See src/FUZZING.md. 478*8fb009dcSAndroid Build Coastguard Workercc_test_library { 479*8fb009dcSAndroid Build Coastguard Worker name: "libcrypto_fuzz_unsafe", 480*8fb009dcSAndroid Build Coastguard Worker ramdisk_available: false, 481*8fb009dcSAndroid Build Coastguard Worker vendor_ramdisk_available: false, 482*8fb009dcSAndroid Build Coastguard Worker defaults: [ 483*8fb009dcSAndroid Build Coastguard Worker "libcrypto_bcm_sources", 484*8fb009dcSAndroid Build Coastguard Worker "libcrypto_sources", 485*8fb009dcSAndroid Build Coastguard Worker "libcrypto_defaults", 486*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 487*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 488*8fb009dcSAndroid Build Coastguard Worker "boringssl_fuzz_unsafe_defaults", 489*8fb009dcSAndroid Build Coastguard Worker ], 490*8fb009dcSAndroid Build Coastguard Worker} 491*8fb009dcSAndroid Build Coastguard Worker 492*8fb009dcSAndroid Build Coastguard Worker//// libssl 493*8fb009dcSAndroid Build Coastguard Worker 494*8fb009dcSAndroid Build Coastguard Worker// Target static library 495*8fb009dcSAndroid Build Coastguard Worker 496*8fb009dcSAndroid Build Coastguard Worker// Static and Shared library 497*8fb009dcSAndroid Build Coastguard Workercc_library { 498*8fb009dcSAndroid Build Coastguard Worker name: "libssl", 499*8fb009dcSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 500*8fb009dcSAndroid Build Coastguard Worker recovery_available: true, 501*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 502*8fb009dcSAndroid Build Coastguard Worker product_available: true, 503*8fb009dcSAndroid Build Coastguard Worker native_bridge_supported: true, 504*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 505*8fb009dcSAndroid Build Coastguard Worker defaults: [ 506*8fb009dcSAndroid Build Coastguard Worker "libssl_sources", 507*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 508*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 509*8fb009dcSAndroid Build Coastguard Worker ], 510*8fb009dcSAndroid Build Coastguard Worker target: { 511*8fb009dcSAndroid Build Coastguard Worker windows: { 512*8fb009dcSAndroid Build Coastguard Worker enabled: true, 513*8fb009dcSAndroid Build Coastguard Worker }, 514*8fb009dcSAndroid Build Coastguard Worker }, 515*8fb009dcSAndroid Build Coastguard Worker unique_host_soname: true, 516*8fb009dcSAndroid Build Coastguard Worker 517*8fb009dcSAndroid Build Coastguard Worker shared_libs: ["libcrypto"], 518*8fb009dcSAndroid Build Coastguard Worker 519*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 520*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 521*8fb009dcSAndroid Build Coastguard Worker "com.android.adbd", 522*8fb009dcSAndroid Build Coastguard Worker "com.android.btservices", 523*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 524*8fb009dcSAndroid Build Coastguard Worker "com.android.conscrypt", 525*8fb009dcSAndroid Build Coastguard Worker "com.android.resolv", 526*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 527*8fb009dcSAndroid Build Coastguard Worker "com.android.wifi", 528*8fb009dcSAndroid Build Coastguard Worker ], 529*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 530*8fb009dcSAndroid Build Coastguard Worker} 531*8fb009dcSAndroid Build Coastguard Worker 532*8fb009dcSAndroid Build Coastguard Workercc_library_static { 533*8fb009dcSAndroid Build Coastguard Worker name: "libssl_baremetal", 534*8fb009dcSAndroid Build Coastguard Worker defaults: [ 535*8fb009dcSAndroid Build Coastguard Worker "libssl_sources", 536*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 537*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags_baremetal", 538*8fb009dcSAndroid Build Coastguard Worker ], 539*8fb009dcSAndroid Build Coastguard Worker static_libs: ["libcrypto_baremetal"], 540*8fb009dcSAndroid Build Coastguard Worker} 541*8fb009dcSAndroid Build Coastguard Worker 542*8fb009dcSAndroid Build Coastguard Workercc_library_host_static { 543*8fb009dcSAndroid Build Coastguard Worker name: "libssl_static", 544*8fb009dcSAndroid Build Coastguard Worker defaults: [ 545*8fb009dcSAndroid Build Coastguard Worker "libssl_sources", 546*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 547*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 548*8fb009dcSAndroid Build Coastguard Worker ], 549*8fb009dcSAndroid Build Coastguard Worker static_libs: ["libcrypto_static"], 550*8fb009dcSAndroid Build Coastguard Worker} 551*8fb009dcSAndroid Build Coastguard Worker 552*8fb009dcSAndroid Build Coastguard Worker// Unsafe and deterministic version of libssl. For testing and fuzzing only. 553*8fb009dcSAndroid Build Coastguard Worker// See src/FUZZING.md. 554*8fb009dcSAndroid Build Coastguard Workercc_test_library { 555*8fb009dcSAndroid Build Coastguard Worker name: "libssl_fuzz_unsafe", 556*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 557*8fb009dcSAndroid Build Coastguard Worker defaults: [ 558*8fb009dcSAndroid Build Coastguard Worker "libssl_sources", 559*8fb009dcSAndroid Build Coastguard Worker "boringssl_defaults", 560*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 561*8fb009dcSAndroid Build Coastguard Worker "boringssl_fuzz_unsafe_defaults", 562*8fb009dcSAndroid Build Coastguard Worker ], 563*8fb009dcSAndroid Build Coastguard Worker static_libs: [ 564*8fb009dcSAndroid Build Coastguard Worker "libcrypto_fuzz_unsafe", 565*8fb009dcSAndroid Build Coastguard Worker ], 566*8fb009dcSAndroid Build Coastguard Worker} 567*8fb009dcSAndroid Build Coastguard Worker 568*8fb009dcSAndroid Build Coastguard Worker// Tool 569*8fb009dcSAndroid Build Coastguard Workercc_binary { 570*8fb009dcSAndroid Build Coastguard Worker name: "bssl", 571*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 572*8fb009dcSAndroid Build Coastguard Worker defaults: [ 573*8fb009dcSAndroid Build Coastguard Worker "bssl_sources", 574*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 575*8fb009dcSAndroid Build Coastguard Worker ], 576*8fb009dcSAndroid Build Coastguard Worker 577*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 578*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 579*8fb009dcSAndroid Build Coastguard Worker "libssl", 580*8fb009dcSAndroid Build Coastguard Worker ], 581*8fb009dcSAndroid Build Coastguard Worker target: { 582*8fb009dcSAndroid Build Coastguard Worker darwin: { 583*8fb009dcSAndroid Build Coastguard Worker enabled: false, 584*8fb009dcSAndroid Build Coastguard Worker }, 585*8fb009dcSAndroid Build Coastguard Worker android: { 586*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 587*8fb009dcSAndroid Build Coastguard Worker }, 588*8fb009dcSAndroid Build Coastguard Worker }, 589*8fb009dcSAndroid Build Coastguard Worker multilib: { 590*8fb009dcSAndroid Build Coastguard Worker lib32: { 591*8fb009dcSAndroid Build Coastguard Worker suffix: "32", 592*8fb009dcSAndroid Build Coastguard Worker }, 593*8fb009dcSAndroid Build Coastguard Worker }, 594*8fb009dcSAndroid Build Coastguard Worker} 595*8fb009dcSAndroid Build Coastguard Worker 596*8fb009dcSAndroid Build Coastguard Worker// Used for ACVP testing for FIPS certification. 597*8fb009dcSAndroid Build Coastguard Worker// Not installed on devices by default. 598*8fb009dcSAndroid Build Coastguard Workercc_binary { 599*8fb009dcSAndroid Build Coastguard Worker name: "acvp_modulewrapper", 600*8fb009dcSAndroid Build Coastguard Worker srcs: [ 601*8fb009dcSAndroid Build Coastguard Worker "src/util/fipstools/acvp/modulewrapper/main.cc", 602*8fb009dcSAndroid Build Coastguard Worker ], 603*8fb009dcSAndroid Build Coastguard Worker target: { 604*8fb009dcSAndroid Build Coastguard Worker android_x86: { 605*8fb009dcSAndroid Build Coastguard Worker enabled: false, 606*8fb009dcSAndroid Build Coastguard Worker }, 607*8fb009dcSAndroid Build Coastguard Worker android_x86_64: { 608*8fb009dcSAndroid Build Coastguard Worker enabled: false, 609*8fb009dcSAndroid Build Coastguard Worker }, 610*8fb009dcSAndroid Build Coastguard Worker }, 611*8fb009dcSAndroid Build Coastguard Worker stem: "modulewrapper", 612*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 613*8fb009dcSAndroid Build Coastguard Worker multilib: { 614*8fb009dcSAndroid Build Coastguard Worker lib32: { 615*8fb009dcSAndroid Build Coastguard Worker suffix: "32", 616*8fb009dcSAndroid Build Coastguard Worker }, 617*8fb009dcSAndroid Build Coastguard Worker }, 618*8fb009dcSAndroid Build Coastguard Worker 619*8fb009dcSAndroid Build Coastguard Worker static_libs: [ 620*8fb009dcSAndroid Build Coastguard Worker "libacvp_modulewrapper", 621*8fb009dcSAndroid Build Coastguard Worker ], 622*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 623*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 624*8fb009dcSAndroid Build Coastguard Worker ], 625*8fb009dcSAndroid Build Coastguard Worker 626*8fb009dcSAndroid Build Coastguard Worker defaults: [ 627*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 628*8fb009dcSAndroid Build Coastguard Worker ], 629*8fb009dcSAndroid Build Coastguard Worker} 630*8fb009dcSAndroid Build Coastguard Worker 631*8fb009dcSAndroid Build Coastguard Worker// ACVP wrapper implementation shared between Android and Trusty 632*8fb009dcSAndroid Build Coastguard Workercc_library_static { 633*8fb009dcSAndroid Build Coastguard Worker name: "libacvp_modulewrapper", 634*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 635*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 636*8fb009dcSAndroid Build Coastguard Worker srcs: [ 637*8fb009dcSAndroid Build Coastguard Worker "src/util/fipstools/acvp/modulewrapper/modulewrapper.cc", 638*8fb009dcSAndroid Build Coastguard Worker ], 639*8fb009dcSAndroid Build Coastguard Worker target: { 640*8fb009dcSAndroid Build Coastguard Worker android: { 641*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 642*8fb009dcSAndroid Build Coastguard Worker }, 643*8fb009dcSAndroid Build Coastguard Worker }, 644*8fb009dcSAndroid Build Coastguard Worker export_include_dirs: ["src/util/fipstools/acvp/modulewrapper/"], 645*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 646*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 647*8fb009dcSAndroid Build Coastguard Worker ], 648*8fb009dcSAndroid Build Coastguard Worker 649*8fb009dcSAndroid Build Coastguard Worker defaults: [ 650*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 651*8fb009dcSAndroid Build Coastguard Worker ], 652*8fb009dcSAndroid Build Coastguard Worker 653*8fb009dcSAndroid Build Coastguard Worker visibility: ["//system/core/trusty/utils/acvp"], 654*8fb009dcSAndroid Build Coastguard Worker} 655*8fb009dcSAndroid Build Coastguard Worker 656*8fb009dcSAndroid Build Coastguard Worker// Test support library 657*8fb009dcSAndroid Build Coastguard Workercc_test_library { 658*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_test_support", 659*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 660*8fb009dcSAndroid Build Coastguard Worker defaults: [ 661*8fb009dcSAndroid Build Coastguard Worker "boringssl_test_support_sources", 662*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 663*8fb009dcSAndroid Build Coastguard Worker ], 664*8fb009dcSAndroid Build Coastguard Worker 665*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 666*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 667*8fb009dcSAndroid Build Coastguard Worker ], 668*8fb009dcSAndroid Build Coastguard Worker} 669*8fb009dcSAndroid Build Coastguard Worker 670*8fb009dcSAndroid Build Coastguard Worker// Tests 671*8fb009dcSAndroid Build Coastguard Workercc_test { 672*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_crypto_test", 673*8fb009dcSAndroid Build Coastguard Worker test_config: "CryptoNativeTests.xml", 674*8fb009dcSAndroid Build Coastguard Worker test_suites: ["general-tests"], 675*8fb009dcSAndroid Build Coastguard Worker host_supported: false, 676*8fb009dcSAndroid Build Coastguard Worker vendor_available: false, 677*8fb009dcSAndroid Build Coastguard Worker product_available: false, 678*8fb009dcSAndroid Build Coastguard Worker per_testcase_directory: true, 679*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 680*8fb009dcSAndroid Build Coastguard Worker multilib: { 681*8fb009dcSAndroid Build Coastguard Worker lib32: { 682*8fb009dcSAndroid Build Coastguard Worker suffix: "32", 683*8fb009dcSAndroid Build Coastguard Worker }, 684*8fb009dcSAndroid Build Coastguard Worker lib64: { 685*8fb009dcSAndroid Build Coastguard Worker suffix: "64", 686*8fb009dcSAndroid Build Coastguard Worker }, 687*8fb009dcSAndroid Build Coastguard Worker }, 688*8fb009dcSAndroid Build Coastguard Worker defaults: [ 689*8fb009dcSAndroid Build Coastguard Worker "boringssl_crypto_test_sources", 690*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 691*8fb009dcSAndroid Build Coastguard Worker ], 692*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: ["boringssl_test_support"], 693*8fb009dcSAndroid Build Coastguard Worker // Statically link the library to test to ensure we always pick up the 694*8fb009dcSAndroid Build Coastguard Worker // correct version regardless of device linker configuration. 695*8fb009dcSAndroid Build Coastguard Worker static_libs: [ 696*8fb009dcSAndroid Build Coastguard Worker "libcrypto_static", 697*8fb009dcSAndroid Build Coastguard Worker "libgmock_ndk", 698*8fb009dcSAndroid Build Coastguard Worker ], 699*8fb009dcSAndroid Build Coastguard Worker target: { 700*8fb009dcSAndroid Build Coastguard Worker android: { 701*8fb009dcSAndroid Build Coastguard Worker test_suites: ["mts-conscrypt"], 702*8fb009dcSAndroid Build Coastguard Worker }, 703*8fb009dcSAndroid Build Coastguard Worker }, 704*8fb009dcSAndroid Build Coastguard Worker} 705*8fb009dcSAndroid Build Coastguard Worker 706*8fb009dcSAndroid Build Coastguard Workercc_test { 707*8fb009dcSAndroid Build Coastguard Worker name: "boringssl_ssl_test", 708*8fb009dcSAndroid Build Coastguard Worker test_config: "SslNativeTests.xml", 709*8fb009dcSAndroid Build Coastguard Worker test_suites: ["general-tests"], 710*8fb009dcSAndroid Build Coastguard Worker host_supported: false, 711*8fb009dcSAndroid Build Coastguard Worker vendor_available: false, 712*8fb009dcSAndroid Build Coastguard Worker product_available: false, 713*8fb009dcSAndroid Build Coastguard Worker per_testcase_directory: true, 714*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 715*8fb009dcSAndroid Build Coastguard Worker multilib: { 716*8fb009dcSAndroid Build Coastguard Worker lib32: { 717*8fb009dcSAndroid Build Coastguard Worker suffix: "32", 718*8fb009dcSAndroid Build Coastguard Worker }, 719*8fb009dcSAndroid Build Coastguard Worker lib64: { 720*8fb009dcSAndroid Build Coastguard Worker suffix: "64", 721*8fb009dcSAndroid Build Coastguard Worker }, 722*8fb009dcSAndroid Build Coastguard Worker }, 723*8fb009dcSAndroid Build Coastguard Worker defaults: [ 724*8fb009dcSAndroid Build Coastguard Worker "boringssl_ssl_test_sources", 725*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 726*8fb009dcSAndroid Build Coastguard Worker ], 727*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: ["boringssl_test_support"], 728*8fb009dcSAndroid Build Coastguard Worker // Statically link the libraries to test to ensure we always pick up the 729*8fb009dcSAndroid Build Coastguard Worker // correct version regardless of device linker configuration. 730*8fb009dcSAndroid Build Coastguard Worker static_libs: [ 731*8fb009dcSAndroid Build Coastguard Worker "libcrypto_static", 732*8fb009dcSAndroid Build Coastguard Worker "libgmock_ndk", 733*8fb009dcSAndroid Build Coastguard Worker "libssl", 734*8fb009dcSAndroid Build Coastguard Worker ], 735*8fb009dcSAndroid Build Coastguard Worker target: { 736*8fb009dcSAndroid Build Coastguard Worker android: { 737*8fb009dcSAndroid Build Coastguard Worker test_suites: ["mts-conscrypt"], 738*8fb009dcSAndroid Build Coastguard Worker }, 739*8fb009dcSAndroid Build Coastguard Worker }, 740*8fb009dcSAndroid Build Coastguard Worker} 741*8fb009dcSAndroid Build Coastguard Worker 742*8fb009dcSAndroid Build Coastguard Worker// Utility binary for CMVP on-site testing. 743*8fb009dcSAndroid Build Coastguard Workercc_binary { 744*8fb009dcSAndroid Build Coastguard Worker name: "test_fips", 745*8fb009dcSAndroid Build Coastguard Worker host_supported: false, 746*8fb009dcSAndroid Build Coastguard Worker compile_multilib: "both", 747*8fb009dcSAndroid Build Coastguard Worker multilib: { 748*8fb009dcSAndroid Build Coastguard Worker lib32: { 749*8fb009dcSAndroid Build Coastguard Worker suffix: "32", 750*8fb009dcSAndroid Build Coastguard Worker }, 751*8fb009dcSAndroid Build Coastguard Worker lib64: { 752*8fb009dcSAndroid Build Coastguard Worker suffix: "", 753*8fb009dcSAndroid Build Coastguard Worker }, 754*8fb009dcSAndroid Build Coastguard Worker }, 755*8fb009dcSAndroid Build Coastguard Worker defaults: [ 756*8fb009dcSAndroid Build Coastguard Worker "boringssl_flags", 757*8fb009dcSAndroid Build Coastguard Worker ], 758*8fb009dcSAndroid Build Coastguard Worker cflags: [ 759*8fb009dcSAndroid Build Coastguard Worker "-DBORINGSSL_FIPS", 760*8fb009dcSAndroid Build Coastguard Worker ], 761*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 762*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 763*8fb009dcSAndroid Build Coastguard Worker ], 764*8fb009dcSAndroid Build Coastguard Worker srcs: [ 765*8fb009dcSAndroid Build Coastguard Worker "src/util/fipstools/test_fips.c", 766*8fb009dcSAndroid Build Coastguard Worker ], 767*8fb009dcSAndroid Build Coastguard Worker required: [ 768*8fb009dcSAndroid Build Coastguard Worker "adb", 769*8fb009dcSAndroid Build Coastguard Worker "libcrypto_for_testing", 770*8fb009dcSAndroid Build Coastguard Worker ], 771*8fb009dcSAndroid Build Coastguard Worker} 772*8fb009dcSAndroid Build Coastguard Worker 773*8fb009dcSAndroid Build Coastguard Workerlibbssl_sys_raw_flags = [ 774*8fb009dcSAndroid Build Coastguard Worker // Adapted from upstream the src/rust/CMakeLists.txt file at: 775*8fb009dcSAndroid Build Coastguard Worker // https://boringssl.googlesource.com/boringssl/+/refs/heads/master/rust/CMakeLists.txt 776*8fb009dcSAndroid Build Coastguard Worker "--no-derive-default", 777*8fb009dcSAndroid Build Coastguard Worker "--enable-function-attribute-detection", 778*8fb009dcSAndroid Build Coastguard Worker "--use-core", 779*8fb009dcSAndroid Build Coastguard Worker "--default-macro-constant-type=signed", 780*8fb009dcSAndroid Build Coastguard Worker "--rustified-enum=point_conversion_form_t", 781*8fb009dcSAndroid Build Coastguard Worker // These regexes use [[:punct:]] instead of / to handle Windows file paths. 782*8fb009dcSAndroid Build Coastguard Worker // Ideally we would write [/\\], but escaping rules are complex, and often 783*8fb009dcSAndroid Build Coastguard Worker // ill-defined, in some build systems, so align on [[:punct:]]. 784*8fb009dcSAndroid Build Coastguard Worker "--allowlist-file=.*[[:punct:]]include[[:punct:]]openssl[[:punct:]].*\\.h", 785*8fb009dcSAndroid Build Coastguard Worker "--allowlist-file=.*[[:punct:]]rust_wrapper\\.h", 786*8fb009dcSAndroid Build Coastguard Worker] 787*8fb009dcSAndroid Build Coastguard Worker 788*8fb009dcSAndroid Build Coastguard Worker// Rust bindings 789*8fb009dcSAndroid Build Coastguard Workerrust_bindgen { 790*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_raw", 791*8fb009dcSAndroid Build Coastguard Worker source_stem: "bssl_sys_bindings", 792*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_sys_raw", 793*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 794*8fb009dcSAndroid Build Coastguard Worker wrapper_src: "src/rust/bssl-sys/wrapper.h", 795*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 796*8fb009dcSAndroid Build Coastguard Worker product_available: true, 797*8fb009dcSAndroid Build Coastguard Worker bindgen_flags: libbssl_sys_raw_flags, 798*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 799*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 800*8fb009dcSAndroid Build Coastguard Worker "libssl", 801*8fb009dcSAndroid Build Coastguard Worker ], 802*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 803*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 804*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 805*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 806*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 807*8fb009dcSAndroid Build Coastguard Worker ], 808*8fb009dcSAndroid Build Coastguard Worker} 809*8fb009dcSAndroid Build Coastguard Worker 810*8fb009dcSAndroid Build Coastguard Workerrust_bindgen { 811*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_raw_nostd", 812*8fb009dcSAndroid Build Coastguard Worker source_stem: "bssl_sys_bindings", 813*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_sys_raw", 814*8fb009dcSAndroid Build Coastguard Worker wrapper_src: "src/rust/bssl-sys/wrapper.h", 815*8fb009dcSAndroid Build Coastguard Worker bindgen_flags: [ 816*8fb009dcSAndroid Build Coastguard Worker "--ctypes-prefix=core::ffi", 817*8fb009dcSAndroid Build Coastguard Worker ] + libbssl_sys_raw_flags, 818*8fb009dcSAndroid Build Coastguard Worker header_libs: [ 819*8fb009dcSAndroid Build Coastguard Worker "libcrypto_baremetal", 820*8fb009dcSAndroid Build Coastguard Worker "libssl_baremetal", 821*8fb009dcSAndroid Build Coastguard Worker ], 822*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 823*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 824*8fb009dcSAndroid Build Coastguard Worker ], 825*8fb009dcSAndroid Build Coastguard Worker} 826*8fb009dcSAndroid Build Coastguard Worker 827*8fb009dcSAndroid Build Coastguard Worker// Encapsulate the bindgen-generated layout tests as a test target. 828*8fb009dcSAndroid Build Coastguard Workerrust_test { 829*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_raw_test", 830*8fb009dcSAndroid Build Coastguard Worker srcs: [ 831*8fb009dcSAndroid Build Coastguard Worker ":libbssl_sys_raw", 832*8fb009dcSAndroid Build Coastguard Worker ], 833*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_sys_raw_test", 834*8fb009dcSAndroid Build Coastguard Worker test_suites: ["general-tests"], 835*8fb009dcSAndroid Build Coastguard Worker auto_gen_config: true, 836*8fb009dcSAndroid Build Coastguard Worker clippy_lints: "none", 837*8fb009dcSAndroid Build Coastguard Worker lints: "none", 838*8fb009dcSAndroid Build Coastguard Worker} 839*8fb009dcSAndroid Build Coastguard Worker 840*8fb009dcSAndroid Build Coastguard Worker// Rust's bindgen doesn't cope with macros, so this target includes C functions that 841*8fb009dcSAndroid Build Coastguard Worker// do the same thing as macros defined in BoringSSL header files. 842*8fb009dcSAndroid Build Coastguard Workercc_library_static { 843*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_rust_support", 844*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 845*8fb009dcSAndroid Build Coastguard Worker defaults: ["boringssl_flags"], 846*8fb009dcSAndroid Build Coastguard Worker srcs: ["src/rust/bssl-sys/rust_wrapper.c"], 847*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 848*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 849*8fb009dcSAndroid Build Coastguard Worker "libssl", 850*8fb009dcSAndroid Build Coastguard Worker ], 851*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 852*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 853*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 854*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 855*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 856*8fb009dcSAndroid Build Coastguard Worker ], 857*8fb009dcSAndroid Build Coastguard Worker 858*8fb009dcSAndroid Build Coastguard Worker // b/336916369: This library gets linked into a rust rlib. Disable LTO 859*8fb009dcSAndroid Build Coastguard Worker // until cross-language lto is supported. 860*8fb009dcSAndroid Build Coastguard Worker lto: { 861*8fb009dcSAndroid Build Coastguard Worker never: true, 862*8fb009dcSAndroid Build Coastguard Worker }, 863*8fb009dcSAndroid Build Coastguard Worker} 864*8fb009dcSAndroid Build Coastguard Worker 865*8fb009dcSAndroid Build Coastguard Workercc_library_static { 866*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_rust_support_baremetal", 867*8fb009dcSAndroid Build Coastguard Worker defaults: ["boringssl_flags_baremetal"], 868*8fb009dcSAndroid Build Coastguard Worker srcs: ["src/rust/bssl-sys/rust_wrapper.c"], 869*8fb009dcSAndroid Build Coastguard Worker static_libs: [ 870*8fb009dcSAndroid Build Coastguard Worker "libcrypto_baremetal", 871*8fb009dcSAndroid Build Coastguard Worker "libssl_baremetal", 872*8fb009dcSAndroid Build Coastguard Worker ], 873*8fb009dcSAndroid Build Coastguard Worker 874*8fb009dcSAndroid Build Coastguard Worker // b/336916369: This library gets linked into a rust rlib. Disable LTO 875*8fb009dcSAndroid Build Coastguard Worker // until cross-language lto is supported. 876*8fb009dcSAndroid Build Coastguard Worker lto: { 877*8fb009dcSAndroid Build Coastguard Worker never: true, 878*8fb009dcSAndroid Build Coastguard Worker }, 879*8fb009dcSAndroid Build Coastguard Worker} 880*8fb009dcSAndroid Build Coastguard Worker 881*8fb009dcSAndroid Build Coastguard Workercc_library_host_static { 882*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_rust_support_static", 883*8fb009dcSAndroid Build Coastguard Worker defaults: ["boringssl_flags"], 884*8fb009dcSAndroid Build Coastguard Worker srcs: ["src/rust/bssl-sys/rust_wrapper.c"], 885*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: [ 886*8fb009dcSAndroid Build Coastguard Worker "libcrypto_static", 887*8fb009dcSAndroid Build Coastguard Worker "libssl_static", 888*8fb009dcSAndroid Build Coastguard Worker ], 889*8fb009dcSAndroid Build Coastguard Worker} 890*8fb009dcSAndroid Build Coastguard Worker 891*8fb009dcSAndroid Build Coastguard Workerrust_defaults { 892*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_defaults", 893*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 894*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_sys", 895*8fb009dcSAndroid Build Coastguard Worker visibility: [ 896*8fb009dcSAndroid Build Coastguard Worker "//external/rust/crates/openssl", 897*8fb009dcSAndroid Build Coastguard Worker "//external/rust/android-crates-io/crates/tokio-openssl", 898*8fb009dcSAndroid Build Coastguard Worker "//system/keymint/boringssl", 899*8fb009dcSAndroid Build Coastguard Worker "//system/security/prng_seeder", 900*8fb009dcSAndroid Build Coastguard Worker ], 901*8fb009dcSAndroid Build Coastguard Worker srcs: [ 902*8fb009dcSAndroid Build Coastguard Worker "src/rust/bssl-sys/src/lib.rs", 903*8fb009dcSAndroid Build Coastguard Worker ":libbssl_sys_raw", 904*8fb009dcSAndroid Build Coastguard Worker ], 905*8fb009dcSAndroid Build Coastguard Worker shared_libs: [ 906*8fb009dcSAndroid Build Coastguard Worker "libcrypto", 907*8fb009dcSAndroid Build Coastguard Worker "libssl", 908*8fb009dcSAndroid Build Coastguard Worker ], 909*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 910*8fb009dcSAndroid Build Coastguard Worker product_available: true, 911*8fb009dcSAndroid Build Coastguard Worker} 912*8fb009dcSAndroid Build Coastguard Worker 913*8fb009dcSAndroid Build Coastguard Workerrust_library { 914*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys", 915*8fb009dcSAndroid Build Coastguard Worker defaults: ["libbssl_sys_defaults"], 916*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: [ 917*8fb009dcSAndroid Build Coastguard Worker "libbssl_rust_support", 918*8fb009dcSAndroid Build Coastguard Worker ], 919*8fb009dcSAndroid Build Coastguard Worker min_sdk_version: "29", 920*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 921*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 922*8fb009dcSAndroid Build Coastguard Worker "com.android.configinfrastructure", 923*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 924*8fb009dcSAndroid Build Coastguard Worker ], 925*8fb009dcSAndroid Build Coastguard Worker cfgs: ["unsupported_inline_wrappers"], 926*8fb009dcSAndroid Build Coastguard Worker} 927*8fb009dcSAndroid Build Coastguard Worker 928*8fb009dcSAndroid Build Coastguard Workerrust_library_host_rlib { 929*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_static", 930*8fb009dcSAndroid Build Coastguard Worker defaults: ["libbssl_sys_defaults"], 931*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: [ 932*8fb009dcSAndroid Build Coastguard Worker "libbssl_rust_support_static", 933*8fb009dcSAndroid Build Coastguard Worker ], 934*8fb009dcSAndroid Build Coastguard Worker cfgs: ["unsupported_inline_wrappers"], 935*8fb009dcSAndroid Build Coastguard Worker} 936*8fb009dcSAndroid Build Coastguard Worker 937*8fb009dcSAndroid Build Coastguard Workergenrule { 938*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_src_nostd", 939*8fb009dcSAndroid Build Coastguard Worker srcs: ["src/rust/bssl-sys/src/lib.rs"], 940*8fb009dcSAndroid Build Coastguard Worker out: ["lib.rs"], 941*8fb009dcSAndroid Build Coastguard Worker cmd: "(echo '#![no_std]' && cat $(in)) > $(out)", 942*8fb009dcSAndroid Build Coastguard Worker} 943*8fb009dcSAndroid Build Coastguard Worker 944*8fb009dcSAndroid Build Coastguard Workerrust_library_rlib { 945*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_sys_nostd", 946*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_sys", 947*8fb009dcSAndroid Build Coastguard Worker visibility: [ 948*8fb009dcSAndroid Build Coastguard Worker "//packages/modules/Virtualization:__subpackages__", 949*8fb009dcSAndroid Build Coastguard Worker ], 950*8fb009dcSAndroid Build Coastguard Worker srcs: [ 951*8fb009dcSAndroid Build Coastguard Worker ":libbssl_sys_src_nostd", 952*8fb009dcSAndroid Build Coastguard Worker ":libbssl_sys_raw_nostd", 953*8fb009dcSAndroid Build Coastguard Worker ], 954*8fb009dcSAndroid Build Coastguard Worker prefer_rlib: true, 955*8fb009dcSAndroid Build Coastguard Worker no_stdlibs: true, 956*8fb009dcSAndroid Build Coastguard Worker stdlibs: [ 957*8fb009dcSAndroid Build Coastguard Worker "libcompiler_builtins.rust_sysroot", 958*8fb009dcSAndroid Build Coastguard Worker "libcore.rust_sysroot", 959*8fb009dcSAndroid Build Coastguard Worker ], 960*8fb009dcSAndroid Build Coastguard Worker whole_static_libs: [ 961*8fb009dcSAndroid Build Coastguard Worker "libbssl_rust_support_baremetal", 962*8fb009dcSAndroid Build Coastguard Worker ], 963*8fb009dcSAndroid Build Coastguard Worker cfgs: ["unsupported_inline_wrappers"], 964*8fb009dcSAndroid Build Coastguard Worker} 965*8fb009dcSAndroid Build Coastguard Worker 966*8fb009dcSAndroid Build Coastguard Worker// High-level Rust crate `bssl-crypto` 967*8fb009dcSAndroid Build Coastguard Worker 968*8fb009dcSAndroid Build Coastguard Workerrust_defaults { 969*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_crypto_defaults", 970*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_crypto", 971*8fb009dcSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 972*8fb009dcSAndroid Build Coastguard Worker srcs: ["src/rust/bssl-crypto/src/lib.rs"], 973*8fb009dcSAndroid Build Coastguard Worker rustlibs: ["libbssl_sys"], 974*8fb009dcSAndroid Build Coastguard Worker} 975*8fb009dcSAndroid Build Coastguard Worker 976*8fb009dcSAndroid Build Coastguard Workerrust_library { 977*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_crypto", 978*8fb009dcSAndroid Build Coastguard Worker defaults: ["libbssl_crypto_defaults"], 979*8fb009dcSAndroid Build Coastguard Worker host_supported: true, 980*8fb009dcSAndroid Build Coastguard Worker apex_available: [ 981*8fb009dcSAndroid Build Coastguard Worker "//apex_available:platform", 982*8fb009dcSAndroid Build Coastguard Worker "com.android.virt", 983*8fb009dcSAndroid Build Coastguard Worker ], 984*8fb009dcSAndroid Build Coastguard Worker vendor_available: true, 985*8fb009dcSAndroid Build Coastguard Worker product_available: true, 986*8fb009dcSAndroid Build Coastguard Worker} 987*8fb009dcSAndroid Build Coastguard Worker 988*8fb009dcSAndroid Build Coastguard Workerrust_test { 989*8fb009dcSAndroid Build Coastguard Worker name: "libbssl_crypto_test", 990*8fb009dcSAndroid Build Coastguard Worker defaults: ["libbssl_crypto_defaults"], 991*8fb009dcSAndroid Build Coastguard Worker crate_name: "bssl_crypto_test", 992*8fb009dcSAndroid Build Coastguard Worker test_suites: ["general-tests"], 993*8fb009dcSAndroid Build Coastguard Worker auto_gen_config: true, 994*8fb009dcSAndroid Build Coastguard Worker} 995*8fb009dcSAndroid Build Coastguard Worker 996*8fb009dcSAndroid Build Coastguard Workerdirgroup { 997*8fb009dcSAndroid Build Coastguard Worker name: "trusty_dirgroup_external_boringssl", 998*8fb009dcSAndroid Build Coastguard Worker dirs: ["."], 999*8fb009dcSAndroid Build Coastguard Worker visibility: ["//trusty/vendor/google/aosp/scripts"], 1000*8fb009dcSAndroid Build Coastguard Worker} 1001