En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

nl :: Tejido:: Perfiles: Seguridad:: AppKeys :: GroupKeyStoreBase

Esto es una clase abstracta.

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

La definición de la clase de tienda de claves del grupo 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 :: Perfiles :: Seguridad :: AppKeys :: DummyGroupKeyStore

Atributos protegidos

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Funciones publicas

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)
Devuelve el ID de clave actual.
GetCurrentUTCTime (uint32_t & utcTime)
virtual WEAVE_ERROR
Obtenga la hora UTC de la plataforma actual en segundos.
GetGroupKey (uint32_t keyId, WeaveGroupKey & groupKey)
Obtenga 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
Inicialice 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 publicas

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

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

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 nuevo tipo (clave de aplicación rotativa) y el ID de clave de época real que se utilizó para generar la clave de aplicación.
[in] keySalt
Un puntero a un búfer con valor de sal de clave de aplicación.
[in] saltLen
La longitud de la sal de la clave de aplicación.
[in] keyDiversifier
Un puntero a un búfer con valor de diversificador de clave de aplicación.
[in] diversifierLen
La longitud del diversificador de claves de la aplicación.
[out] appKey
Un puntero a un búfer donde se escribirá la clave derivada.
[in] keyBufSize
La longitud del búfer de claves suministrado.
[in] keyLen
La longitud del material clave solicitado.
[out] appGroupGlobalId
El ID global del grupo de aplicaciones de la clave asociada.
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el tamaño de búfer de clave 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 el almacén de claves de la plataforma devuelve 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 devueltos por las API 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 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 exacta y válida, se devuelve el ID de la clave de época utilizada por última vez.

Detalles
Parámetros
[in] keyId
El ID de la clave de la aplicación.
[out] curKeyId
El ID de clave actual de la aplicación.
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
WEAVE_ERROR_INVALID_KEY_ID
Si el ID de la 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 devueltos por las API del almacén de claves de la plataforma.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Obtenga la hora UTC de la plataforma actual en segundos.

Detalles
Parámetros
[out] utcTime
Una referencia al valor de tiempo.
Valores devueltos
WEAVE_NO_ERROR
Sobre el é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 de tiempo real del sistema no está sincronizado con una fuente de tiempo precisa.
other
Otros códigos de error de Weave o plataforma.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Obtenga la clave del grupo de aplicaciones.

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

Detalles
Parámetros
[in] keyId
El ID de clave de grupo.
[out] groupKey
Una referencia al objeto de clave de grupo.
Valores devueltos
WEAVE_NO_ERROR
Sobre el é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 devuelve parámetros clave no válidos.
other
Otros errores específicos de la plataforma devueltos por las API 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

En eso

void Init(
  void
)

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

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Devuelve el ID de clave actual.

Establece las variables miembro asociadas con las claves de época a los valores predeterminados cuando ocurre algún cambio (eliminar 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 () para llamar a este método.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0