blob: 3edfb533cafb2bf75d464f81cab6c5bebdfeb9c0 [file] [log] [blame]
Janis Danisevskisc1460142017-12-18 16:48:46 -08001/*
2**
3** Copyright 2017, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17#include "Keymaster4.h"
18
19#include <android-base/logging.h>
20
21namespace keystore {
22
23void Keymaster4::getVersionIfNeeded() {
24 if (haveVersion_) return;
25
26 auto rc = dev_->getHardwareInfo([&](SecurityLevel securityLevel, auto...) {
27 securityLevel_ = securityLevel;
28 haveVersion_ = true;
29 });
30
31 CHECK(rc.isOk()) << "Got error " << rc.description() << " trying to get hardware info";
32}
33
34Keymaster::VersionResult Keymaster4::halVersion() {
35 getVersionIfNeeded();
36 return {ErrorCode::OK, halMajorVersion(), securityLevel_, true};
37}
38
39} // namespace keystore