nl:: Weave:: Profiles:: Security:: CertProvisioning:: WeaveCertProvEngine
#include <src/lib/profiles/security/WeaveCertProvisioning.h>
實作 Weave 憑證佈建通訊協定物件的核心邏輯。
摘要
建構函式和解構函式 |
|
---|---|
WeaveCertProvEngine(void)
|
公開類型 |
|
---|---|
@246{
|
列舉 |
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)
|
typedefvoid(*
這個函式是應用程式回呼,會在 Certificate Provisioning Engine API 事件中叫用。 |
EventType{
|
列舉 |
State{
|
列舉 |
公開屬性 |
|
---|---|
AppState
|
void *
指向應用程式專屬資料的指標。
|
公開函式 |
|
---|---|
AbortCertificateProvisioning(void)
|
void
停止任何進行中的 GetCertificate 交換。
|
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
|
產生 GetCertificateRequest 訊息。
|
GetBinding(void) const
|
Binding *
傳回指向與 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 憑證佈建 API 事件的輸入參數。 |
nl:: |
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 事件中叫用。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
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 訊息時,這個方法會透過 WeaveNodeOpAuthDelegate 和 WeaveNodeMfrAttestDelegate 函式以及 PrepareAuthorizeInfo API 事件,向應用程式提出要求,以便準備訊息的酬載。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
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
擷取目前的要求類型。
Init
WEAVE_ERROR Init( Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState )
初始化 WeaveCertProvEngine 物件,準備傳送取得憑證要求訊息。
詳細資料 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
處理 GetCertificateResponse
WEAVE_ERROR ProcessGetCertificateResponse( PacketBuffer *msgBuf )
處理 GetCertificateResponse 訊息。
這個方法會處理以 Weave TLV 格式編碼的 Weave GetCertificateResponse 結構體。
當 GetCertificateResponse 訊息的處理作業順利完成後,這個方法會透過 ResponseReceived API 事件呼叫應用程式,以便傳送結果。
如果處理 GetCertificateResponse 訊息失敗,這個方法會透過 CommunicationError API 事件呼叫應用程式,以回報錯誤。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回值 |
|
SetEventCallback
void SetEventCallback( EventCallback eventCallback )
設定 WeaveCertProvEngine 物件的 API 事件回呼函式。
SetMfrAttestDelegate
void SetMfrAttestDelegate( WeaveNodeMfrAttestDelegate *mfrAttestDelegate )
設定 WeaveCertProvEngine 物件的製造商認證委派物件。
SetOpAuthDelegate
void SetOpAuthDelegate( WeaveNodeOpAuthDelegate *opAuthDelegate )
設定 WeaveCertProvEngine 物件的作業驗證委派物件。
StartCertificateProvisioning
WEAVE_ERROR StartCertificateProvisioning( uint8_t reqType, bool doMfrAttest )
啟動憑證佈建通訊協定。
這個方法會啟動將 GetCertificateRequest 訊息傳送至 CA 服務的程序。如果收到對應的 GetCertificateResponse 訊息,系統會透過 ResponseReceived API 事件將其傳送至應用程式。
如果在呼叫這個方法時,Binding 物件並未處於「Ready」狀態,系統會向 Binding::RequestPrepare() 方法提出要求,以便啟動按需準備作業。然後,要求作業會等待此程序完成。在處理先前要求的同時,系統會忽略對 StartCertificateProvisioning() 的任何呼叫。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
WeaveCertProvEngine
WeaveCertProvEngine( void )