Add libcrypto_baremetal

BoringSSL is already used in bare-metal environments, eg. in
external/u-boot, but so far hasn't been compiled that way in Soong.
Now that we are building pvmfw in AOSP, add a libcrypto_baremetal
target that will allow us to link it against BoringSSL.

The target defines:
 - OPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED
   - no threading support in this environment
 - OPENSSL_SMALL
   - reduce size by removing uncommon functionality
 - DOPENSSL_NO_ASM
   - remove dependency on getauxval() and __system_property_get

Bug: 237372981
Test: atest vmbase_example.integration_test
Change-Id: Ie412d2f9178b183162c9be111a3b4496ac6243b0
diff --git a/Android.bp b/Android.bp
index 8130929..cc21e44 100644
--- a/Android.bp
+++ b/Android.bp
@@ -394,6 +394,25 @@
     ],
 }
 
+// Static library for use in bare-metal environments
+cc_library_static {
+    name: "libcrypto_baremetal",
+    defaults: [
+        "libcrypto_bcm_sources",
+        "libcrypto_sources",
+        "libcrypto_defaults",
+        "boringssl_defaults",
+        "boringssl_flags",
+    ],
+    cflags: [
+        "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED",
+        "-DOPENSSL_SMALL",
+        "-DOPENSSL_NO_ASM",
+    ],
+    visibility: ["//packages/modules/Virtualization:__subpackages__"],
+    apex_available: ["com.android.virt"],
+}
+
 // Common defaults for lib*_fuzz_unsafe. These are unsafe and deterministic
 // libraries for testing and fuzzing only. See src/FUZZING.md.
 cc_defaults {