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
将用于与对等节点建立通信的 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
)

启动证书配置协议。

此方法会启动向 CA 服务发送 GetCertificateRequest 消息的过程。如果收到相应的 GetCertificateResponse 消息,该消息将通过 ResponseReceived API 事件传送至应用。

如果在调用此方法时,Binding 对象未处于就绪状态,则系统会向 Binding::RequestPrepare() 方法发出请求,以启动按需准备。然后,请求操作将等待此过程完成。如果之前有请求在处理,则对 StartCertificateProvisioning() 的任何调用都将被忽略。

详细信息
参数
[in] reqType
获取证书请求类型。
[in] doMfrAttest
一个布尔值标记,用于指明协议是否应包含制造商认证数据。
返回值
WEAVE_NO_ERROR
如果 StartCertificateProvisioning() 已成功处理,

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)