nl::Weave::WeaveKeyId

#include <src/lib/core/WeaveKeyIds.h>

Weave 金鑰 ID 的定義。

摘要

這個類別包含金鑰類型、金鑰旗標、金鑰 ID 欄位定義和 API 函式。

公開類型

@52{
  kType_None = 0x00000000,
  kType_General = 0x00001000,
  kType_Session = 0x00002000,
  kType_AppStaticKey = 0x00004000,
  kType_AppRotatingKey = kType_AppStaticKey | kTypeModifier_IncorporatesEpochKey,
  kType_AppRootKey = 0x00010000,
  kType_AppEpochKey = 0x00020000 | kTypeModifier_IncorporatesEpochKey,
  kType_AppGroupMasterKey = 0x00030000,
  kType_AppIntermediateKey = kType_AppRootKey | kTypeModifier_IncorporatesEpochKey,
  kNone = kType_None | 0x0000,
  kFabricSecret = kType_General | 0x0001,
  kFabricRootKey = kType_AppRootKey | (0 << kShift_RootKeyNumber),
  kClientRootKey = kType_AppRootKey | (1 << kShift_RootKeyNumber),
  kServiceRootKey = kType_AppRootKey | (2 << kShift_RootKeyNumber),
  kKeyNumber_Max = kMask_KeyNumber
}
列舉
公開 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 金鑰 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 是否為應用程式的 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
判斷金鑰 ID 是否具備有效的 (legal) 值。
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
根據指定 Epoch 金鑰編號建構應用程式群組根金鑰 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
以新的 Epoch 金鑰號碼更新應用程式群組金鑰 ID。
UsesCurrentEpochKey(uint32_t keyId)
bool
判斷指定的應用程式群組金鑰 ID 是否使用「current」Epoch 時間。

公開類型

52 次

 @52

公開 Weave 金鑰 ID 欄位、旗標和類型。

屬性
kClientRootKey

用戶端根金鑰 ID。

kFabricRootKey

Fabric 根金鑰 ID。

kFabricSecret

Weave 布料密鑰 ID。

kKeyNumber_Max

鍵 ID 子欄位的最大值。

kNone

改造全域金鑰 ID。

未指定 Weave 金鑰 ID。

kServiceRootKey

服務根金鑰 ID。

kType_AppEpochKey

應用程式群組 Epoch 金鑰類型。

kType_AppGroupMasterKey

應用程式群組主金鑰類型。

kType_AppIntermediateKey

應用程式群組中繼金鑰類型。

kType_AppRootKey

改造金鑰類型 (非 Weave 郵件加密類型除外)。

,瞭解如何調查及移除這項存取權。

kType_AppRotatingKey

應用程式輪替金鑰類型。

kType_AppStaticKey

應用程式靜態金鑰類型。

kType_General

一般金鑰類型。

kType_None

用於 Weave 郵件加密的編織金鑰類型。

kType_Session

工作階段金鑰類型。

公開的靜態函式

ConvertToCurrentAppKeyId

uint32_t ConvertToCurrentAppKeyId(
  uint32_t keyId
)

將應用程式群組金鑰 ID 轉換為應用程式目前的金鑰 ID。

詳細資料
參數
[in] keyId
應用程式金鑰 ID。
傳回
目前的金鑰 ID。

ConvertToStaticAppKeyId

uint32_t ConvertToStaticAppKeyId(
  uint32_t keyId
)

將應用程式金鑰 ID 轉換為應用程式靜態金鑰 ID。

詳細資料
參數
[in] keyId
應用程式金鑰 ID。
傳回
應用程式靜態金鑰 ID

DescribeKey

const char * DescribeKey(
  uint32_t keyId
)

使用描述性字串解碼 Weave 金鑰 ID。

詳細資料
參數
[in] keyId
用於解碼及傳回描述性字串的編織金鑰 ID。
傳回
指向描述指定金鑰 ID 的 NULL 結尾字串的指標。

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

取得用於取得指定應用程式金鑰的應用程式群組本機號碼。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
應用程式群組本機號碼

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

取得用於取得指定應用程式金鑰的應用程式群組主金鑰 ID。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
應用程式群組主金鑰 ID。

GetEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

取得用於擷取指定應用程式金鑰的應用程式群組 Epoch 金鑰 ID。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
Epoch 金鑰 ID。

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

取得用於取得指定應用程式金鑰的應用程式群組 Epoch 金鑰編號。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
Epoch 金鑰編號。

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

取得用於取得指定應用程式金鑰的應用程式群組根金鑰 ID。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
根金鑰 ID。

GetRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

取得用於取得指定應用程式金鑰的應用程式群組根金鑰號碼。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
根金鑰編號。

GetType

uint32_t GetType(
  uint32_t keyId
)

取得指定金鑰 ID 的 Weave 金鑰類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
金鑰 ID 的類型

IncorporatesAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

判斷指定的應用程式群組金鑰 ID 是否包含群組主金鑰。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
如果 keyId 包含群組主鍵,則傳回 true。

IncorporatesEpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

判斷指定的應用程式群組金鑰 ID 是否包含 Epoch 金鑰。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
如果 keyId 包含 Epoch 金鑰,則傳回 true。

IncorporatesRootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

判斷指定的應用程式群組金鑰 ID 是否包含根金鑰。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
如果 keyId 包含根金鑰,則傳回 true。

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為應用程式的 Epoch 金鑰類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果應用程式 Epoch 金鑰類型的 keyId 為 true,則傳回 true。

IsAppGroupKey

