blob: 41e03ce80af25213b3a51999790a2751a0a05e4f [file] [log] [blame]
/*
**
** 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