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::GroupKeyStoreImpl
nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore
受保護的屬性 |
|
---|---|
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
取得目前的平台 (世界標準時間) 值 (以秒為單位)。
|
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
DeleteGroupKey
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 )
產生應用程式金鑰。
系統支援三種應用程式金鑰:目前的應用程式金鑰、輪替應用程式金鑰和靜態應用程式金鑰。當要求目前的應用程式金鑰時,該函式會根據目前系統時間和每個訓練週期鍵的開始時間參數,找出並使用目前的 Epoch 時間鍵。
詳細資料 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||||
傳回值 |
|
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。
根據目前的系統時間和每個 Epoch 時間鍵的開始時間參數找出目前的 Epoch 時間鍵。如果系統沒有有效且正確的時間,系統會傳回上次使用的 Epoch 時間金鑰 ID。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
GetCurrentUTCTime
virtual WEAVE_ERROR GetCurrentUTCTime( uint32_t & utcTime )
取得目前的平台 (世界標準時間) 值 (以秒為單位)。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
GetGroupKey
WEAVE_ERROR GetGroupKey( uint32_t keyId, WeaveGroupKey & groupKey )
取得應用程式群組金鑰。
這個函式會衍生或擷取應用程式群組金鑰。這個函式支援的金鑰類型如下:布料密鑰、根金鑰、Epoch 金鑰、群組主金鑰和中繼金鑰。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
RetrieveGroupKey
virtual WEAVE_ERROR RetrieveGroupKey( uint32_t keyId, WeaveGroupKey & key )=0
StoreGroupKey
virtual WEAVE_ERROR StoreGroupKey( const WeaveGroupKey & key )=0
受保護的函式
Init
void Init( void )
初始化本機群組金鑰儲存庫參數。
OnEpochKeysChange
void OnEpochKeysChange( void )
傳回目前的金鑰 ID。
在應用程式 Epoch 金鑰集發生任何變更 (刪除或儲存) 時,將與 Epoch 金鑰相關聯的成員變數設為預設值。實作 StoreGroupKey()、DeleteGroupKey() 和 DeleteGroupKeysOfAType() 函式的子類別必須呼叫這個方法。