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());