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 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
)