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

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

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

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

对于发起方节点,该方法应验证消息是否合法地来自发送密钥导出请求的对等方。