Keystore 2.0 legacy wrapper: Fix hardware info.
GetHardwareInfo did not set the timestampTokenRequired field correctly.
Change-Id: I42c6dea68b4e18d95727980731d7e19553714215
diff --git a/keystore2/src/km_compat/km_compat.cpp b/keystore2/src/km_compat/km_compat.cpp
index 26b099a..ac54c50 100644
--- a/keystore2/src/km_compat/km_compat.cpp
+++ b/keystore2/src/km_compat/km_compat.cpp
@@ -391,20 +391,13 @@
// KeyMintDevice implementation
ScopedAStatus KeyMintDevice::getHardwareInfo(KeyMintHardwareInfo* _aidl_return) {
- // TODO: What do I do about the version number? Is it the version of the device I get?
- auto result = mDevice->getHardwareInfo([&](auto securityLevel, const auto& keymasterName,
- const auto& keymasterAuthorName) {
- securityLevel_ =
- static_cast<::aidl::android::hardware::security::keymint::SecurityLevel>(securityLevel);
-
- _aidl_return->securityLevel = securityLevel_;
- _aidl_return->keyMintName = keymasterName;
- _aidl_return->keyMintAuthorName = keymasterAuthorName;
- });
- if (!result.isOk()) {
- LOG(ERROR) << __func__ << " transaction failed. " << result.description();
- return convertErrorCode(KMV1::ErrorCode::UNKNOWN_ERROR);
- }
+ auto result = mDevice->halVersion();
+ _aidl_return->versionNumber = result.majorVersion * 10 + result.minorVersion;
+ securityLevel_ = convert(result.securityLevel);
+ _aidl_return->securityLevel = securityLevel_;
+ _aidl_return->keyMintName = result.keymasterName;
+ _aidl_return->keyMintAuthorName = result.authorName;
+ _aidl_return->timestampTokenRequired = securityLevel_ == KMV1::SecurityLevel::STRONGBOX;
return ScopedAStatus::ok();
}