71 lines
2.5 KiB
C++
71 lines
2.5 KiB
C++
//
|
|
// Copyright (C) 2021 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.
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <optional>
|
|
#include <string>
|
|
#include <tuple>
|
|
|
|
#include <teeui/common_message_types.h> // /system/teeui/libteeui/.../include
|
|
|
|
#include "common/libs/confui/packet_types.h"
|
|
#include "common/libs/confui/protocol_types.h"
|
|
#include "common/libs/fs/shared_fd.h"
|
|
|
|
namespace cuttlefish {
|
|
namespace confui {
|
|
|
|
std::string ToString(const ConfUiMessage& msg);
|
|
|
|
constexpr auto SESSION_ANY = "";
|
|
/*
|
|
* received confirmation UI message on the guest could be abort or
|
|
* ack/response. Thus, the guest APIs should call RecvConfUiMsg(fd),
|
|
* see which is it, and then use Into*(conf_ui_message) to
|
|
* parse & use it.
|
|
*
|
|
*/
|
|
std::unique_ptr<ConfUiMessage> RecvConfUiMsg(SharedFD fd);
|
|
std::unique_ptr<ConfUiMessage> RecvConfUiMsg(const std::string& session_id,
|
|
SharedFD fd);
|
|
|
|
bool SendAbortCmd(SharedFD fd, const std::string& session_id);
|
|
|
|
bool SendAck(SharedFD fd, const std::string& session_id, const bool is_success,
|
|
const std::string& status_message);
|
|
bool SendResponse(SharedFD fd, const std::string& session_id,
|
|
const UserResponse::type& plain_selection,
|
|
const std::vector<std::uint8_t>& signed_response,
|
|
// signing is a function of message, key
|
|
const std::vector<std::uint8_t>& message);
|
|
|
|
// for HAL
|
|
bool SendStartCmd(SharedFD fd, const std::string& session_id,
|
|
const std::string& prompt_text,
|
|
const std::vector<std::uint8_t>& extra_data,
|
|
const std::string& locale,
|
|
const std::vector<teeui::UIOption>& ui_opts);
|
|
|
|
bool SendStopCmd(SharedFD fd, const std::string& session_id);
|
|
|
|
// for HAL::deliverSecureInputEvent
|
|
bool SendUserSelection(SharedFD fd, const std::string& session_id,
|
|
const UserResponse::type& confirm_cancel);
|
|
|
|
} // end of namespace confui
|
|
} // end of namespace cuttlefish
|