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
验证未签名密钥导出消息的安全性。

公共函数

开始认证验证

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

准备验证对等方的证书。

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

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

在调用相应的 EndCertValidation() 之前,必须保持该实现以维护在 BeginCertValidation() 期间分配的所有资源。实现会保证每次成功调用 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

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

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

对于响应节点,此方法应验证请求者导出所请求的密钥的权限。

对于启动节点,此方法应验证经过验证的证书是否正确标识了密钥导出请求已发送到的对等节点。

发布节点证书集

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

释放节点的证书集。

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

ValidateUnsignedKeyExportMessage

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

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

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

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

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