nl::Weave::Profiles::Security::CertProvisioning::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(*
這個函式是系統會在 Certificate Provisioning 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::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::InEventParam

Weave Certificate Provisioning API 事件輸入參數。

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

將參數輸出至 Weave Certificate Provisioning API 事件。

公開類型

@246

 @246
屬性
kReqType_GetInitialOpDeviceCert

「取得憑證」要求類型是取得初始作業憑證。

kReqType_RotateOpDeviceCert

「取得憑證」要求類型是輪替目前的作業憑證。

EventCallback

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

這個函式是系統會在 Certificate Provisioning 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 訊息,且引擎物件正在等候回應。

公開屬性

AppState

void * AppState

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

公用函式

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

停止所有進行中的 GetCertificate 交換。

GenerateGetCertificateRequest

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 成功產生,

GetBinding

Binding * GetBinding(
  void
) const 

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

GetEventCallback

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 物件的目前狀態。

Init

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 事件時,這個物件就會傳回應用程式。

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

處理 GetCertificateResponse 訊息。

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

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

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

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

SetBinding

void SetBinding(
  Binding *binding
)

設定 WeaveCertProvEngine 物件上的繫結物件。

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

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

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

設定 WeaveCertProvEngine 物件上的製造商認證委派物件。

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

WeaveCertProvEngine 物件上設定作業驗證委派物件。

關機

void Shutdown(
  void
)

關閉先前初始化的 WeaveCertProvEngine 物件。

請注意,您必須先呼叫 Init() 方法,才能呼叫此方法。

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

啟動憑證佈建通訊協定。

這個方法會啟動將 GetCertificateRequest 訊息傳送至 CA 服務的程序。如果收到相應的 GetCertificateResponse 訊息,就會透過 ResponseReceived API 事件傳送給申請。

呼叫此方法時,如果 Binding 物件未處於「就緒」狀態,則會傳送要求至 Binding::RequestPrepare() 方法,以啟動隨選準備程序。然後要求作業會等到此程序完成為止。如有先前處理中的要求,系統會忽略任何對 StartCertificateProvisioning() 的呼叫。

詳細說明
參數
[in] reqType
取得憑證要求類型。
[in] doMfrAttest
布林值標記,指出通訊協定是否應納入製造商認證資料。
傳回值
WEAVE_NO_ERROR
如果 StartCertificateProvisioning() 成功處理成功。

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)