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
)