nl:: Weave:: WeaveKeyId
#include <src/lib/core/WeaveKeyIds.h>
Weave 密钥标识符的定义。
摘要
此类包含键类型、键标志、键 ID 字段定义和 API 函数。
公共类型 |
|
---|---|
@52{
|
枚举 公开 Weave 密钥 ID 字段、标记和类型。 |
公共静态函数 |
|
---|---|
ConvertToCurrentAppKeyId(uint32_t keyId)
|
uint32_t
将应用组密钥 ID 转换为应用当前的密钥 ID。
|
ConvertToStaticAppKeyId(uint32_t keyId)
|
uint32_t
将应用密钥 ID 转换为应用静态密钥 ID。
|
DescribeKey(uint32_t keyId)
|
const char *
使用描述性字符串解码 Weave 密钥标识符。
|
GetAppGroupLocalNumber(uint32_t keyId)
|
uint8_t
获取用于推导指定应用密钥的应用组本地编号。
|
GetAppGroupMasterKeyId(uint32_t keyId)
|
uint32_t
获取用于推导指定应用密钥的应用组主密钥 ID。
|
GetEpochKeyId(uint32_t keyId)
|
uint32_t
获取用于推导指定应用密钥的应用组 Epoch 密钥 ID。
|
GetEpochKeyNumber(uint32_t keyId)
|
uint8_t
获取用于派生指定的应用密钥的应用组周期号。
|
GetRootKeyId(uint32_t keyId)
|
uint32_t
获取用于派生指定的应用密钥的应用组根密钥 ID。
|
GetRootKeyNumber(uint32_t keyId)
|
uint8_t
获取用于派生指定的应用密钥的应用组根密钥编号。
|
GetType(uint32_t keyId)
|
uint32_t
获取指定密钥 ID 的 Weave 密钥类型。
|
IncorporatesAppGroupMasterKey(uint32_t keyId)
|
bool
确定指定的应用组密钥 ID 是否包含组主密钥。
|
IncorporatesEpochKey(uint32_t keyId)
|
bool
确定指定的应用组密钥 ID 是否包含 Epoch 键。
|
IncorporatesRootKey(uint32_t keyId)
|
bool
确定指定的应用组密钥 ID 是否包含根密钥。
|
IsAppEpochKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否属于应用 Epoch 密钥类型。
|
IsAppGroupKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 属于应用群组密钥类型(静态或轮替)。
|
IsAppGroupMasterKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为应用群组主密钥类型。
|
IsAppRootKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为应用根密钥类型。
|
IsAppRotatingKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为应用轮播类型。
|
IsAppStaticKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为应用静态类型。
|
IsGeneralKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为通用类型。
|
IsMessageEncryptionKeyId(uint32_t keyId, bool allowLogicalKeys)
|
bool
确定给定密钥 ID 是否标识了适用于 Weave 消息加密的密钥。
|
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
|
bool
确定两个密钥 ID 是标识同一密钥,还是在轮替密钥时,同一组密钥不依赖于任何特定周期。
|
IsSessionKey(uint32_t keyId)
|
bool
确定指定的密钥 ID 是否为会话类型。
|
IsValidKeyId(uint32_t keyId)
|
bool
确定密钥标识符是否具有有效的(法律)值。
|
MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
|
uint32_t
根据应用组本地编号构建应用组主密钥 ID。
|
MakeAppIntermediateKeyId(uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey)
|
uint32_t
根据组成密钥 ID 构建应用中间密钥 ID。
|
MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
|
uint32_t
根据组密钥 ID 和其他信息构建应用组密钥 ID。
|
MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
|
uint32_t
根据组合密钥 ID 和其他信息构建应用轮替密钥 ID。
|
MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
|
uint32_t
在给定键 ID 的情况下构建应用静态键 ID。
|
MakeEpochKeyId(uint8_t epochKeyNumber)
|
uint32_t
根据新纪元键号构建应用组根键 ID。
|
MakeGeneralKeyId(uint16_t generalKeyNumber)
|
uint16_t
根据一般按键编号构建通用按键 ID。
|
MakeRootKeyId(uint8_t rootKeyNumber)
|
uint32_t
根据根密钥编号构造应用组根密钥 ID。
|
MakeSessionKeyId(uint16_t sessionKeyNumber)
|
uint16_t
根据会话密钥编号构建会话密钥 ID。
|
UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
|
uint32_t
使用新的周期密钥编号更新应用组密钥 ID。
|
UsesCurrentEpochKey(uint32_t keyId)
|
bool
确定指定的应用组密钥 ID 是否使用“当前”周期纪元密钥。
|
公共类型
@52
@52
公开 Weave 密钥 ID 字段、标记和类型。
属性 | |
---|---|
kClientRootKey
|
客户端根密钥 ID。 |
kFabricRootKey
|
Fabric 根密钥 ID。 |
kFabricSecret
|
编织面料 ID。 |
kKeyNumber_Max
|
键 ID 子字段的最大值。 |
kNone
|
编织全局键 ID。 未指定的 Weave 密钥 ID。 |
kServiceRootKey
|
服务根密钥 ID。 |
kType_AppEpochKey
|
应用组纪元密钥类型。 |
kType_AppGroupMasterKey
|
应用组主密钥类型。 |
kType_AppIntermediateKey
|
应用组中间密钥类型。 |
kType_AppRootKey
|
Weave 密钥类型(Weave 消息加密类型除外)。 |
kType_AppRotatingKey
|
应用轮替密钥类型。 |
kType_AppStaticKey
|
应用静态密钥类型。 |
kType_General
|
常规密钥类型。 |
kType_None
|
用于 Weave 消息加密的 Weave 密钥类型。 |
kType_Session
|
会话密钥类型。 |
公共静态函数
ConvertToCurrentAppKeyId
uint32_t ConvertToCurrentAppKeyId( uint32_t keyId )
将应用组密钥 ID 转换为应用当前的密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
应用当前密钥 ID。
|
ConvertToStaticAppKeyId
uint32_t ConvertToStaticAppKeyId( uint32_t keyId )
将应用密钥 ID 转换为应用静态密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
应用静态密钥 ID。
|
描述键
const char * DescribeKey( uint32_t keyId )
使用描述性字符串解码 Weave 密钥标识符。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向以 NULL 结尾的字符串,该字符串描述了指定的键 ID。
|
GetAppGroupLocalNumber
uint8_t GetAppGroupLocalNumber( uint32_t keyId )
获取用于推导指定应用密钥的应用组本地编号。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
应用组本地电话号码。
|
GetAppGroupMasterKeyId
uint32_t GetAppGroupMasterKeyId( uint32_t keyId )
获取用于推导指定应用密钥的应用组主密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
应用组主密钥 ID。
|
GetEpochKeyId
uint32_t GetEpochKeyId( uint32_t keyId )
获取用于推导指定应用密钥的应用组 Epoch 密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
Epoch 键 ID。
|
GetEpochKeyNumber
uint8_t GetEpochKeyNumber( uint32_t keyId )
获取用于派生指定的应用密钥的应用组周期号。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
新纪元键编号。
|
GetRootKeyId
uint32_t GetRootKeyId( uint32_t keyId )
获取用于派生指定的应用密钥的应用组根密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
根密钥 ID。
|
GetRootKeyNumber
uint8_t GetRootKeyNumber( uint32_t keyId )
获取用于派生指定的应用密钥的应用组根密钥编号。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
根密钥编号。
|
GetType
uint32_t GetType( uint32_t keyId )
获取指定密钥 ID 的 Weave 密钥类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
密钥 ID 的类型。
|
整合了 AppGroupMasterKey
bool IncorporatesAppGroupMasterKey( uint32_t keyId )
确定指定的应用组密钥 ID 是否包含组主密钥。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 包含组主密钥,则返回 true。
|
公司 EpochKey
bool IncorporatesEpochKey( uint32_t keyId )
确定指定的应用组密钥 ID 是否包含 Epoch 键。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 包含新纪元键,则返回 true。
|
公司根密钥
bool IncorporatesRootKey( uint32_t keyId )
确定指定的应用组密钥 ID 是否包含根密钥。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 包含根键,则为 true。
|
应用密钥
bool IsAppEpochKey( uint32_t keyId )
确定指定的密钥 ID 是否属于应用 Epoch 密钥类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果应用周期键类型的键 ID,则为 true。
|
应用组密钥
bool IsAppGroupKey( uint32_t keyId )
确定指定的密钥 ID 属于应用群组密钥类型(静态或轮替)。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 是轮替类型或静态键类型,则为 true。
|
IsAppGroupMasterKey
bool IsAppGroupMasterKey( uint32_t keyId )
确定指定的密钥 ID 是否为应用群组主密钥类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果应用组主键类型的 keyId,则为 true。
|
IsAppRootKey
bool IsAppRootKey( uint32_t keyId )
确定指定的密钥 ID 是否为应用根密钥类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果应用根密钥类型的 keyId,则为 true。
|
IsAppRotatingKey
bool IsAppRotatingKey( uint32_t keyId )
确定指定的密钥 ID 是否为应用轮播类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果应用旋转类型的 keyId 为 true,
|
IsAppStaticKey
bool IsAppStaticKey( uint32_t keyId )
确定指定的密钥 ID 是否为应用静态类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果应用静态类型的键 ID,则返回 true。
|
常规键
bool IsGeneralKey( uint32_t keyId )
确定指定的密钥 ID 是否为通用类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 具有常规类型,则为 true。
|
IsMessageEncryptionKeyId
bool IsMessageEncryptionKeyId( uint32_t keyId, bool allowLogicalKeys )
确定给定密钥 ID 是否标识了适用于 Weave 消息加密的密钥。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
如果标识的密钥可用于加密 Weave 消息,则为 true。
|
IsSameKeyOrGroup
bool IsSameKeyOrGroup( uint32_t keyId1, uint32_t keyId2 )
确定两个密钥 ID 是标识同一密钥,还是在轮替密钥时,同一组密钥不依赖于任何特定周期。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
如果键 ID 表示相同的键,则返回 true。
|
IsSessionKey
bool IsSessionKey( uint32_t keyId )
确定指定的密钥 ID 是否为会话类型。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果会话类型的键 ID,则返回 true。
|
IsValidKeyId
bool IsValidKeyId( uint32_t keyId )
确定密钥标识符是否具有有效的(法律)值。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果键 ID 值有效,则返回 true。
|
MakeAppGroupMasterKeyId
uint32_t MakeAppGroupMasterKeyId( uint8_t appGroupLocalNumber )
根据应用组本地编号构建应用组主密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
应用组主密钥 ID。
|
MakeAppIntermediateKeyId
uint32_t MakeAppIntermediateKeyId( uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey )
根据组成密钥 ID 构建应用中间密钥 ID。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
应用中间密钥 ID。
|
MakeAppKeyId
uint32_t MakeAppKeyId( uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey )
根据组密钥 ID 和其他信息构建应用组密钥 ID。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
应用组密钥 ID。
|
MakeAppRotatingKeyId
uint32_t MakeAppRotatingKeyId( uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey )
根据组合密钥 ID 和其他信息构建应用轮替密钥 ID。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
应用轮替密钥 ID。
|
MakeAppStaticKeyId
uint32_t MakeAppStaticKeyId( uint32_t rootKeyId, uint32_t appGroupMasterKeyId )
在给定键 ID 的情况下构建应用静态键 ID。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
应用静态密钥 ID。
|
MakeEpoch 密钥 ID
uint32_t MakeEpochKeyId( uint8_t epochKeyNumber )
根据新纪元键号构建应用组根键 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
Epoch 键 ID。
|
MakeGeneralKeyId
uint16_t MakeGeneralKeyId( uint16_t generalKeyNumber )
根据一般按键编号构建通用按键 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
通用键 ID。
|
MakeRootKeyId
uint32_t MakeRootKeyId( uint8_t rootKeyNumber )
根据根密钥编号构造应用组根密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
根密钥 ID。
|
MakeSessionKeyId
uint16_t MakeSessionKeyId( uint16_t sessionKeyNumber )
根据会话密钥编号构建会话密钥 ID。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
会话密钥 ID。
|
更新 EpochKeyId
uint32_t UpdateEpochKeyId( uint32_t keyId, uint32_t epochKeyId )
使用新的周期密钥编号更新应用组密钥 ID。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
应用密钥 ID。
|
使用当前 EpochKey
bool UsesCurrentEpochKey( uint32_t keyId )
确定指定的应用组密钥 ID 是否使用“当前”周期纪元密钥。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果 keyId 指示使用当前周期键,则为 true。
|