nl::Weave::Profiles::Security::AppKeys

此命名空间包含 Weave 安全配置文件中的 Weave 应用密钥库中的所有接口。

摘要

枚举

@220{
  kWeaveAppGroupKeySize = 32,
  kWeaveAppRootKeySize = kWeaveAppGroupKeySize,
  kWeaveAppEpochKeySize = kWeaveAppGroupKeySize,
  kWeaveAppGroupMasterKeySize = kWeaveAppGroupKeySize,
  kWeaveAppIntermediateKeySize = kWeaveAppGroupKeySize,
  kWeaveFabricSecretSize = 36,
  kWeaveAppFabricRootKeyDiversifierSize = sizeof(kWeaveAppFabricRootKeyDiversifier),
  kWeaveAppClientRootKeyDiversifierSize = sizeof(kWeaveAppClientRootKeyDiversifier),
  kWeaveAppIntermediateKeyDiversifierSize = sizeof(kWeaveAppIntermediateKeyDiversifier)
}
枚举
Weave 应用密钥协议参数定义。
WeaveAppGroupGlobalId{
  kWeaveAppGroupGlobalId_Unspecified = 0,
  kWeaveAppGroupGlobalId_NestPhysicalAccess = (kWeaveVendor_NestLabs << 16) | 0x0001,
  kWeaveAppGroupGlobalId_NestStructureSecurity = (kWeaveVendor_NestLabs << 16) | 0x0002,
  kWeaveAppGroupGlobalId_NestHVAC = (kWeaveVendor_NestLabs << 16) | 0x0003,
  kWeaveAppGroupGlobalId_NestSecurityControl = (kWeaveVendor_NestLabs << 16) | 0x0004
}
枚举
Weave 应用组全局 ID (AGGID)。

变量

kWeaveAppClientRootKeyDiversifier = { 0x53, 0xE3, 0xFF, 0xE5 }[]
const uint8_t
用于 Weave 客户端根密钥派生的密钥多样化器。
kWeaveAppFabricRootKeyDiversifier = { 0x21, 0xFA, 0x8F, 0x6A }[]
const uint8_t
用于 Weave 织物根密钥派生的密钥多样化器。
kWeaveAppIntermediateKeyDiversifier = { 0xBC, 0xAA, 0x95, 0xAD }[]
const uint8_t
用于 Weave 中间密钥派生的密钥多样化器。

函数

GetAppGroupMasterKeyId(uint32_t groupGlobalId, GroupKeyStoreBase *groupKeyStore, uint32_t & groupMasterKeyId)
根据应用组全局 ID 获取应用组主密钥 ID。
LogGroupKeys(GroupKeyStoreBase *groupKeyStore)

nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore
nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase

Weave 组密钥库类的定义。

nl::Weave::Profiles::Security::AppKeys::WeaveGroupKey

包含有关 Weave 应用组键的信息。

枚举

@220

 @220

Weave 应用密钥协议参数定义。

属性
kWeaveAppClientRootKeyDiversifierSize

客户端根键多样化器大小。

kWeaveAppEpochKeySize

Weave 应用周期密钥大小。

kWeaveAppFabricRootKeyDiversifierSize

Fabric 根密钥多样化器大小。

kWeaveAppGroupKeySize

组织组键大小。

kWeaveAppGroupMasterKeySize

Weave 应用组主密钥大小。

kWeaveAppIntermediateKeyDiversifierSize

中间键多样化器大小。

kWeaveAppIntermediateKeySize

Weave 应用中间密钥大小。

kWeaveAppRootKeySize

Weave 应用根密钥大小。

kWeaveFabricSecretSize

织物 Secret 尺寸。

WeaveAppGroupGlobalId

 WeaveAppGroupGlobalId

Weave 应用组全局 ID (AGGID)。

属性
kWeaveAppGroupGlobalId_NestHVAC

Nest HVAC 集团。

kWeaveAppGroupGlobalId_NestPhysicalAccess

Nest Labs 应用群组全局 ID。

注意:请勿尝试自行分配这些值。这些值由 Nest Labs 管理。请使用“Nest Weave:Nest 应用组全球 ID 注册表”https://docs.google.com/document/d/1xHLAcTvLZg2YGoJfbUb2nbPIvaCNuoygmdiNwC-PJHI.Nest 物理访问群组提交正式请求。

kWeaveAppGroupGlobalId_NestSecurityControl

Nest 安全控制组。

kWeaveAppGroupGlobalId_NestStructureSecurity

Nest 结构安全组。

kWeaveAppGroupGlobalId_Unspecified

未指定应用组全局 ID。

变量

kWeaveAppClientRootKeyDiversifier

const uint8_t kWeaveAppClientRootKeyDiversifier[] = { 0x53, 0xE3, 0xFF, 0xE5 }

用于 Weave 客户端根密钥派生的密钥多样化器。

此值表示“客户端根密钥”短语的 SHA-1 HASH 的前 4 个字节。

kWeaveAppFabricRootKeyDiversifier

const uint8_t kWeaveAppFabricRootKeyDiversifier[] = { 0x21, 0xFA, 0x8F, 0x6A }

用于 Weave 织物根密钥派生的密钥多样化器。

此值表示“Fabric Root Key”短语的 SHA-1 HASH 的前 4 个字节。

kWeaveAppIntermediateKeyDiversifier

const uint8_t kWeaveAppIntermediateKeyDiversifier[] = { 0xBC, 0xAA, 0x95, 0xAD }

用于 Weave 中间密钥派生的密钥多样化器。

此值表示“中间键”短语的 SHA-1 HASH 的前 4 个字节。

函数

GetAppGroupMasterKeyId

WEAVE_ERROR GetAppGroupMasterKeyId(
  uint32_t groupGlobalId,
  GroupKeyStoreBase *groupKeyStore,
  uint32_t & groupMasterKeyId
)

根据应用组全局 ID 获取应用组主密钥 ID。

具体说明
参数
[in] groupGlobalId
应用组全局 ID。
[in] groupKeyStore
指向组密钥库对象的指针。
[out] groupMasterKeyId
应用组主密钥 ID。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_INVALID_ARGUMENT
如果未提供指向组密钥库的指针,
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
如果未使用功能完备的组密钥库初始化 FabricState 对象。
WEAVE_ERROR_KEY_NOT_FOUND
在平台密钥库中找不到具有指定全局 ID 的组键。
other
由平台密钥库 API 返回的其他平台特定错误。

LogGroupKeys

WEAVE_ERROR LogGroupKeys(
  GroupKeyStoreBase *groupKeyStore
)