metee: intel::security::metee Class Reference

metee

Loading...
Searching...
No Matches
Public Member Functions
intel::security::metee Class Reference

C++ class to access CSE/CSME/GSC firmware via a mei interface. More...

`#include <meteepp.h>`

## Public Member Functions
| metee ()
| metee (uint32_t log_level, TeeLogCallback2 log_callback)
| metee (const GUID &guid)
| metee (const GUID &guid, uint32_t log_level)
| metee (const GUID &guid, uint32_t log_level, TeeLogCallback log_callback)
| metee (const GUID &guid, uint32_t log_level, TeeLogCallback2 log_callback)
| metee (const GUID &guid, const struct tee_device_address &device, uint32_t log_level)
| metee (const GUID &guid, const struct tee_device_address &device, uint32_t log_level, TeeLogCallback log_callback)
| metee (const GUID &guid, const struct tee_device_address &device, uint32_t log_level, TeeLogCallback2 log_callback)
| metee (const metee &other)=delete
| metee (metee &&other) noexcept
metee & | operator= (const metee &other)=delete
metee & | operator= (metee &&other) noexcept
virtual | ~metee ()
void | cancel_io ()
void | connect ()
std::vector< uint8_t > | read (uint32_t timeout)
size_t | write (const std::vector< uint8_t > &buffer, uint32_t timeout)
uint32_t | fw_status (uint32_t fwStatusNum)
uint32_t | trc ()
std::string | kind ()
uint32_t | log_level (uint32_t log_level)
uint32_t | log_level ()
void | log_callback (TeeLogCallback log_callback)
uint32_t | max_msg_len ()
uint8_t | protocol_ver ()
TEE_DEVICE_HANDLE | device_handle ()
std::string | driver_version ()

## Detailed Description

C++ class to access CSE/CSME/GSC firmware via a mei interface.

Main interface class

Definition at line 84 of file meteepp.h.

## Constructor & Destructor Documentation

## ◆ metee() [1/11]

intel::security::metee::metee | ( |  | ) |
| inline

Default constructor, when connection to specific client is not required

Definition at line 88 of file meteepp.h.

## ◆ metee() [2/11]

intel::security::metee::metee | ( | uint32_t | log_level,
|  | TeeLogCallback2 | log_callback )
| inline

Constructor without client GUID, when connection to specific client is not required

Parameters

  log_level | log level to set (from enum tee_log_level)
  log_callback | pointer to function to run for log write (type 2)

Definition at line 94 of file meteepp.h.

## ◆ metee() [3/11]

intel::security::metee::metee | ( | const GUID & | guid | ) |
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session

Definition at line 99 of file meteepp.h.

## ◆ metee() [4/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | uint32_t | log_level )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  log_level | log level to set (from enum tee_log_level)

Definition at line 110 of file meteepp.h.

## ◆ metee() [5/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | uint32_t | log_level,
|  | TeeLogCallback | log_callback )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  log_level | log level to set (from enum tee_log_level)
  log_callback | pointer to function to run for log write

Definition at line 117 of file meteepp.h.

## ◆ metee() [6/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | uint32_t | log_level,
|  | TeeLogCallback2 | log_callback )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  log_level | log level to set (from enum tee_log_level)
  log_callback | pointer to function to run for log write (type 2)

Definition at line 125 of file meteepp.h.

## ◆ metee() [7/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | const struct tee_device_address & | device,
|  | uint32_t | log_level )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  device | device address structure
  log_level | log level to set (from enum tee_log_level)

Definition at line 133 of file meteepp.h.

## ◆ metee() [8/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | const struct tee_device_address & | device,
|  | uint32_t | log_level,
|  | TeeLogCallback | log_callback )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  device | device address structure
  log_level | log level to set (from enum tee_log_level)
  log_callback | pointer to function to run for log write

Definition at line 142 of file meteepp.h.

## ◆ metee() [9/11]

intel::security::metee::metee | ( | const GUID & | guid,
|  | const struct tee_device_address & | device,
|  | uint32_t | log_level,
|  | TeeLogCallback2 | log_callback )
| inline

Constructor

Parameters

  guid | GUID of the FW client that want to start a session
  device | device address structure
  log_level | log level to set (from enum tee_log_level)
  log_callback | pointer to function to run for log write (type 2)

Definition at line 156 of file meteepp.h.

## ◆ metee() [10/11]

intel::security::metee::metee | ( | const metee & | other | ) |
| delete

