diff options
author | Jim Blackler <jimblackler@google.com> | 2021-10-11 13:38:59 +0000 |
---|---|---|
committer | Jim Blackler <jimblackler@google.com> | 2021-10-11 13:38:59 +0000 |
commit | a08ea2d23f0c268cde49f8531b56bf440ae5960f (patch) | |
tree | 78008573c9ef047568500b955a7e8189f7ee8be7 /keymaster/3.0/default/KeymasterDevice.cpp | |
parent | 50f70d73da3a86adb1f7b2fc4a8e8ec2fd62ec57 (diff) |
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
Diffstat (limited to 'keymaster/3.0/default/KeymasterDevice.cpp')
-rw-r--r-- | keymaster/3.0/default/KeymasterDevice.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
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 <log/log.h> #include <AndroidKeymaster3Device.h> +#include <hardware/keymaster1.h> #include <hardware/keymaster2.h> #include <hardware/keymaster_defs.h> @@ -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)) { |