нл:: Переплетение:: Профили:: Безопасность:: AppKeys:: ГруппаKeyStoreBase

Это абстрактный класс.

#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)
Возвращает текущий идентификатор ключа.
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
Возвращает текущий идентификатор ключа.
RetrieveLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR

Защищенные атрибуты

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

СледующаяEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Общественные функции

Прозрачный

virtual WEAVE_ERROR Clear(
  void
)=0

Удалитьгрупповой ключ

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

Удалитьгруппокэйсофатипе

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

ДеривеApplicationKey

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
)

Получает ключ приложения.

Поддерживаются три типа ключей приложения: текущий ключ приложения, вращающийся ключ приложения и статический ключ приложения. Когда запрашивается текущий ключ приложения, функция находит и использует текущий ключ эпохи на основе текущего системного времени и параметра времени начала каждого ключа эпохи.

Подробности
Параметры
[in,out] keyId
Ссылка на запрошенный идентификатор ключа. Когда запрашивается текущий ключ приложения, это поле обновляется, чтобы отразить новый тип (чередующийся ключ приложения) и фактический идентификатор ключа эпохи, который использовался для создания ключа приложения.
[in] keySalt
Указатель на буфер со значением соли ключа приложения.
[in] saltLen
Длина соли ключа приложения.
[in] keyDiversifier
Указатель на буфер со значением диверсификатора ключа приложения.
[in] diversifierLen
Длина диверсификатора ключа приложения.
[out] appKey
Указатель на буфер, куда будет записан производный ключ.
[in] keyBufSize
Длина предоставленного ключевого буфера.
[in] keyLen
Длина запрошенного ключевого материала.
[out] appGroupGlobalId
Глобальный идентификатор группы приложений связанного ключа.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
WEAVE_ERROR_BUFFER_TOO_SMALL
Если предоставленный размер буфера ключей недостаточен.
WEAVE_ERROR_INVALID_KEY_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
)

Возвращает текущий идентификатор ключа.

Находит текущий ключ эпохи на основе текущего системного времени и параметра времени начала каждого ключа эпохи. Если система не имеет действительного и точного времени, возвращается идентификатор ключа последней использованной эпохи.

Подробности
Параметры
[in] keyId
Идентификатор ключа приложения.
[out] curKeyId
Текущий идентификатор ключа приложения.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
WEAVE_ERROR_INVALID_KEY_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 или платформы.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Получите ключ группы приложений.

Эта функция извлекает или извлекает ключи группы приложений. Типы ключей, поддерживаемые этой функцией: секрет структуры, корневой ключ, ключ эпохи, главный ключ группы и промежуточный ключ.

Подробности
Параметры
[in] keyId
Идентификатор группового ключа.
[out] groupKey
Ссылка на объект группового ключа.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
WEAVE_ERROR_INVALID_KEY_ID
Если запрошенный ключ имеет неверный идентификатор ключа.
WEAVE_ERROR_INVALID_ARGUMENT
Если хранилище ключей платформы возвращает неверные параметры ключа.
other
Другие ошибки, специфичные для платформы, возвращаемые API хранилища ключей платформы.

Получить групповой ключ

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Защищенные функции

Инициализировать

void Init(
  void
)

Инициализируйте параметры хранилища ключей локальной группы.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Возвращает текущий идентификатор ключа.

Устанавливает переменные-члены, связанные с ключами эпох, в значения по умолчанию, когда любое изменение (удаление или сохранение) происходит в наборе ключей эпох приложения. Ответственность за вызов этого метода лежит на подклассе, который реализует функции StoreGroupKey(), DeleteGroupKey() и DeleteGroupKeysOfAType().

ПолучитьLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0