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

Las funciones de esta clase se llaman para administrar claves de grupos 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 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)
Devuelve el ID de clave actual.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Obtén la hora UTC de la plataforma actual 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 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 según la hora actual del sistema 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 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 aplicación.
[in] keySalt
Un puntero a un búfer con el valor de sal de la clave de 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 aplicación.
[out] appKey
Un puntero para un búfer en el que se escribirá la clave derivada.
[in] keyBufSize
La longitud del búfer de claves proporcionado.
[in] keyLen
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 tiene éxito.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el tamaño del búfer de claves proporcionado no es suficiente.
WEAVE_ERROR_INVALID_KEY_ID
Se muestra si la clave solicitada tiene un ID de clave no 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 de la tienda 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 según la hora actual del sistema y el parámetro de hora de inicio de cada clave de época. Si el sistema no tiene una hora precisa y válida, se muestra el ID de la 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 la clave actual de la aplicación.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
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 de la tienda de claves de la plataforma

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

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

Detalles
Parámetros
[out] utcTime
Es una referencia al valor de tiempo.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
#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 hora 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 admitidos por esta función son: Fabric secret, clave raíz, clave de ciclo de entrenamiento, clave maestra de grupo y clave intermedia.

Detalles
Parámetros
[in] keyId
El ID de la clave del grupo.
[out] groupKey
Es una referencia al objeto de clave del grupo.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INVALID_KEY_ID
Si la clave solicitada tiene un ID de clave no 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 de la tienda 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
)

Devuelve 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 ciclo de entrenamiento 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