Android-cuttlefish cvd tool
Classes | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
cuttlefish::confui::Cbor Class Reference

#include <confui_cbor.h>

Collaboration diagram for cuttlefish::confui::Cbor:
Collaboration graph
[legend]

Classes

class  CborDeleter
 

Public Member Functions

 Cbor (const std::string &prompt_text, const std::vector< std::uint8_t > &extra_data)
 
bool IsOk () const
 
Error GetErrorCode () const
 
bool IsMessageTooLong () const
 
bool IsMalformedUtf8 () const
 
std::vector< std::uint8_t > && GetMessage ()
 

Public Attributes

const std::uint32_t kMax = static_cast<std::uint32_t>(MessageSize::MAX)
 

Private Types

enum class  Error : uint32_t { OK = 0 , OUT_OF_DATA = 1 , MALFORMED = 2 , MALFORMED_UTF8 = 3 }
 
enum class  MessageSize : uint32_t { MAX = 6144u }
 
enum class  Type : uint8_t {
  NUMBER = 0 , NEGATIVE = 1 , BYTE_STRING = 2 , TEXT_STRING = 3 ,
  ARRAY = 4 , MAP = 5 , TAG = 6 , FLOAT = 7
}
 

Private Member Functions

void Init ()
 
Error CheckUTF8Copy (const std::string &text)
 

Private Attributes

std::unique_ptr< cbor_item_t, CborDeletercb_map_
 
std::string prompt_text_
 
std::vector< std::uint8_t > extra_data_
 
Error buffer_status_
 
std::vector< std::uint8_t > buffer_
 

Detailed Description

take prompt_text_, extra_data returns CBOR map, created with the two

Usage: if (IsOk()) GetMessage()

The CBOR map is used to create signed confirmation

Member Enumeration Documentation

◆ Error

enum class cuttlefish::confui::Cbor::Error : uint32_t
strongprivate
Enumerator
OK 
OUT_OF_DATA 
MALFORMED 
MALFORMED_UTF8 

◆ MessageSize

enum class cuttlefish::confui::Cbor::MessageSize : uint32_t
strongprivate
Enumerator
MAX 

◆ Type

enum class cuttlefish::confui::Cbor::Type : uint8_t
strongprivate
Enumerator
NUMBER 
NEGATIVE 
BYTE_STRING 
TEXT_STRING 
ARRAY 
MAP 
TAG 
FLOAT 

Constructor & Destructor Documentation

◆ Cbor()

cuttlefish::confui::Cbor::Cbor ( const std::string &  prompt_text,
const std::vector< std::uint8_t > &  extra_data 
)
inline

Member Function Documentation

◆ CheckUTF8Copy()

Cbor::Error cuttlefish::confui::Cbor::CheckUTF8Copy ( const std::string &  text)
private

◆ GetErrorCode()

Error cuttlefish::confui::Cbor::GetErrorCode ( ) const
inline

◆ GetMessage()

std::vector< std::uint8_t > && cuttlefish::confui::Cbor::GetMessage ( )

◆ Init()

void cuttlefish::confui::Cbor::Init ( )
private

basically, this creates a map as follows: {"prompt" : prompt_text_in_UTF8, "extra" : extra_data_in_bytes}

◆ IsMalformedUtf8()

bool cuttlefish::confui::Cbor::IsMalformedUtf8 ( ) const
inline

◆ IsMessageTooLong()

bool cuttlefish::confui::Cbor::IsMessageTooLong ( ) const
inline

◆ IsOk()

bool cuttlefish::confui::Cbor::IsOk ( ) const
inline

Member Data Documentation

◆ buffer_

std::vector<std::uint8_t> cuttlefish::confui::Cbor::buffer_
private

◆ buffer_status_

Error cuttlefish::confui::Cbor::buffer_status_
private

◆ cb_map_

std::unique_ptr<cbor_item_t, CborDeleter> cuttlefish::confui::Cbor::cb_map_
private

◆ extra_data_

std::vector<std::uint8_t> cuttlefish::confui::Cbor::extra_data_
private

◆ kMax

const std::uint32_t cuttlefish::confui::Cbor::kMax = static_cast<std::uint32_t>(MessageSize::MAX)

When encoded, the Cbor object should not exceed this limit in terms of size in bytes

◆ prompt_text_

std::string cuttlefish::confui::Cbor::prompt_text_
private

The documentation for this class was generated from the following files: