nl::Weave::Profiles::SoftwareUpdate::IntegritySpec

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

辅助类,用于存放软件更新映像的完整性类型和实际哈希值。

摘要

该对象包含用于指定哈希类型的 IntegrityTypes 字段,以及软件更新映像的实际哈希。哈希的长度根据哈希类型固定。系统会调整对象的大小,以容纳最大的受支持哈希值。

构造函数和析构函数

IntegritySpec()
IntegritySpec 的默认构造函数。

公共属性

type
uint8_t
哈希类型,要从 IntegrityTypes 中提取的值。
value[64]
uint8_t
可变长度的字节序列,包含由 URI 字段标识的软件映像的完整性值。

公共函数

init(uint8_t, uint8_t *)
使用提供的值显式初始化 IntegritySpec 对象。
operator==(const IntegritySpec &) const
bool
等式运算符。
pack(MessageIterator &)
IntegritySpec 序列化为提供的 MessageIterator

公共静态函数

parse(MessageIterator &, IntegritySpec &)
将提供的 MessageIterator 中的对象反序列化为提供的 IntegritySpec

公共属性

类型

uint8_t type

哈希类型,要从 IntegrityTypes 中提取的值。

uint8_t value[64]

可变长度的字节序列,包含由 URI 字段标识的软件映像的完整性值。

完整性值是通过将完整性类型指定的完整性函数应用于通过上述 URI 访问的软件更新映像的内容计算得出的。完整性规范允许客户端确认下载的图片是否与此响应中指定的图片匹配。

公共函数

IntegritySpec

 IntegritySpec()

IntegritySpec 的默认构造函数。

必须通过 init() 方法或从消息中反序列化对象来初始化对象。

init

WEAVE_ERROR init(
  uint8_t,
  uint8_t *
)

使用提供的值显式初始化 IntegritySpec 对象。

详细信息
参数
[in] aType
IntegrityTypes 中提取的完整性类型值
[in] aValue
相应长度的哈希值,表示为打包的字节串
返回值
WEAVE_NO_ERROR 成功时
返回值
WEAVE_ERROR_INVALID_INTEGRITY_TYPE(如果提供的完整性类型不是 IntegrityTypes 中指定的值之一)

运算符==

bool operator==(
  const IntegritySpec &
) const 

等式运算符。

详细信息
参数
another
用于根据此 IntegritySpec 进行检查的 IntegritySpec
返回值
如果两个对象中的所有字段都相等,则返回 true,否则返回 false

WEAVE_ERROR pack(
  MessageIterator &
)

IntegritySpec 序列化为提供的 MessageIterator

详细信息
参数
[in] i
对打包消息的迭代器
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_BUFFER_TOO_SMALL
如果 IntegritySpec 太大,不适合消息。

公共静态函数

parse

WEAVE_ERROR parse(
  MessageIterator &,
  IntegritySpec &
)

将提供的 MessageIterator 中的对象反序列化为提供的 IntegritySpec

详细信息
参数
[in] i
正在解析的消息的迭代器。
[in] aSpec
对包含结果的对象的引用
返回值
WEAVE_NO_ERROR
成功时。
返回值
WEAVE_ERROR_BUFFER_TOO_SMALL
消息中针对完整性类型和相关哈希包含的字节数不足
返回值
WEAVE_ERROR_INVALID_INTEGRITY_TYPE(如果提供的完整性类型不是 IntegrityTypes 中指定的值之一)