nl:: Weave:: WeaveKeyId
#include <src/lib/core/WeaveKeyIds.h>
Weave Key 識別碼的定義。
總結
這個類別包含了金鑰類型、金鑰標記、金鑰 ID 欄位定義和 API 函式。
公開類型 |
|
---|---|
@52{
|
列舉 公開的金鑰 ID 欄位、標記和類型。 |
公開的靜態函式 |
|
---|---|
ConvertToCurrentAppKeyId(uint32_t keyId)
|
uint32_t
將應用程式群組金鑰 ID 轉換為應用程式目前的金鑰 ID。
|
ConvertToStaticAppKeyId(uint32_t keyId)
|
uint32_t
將應用程式金鑰 ID 轉換為應用程式靜態金鑰 ID。
|
DescribeKey(uint32_t keyId)
|
const char *
使用描述性字串解碼 Weave 金鑰 ID。
|
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
取得用於擷取指定應用程式金鑰的應用程式群組 Epoch 金鑰編號。
|
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 是否屬於應用程式訓練週期金鑰類型。
|
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 是否識別適用於 Weveve 訊息加密的金鑰。
|
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
|
bool
決定兩個金鑰 ID 是否可識別同一組金鑰,或者在輪替金鑰時,這組金鑰組 (與任何特定訓練週期無關) 無關。
|
IsSessionKey(uint32_t keyId)
|
bool
判斷指定的金鑰 ID 是否屬於工作階段類型。
|
IsValidKeyId(uint32_t keyId)
|
bool
判斷金鑰 ID 是否具備有效的 (合法) 值。
|
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 (將包含 Epoch 金鑰金鑰)。
|
MakeGeneralKeyId(uint16_t generalKeyNumber)
|
uint16_t
在建構一般金鑰 ID 時建構一般金鑰 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 是否使用「目前」金鑰;Epoch 金鑰。
|
公開類型
@52
@52
公開的金鑰 ID 欄位、標記和類型。
屬性 | |
---|---|
kClientRootKey
|
用戶端根金鑰 ID。 |
kFabricRootKey
|
布料根金鑰 ID。 |
kFabricSecret
|
編織布料秘密 ID。 |
kKeyNumber_Max
|
鍵 ID 子欄位的最大值。 |
kNone
|
編組全域金鑰 ID。 未指定的 Weveve 金鑰 ID。 |
kServiceRootKey
|
服務根金鑰 ID。 |
kType_AppEpochKey
|
應用程式群組的 Epoch 金鑰類型。 |
kType_AppGroupMasterKey
|
應用程式群組主金鑰類型。 |
kType_AppIntermediateKey
|
應用程式群組的中繼金鑰類型。 |
kType_AppRootKey
|
Weave 金鑰類型 (Weave 訊息加密類型除外)。 |
kType_AppRotatingKey
|
應用程式輪替金鑰類型。 |
kType_AppStaticKey
|
應用程式靜態金鑰類型。 |
kType_General
|
一般金鑰類型。 |
kType_None
|
用於將 Weave 訊息加密的金鑰類型。 |
kType_Session
|
工作階段金鑰類型。 |
公開的靜態函式
轉換至目前應用程式金鑰 ID
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 金鑰 ID。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指向 NULL 結尾字串的說明,指出指定金鑰 ID。
|
取得應用程式群組本機編號
uint8_t GetAppGroupLocalNumber( uint32_t keyId )
取得用於產生指定應用程式金鑰的應用程式群組本機編號。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
應用程式群組的本機編號。
|
取得應用程式群組主鍵 ID
uint32_t GetAppGroupMasterKeyId( uint32_t keyId )
取得用於擷取指定應用程式金鑰的應用程式群組主金鑰 ID。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
應用程式群組主金鑰 ID。
|
GetEpochKeyId
uint32_t GetEpochKeyId( uint32_t keyId )
取得用於擷取指定應用程式金鑰的應用程式群組 Epoch 金鑰 ID。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
Epoch 金鑰 ID。
|
GetEpoch 金鑰號碼
uint8_t GetEpochKeyNumber( uint32_t keyId )
取得用於擷取指定應用程式金鑰的應用程式群組 Epoch 金鑰編號。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
Epoch 金鑰編號。
|
取得根金鑰 ID
uint32_t GetRootKeyId( uint32_t keyId )
取得用於擷取指定應用程式金鑰的應用程式群組根金鑰 ID。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
根金鑰 ID。
|
取得根金鑰編號
uint8_t GetRootKeyNumber( uint32_t keyId )
取得用於擷取指定應用程式金鑰的應用程式群組根金鑰編號。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
根金鑰編號。
|
GetType
uint32_t GetType( uint32_t keyId )
取得指定金鑰 ID 的 Weave 金鑰類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
金鑰 ID 的類型。
|
IncorporatesAppGroupMasterKey
bool IncorporatesAppGroupMasterKey( uint32_t keyId )
判斷指定的應用程式群組金鑰 ID 是否包含群組主金鑰。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 包含群組主鍵,則值為 true。
|
IncorporatesEpochKey
bool IncorporatesEpochKey( uint32_t keyId )
判斷指定的應用程式群組金鑰 ID 是否包含 Epoch 紀元金鑰。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 包含 Epoch 金鑰,則傳回 true。
|
IncorporatesRootKey
bool IncorporatesRootKey( uint32_t keyId )
判斷指定的應用程式群組金鑰 ID 是否包含根金鑰。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 包含根鍵,則傳回 true。
|
是 AppEpochKey
bool IsAppEpochKey( uint32_t keyId )
判斷指定的金鑰 ID 是否屬於應用程式訓練週期金鑰類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果應用程式的 Epoch 金鑰金鑰的 keyId 為 true,則為 true。
|
是應用程式群組金鑰
bool IsAppGroupKey( uint32_t keyId )
判斷指定金鑰 ID 是否屬於其中一個應用程式群組金鑰類型 (靜態或輪替)。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 為輪播類型或靜態金鑰類型,則傳回 true。
|
是應用程式主金鑰
bool IsAppGroupMasterKey( uint32_t keyId )
判斷指定金鑰 ID 是否為應用程式群組主金鑰類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果應用程式群組主鍵類型的 keyId,則為 true。
|
是應用程式根金鑰
bool IsAppRootKey( uint32_t keyId )
判斷指定金鑰 ID 是否屬於應用程式根金鑰類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果應用程式根金鑰類型的 keyId,則為 true。
|
是 AppRotatingKey
bool IsAppRotatingKey( uint32_t keyId )
判斷指定的金鑰 ID 是否為應用程式輪播類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果應用程式旋轉類型的 keyId,則為 true。
|
是 AppStaticKey
bool IsAppStaticKey( uint32_t keyId )
判斷指定金鑰 ID 是否為應用程式靜態類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果應用程式靜態類型的 keyId,則為 true。
|
通用金鑰
bool IsGeneralKey( uint32_t keyId )
判斷指定金鑰 ID 是否屬於一般類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 具有一般類型,則傳回 true。
|
訊息加密金鑰 ID
bool IsMessageEncryptionKeyId( uint32_t keyId, bool allowLogicalKeys )
判斷指定金鑰 ID 是否識別適用於 Weveve 訊息加密的金鑰。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
true。如果系統可以根據指定的金鑰加密 Weave 訊息,
|
相同金鑰或群組
bool IsSameKeyOrGroup( uint32_t keyId1, uint32_t keyId2 )
決定兩個金鑰 ID 是否可識別同一組金鑰,或者在輪替金鑰時,這組金鑰組 (與任何特定訓練週期無關) 無關。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
如果金鑰 ID 代表相同鍵,則傳回 true。
|
是工作階段金鑰
bool IsSessionKey( uint32_t keyId )
判斷指定的金鑰 ID 是否屬於工作階段類型。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果工作階段類型的 keyId,則為 true。
|
是有效的
bool IsValidKeyId( uint32_t keyId )
判斷金鑰 ID 是否具備有效的 (合法) 值。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果金鑰 ID 值有效,則傳回 true。
|
建立應用程式群組主要金鑰 ID
uint32_t MakeAppGroupMasterKeyId( uint8_t appGroupLocalNumber )
在建構應用程式群組主金鑰 ID 時,指定應用程式群組的本機編號。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
應用程式群組主金鑰 ID。
|
MakeAppIntermediateKeyId
uint32_t MakeAppIntermediateKeyId( uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey )
建構包含中組金鑰 ID 的應用程式中繼金鑰 ID。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
應用程式中繼金鑰 ID。
|
建立應用程式金鑰 ID
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。
|
建立金鑰
uint32_t MakeEpochKeyId( uint8_t epochKeyNumber )
建構應用程式群組的根金鑰 ID (將包含 Epoch 金鑰金鑰)。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
Epoch 金鑰 ID。
|
一般金鑰 ID
uint16_t MakeGeneralKeyId( uint16_t generalKeyNumber )
在建構一般金鑰 ID 時建構一般金鑰 ID。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
一般金鑰 ID。
|
建立根金鑰 ID
uint32_t MakeRootKeyId( uint8_t rootKeyNumber )
建構應用程式群組根金鑰 ID (指定根金鑰編號)。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
根金鑰 ID。
|
建立工作階段金鑰 ID
uint16_t MakeSessionKeyId( uint16_t sessionKeyNumber )
建構工作階段金鑰 ID 指定工作階段金鑰編號。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
工作階段金鑰 ID。
|
UpdateEpochKeyId
uint32_t UpdateEpochKeyId( uint32_t keyId, uint32_t epochKeyId )
使用新的訓練週期金鑰,更新應用程式群組金鑰 ID。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
應用程式金鑰 ID。
|
使用 CurrentEpochKey
bool UsesCurrentEpochKey( uint32_t keyId )
判斷指定的應用程式群組金鑰 ID 是否使用「目前」金鑰;Epoch 金鑰。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果 keyId 表示使用目前 popoch 金鑰,則值為 true。
|