Copy constructor - disabled

## ◆ metee() [11/11]

intel::security::metee::metee | ( | metee && | other | ) |
| inlinenoexcept

Move constructor

Parameters

  other | Object to move from

Definition at line 170 of file meteepp.h.

## ◆ ~metee()

virtual intel::security::metee::~metee | ( |  | ) |
| inlinevirtual

Destructor, disconnects, if connected

Definition at line 190 of file meteepp.h.

## Member Function Documentation

## ◆ cancel_io()

void intel::security::metee::cancel_io | ( |  | ) |
| inline

Try to stop all in-process reads and writes

Definition at line 196 of file meteepp.h.

## ◆ connect()

void intel::security::metee::connect | ( |  | ) |
| inline

Connects to the TEE driver and starts a session

Definition at line 202 of file meteepp.h.

## ◆ device_handle()

TEE_DEVICE_HANDLE intel::security::metee::device_handle | ( |  | ) |
| inline

Returns handle of TEE device Obtains HECI device handle on Windows and mei device file descriptor on Linux

Returns
  the handle of the session.

Definition at line 349 of file meteepp.h.

## ◆ driver_version()

std::string intel::security::metee::driver_version | ( |  | ) |
| inline

Obtains version of the TEE device driver Not implemented on Linux

Returns
  Driver version as dotted string.

Definition at line 358 of file meteepp.h.

## ◆ fw_status()

uint32_t intel::security::metee::fw_status | ( | uint32_t | fwStatusNum | ) |
| inline

Retrieves specified FW status register.

Parameters

  fwStatusNum | The FW status register number (0-5).

Returns
  obtained FW status.

Definition at line 253 of file meteepp.h.

## ◆ kind()

std::string intel::security::metee::kind | ( |  | ) |
| inline

Retrieves device kind.

Returns
  kind string value.

Definition at line 285 of file meteepp.h.

## ◆ log_callback()

void intel::security::metee::log_callback | ( | TeeLogCallback | log_callback | ) |
| inline

Set log callback

Parameters

  log_callback | pointer to function to run for log write, set NULL to use built-in function

Definition at line 322 of file meteepp.h.

## ◆ log_level() [1/2]

uint32_t intel::security::metee::log_level | ( |  | ) |
| inline

Retrieve current log level

Returns
  current log level

Definition at line 313 of file meteepp.h.

## ◆ log_level() [2/2]

uint32_t intel::security::metee::log_level | ( | uint32_t | log_level | ) |
| inline

Set log level

Parameters

  log_level | log level to set

Returns
  previous log level

Definition at line 304 of file meteepp.h.

## ◆ max_msg_len()

uint32_t intel::security::metee::max_msg_len | ( |  | ) |
| inline

Retrieve client maximum message length (MTU)

Returns
  client maximum message length.

Definition at line 331 of file meteepp.h.

## ◆ operator=() [1/2]

metee & intel::security::metee::operator= | ( | const metee & | other | ) |
| delete

Copy operator - disabled

## ◆ operator=() [2/2]

metee & intel::security::metee::operator= | ( | metee && | other | ) |
| inlinenoexcept

Move operator

Parameters

  other | Object to move from

Definition at line 181 of file meteepp.h.

## ◆ protocol_ver()

uint8_t intel::security::metee::protocol_ver | ( |  | ) |
| inline

Retrieve client protocol version

Returns
  client protocol version.

Definition at line 340 of file meteepp.h.

## ◆ read()

std::vector< uint8_t > intel::security::metee::read | ( | uint32_t | timeout | ) |
| inline

Read data from the TEE device synchronously.

Parameters

  timeout | The timeout to complete read in milliseconds, zero for infinite

Returns
  vector with data read from the TEE device

Definition at line 216 of file meteepp.h.

## ◆ trc()

uint32_t intel::security::metee::trc | ( |  | ) |
| inline

Retrieves TRC register.

Returns
  TRC value.

Definition at line 269 of file meteepp.h.

## ◆ write()

size_t intel::security::metee::write | ( | const std::vector< uint8_t > & | buffer,
|  | uint32_t | timeout )
| inline

Writes the specified buffer to the TEE device synchronously.

Parameters

  buffer | vector containing the data to be written to the TEE device.
  timeout | The timeout to complete write in milliseconds, zero for infinite

Returns
  the number of bytes written

Definition at line 236 of file meteepp.h.

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

- meteepp.h