nl::Weave::配置文件::安全性::CertProvisioning::WeaveCertProvEngine

#include <src/lib/profiles/security/WeaveCertProvisioning.h>

实现 Weave Certificate Provisioning 协议对象的核心逻辑。

总结

构造函数和构造函数

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 对象,以便为发送 get 证书请求消息做好准备。
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 消息,但引擎对象正在等待响应。

公共属性

应用状态

void * AppState

指向特定于应用的数据的指针。

公共函数

中止证书配置

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 对象,以便为发送 get 证书请求消息做好准备。

详情
参数
[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
)