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
diff --git a/keymaster/3.0/default/Android.mk b/keymaster/3.0/default/Android.mk
index 0c4e3c5..053ad67 100644
--- a/keymaster/3.0/default/Android.mk
+++ b/keymaster/3.0/default/Android.mk
@@ -12,7 +12,7 @@
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 25f16b5..8b416c3 100644
--- a/keymaster/3.0/default/KeymasterDevice.cpp
+++ b/keymaster/3.0/default/KeymasterDevice.cpp
@@ -22,6 +22,7 @@
#include <log/log.h>
#include <AndroidKeymaster3Device.h>
+#include <hardware/keymaster1.h>
#include <hardware/keymaster2.h>
#include <hardware/keymaster_defs.h>
@@ -31,6 +32,18 @@
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 @@
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 6b75faa..e2ae803 100644
--- a/keymaster/3.0/vts/functional/Android.bp
+++ b/keymaster/3.0/vts/functional/Android.bp
@@ -36,10 +36,7 @@
static_libs: [
"android.hardware.keymaster@3.0",
"libcrypto_static",
- "libpuresoftkeymasterdevice",
+ "libsoftkeymasterdevice",
],
- test_suites: [
- "general-tests",
- "vts",
- ],
+ test_suites: ["general-tests", "vts"],
}