nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate

这是一个抽象类。

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

KeyExport 引擎调用的抽象委托类,用于在密钥导出期间执行与身份验证相关的各种操作。

摘要

继承

已知直接子类: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient

公共函数

BeginCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
准备验证对等方的证书。
EndCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
释放与对等证书验证关联的资源。
GenerateNodeSignature(WeaveKeyExport *keyExport, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer)=0
virtual WEAVE_ERROR
为密钥导出消息生成签名。
GetNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
获取为本地节点设置的密钥导出证书。
HandleCertValidationResult(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
处理对等方证书的验证结果。
ReleaseNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
释放节点的证书集。
ValidateUnsignedKeyExportMessage(WeaveKeyExport *keyExport, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
验证未签名密钥导出消息的安全性。

公共函数

BeginCertValidation

virtual WEAVE_ERROR BeginCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

准备验证对等方的证书。

在证书验证开始时调用。此方法负责准备提供的证书集和验证上下文,用于验证对等节点的证书。实现必须使用足够的资源对提供的 WeaveCertificateSet 对象进行初始化,以处理即将进行的证书验证。此外,该实现还必须将任何必要的可信根证书或 CA 证书加载到证书集中。

提供的验证上下文将使用一组默认验证标准进行初始化,实现过程可根据需要进行更改。实现必须设置 EffectiveTime 字段,或设置相应的验证标志以禁止证书生命周期验证。

该实现需要维护在 BeginCertValidation() 期间分配的所有资源,直到调用相应的 EndCertValidation() 为止。系统可以保证,每次成功调用 BeginCertValidation() 后,系统都会正好调用一次 EndCertValidation()

EndCertValidation

virtual WEAVE_ERROR EndCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

释放与对等证书验证关联的资源。

在对等证书验证和请求验证完成时调用。

GenerateNodeSignature

virtual WEAVE_ERROR GenerateNodeSignature(
  WeaveKeyExport *keyExport,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer
)=0

为密钥导出消息生成签名。

此方法负责使用本地节点的私钥计算给定哈希值的签名,并将签名以 WeaveSignature TLV 结构的形式写入所提供的 TLV 写入器。

GetNodeCertSet

virtual WEAVE_ERROR GetNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

获取为本地节点设置的密钥导出证书。

在密钥导出引擎准备对密钥导出消息进行签名时调用。此方法负责初始化证书集和加载将包含在消息签名中或引用的所有证书。上次加载的证书必须是签名证书。

HandleCertValidationResult

virtual WEAVE_ERROR HandleCertValidationResult(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  uint32_t requestedKeyId
)=0

处理对等方证书的验证结果。

在完成对等节点的证书验证时调用。只有在证书验证成功完成时,才会调用此方法。实现可能会使用此调用来检查验证结果,并可能会用错误替换结果。

对于响应节点,该方法应验证请求者是否有权导出所请求的密钥。

对于发起节点,该方法应验证经过验证的证书是否正确标识了接收密钥导出请求的对等设备。

ReleaseNodeCertSet

virtual WEAVE_ERROR ReleaseNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

释放节点的证书集。

在使用 GetNodeCertSet() 返回的证书集完成密钥导出引擎处理时调用。

ValidateUnsignedKeyExportMessage

virtual WEAVE_ERROR ValidateUnsignedKeyExportMessage(
  WeaveKeyExport *keyExport,
  uint32_t requestedKeyId
)=0

验证未签名密钥导出消息的安全性。

在节点收到未签名的密钥导出消息时调用。该方法应根据通信的上下文验证未签名密钥导出消息的安全性,例如,通过用于发送消息的安全会话的属性来验证该消息的安全性。

对于响应节点,该方法应验证发起者是否有权导出所请求的密钥。

对于发起节点,该方法应验证来自密钥导出请求的对端的合法来源。