diff options
Diffstat (limited to 'keymaster/4.0/support/Keymaster.cpp')
-rw-r--r-- | keymaster/4.0/support/Keymaster.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/keymaster/4.0/support/Keymaster.cpp b/keymaster/4.0/support/Keymaster.cpp index 9325cc069..e8db0744e 100644 --- a/keymaster/4.0/support/Keymaster.cpp +++ b/keymaster/4.0/support/Keymaster.cpp @@ -106,6 +106,19 @@ std::vector<std::unique_ptr<Keymaster>> enumerateDevices( return result; } +void Keymaster::logIfKeymasterVendorError(ErrorCode ec) const { + static constexpr int32_t k_keymaster_vendor_error_code_range_max = -10000; + if (static_cast<int32_t>(ec) <= k_keymaster_vendor_error_code_range_max) { + const auto& versionInfo = halVersion(); + LOG(ERROR) << "Keymaster reported error: " << static_cast<int32_t>(ec) << "\n" + << "NOTE: This is an error in the vendor specific error range.\n" + << " Refer to the vendor of the implementation for details.\n" + << " Implementation name: " << versionInfo.keymasterName << "\n" + << " Vendor name: " << versionInfo.authorName << "\n" + << " MajorVersion: " << versionInfo.majorVersion; + } +} + Keymaster::KeymasterSet Keymaster::enumerateAvailableDevices() { auto serviceManager = IServiceManager::getService(); CHECK(serviceManager) << "Could not retrieve ServiceManager"; |