Add StrongBox support to Keymaster4 HAL
Test: not yet
Change-Id: I186fabdf5dea8d6b592cd778c07e62fb969348fd
diff --git a/ng/AndroidKeymaster4Device.cpp b/ng/AndroidKeymaster4Device.cpp
index 92c5da3..ccc3a9e 100644
--- a/ng/AndroidKeymaster4Device.cpp
+++ b/ng/AndroidKeymaster4Device.cpp
@@ -231,7 +231,28 @@
AndroidKeymaster4Device::~AndroidKeymaster4Device() {}
Return<void> AndroidKeymaster4Device::getHardwareInfo(getHardwareInfo_cb _hidl_cb) {
- _hidl_cb(false /* is_secure */, "SoftwareKeymasterDevice", "Google");
+ _hidl_cb(::android::hardware::keymaster::V4_0::SecurityLevel::SOFTWARE,
+ "SoftwareKeymasterDevice", "Google");
+ return Void();
+}
+
+Return<void>
+AndroidKeymaster4Device::getHmacSharingParameters(getHmacSharingParameters_cb _hidl_cb) {
+ _hidl_cb(ErrorCode::UNIMPLEMENTED, {});
+ return Void();
+}
+
+Return<void>
+AndroidKeymaster4Device::computeSharedHmac(const hidl_vec<HmacSharingParameters>& /* params */,
+ computeSharedHmac_cb _hidl_cb) {
+ _hidl_cb(ErrorCode::UNIMPLEMENTED, {});
+ return Void();
+}
+
+Return<void> AndroidKeymaster4Device::verifyAuthorization(
+ uint64_t /* challenge */, const hidl_vec<KeyParameter>& /* parametersToVerify */,
+ const HardwareAuthToken& /* authToken */, verifyAuthorization_cb _hidl_cb) {
+ _hidl_cb(ErrorCode::UNIMPLEMENTED, {});
return Void();
}
@@ -309,6 +330,14 @@
return Void();
}
+Return<void> AndroidKeymaster4Device::importWrappedKey(
+ const hidl_vec<uint8_t>& /* wrappedKeyData */, const hidl_vec<uint8_t>& /* wrappingKeyBlob */,
+ const hidl_vec<uint8_t>& /* maskingKey */, importWrappedKey_cb _hidl_cb) {
+ // TODO(franksalim): PUT CODE HERE
+ _hidl_cb(ErrorCode::UNIMPLEMENTED, hidl_vec<uint8_t>(), KeyCharacteristics());
+ return Void();
+}
+
Return<void> AndroidKeymaster4Device::exportKey(KeyFormat exportFormat,
const hidl_vec<uint8_t>& keyBlob,
const hidl_vec<uint8_t>& clientId,
@@ -418,6 +447,7 @@
const hidl_vec<KeyParameter>& inParams,
const hidl_vec<uint8_t>& input,
const HardwareAuthToken& /* authToken */,
+ const VerificationToken& /* verificationToken */,
update_cb _hidl_cb) {
UpdateOperationRequest request;
request.op_handle = operationHandle;
@@ -439,10 +469,13 @@
return Void();
}
-Return<void>
-AndroidKeymaster4Device::finish(uint64_t operationHandle, const hidl_vec<KeyParameter>& inParams,
- const hidl_vec<uint8_t>& input, const hidl_vec<uint8_t>& signature,
- const HardwareAuthToken& /* authToken */, finish_cb _hidl_cb) {
+Return<void> AndroidKeymaster4Device::finish(uint64_t operationHandle,
+ const hidl_vec<KeyParameter>& inParams,
+ const hidl_vec<uint8_t>& input,
+ const hidl_vec<uint8_t>& signature,
+ const HardwareAuthToken& /* authToken */,
+ const VerificationToken& /* verificationToken */,
+ finish_cb _hidl_cb) {
FinishOperationRequest request;
request.op_handle = operationHandle;
request.input.Reinitialize(input.data(), input.size());