нл:: Переплетение:: Профили:: Безопасность:: СертПровисионинг:: WeaveCertProvДвигатель

#include <src/lib/profiles/security/WeaveCertProvisioning.h>

Реализует основную логику объекта протокола предоставления сертификатов Weave.

Краткое содержание

Конструкторы и деструкторы

WeaveCertProvEngine (void)

Публичные типы

@246 {
kReqType_GetInitialOpDeviceCert = 0,
kReqType_RotateOpDeviceCert = 1
}
перечисление
EventCallback )(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при событиях API механизма подготовки сертификатов.
EventType {
kEvent_PrepareAuthorizeInfo = 1,
kEvent_ResponseReceived = 2,
kEvent_CommunicationError = 3
}
перечисление
State {
kState_NotInitialized = 0,
kState_Idle = 1,
kState_PreparingBinding = 2,
kState_RequestInProgress = 3
}
перечисление

Публичные атрибуты

AppState
void *
Указатель на данные, специфичные для приложения.

Общественные функции

AbortCertificateProvisioning (void)
void
Останавливает любой текущий обмен GetCertificate.
GenerateGetCertificateRequest ( PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Создайте сообщение GetCertificateRequest.
GetBinding (void) const
Возвращает указатель на объект Binding , связанный с WeaveCertProvEngine .
GetEventCallback (void) const
Возвращает указатель на функцию обратного вызова событий API, настроенную в данный момент для объекта WeaveCertProvEngine .
GetMfrAttestDelegate (void) const
Возвращает указатель на объект делегата аттестации производителя, настроенный в данный момент для объекта WeaveCertProvEngine .
GetOpAuthDelegate (void) const
Возвращает указатель на объект делегата оперативной аутентификации, настроенный в данный момент для объекта WeaveCertProvEngine .
GetReqType (void) const
uint8_t
Получить текущий тип запроса.
GetState (void) const
Получите текущее состояние объекта WeaveCertProvEngine .
Init ( Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
Инициализируйте объект WeaveCertProvEngine для подготовки к отправке сообщения с запросом на получение сертификата.
ProcessGetCertificateResponse ( PacketBuffer *msgBuf)
Обработать сообщение GetCertificateResponse.
SetBinding ( Binding *binding)
void
Устанавливает объект привязки для объекта WeaveCertProvEngine .
SetEventCallback ( EventCallback eventCallback)
void
Устанавливает функцию обратного вызова события API для объекта WeaveCertProvEngine .
SetMfrAttestDelegate ( WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Устанавливает объект делегата аттестации производителя для объекта WeaveCertProvEngine .
SetOpAuthDelegate ( WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Устанавливает объект делегата оперативной аутентификации для объекта WeaveCertProvEngine .
Shutdown (void)
void
Завершите работу ранее инициализированного объекта WeaveCertProvEngine .
StartCertificateProvisioning (uint8_t reqType, bool doMfrAttest)
Запустите протокол предоставления сертификатов.

Структуры

nl:: Weave:: Profiles:: Security:: CertProvisioning:: WeaveCertProvEngine:: InEventParam

Введите параметры для события API предоставления сертификатов Weave.

nl:: Weave:: Profiles:: Security:: CertProvisioning:: WeaveCertProvEngine:: OutEventParam

Выходные параметры для события API предоставления сертификатов Weave.

Публичные типы

@246

 @246
Характеристики
kReqType_GetInitialOpDeviceCert

Тип запроса «Получить сертификат» предназначен для получения начального эксплуатационного сертификата.

kReqType_RotateOpDeviceCert

Тип запроса «Получить сертификат» предназначен для ротации текущего рабочего сертификата.

Обратный вызов события

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

Эта функция представляет собой обратный вызов приложения, который вызывается при событиях API механизма подготовки сертификатов.

Подробности
Параметры
[in] appState
Указатель на определяемую приложением информацию о состоянии, связанную с объектом механизма.
[in] eventType
Идентификатор события, передаваемый обратным вызовом события.
[in] inParam
Ссылка на параметры входного события, передаваемые обратным вызовом события.
[in] outParam
Ссылка на параметры выходного события, передаваемые обратным вызовом события.

Тип события

 EventType
Характеристики
kEvent_CommunicationError

Произошла ошибка связи при отправке GetCertificateRequest или ожидании ответа.

kEvent_PrepareAuthorizeInfo

Приложению предлагается подготовить полезные данные для GetCertificateRequest.

kEvent_ResponseReceived

От узла было получено сообщение GetCertificateResponse.

Состояние

 State
Характеристики
kState_Idle

Объект двигателя простаивает.

kState_NotInitialized

Объект двигателя не инициализирован.

kState_PreparingBinding

Объект механизма ожидает готовности привязки.

kState_RequestInProgress

Сообщение GetCertificateRequest отправлено, и объект механизма ожидает ответа.

Публичные атрибуты

состояние приложения

void * AppState

Указатель на данные, специфичные для приложения.

Общественные функции

Прекращение предоставления сертификата

void AbortCertificateProvisioning(
  void
)

Останавливает любой текущий обмен GetCertificate.

Создать запрос GetCertificateRequest

WEAVE_ERROR GenerateGetCertificateRequest(
  PacketBuffer *msgBuf,
  uint8_t reqType,
  bool doMfrAttest
)

Создайте сообщение GetCertificateRequest.

Этот метод генерирует структуру Weave GetCertificateRequest, закодированную в формате Weave TLV .

При формировании сообщения GetCertificateRequest метод отправляет запрос приложению через функции WeaveNodeOpAuthDelegate и WeaveNodeMfrAttestDelegate и событие API ПодготовкаAuthorizeInfo для подготовки полезных данных сообщения.

Подробности
Параметры
[in] msgBuf
Указатель на объект PacketBuffer, содержащий сообщение GetCertificateRequest.
[in] reqType
Получить тип запроса сертификата.
[in] doMfrAttest
Логический флаг, указывающий, должен ли запрос включать данные аттестации производителя.
Возвращаемые значения
WEAVE_NO_ERROR
Если GetCertificateRequest был успешно создан.

Получить привязку

Binding * GetBinding(
  void
) const 

Возвращает указатель на объект Binding , связанный с WeaveCertProvEngine .

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Возвращает указатель на функцию обратного вызова событий API, настроенную в данный момент для объекта WeaveCertProvEngine .

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Возвращает указатель на объект делегата аттестации производителя, настроенный в данный момент для объекта WeaveCertProvEngine .

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Возвращает указатель на объект делегата оперативной аутентификации, настроенный в данный момент для объекта WeaveCertProvEngine .

GetReqType

uint8_t GetReqType(
  void
) const 

Получить текущий тип запроса.

GetState

State GetState(
  void
) const 

Получите текущее состояние объекта WeaveCertProvEngine .

В этом

WEAVE_ERROR Init(
  Binding *binding,
  WeaveNodeOpAuthDelegate *opAuthDelegate,
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate,
  EventCallback eventCallback,
  void *appState
)

Инициализируйте объект WeaveCertProvEngine для подготовки к отправке сообщения с запросом на получение сертификата.

Подробности
Параметры
[in] binding
Объект привязки , который будет использоваться для установления связи с одноранговым узлом.
[in] opAuthDelegate
Указатель на объект делегата оперативной аутентификации, который будет использоваться для создания и подписи с использованием рабочих учетных данных узла.
[in] mfrAttestDelegate
Указатель на объект делегата аттестации производителя, который будет использоваться для создания и подписания запроса с использованием учетных данных, предоставленных производителем узла.
[in] eventCallback
Указатель на функцию, которая будет вызываться объектом WeaveCertProvEngine для доставки событий API в приложение.
[in] appState
Указатель на объект, определенный приложением, который будет передаваться обратно приложению при возникновении события API.

ПроцессGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

Обработать сообщение GetCertificateResponse.

Этот метод обрабатывает структуру Weave GetCertificateResponse, закодированную в формате Weave TLV .

После успешного завершения обработки сообщения GetCertificateResponse метод вызывает приложение через событие API ResponseReceived для доставки результата.

Если обработка сообщения GetCertificateResponse завершается неудачно, метод вызывает приложение через событие API CommunicationError, чтобы сообщить об ошибке.

Подробности
Параметры
[in] msgBuf
Указатель на объект PacketBuffer, содержащий сообщение GetCertificateResponse.
Возвращаемые значения
WEAVE_NO_ERROR
Если сообщение GetCertificateResponse было успешно обработано.

SetBinding

void SetBinding(
  Binding *binding
)

Устанавливает объект привязки для объекта WeaveCertProvEngine .

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Устанавливает функцию обратного вызова события API для объекта WeaveCertProvEngine .

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Устанавливает объект делегата аттестации производителя для объекта WeaveCertProvEngine .

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Устанавливает объект делегата оперативной аутентификации для объекта WeaveCertProvEngine .

Неисправность

void Shutdown(
  void
)

Завершите работу ранее инициализированного объекта WeaveCertProvEngine .

Обратите внимание, что этот метод можно вызвать только в том случае, если ранее был вызван метод Init() .

Начало предоставления сертификатов

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Запустите протокол предоставления сертификатов.

Этот метод инициирует процесс отправки сообщения GetCertificateRequest в службу ЦС. Если и когда будет получено соответствующее сообщение GetCertificateResponse, оно будет доставлено в приложение через событие API ResponseReceived.

Если объект Binding не находится в состоянии Ready при вызове этого метода, к методу Binding::RequestPrepare() будет отправлен запрос на инициацию подготовки по требованию. Операция запроса будет ожидать завершения этого процесса. Любой вызов StartCertificateProvisioning() во время обработки предыдущего запроса будет игнорироваться.

Подробности
Параметры
[in] reqType
Получить тип запроса сертификата.
[in] doMfrAttest
Логический флаг, указывающий, должен ли протокол включать данные аттестации производителя.
Возвращаемые значения
WEAVE_NO_ERROR
Если StartCertificateProvisioning() был обработан успешно.

WeaveCertProvДвигатель

 WeaveCertProvEngine(
  void
)