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)
|
启动证书配置协议。
|
结构体 |
|
---|---|
nl:: |
Weave Certificate Provisioning 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 对象,为发送获取证书请求消息做准备。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
ProcessGetCertificateResponse
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 )
启动证书配置协议。
此方法会发起向 CA 服务发送 GetCertificateRequest 消息的过程。如果收到相应的 GetCertificateResponse 消息,系统会通过 ResponseReceived API 事件将其传送给应用。
如果在调用此方法时 Binding 对象未处于“准备就绪”状态,系统会向 Binding::RequestPrepare() 方法发出请求,以启动按需准备。然后,请求操作将等待此过程完成。如果有之前的请求正在处理,系统会忽略对 StartCertificateProvisioning() 的任何调用。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
WeaveCertProvEngine
WeaveCertProvEngine( void )