O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Tecer:: Perfis :: Segurança:: AppKeys :: GroupKeyStoreBase

Esta é uma classe abstrata.

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

A definição da classe de armazenamento de chaves do grupo Weave.

Resumo

As funções nesta classe são chamadas para gerenciar as chaves do grupo de aplicativos.

Herança

Subclasses diretamente conhecidas:
  nl :: Weave :: DeviceLayer :: Internal :: GroupKeyStoreImpl
  nl :: Weave :: DeviceLayer :: Internal :: GroupKeyStoreImpl
  nl :: Weave :: DeviceLayer :: Internal :: GroupKeyStoreImpl
  nl :: Weave :: Profiles :: Security :: AppKeys :: DummyGroupKeyStore

Atributos protegidos

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Funções públicas

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)
Deriva a chave do aplicativo.
EnumerateGroupKeys (uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId (uint32_t keyId, uint32_t & curKeyId)
Retorna o ID da chave atual.
GetCurrentUTCTime (uint32_t & utcTime)
virtual WEAVE_ERROR
Obtenha a hora UTC da plataforma atual em segundos.
GetGroupKey (uint32_t keyId, WeaveGroupKey & groupKey)
Obtenha a chave do grupo de aplicativos.
RetrieveGroupKey (uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey (const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Funções protegidas

Init (void)
void
Inicialize os parâmetros de armazenamento de chaves do grupo local.
OnEpochKeysChange (void)
void
Retorna o ID da chave atual.
RetrieveLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR

Atributos protegidos

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Funções públicas

Claro

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
)

Deriva a chave do aplicativo.

Três tipos de chaves de aplicativo são suportados: chave de aplicativo atual, chave de aplicativo rotativa e chave de aplicativo estática. Quando a chave de aplicativo atual é solicitada, a função encontra e usa a chave de época atual com base na hora do sistema atual e o parâmetro de hora de início de cada chave de época.

Detalhes
Parâmetros
[in,out] keyId
Uma referência ao ID da chave solicitada. Quando a chave do aplicativo atual é solicitada, este campo é atualizado para refletir o novo tipo (chave rotativa do aplicativo) e o ID da chave de época real que foi usado para gerar a chave do aplicativo.
[in] keySalt
Um ponteiro para um buffer com o valor de sal da chave do aplicativo.
[in] saltLen
O comprimento do sal da chave do aplicativo.
[in] keyDiversifier
Um ponteiro para um buffer com o valor do diversificador de chave do aplicativo.
[in] diversifierLen
O comprimento do diversificador de chave do aplicativo.
[out] appKey
Um ponteiro para um buffer onde a chave derivada será gravada.
[in] keyBufSize
O comprimento do buffer de chave fornecido.
[in] keyLen
O comprimento do material da chave solicitado.
[out] appGroupGlobalId
O ID global do grupo de aplicativos da chave associada.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o tamanho do buffer de chave fornecido não for suficiente.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID de chave inválido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o armazenamento de chaves da plataforma retornar parâmetros de chave inválidos ou o identificador de chave tiver um valor inválido.
other
Outros erros específicos da plataforma retornados pelas APIs de armazenamento de chaves da plataforma.

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
)

Retorna o ID da chave atual.

Encontra a chave de época atual com base na hora do sistema atual e o parâmetro de hora de início de cada chave de época. Se o sistema não tiver uma hora válida e precisa, a ID da chave da última época usada é retornada.

Detalhes
Parâmetros
[in] keyId
O ID da chave do aplicativo.
[out] curKeyId
O ID da chave atual do aplicativo.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_KEY_ID
Se o ID da chave de entrada tiver um valor inválido.
WEAVE_ERROR_KEY_NOT_FOUND
Se as chaves de época não forem encontradas no armazenamento de chaves da plataforma.
other
Outros erros específicos da plataforma retornados pelas APIs de armazenamento de chaves da plataforma.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Obtenha a hora UTC da plataforma atual em segundos.

Detalhes
Parâmetros
[out] utcTime
Uma referência ao valor do tempo.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se a plataforma não suportar um relógio em tempo real.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se o relógio de tempo real do sistema não estiver sincronizado com uma fonte de tempo precisa.
other
Outros códigos de erro de Weave ou plataforma.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Obtenha a chave do grupo de aplicativos.

Esta função deriva ou recupera chaves do grupo de aplicativos. Os tipos de chave suportados por esta função são: segredo de tecido, chave raiz, chave de época, chave mestra de grupo e chave intermediária.

Detalhes
Parâmetros
[in] keyId
O ID da chave do grupo.
[out] groupKey
Uma referência ao objeto de chave de grupo.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID de chave inválido.
WEAVE_ERROR_INVALID_ARGUMENT
Se o armazenamento de chaves da plataforma retornar parâmetros de chave inválidos.
other
Outros erros específicos da plataforma retornados pelas APIs de armazenamento de chaves da plataforma.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Funções protegidas

Iniciar

void Init(
  void
)

Inicialize os parâmetros de armazenamento de chaves do grupo local.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Retorna o ID da chave atual.

Define as variáveis ​​de membro associadas às chaves de época para os valores padrão quando qualquer alteração (exclusão ou armazenamento) ocorre no conjunto de chaves de época do aplicativo. É responsabilidade da subclasse que implementa as funções StoreGroupKey (), DeleteGroupKey () e DeleteGroupKeysOfAType () chamar esse método.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0