| /* |
| ** |
| ** Copyright 2017, The Android Open Source Project |
| ** |
| ** Licensed under the Apache License, Version 2.0 (the "License"); |
| ** you may not use this file except in compliance with the License. |
| ** You may obtain a copy of the License at |
| ** |
| ** http://www.apache.org/licenses/LICENSE-2.0 |
| ** |
| ** Unless required by applicable law or agreed to in writing, software |
| ** distributed under the License is distributed on an "AS IS" BASIS, |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ** See the License for the specific language governing permissions and |
| ** limitations under the License. |
| */ |
| |
| #include "ConfirmationUI.h" |
| |
| #include "PlatformSpecifics.h" |
| |
| #include <android/hardware/confirmationui/support/cbor.h> |
| #include <android/hardware/confirmationui/support/confirmationui_utils.h> |
| |
| #include <android/hardware/confirmationui/1.0/generic/GenericOperation.h> |
| |
| #include <time.h> |
| |
| namespace android { |
| namespace hardware { |
| namespace confirmationui { |
| namespace V1_0 { |
| namespace implementation { |
| |
| using ::android::hardware::confirmationui::V1_0::generic::Operation; |
| using ::android::hardware::keymaster::V4_0::HardwareAuthToken; |
| |
| uint8_t hmacKey[32]; |
| |
| // Methods from ::android::hardware::confirmationui::V1_0::IConfirmationUI follow. |
| Return<ResponseCode> ConfirmationUI::promptUserConfirmation( |
| const sp<IConfirmationResultCallback>& resultCB, const hidl_string& promptText, |
| const hidl_vec<uint8_t>& extraData, const hidl_string& locale, |
| const hidl_vec<UIOption>& uiOptions) { |
| auto& operation = MyOperation::get(); |
| auto result = operation.init(resultCB, promptText, extraData, locale, uiOptions); |
| if (result == ResponseCode::OK) { |
| // This is where implementation start the UI and then call setPending on success. |
| operation.setPending(); |
| } |
| return result; |
| } |
| |
| Return<ResponseCode> ConfirmationUI::deliverSecureInputEvent( |
| const HardwareAuthToken& secureInputToken) { |
| auto& operation = MyOperation::get(); |
| return operation.deliverSecureInputEvent(secureInputToken); |
| } |
| |
| Return<void> ConfirmationUI::abort() { |
| auto& operation = MyOperation::get(); |
| operation.abort(); |
| operation.finalize(hmacKey); |
| return Void(); |
| } |
| |
| } // namespace implementation |
| } // namespace V1_0 |
| } // namespace confirmationui |
| } // namespace hardware |
| } // namespace android |