bool IsAppGroupKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否屬於應用程式群組金鑰類型 (靜態或輪替)。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果 keyId 是輪替或靜態金鑰類型,傳回 true。

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為應用程式群組主金鑰類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果應用程式群組主金鑰類型的 keyId 為 true,則傳回 true。

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為應用程式根金鑰類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果應用程式根金鑰類型的 keyId 為 true,則傳回 true。

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為應用程式旋轉類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果應用程式的 keyId 屬於旋轉型別,則傳回 true。

IsAppStaticKey

bool IsAppStaticKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為應用程式靜態類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果應用程式靜態類型的 keyId,傳回 true。

IsGeneralKey

bool IsGeneralKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為一般類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果 keyId 具有「General」類型,則傳回 true。

IsMessageEncryptionKeyId

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

判斷特定金鑰 ID 是否可識別適用於 Weave 訊息加密的金鑰。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
[in] allowLogicalKeys
指定是否應將邏輯金鑰 ID (例如「目前」輪替金鑰) 視為適合用於加密訊息。
傳回
true。

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

判斷兩個金鑰 ID 是否識別相同的鍵;如果是輪替金鑰,則代表同一組金鑰群組,且不受任何特定訓練週期影響。

詳細資料
參數
[in] keyId1
第一個要測試的金鑰 ID。
[in] keyId2
要測試的第二個金鑰 ID。
傳回
如果金鑰 ID 代表同一個鍵,則為「是」。

IsSessionKey

bool IsSessionKey(
  uint32_t keyId
)

判斷指定的金鑰 ID 是否為工作階段類型。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果工作階段類型的 keyId,傳回 true。

IsValidKeyId

bool IsValidKeyId(
  uint32_t keyId
)

判斷金鑰 ID 是否具備有效的 (legal) 值。

詳細資料
參數
[in] keyId
Weave 金鑰 ID。
傳回
如果鍵 ID 值有效,則為 true。

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

根據指定應用程式群組本機編號建構應用程式群組主金鑰 ID。

詳細資料
參數
[in] appGroupLocalNumber
應用程式群組當地號碼。
傳回
應用程式群組主金鑰 ID。

MakeAppIntermediateKeyId

uint32_t MakeAppIntermediateKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  bool useCurrentEpochKey
)

根據構成的金鑰 ID 建構應用程式中繼金鑰 ID。

詳細資料
參數
[in] rootKeyId
用於衍生應用程式中繼金鑰的根金鑰 ID。
[in] epochKeyId
用於衍生應用程式中繼金鑰的 Epoch 金鑰 ID。
[in] useCurrentEpochKey
布林值標記,指出是否應使用「current」衍生金鑰Epoch 時間。
傳回
應用程式中繼金鑰 ID。

MakeAppKeyId

uint32_t MakeAppKeyId(
  uint32_t keyType,
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

根據構成鍵 ID 和其他資訊建構應用程式群組金鑰 ID。

詳細資料
參數
[in] keyType
衍生的應用程式群組金鑰類型。
[in] rootKeyId
導出應用程式群組金鑰的根金鑰 ID。
[in] epochKeyId
用來衍生應用程式群組金鑰的 Epoch 金鑰 ID。
[in] appGroupMasterKeyId
用來導出應用程式群組金鑰的應用程式群組主金鑰 ID。
[in] useCurrentEpochKey
布林值標記,指出是否應使用「current」衍生金鑰Epoch 時間。
傳回
應用程式群組金鑰 ID。

MakeAppRotatingKeyId

uint32_t MakeAppRotatingKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

在特定鍵 ID 和其他資訊中建構應用程式輪替金鑰 ID。

詳細資料
參數
[in] rootKeyId
用於導出應用程式輪替金鑰的根金鑰 ID。
[in] epochKeyId
用來導出應用程式輪替金鑰的 Epoch 金鑰 ID。
[in] appGroupMasterKeyId
用來導出應用程式輪替金鑰的應用程式群組主金鑰 ID。
[in] useCurrentEpochKey
布林值標記,指出是否應使用「current」衍生金鑰Epoch 時間。
傳回
應用程式輪替金鑰 ID

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

根據構成的金鑰 ID 建構應用程式靜態金鑰 ID。

詳細資料
參數
[in] rootKeyId
用於導出應用程式靜態金鑰的根金鑰 ID。
[in] appGroupMasterKeyId
用來導出應用程式靜態金鑰的應用程式群組主金鑰 ID。
傳回
應用程式靜態金鑰 ID

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

根據 Epoch 金鑰編號建構應用程式群組根金鑰 ID。

詳細資料
參數
[in] epochKeyNumber
Epoch 金鑰編號。
傳回
Epoch 金鑰 ID。

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

以一般金鑰編號建構一般金鑰 ID。

詳細資料
參數
[in] generalKeyNumber
一般金鑰號碼。
傳回
一般金鑰 ID

MakeRootKeyId

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

根據指定的根金鑰編號建構應用程式群組根金鑰 ID。

詳細資料
參數
[in] rootKeyNumber
根金鑰編號。
傳回
根金鑰 ID。

MakeSessionKeyId

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

根據指定的工作階段金鑰編號建構工作階段金鑰 ID。

詳細資料
參數
[in] sessionKeyNumber
工作階段金鑰編號。
傳回
工作階段金鑰 ID

UpdateEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

以新的 Epoch 金鑰號碼更新應用程式群組金鑰 ID。

詳細資料
參數
[in] keyId
應用程式金鑰 ID。
[in] epochKeyId
Epoch 金鑰 ID,用於建構更新後的應用程式金鑰 ID。
傳回
應用程式金鑰 ID。

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

判斷指定的應用程式群組金鑰 ID 是否使用「current」Epoch 時間。

詳細資料
參數
[in] keyId
Weave 應用程式群組金鑰 ID。
傳回
如果 keyId 表示使用目前 Epoch 金鑰的使用情形,則為 true。