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 证书的设备发出密钥导出响应。