keystore2: Use libbinder_rs Strong references for Binder objects
Update keystore2 to use libbinder_rs Strong<> and Weak<> references for
Binder objects rather than just Box<dyn Interface>.
Bug: 175584883
Test: atest keystore2_test
Change-Id: Ic234ce5ed007a265769a72043d77eb817a21b8ea
diff --git a/keystore2/src/globals.rs b/keystore2/src/globals.rs
index cfaa28c..2afabbe 100644
--- a/keystore2/src/globals.rs
+++ b/keystore2/src/globals.rs
@@ -30,7 +30,7 @@
use android_hardware_security_keymint::aidl::android::hardware::security::keymint::{
KeyMintHardwareInfo::KeyMintHardwareInfo, SecurityLevel::SecurityLevel,
};
-use android_hardware_security_keymint::binder::StatusCode;
+use android_hardware_security_keymint::binder::{StatusCode, Strong};
use android_security_compat::aidl::android::security::compat::IKeystoreCompatService::IKeystoreCompatService;
use anyhow::{Context, Result};
use lazy_static::lazy_static;
@@ -152,7 +152,7 @@
// This is a no-op if it was called before.
keystore2_km_compat::add_keymint_device_service();
- let keystore_compat_service: Box<dyn IKeystoreCompatService> =
+ let keystore_compat_service: Strong<dyn IKeystoreCompatService> =
map_binder_status_code(binder::get_interface("android.security.compat"))
.context("In connect_keymint: Trying to connect to compat service.")?;
map_binder_status(keystore_compat_service.getKeyMintDevice(*security_level))
@@ -218,7 +218,7 @@
// This is a no-op if it was called before.
keystore2_km_compat::add_keymint_device_service();
- let keystore_compat_service: Box<dyn IKeystoreCompatService> =
+ let keystore_compat_service: Strong<dyn IKeystoreCompatService> =
map_binder_status_code(binder::get_interface("android.security.compat"))
.context(
"In connect_secureclock: Trying to connect to compat service.",