NLWeaveKeyExportClient

#include <src/device-manager/cocoa/NLWeaveKeyExportClient.h>

用于实现密钥导出功能的 C++ 实现(以支持 PIN 码加密)的封装容器。

摘要

继承

继承自 :NSObject

公共函数

allowNestDevelopmentDevices()
virtual BOOL
如果允许来自 Nest 开发设备的密钥导出响应,则为 true。
allowSHA1DeviceCertificates()
virtual BOOL
如果允许来自具有 SHA1 证书的设备的密钥导出响应,则为 true。
generateKeyExportRequest:responderNodeId:accessToken:error:(UInt32 keyId, UInt64 responderNodeId, NSData *accessToken, NSError **errOut)
virtual nullable NSData *
生成给定访问令牌的密钥导出请求。
generateKeyExportRequest:responderNodeId:clientCert:clientKey:error:(UInt32 keyId, UInt64 responderNodeId, NSData *clientCert, NSData *clientKey, NSError **errOut)
virtual nullable NSData *
根据客户端证书和私钥生成密钥导出请求。
init()
virtual instancetype
初始化 NLWeaveKeyExportClient 对象。
processKeyExportReconfigure:error:(NSData *reconfig, NSError **errOut)
virtual BOOL
处理收到的重新配置消息,以响应先前生成的密钥导出请求。
processKeyExportResponse:exportResp:error:(UInt64 responderNodeId, NSData *exportResp, NSError **errOut)
virtual nullable NSData *
处理对先前生成的密钥导出请求的响应。
reset()
virtual void
重置密钥导出客户端对象,从而舍弃与待处理的密钥导出请求相关联的任何状态。
setAllowNestDevelopmentDevices:(BOOL nestDev)
virtual void
允许或禁止 Nest 开发设备发出密钥导出响应。
setAllowSHA1DeviceCertificates:(BOOL nestDev)
virtual void
允许或禁止来自具有 SHA1 证书的设备的密钥导出响应。

公共函数

allowNestDevelopmentDevices

virtual BOOL allowNestDevelopmentDevices()

如果允许来自 Nest 开发设备的密钥导出响应,则为 true。

allowSHA1DeviceCertificates

virtual BOOL allowSHA1DeviceCertificates()

如果允许来自具有 SHA1 证书的设备的密钥导出响应,则为 true。

generateKeyExportRequest:responderNodeId:accessToken:error:

virtual nullable NSData * generateKeyExportRequest:responderNodeId:accessToken:error:(
  UInt32 keyId,
  UInt64 responderNodeId,
  NSData *accessToken,
  NSError **errOut
)

生成给定访问令牌的密钥导出请求。

具体说明
参数
[in] keyId
要导出的密钥的 Weave 密钥 ID。
[in] responderNodeId
要向其转发请求的设备的 Weave 节点 ID;如果特定设备 ID 未知,则为 0。
[in] accessToken
包含 Weave 访问令牌的缓冲区,采用 Weave TLV 格式。
[out] errOut
输出错误参数,在出现错误且 errOut 不为 null 时设置。
返回值
包含生成的密钥导出请求的二进制缓冲区。如果出现错误,则设置为 nil。

generateKeyExportRequest:responderNodeId:clientCert:clientKey:error:

virtual nullable NSData * generateKeyExportRequest:responderNodeId:clientCert:clientKey:error:(
  UInt32 keyId,
  UInt64 responderNodeId,
  NSData *clientCert,
  NSData *clientKey,
  NSError **errOut
)

根据客户端证书和私钥生成密钥导出请求。

具体说明
参数
[in] keyId
要导出的密钥的 Weave 密钥 ID。
[in] responderNodeId
要向其转发请求的设备的 Weave 节点 ID;如果特定设备 ID 未知,则为 0。
[in] clientCert
包含 Weave 证书的缓冲区,用于识别发出请求的客户端。证书应采用 Weave TLV 格式进行编码。
[in] clientKey
包含与客户端证书关联的私钥的缓冲区。私钥应采用 Weave TLV 格式进行编码。
[out] errOut
输出错误参数,在出现错误且 errOut 不为 null 时设置。
返回值
包含生成的密钥导出请求的二进制缓冲区。如果出现错误,则设置为 nil。

init

virtual instancetype init()

初始化 NLWeaveKeyExportClient 对象。

创建实例并初始化内部 C++ 对象的实例,以执行密钥导出功能。

processKeyExportReconfigure:error:

virtual BOOL processKeyExportReconfigure:error:(
  NSData *reconfig,
  NSError **errOut
)

处理收到的重新配置消息,以响应先前生成的密钥导出请求。

具体说明
参数
[in] reconfig
包含设备返回的 Weave 密钥导出重新配置消息的缓冲区。
[out] errOut
输出错误参数,在出现错误且 errOut 不为 null 时设置。
返回值
如果成功,则为 true;如果失败,则为 false。

processKeyExportResponse:exportResp:error:

virtual nullable NSData * processKeyExportResponse:exportResp:error:(
  UInt64 responderNodeId,
  NSData *exportResp,
  NSError **errOut
)

处理对先前生成的密钥导出请求的响应。

具体说明
参数
[in] responderNodeId
请求转发到的设备的 Weave 节点 ID;如果特定设备 ID 未知,则为 0。
[in] exportResp
包含设备返回的 Weave 密钥导出响应的缓冲区。
[out] errOut
输出错误参数,在出现错误且 errOut 不为 null 时设置。
返回值
包含导出密钥的二进制缓冲区。如果出现错误,则设置为 nil。

重置

virtual void reset()

重置密钥导出客户端对象,从而舍弃与待处理的密钥导出请求相关联的任何状态。

setAllowNestDevelopmentDevices:

virtual void setAllowNestDevelopmentDevices:(
  BOOL nestDev
)

允许或禁止 Nest 开发设备发出密钥导出响应。

setAllowSHA1DeviceCertificates:

virtual void setAllowSHA1DeviceCertificates:(
  BOOL nestDev
)

允许或禁止来自具有 SHA1 证书的设备的密钥导出响应。