透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::編織::設定檔::安全性::憑證佈建::WeaveCertProvEngine

#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) typedef
void(*
這個函式是在憑證佈建 Engine 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
傳回與 WeaveCertProvEngine 相關聯的 Binding 物件指標。
GetEventCallback(void) const
傳回目前在 WeaveCertProvEngine 物件中設定的 API 事件回呼函式的指標。
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
設定 WeaveCertProvEngine 物件上的 API 事件回呼函式。
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
設定 WeaveCertProvEngine 物件的製造商認證委派物件。
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
設定 WeaveCertProvEngine 物件的作業驗證委派物件。
Shutdown(void)
void
關閉先前初始化的 WeaveCertProvEngine 物件。
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
啟動憑證佈建通訊協定。

結構

nl::編織::設定檔::安全性::Cert 佈建::WeaveCertProvEngine::InEventParam

Weave Certificate 佈建 API 事件的輸入參數。

nl::編織::設定檔::安全性::Cert 佈建::WeaveCertProvEngine::OutEventParam

Weave Certificate 佈建 API 事件的輸出參數。

公開類型

@246

 @246
屬性
kReqType_GetInitialOpDeviceCert

Get Certificate 要求類型是用來取得初始作業憑證。

kReqType_RotateOpDeviceCert

Get Certificate 要求類型是輪替目前的作業憑證。

事件回呼

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

這個函式是在憑證佈建 Engine API 事件上叫用的應用程式回呼。

詳情
參數
[in] appState
指向與引擎物件相關聯的應用程式定義狀態資訊。
[in] eventType
由事件回呼傳送的事件 ID。
[in] inParam
由事件回呼傳遞的輸入事件參數參考資料。
[in] outParam
由事件回呼傳遞的輸出事件參數參考資料。

EventType

 EventType
屬性
kEvent_CommunicationError

傳送 GetCertificateRequest 或等待回應時發生通訊錯誤。

kEvent_PrepareAuthorizeInfo

應用程式要求取得 GetCertificateRequest 的酬載。

kEvent_ResponseReceived

收到對等應用程式的 GetCertificateResponse 訊息。

狀態

 State
屬性
kState_Idle

引擎物件處於閒置狀態。

kState_NotInitialized

引擎物件未初始化。

kState_PreparingBinding

引擎物件正在等待繫結準備就緒。

kState_RequestInProgress

已傳送 GetCertificateRequest 訊息,且引擎物件正在等待回應。

公開屬性

應用程式狀態

void * AppState

應用程式特定資料的指標。

公用函式

AbortCertificate 佈建

void AbortCertificateProvisioning(
  void
)

停止任何 GetCertificate 交換作業。

產生取得憑證要求

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

產生 GetCertificateRequest 訊息。

這種方法會產生以 Weave TLV 格式編碼的 Weave GetCertificateRequest 結構。

建立 GetCertificateRequest 訊息時,這個方法會透過 WeaveNodeOpAuthDelegateWeaveNodeMfrAttestDelegate 函式和 PrepareAuthorizeInfo API 事件向應用程式發出要求,以準備訊息的酬載。

詳情
參數
[in] msgBuf
指向 GetCertificateRequest 訊息的 PacketBuffer 物件指標。
[in] reqType
取得憑證要求類型。
[in] doMfrAttest
表示要求是否應包含製造商認證資料的布林值標記。
傳回值
WEAVE_NO_ERROR
成功產生 GetCertificateRequest。

取得繫結

Binding * GetBinding(
  void
) const 

傳回與 WeaveCertProvEngine 相關聯的 Binding 物件指標。

取得事件回呼

EventCallback GetEventCallback(
  void
) const 

傳回目前在 WeaveCertProvEngine 物件中設定的 API 事件回呼函式的指標。

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 事件發生時傳回給應用程式。

處理憑證憑證回應

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

處理 GetCertificateResponse 訊息。

這個方法會處理採用 Weave TLV 格式編碼的 Weave GetCertificateResponse 結構。

成功處理 GetCertificateResponse 訊息後,這個方法會透過 ResponseReceived API 事件呼叫應用程式,以傳送結果。

如果 GetCertificateResponse 訊息處理失敗,此方法會透過 CommunicationError API 事件呼叫應用程式以回報錯誤。

詳情
參數
[in] msgBuf
指向 GetCertificateResponse 訊息的 PacketBuffer 物件指標。
傳回值
WEAVE_NO_ERROR
如果 GetCertificateResponse 訊息處理成功。

設定繫結

void SetBinding(
  Binding *binding
)

設定 WeaveCertProvEngine 物件的繫結物件。

設定事件回呼

void SetEventCallback(
  EventCallback eventCallback
)

設定 WeaveCertProvEngine 物件上的 API 事件回呼函式。

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 訊息傳送至 CA 服務。如果收到對應的 GetCertificateResponse 訊息,並且收到對應的訊息,就會透過 ResponseReceived API 事件傳送至應用程式。

如果呼叫這個方法時,繫結物件未處於就緒狀態,系統會向 Binding::RequestPrepare() 方法發出隨選準備工作。此要求作業會等到等候程序完成為止。無論先前的要求為何,系統會忽略所有對 StartCertificateIntegration() 的呼叫。

詳情
參數
[in] reqType
取得憑證要求類型。
[in] doMfrAttest
表示通訊協定是否應包含製造商認證資料的布林值標記。
傳回值
WEAVE_NO_ERROR
如果已順利處理 StartCertificate 佈建()

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)