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

此命名空间包括 Weave 中适用于 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

编织应用中间密钥大小。

kWeaveAppRootKeySize

Weave 应用根密钥大小。

kWeaveFabricSecretSize

编织面料密钥大小。

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提交正式请求。

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 返回的其他针对特定平台的错误。

LogGroup 键

WEAVE_ERROR LogGroupKeys(
  GroupKeyStoreBase *groupKeyStore
)