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

Esta es una clase abstracta.

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

La definición de la clase de almacén de claves del grupo de Weave.

Resumen

Se llama a las funciones de esta clase para administrar las claves de grupo de aplicaciones.

Herencia

Subclases conocidas directas:
  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

Funciones 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 la clave de la aplicación.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Muestra el ID de clave actual.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Obtén la hora actual de la plataforma en UTC en segundos.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Obtén la clave del grupo de aplicaciones.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Funciones protegidas

Init(void)
void
Inicializa los parámetros del almacén de claves del grupo local.
OnEpochKeysChange(void)
void
Devuelve el ID de clave actual.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Atributos protegidos

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Funciones públicas

Borrar

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 la clave de la aplicación.

Se admiten tres tipos de claves de aplicación: clave de aplicación actual, clave de aplicación rotativa y clave de aplicación estática. Cuando se solicita la clave de aplicación actual, la función encuentra y usa la clave de época actual en función de la hora del sistema actual y el parámetro de hora de inicio de cada clave de época.

Detalles
Parámetros
[in,out] keyId
Es una referencia al ID de clave solicitado. Cuando se solicita la clave de la aplicación actual, este campo se actualiza para reflejar el tipo nuevo (clave de aplicación rotativa) y el ID de clave de época real que se usó para generar la clave de la aplicación.
[in] keySalt
Un puntero a un búfer con el valor de la sal de la clave de la aplicación.
[in] saltLen
La longitud de la clave de aplicación con sal.
[in] keyDiversifier
Un puntero a un búfer con un valor de diversificador de claves de aplicación.
[in] diversifierLen
Es la longitud del diversificador de claves de la aplicación.
[out] appKey
Un puntero a un búfer en el que se escribirá la clave derivada.
[in] keyBufSize
Es la longitud del búfer de claves proporcionado.
[in] keyLen
Es la longitud del material de clave solicitado.
[out] appGroupGlobalId
El ID global del grupo de aplicaciones de la clave asociada.
Valores de retorno
WEAVE_NO_ERROR
Si se realiza correctamente.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el tamaño del búfer de claves proporcionado no es suficiente.
WEAVE_ERROR_INVALID_KEY_ID
Si el ID de clave solicitado no es válido.
WEAVE_ERROR_INVALID_ARGUMENT
Si el almacén de claves de la plataforma muestra parámetros de clave no válidos o el identificador de clave tiene un valor no válido.
other
Otros errores específicos de la plataforma que muestran las APIs del almacén de claves de la 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
)

Devuelve el ID de clave actual.

Encuentra la clave de época actual en función de la hora del sistema actual y el parámetro de hora de inicio de cada clave de época. Si el sistema no tiene una hora válida y precisa, se muestra el ID de clave de época que se usó por última vez.

Detalles
Parámetros
[in] keyId
El ID de la clave de aplicación.
[out] curKeyId
El ID de clave actual de la aplicación.
Valores de retorno
WEAVE_NO_ERROR
Si se realiza correctamente.
WEAVE_ERROR_INVALID_KEY_ID
Si el ID de clave de entrada tiene un valor no válido.
WEAVE_ERROR_KEY_NOT_FOUND
Si no se encuentran claves de época en el almacén de claves de la plataforma.
other
Otros errores específicos de la plataforma que muestran las APIs del almacén de claves de la plataforma

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Obtén la hora actual de la plataforma en UTC en segundos.

Detalles
Parámetros
[out] utcTime
Es una referencia al valor de tiempo.
Valores de retorno
WEAVE_NO_ERROR
Si se realiza correctamente.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Si la plataforma no admite un reloj en tiempo real.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Si el reloj en tiempo real del sistema no está sincronizado con una fuente de tiempo precisa.
other
Otros códigos de error de Weave o de la plataforma

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Obtén la clave del grupo de aplicaciones.

Esta función deriva o recupera claves de grupos de aplicaciones. Los tipos de claves que admite esta función son: secreto de Fabric, clave raíz, clave de época, clave maestra del grupo y clave intermedia.

Detalles
Parámetros
[in] keyId
El ID de clave del grupo.
[out] groupKey
Es una referencia al objeto de clave del grupo.
Valores de retorno
WEAVE_NO_ERROR
Si se realiza correctamente.
WEAVE_ERROR_INVALID_KEY_ID
Si el ID de clave solicitado no es válido.
WEAVE_ERROR_INVALID_ARGUMENT
Si el almacén de claves de la plataforma muestra parámetros de clave no válidos.
other
Otros errores específicos de la plataforma que muestran las APIs del almacén de claves de la plataforma

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Funciones protegidas

Init

void Init(
  void
)

Inicializa los parámetros del almacén de claves del grupo local.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Muestra el ID de clave actual.

Establece las variables de miembro asociadas con las claves de época en los valores predeterminados cuando se produce algún cambio (borrar o almacenar) en el conjunto de claves de época de la aplicación. Es responsabilidad de la subclase que implementa las funciones StoreGroupKey(), DeleteGroupKey() y DeleteGroupKeysOfAType() llamar a este método.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0