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

“Get Certificate”请求类型用于获取初始运营证书。

kReqType_RotateOpDeviceCert

“Get Certificate”请求类型用于轮替当前的有效证书。

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
)