nl::Weave::Profiles::Security::CertProvisioning::WeaveNodeMfrAttestDelegate

这是一个抽象类。

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

抽象接口,在 Weave 节点制造商认证期间将特定于平台的操作委派给该接口。

摘要

公共函数

EncodeMAInfo(TLVWriter & writer)=0
virtual WEAVE_ERROR
对本地节点的 Weave 制造商认证信息进行编码。
GenerateAndEncodeMASig(const uint8_t *data, uint16_t dataLen, TLVWriter & writer)=0
virtual WEAVE_ERROR
使用本地节点的制造商认证私钥生成制造商认证签名并对其进行编码。

公共函数

EncodeMAInfo

virtual WEAVE_ERROR EncodeMAInfo(
  TLVWriter & writer
)=0

对本地节点的 Weave 制造商认证信息进行编码。

被调用时,实现应编写一个结构,其中包含用于节点制造商认证的信息。制造商认证信息应以 TLV 结构的形式写入所提供的 TLV 写入器,并使用安全资料专用标记。

GenerateAndEncodeMASig

virtual WEAVE_ERROR GenerateAndEncodeMASig(
  const uint8_t *data,
  uint16_t dataLen,
  TLVWriter & writer
)=0

使用本地节点的制造商认证私钥生成制造商认证签名并对其进行编码。

调用时,实现必须使用节点的制造商认证私钥针对给定哈希值计算签名。

首先,用于标识制造商认证签名算法的枚举值应使用以下标记以未签名整数的形式写入所提供的 TLV 写入器:kTag_GetCertReqMsg_MfrAttestSigAlgo Legal 枚举值取自 kOID_SigAlgo_* 常量命名空间。

然后,生成的签名应使用以下某个标记,以 ECDSASignature、RSASignature、HMACSignature 或自定义结构的形式写入所提供的 TLV 写入者,并且使用了以下标记之一:kTag_GetCertReqMsg_MfrAttestSig_ECDSA kTag_GetCertReqMsg_MfrAttestSig_CigerMfrtests custom_RSA kTag_Get

注意:如果节点的相应椭圆曲线私钥保存在本地缓冲区中,则 GenerateAndEncodeWeaveECDSASignature() 实用函数对实现此方法很有用。