From a08ea2d23f0c268cde49f8531b56bf440ae5960f Mon Sep 17 00:00:00 2001 From: Jim Blackler Date: Mon, 11 Oct 2021 13:38:59 +0000 Subject: [PATCH] Revert "Delete KM1" Revert "Delete KM1" Revert "Delete KM1" Revert "Delete KM1" Revert submission 1844016-delkm1 Reason for revert: b/202675261 Reverted Changes: Iba996962b:Delete KM1 Ia4c5359cd:Delete KM1 Iee6ec9816:Delete KM1 I6058e4d86:Delete KM1 I8abb9c570:Delete KM1 I9c4dc5c9e:Delete KM1 Change-Id: I2a2d4b737a90f8ce31cd14b68f64564d8d245ab3 --- keymaster/3.0/default/Android.mk | 2 +- keymaster/3.0/default/KeymasterDevice.cpp | 21 ++++++++++++++++++++- keymaster/3.0/vts/functional/Android.bp | 7 ++----- keymaster/4.0/vts/performance/Android.bp | 4 ++-- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/keymaster/3.0/default/Android.mk b/keymaster/3.0/default/Android.mk index 0c4e3c569a..053ad671fb 100644 --- a/keymaster/3.0/default/Android.mk +++ b/keymaster/3.0/default/Android.mk @@ -12,7 +12,7 @@ LOCAL_SRC_FILES := \ LOCAL_SHARED_LIBRARIES := \ liblog \ - libpuresoftkeymasterdevice \ + libsoftkeymasterdevice \ libcrypto \ libkeymaster_portable \ libpuresoftkeymasterdevice \ diff --git a/keymaster/3.0/default/KeymasterDevice.cpp b/keymaster/3.0/default/KeymasterDevice.cpp index 25f16b57df..8b416c3f9a 100644 --- a/keymaster/3.0/default/KeymasterDevice.cpp +++ b/keymaster/3.0/default/KeymasterDevice.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -31,6 +32,18 @@ namespace keymaster { namespace V3_0 { namespace implementation { +static int get_keymaster1_dev(keymaster1_device_t** dev, const hw_module_t* mod) { + int rc = keymaster1_open(mod, dev); + if (rc) { + ALOGE("Error %d opening keystore keymaster1 device", rc); + if (*dev) { + (*dev)->common.close(&(*dev)->common); + *dev = nullptr; + } + } + return rc; +} + static int get_keymaster2_dev(keymaster2_device_t** dev, const hw_module_t* mod) { int rc = keymaster2_open(mod, dev); if (rc) { @@ -50,8 +63,14 @@ static IKeymasterDevice* createKeymaster3Device() { return ::keymaster::ng::CreateKeymasterDevice(); } - if (mod->module_api_version < KEYMASTER_MODULE_API_VERSION_2_0) { + if (mod->module_api_version < KEYMASTER_MODULE_API_VERSION_1_0) { return nullptr; + } else if (mod->module_api_version == KEYMASTER_MODULE_API_VERSION_1_0) { + keymaster1_device_t* dev = nullptr; + if (get_keymaster1_dev(&dev, mod)) { + return nullptr; + } + return ::keymaster::ng::CreateKeymasterDevice(dev); } else { keymaster2_device_t* dev = nullptr; if (get_keymaster2_dev(&dev, mod)) { diff --git a/keymaster/3.0/vts/functional/Android.bp b/keymaster/3.0/vts/functional/Android.bp index 6b75faa12f..e2ae80373f 100644 --- a/keymaster/3.0/vts/functional/Android.bp +++ b/keymaster/3.0/vts/functional/Android.bp @@ -36,10 +36,7 @@ cc_test { static_libs: [ "android.hardware.keymaster@3.0", "libcrypto_static", - "libpuresoftkeymasterdevice", - ], - test_suites: [ - "general-tests", - "vts", + "libsoftkeymasterdevice", ], + test_suites: ["general-tests", "vts"], } diff --git a/keymaster/4.0/vts/performance/Android.bp b/keymaster/4.0/vts/performance/Android.bp index 93b27bc44a..d7342ad253 100644 --- a/keymaster/4.0/vts/performance/Android.bp +++ b/keymaster/4.0/vts/performance/Android.bp @@ -32,7 +32,7 @@ cc_benchmark { static_libs: [ "android.hardware.keymaster@4.0", "libkeymaster4support", - "libpuresoftkeymasterdevice", - "libchrome", + "libsoftkeymasterdevice", + "libchrome" ], }