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

Esta es una clase abstracta.

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

Es 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 grupo de aplicaciones.

Herencia

Subclases directas conocidas:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Interno::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Inter primera:GroupStore1{/nl:Weave1:nl::Weave::DeviceLayer::Internal::GroupKeyStoreImplnl::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 la clave actual.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Obtén la hora UTC actual de la plataforma 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
Muestra el ID de la 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: la actual, la clave de aplicación rotativa y la clave de aplicación estática. Cuando se solicita la clave de la 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 ciclo de entrenamiento.

Detalles
Parámetros
[in,out] keyId
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 la 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 la aplicación.
[in] saltLen
Es la longitud de la sal de la clave de aplicación.
[in] keyDiversifier
Un puntero a un búfer con valor de diversificación de clave de aplicación.
[in] diversifierLen
La longitud del diversificador de claves de la aplicación.
[out] appKey
Un puntero para un búfer en el que se escribirá la clave derivada.
[in] keyBufSize
Es 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 que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el tamaño del búfer de claves proporcionado no es suficiente.
WEAVE_ERROR_INVALID_KEY_ID
Si la clave solicitada tiene un ID de clave no válido.
WEAVE_ERROR_INVALID_ARGUMENT
Si la tienda 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
)

Muestra el ID de la 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 válida y precisa, se mostrará el ID de la clave de época que se usó por última vez.

Detalles
Parámetros
[in] keyId
El ID de la clave de la aplicación.
[out] curKeyId
El ID de la clave actual de la aplicación.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_INVALID_KEY_ID
Si el ID de clave de entrada tenía un valor no válido.
WEAVE_ERROR_KEY_NOT_FOUND
Si las claves de época no se encuentran 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 UTC actual de la plataforma en segundos.

Detalles
Parámetros
[out] utcTime
Es una referencia al valor del tiempo.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
#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 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 los siguientes: secreto de estructura, 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 la clave del grupo.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
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 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 la clave actual.

Establece las variables de miembro asociadas con las claves de época en los valores predeterminados cuando se produce algún cambio (eliminación o almacenamiento) 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