Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

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

これは抽象クラスです。

#include <src/lib/profiles/security/WeaveApplicationKeys.h>

Weave グループ キーストア ストアの定義。

まとめ

このクラスの関数は、アプリケーション グループ キーを管理するために呼び出されます。

継承

既知のサブクラス:
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Internal

プロテクト属性

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

パブリック関数

Clear(void)=0
virtual WEAVE_ERROR
DeleteGroupKey(uint32_t keyId)=0
virtual WEAVE_ERROR
DeleteGroupKeysOfAType(uint32_t keyType)=0
virtual WEAVE_ERROR
DeriveApplicationKey(uint32_t & appKeyId, const uint8_t *keySalt, uint8_t saltLen, const uint8_t *keyDiversifier, uint8_t diversifierLen, uint8_t *appKey, uint8_t keyBufSize, uint8_t keyLen, uint32_t & appGroupGlobalId)
アプリケーション キーを取得します。
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
現在のキー ID を返します。
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
現在のプラットフォームの UTC 時刻を秒単位で取得します。
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
アプリケーション グループ キーを取得します。
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

プロテクト関数

Init(void)
void
ローカル グループ キーストア パラメータを初期化する。
OnEpochKeysChange(void)
void
現在のキー ID を返します。
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

プロテクト属性

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime です。

uint32_t NextEpochKeyStartTime

パブリック関数

クリア

virtual WEAVE_ERROR Clear(
  void
)=0

グループキーを削除

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

DeleteGroupKeysOfAType

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

DeriveApplicationKey

WEAVE_ERROR DeriveApplicationKey(
  uint32_t & appKeyId,
  const uint8_t *keySalt,
  uint8_t saltLen,
  const uint8_t *keyDiversifier,
  uint8_t diversifierLen,
  uint8_t *appKey,
  uint8_t keyBufSize,
  uint8_t keyLen,
  uint32_t & appGroupGlobalId
)

アプリケーション キーを取得します。

現在のアプリケーション キー、ローテーションするアプリケーション キー、静的アプリケーション キーの 3 種類のアプリケーション キーがサポートされています。現在のアプリキーがリクエストされると、関数は、現在のシステム時刻と各エポックキーの開始時刻パラメータに基づいて、現在のエポックキーを見つけて使用します。

詳細
パラメータ
[in,out] keyId
リクエストされた鍵 ID への参照。現在のアプリケーション キーがリクエストされると、このフィールドが更新され、新しいタイプ(ローテーションされるアプリケーション キー)と、アプリケーション キーの生成に使用された実際のエポックキー ID が反映されます。
[in] keySalt
アプリケーション キーのソルト値を持つバッファへのポインタ。
[in] saltLen
アプリケーション キーソルトの長さ。
[in] keyDiversifier
アプリケーション キーの分散値を持つバッファへのポインタ。
[in] diversifierLen
アプリケーション キーを多様化した長さ。
[out] appKey
派生キーが書き込まれるバッファへのポインタ。
[in] keyBufSize
指定されたキーバッファの長さ。
[in] keyLen
リクエストされた鍵マテリアルの長さ。
[out] appGroupGlobalId
関連するキーのアプリケーション グループ グローバル ID。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_BUFFER_TOO_SMALL
指定されたキーバッファ サイズが十分でない場合。
WEAVE_ERROR_INVALID_KEY_ID
リクエストされたキーに無効なキー ID がある場合。
WEAVE_ERROR_INVALID_ARGUMENT
プラットフォーム キーストアが無効なキー パラメータを返した場合や、キー識別子に無効な値がある場合。
other
プラットフォーム キーストア API から返される、その他のプラットフォーム固有のエラー。

EnumerateGroupKeys

virtual WEAVE_ERROR EnumerateGroupKeys(
  uint32_t keyType,
  uint32_t *keyIds,
  uint8_t keyIdsArraySize,
  uint8_t & keyCount
)=0

GetCurrentAppKeyId

WEAVE_ERROR GetCurrentAppKeyId(
  uint32_t keyId,
  uint32_t & curKeyId
)

現在のキー ID を返します。

現在のシステム時刻と各エポックキーの開始時刻パラメータに基づいて、現在のエポックキーを検索します。システムに有効かつ正確な時刻が設定されていない場合は、最後に使用されたエポック ID が返されます。

詳細
パラメータ
[in] keyId
アプリケーション キー ID。
[out] curKeyId
アプリケーションの現在のキー ID。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_INVALID_KEY_ID
入力キー ID に無効な値があった場合。
WEAVE_ERROR_KEY_NOT_FOUND
エポックキーがプラットフォーム キーストアに見つからない場合。
other
プラットフォーム キーストア API から返される、その他のプラットフォーム固有のエラー。

GetCurrentUTCTime(英語)

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

現在のプラットフォームの UTC 時刻を秒単位で取得します。

詳細
パラメータ
[out] utcTime
時間値への参照。
戻り値
WEAVE_NO_ERROR
成功
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
プラットフォームがリアルタイム クロックをサポートしていない場合。
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
システムのリアルタイム クロックが正確なタイムソースに同期されていない場合。
other
その他の Weave またはプラットフォームのエラーコード。

グループキー

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

アプリケーション グループ キーを取得します。

この関数は、アプリケーション グループ キーを取得または取得します。この関数でサポートされる鍵のタイプは、ファブリック シークレット、ルートキー、エポックキー、グループ マスターキー、中間キーです。

詳細
パラメータ
[in] keyId
グループキー ID。
[out] groupKey
グループキー オブジェクトへの参照。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_INVALID_KEY_ID
リクエストされたキーに無効なキー ID がある場合。
WEAVE_ERROR_INVALID_ARGUMENT
プラットフォーム キーストアが無効なキー パラメータを返した場合。
other
プラットフォーム キーストア API から返される、その他のプラットフォーム固有のエラー。

グループキーの取得

virtual WEAVE_ERROR RetrieveGroupKey(
  uint32_t keyId,
  WeaveGroupKey & key
)=0

ストアグループ キー

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

プロテクト関数

init

void Init(
  void
)

ローカル グループ キーストア パラメータを初期化する。

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

現在のキー ID を返します。

エポックキーに関連付けられたメンバー変数を、アプリのエポックキーのセットに変更(削除または保存)したときに、デフォルト値に設定します。このメソッドを呼び出すのは、StoreGroupKey()、DeleteGroupKey()、DeleteGroupKeysOfAType() 関数を実装するサブクラスの役割です。

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0