nl::Weave::WeaveKeyId

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

Weave Key 識別子の定義。

概要

このクラスには、キーの型、キーフラグ、キー 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
}
enum
公開 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
指定されたアプリケーション キーの取得に使用されたアプリケーション グループのエポックキー 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 にエポックキーが組み込まれているかどうかを確認します。
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 で、Weave メッセージの暗号化に適した鍵を識別できるかどうかを判断します。
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
bool
2 つの鍵 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 を構築。
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 が「current」を使用しているかどうかを判断しますエポックキーです。

公開タイプ

@52

 @52

公開 Weave 鍵 ID のフィールド、フラグ、型。

プロパティ
kClientRootKey

クライアントのルート鍵 ID。

kFabricRootKey

ファブリック ルート鍵 ID。

kFabricSecret

Weave ファブリックのシークレット 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 に変換します。

詳細
パラメータ
[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 キーの識別子をわかりやすい文字列でデコードする。

詳細
パラメータ
[in] keyId
デコードしてわかりやすい文字列を返すキー ID を織り交ぜます。
戻り値
指定された鍵 ID を表す、NULL 終端の文字列へのポインタ。

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

指定されたアプリケーション キーの取得に使用されたアプリケーション グループのローカル番号を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
アプリケーション グループの地域の電話番号。

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

指定されたアプリケーション鍵を導出するために使用されたアプリケーション グループのマスター鍵 ID を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
アプリケーション グループのマスター鍵 ID。

GetEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

指定されたアプリケーション キーの取得に使用されたアプリケーション グループのエポックキー ID を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
エポック鍵 ID です。

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

指定されたアプリケーション キーを導出するために使用されたアプリケーション グループのエポックキー番号を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
エポックキー番号です。

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

指定されたアプリケーション キーを導出するために使用されたアプリケーション グループのルートキー ID を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
ルートキー ID。

GetRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

指定されたアプリケーション キーを導出するために使用されたアプリケーション グループのルートキー番号を取得します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
ルートキー番号。

GetType

uint32_t GetType(
  uint32_t keyId
)

指定した鍵 ID の Weave 鍵タイプを取得します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
鍵 ID の型。

IncorporatesAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

指定されたアプリケーション グループの鍵 ID にグループ マスター鍵が組み込まれているかどうかを確認します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
keyId にグループ マスター鍵が組み込まれている場合は true。

IncorporatesEpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

指定されたアプリケーション グループの鍵 ID にエポックキーが組み込まれているかどうかを確認します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
keyId にエポックキーが含まれている場合は true。

IncorporatesRootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

指定されたアプリケーション グループのキー ID にルートキーが組み込まれているかどうかを確認します。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
keyId にルートキーが組み込まれている場合は true。

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

指定された鍵 ID がアプリのエポック鍵タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
アプリ エポック キータイプの keyId の場合は true。

IsAppGroupKey

bool IsAppGroupKey(
  uint32_t keyId
)

指定された鍵 ID がアプリケーション グループ鍵タイプ(静的またはローテーション)のいずれかに属しているかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
keyId がローテーション鍵タイプまたは静的鍵タイプの場合は true を返します。

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

指定された鍵 ID がアプリケーション グループのマスター鍵タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
アプリケーション グループのマスター鍵タイプの keyId の場合は true。

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

指定された鍵 ID がアプリケーションのルート鍵タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
アプリケーションのルート鍵タイプの keyId の場合は true。

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

指定された鍵 ID がアプリケーション ローテーション タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
アプリケーション ローテーション タイプの keyId の場合は true。

IsAppStaticKey

bool IsAppStaticKey(
  uint32_t keyId
)

指定された鍵 ID がアプリケーションの静的タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
アプリケーションの静的型の keyId の場合は true。

IsGeneralKey

bool IsGeneralKey(
  uint32_t keyId
)

指定された鍵 ID が一般的なタイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
keyId が General タイプの場合は true。

IsMessageEncryptionKeyId

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

指定した鍵 ID で、Weave メッセージの暗号化に適した鍵を識別できるかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵 ID。
[in] allowLogicalKeys
論理キー ID(「現在の」ローテーション鍵など)をメッセージの暗号化に適しているとみなすかどうかを指定します。
戻り値
識別された鍵を使用して Weave メッセージを暗号化できる場合は true。

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

2 つの鍵 ID が同じ鍵を識別するのか、鍵をローテーションする場合は特定のエポックに関係なく同じ鍵のグループを識別するのかを指定します。

詳細
パラメータ
[in] keyId1
テストする最初の鍵 ID。
[in] keyId2
テストする 2 番目の鍵 ID。
戻り値
キー ID が同じキーを表す場合は true。

IsSessionKey

bool IsSessionKey(
  uint32_t keyId
)

指定された鍵 ID がセッション タイプかどうかを判断します。

詳細
パラメータ
[in] keyId
Weave 鍵識別子。
戻り値
セッション タイプの keyId の場合は true を返します。

IsValidKeyId

bool IsValidKeyId(
  uint32_t keyId
)

鍵 ID に有効(正当な)値があるかどうかを判断する。

詳細
パラメータ
[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
アプリケーション中間鍵を導出するために使用されるエポック鍵 ID。
[in] useCurrentEpochKey
キーを「current」を使用して導出する必要があるかどうかを示すブール値のフラグエポックキーです。
戻り値
アプリケーション中間鍵 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
アプリケーション グループ鍵を導出するために使用されるエポック鍵 ID。
[in] appGroupMasterKeyId
アプリケーション グループ鍵を導出するために使用されるアプリケーション グループのマスター鍵 ID。
[in] useCurrentEpochKey
キーを「current」を使用して導出する必要があるかどうかを示すブール値のフラグエポックキーです。
戻り値
あります。

MakeAppRotatingKeyId

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

構成キー ID とその他の情報をもとに、鍵 ID をローテーションするアプリケーションを作成します。

詳細
パラメータ
[in] rootKeyId
アプリケーションのローテーション鍵を導出するために使用されるルート鍵 ID。
[in] epochKeyId
アプリケーションのローテーション鍵を導出するために使用されるエポック鍵 ID。
[in] appGroupMasterKeyId
アプリケーションのローテーション鍵を導出するために使用されるアプリケーション グループのマスター鍵 ID。
[in] useCurrentEpochKey
キーを「current」を使用して導出する必要があるかどうかを示すブール値のフラグエポックキーです。
戻り値
ローテーション鍵の 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
)

指定されたエポックキー番号に基づいてアプリケーション グループのルートキー ID を構築。

詳細
パラメータ
[in] epochKeyNumber
エポックキー番号。
戻り値
エポック鍵 ID です。

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

汎用キー番号に基づいて汎用キー ID を作成します。

詳細
パラメータ
[in] generalKeyNumber
汎用キー番号。
戻り値
使用します。

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
)

アプリケーション グループのキー ID を新しいエポックキー番号で更新します。

詳細
パラメータ
[in] keyId
アプリケーション キー ID。
[in] epochKeyId
エポックキー ID。更新されたアプリケーション キー ID の構築に使用されます。
戻り値
あります。

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

指定したアプリケーション グループ鍵 ID が「current」を使用しているかどうかを判断しますエポックキーです。

詳細
パラメータ
[in] keyId
Weave アプリケーション グループ鍵識別子。
戻り値
keyId が現在のエポックキーの使用状況を示している場合は true。