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
获取当前平台的世界协调时间 (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
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 )
派生应用密钥。
支持三种类型的应用密钥:当前应用密钥、轮替应用密钥和静态应用密钥。当请求当前应用键时,函数会根据当前系统时间和每个周期键的开始时间参数查找并使用当前周期键。
详细信息 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||
返回值 |
|
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。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
GetCurrentUTCTime
virtual WEAVE_ERROR GetCurrentUTCTime( uint32_t & utcTime )
获取当前平台世界协调时间 (UTC),以秒为单位。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
GetGroupKey
WEAVE_ERROR GetGroupKey( uint32_t keyId, WeaveGroupKey & groupKey )
获取应用组密钥。
此函数用于派生或检索应用组密钥。此函数支持的密钥类型包括:Fabric 密钥、根密钥、纪元密钥、群组主密钥和中间密钥。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
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。
当应用的一系列纪元键发生任何更改(删除或存储)时,将与纪元键关联的成员变量设为默认值。实现 StoreGroupKey()、DeleteGroupKey() 和 DeleteGroupKeysOfAType() 函数的子类有责任调用此方法。