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)
啟動憑證佈建通訊協定。

Structs

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

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

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

Weave Certificate Provisioning API 事件的輸出參數。

公開類型

@246

 @246
屬性
kReqType_GetInitialOpDeviceCert

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

kReqType_RotateOpDeviceCert

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

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
指向 PacketBuffer 物件的指標,該物件會保留 GetCertificateRequest 訊息。
[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 事件時傳回應用程式。

處理 GetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

處理 GetCertificateResponse 訊息。

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

當 GetCertificateResponse 訊息的處理作業順利完成後,這個方法會透過 ResponseReceived API 事件呼叫應用程式,以便傳送結果。

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

詳細資料
參數
[in] msgBuf
指向 PacketBuffer 物件的指標,該物件會保留 GetCertificateResponse 訊息。
傳回值
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 物件並未處於「Ready」狀態,系統會向 Binding::RequestPrepare() 方法提出要求,以便啟動按需準備作業。然後,要求作業會等待此程序完成。在處理先前要求的同時,系統會忽略對 StartCertificateProvisioning() 的任何呼叫。

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

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)