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

Questa è una classe astratta.

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

La definizione della classe del magazzino chiavi di gruppo Weave.

Riepilogo

Le funzioni di questa classe vengono chiamate per gestire le chiavi dei gruppi di applicazioni.

Eredità

Sottoclassi note dirette:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Device gomito::Internal::0StoreKeyStore} {nl:1
nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Attributi protetti

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Funzioni pubbliche

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)
Deduce la chiave dell'applicazione.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Restituisce l'ID chiave corrente.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Visualizza l'ora UTC attuale della piattaforma in secondi.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Recupera chiave gruppo di applicazioni.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Funzioni protette

Init(void)
void
Inizializza i parametri del magazzino chiavi di gruppo locale.
OnEpochKeysChange(void)
void
Restituisce l'ID chiave corrente.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Attributi protetti

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Funzioni pubbliche

Cancella

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
)

Deduce la chiave dell'applicazione.

Sono supportati tre tipi di chiavi di applicazione: chiave di applicazione corrente, chiave di applicazione con rotazione e chiave di applicazione statica. Quando viene richiesta la chiave dell'applicazione corrente, la funzione trova e utilizza la chiave dell'epoca corrente in base all'ora di sistema corrente e al parametro dell'ora di inizio di ogni chiave dell'epoca.

Dettagli
Parametri
[in,out] keyId
Un riferimento all'ID chiave richiesto. Quando viene richiesta la chiave dell'applicazione corrente, questo campo viene aggiornato in base al nuovo tipo (chiave dell'applicazione con rotazione) e all'ID chiave epoch effettivo utilizzato per generare la chiave dell'applicazione.
[in] keySalt
Un puntatore a un buffer con il valore della salatura della chiave dell'applicazione.
[in] saltLen
La lunghezza del sale della chiave dell'applicazione.
[in] keyDiversifier
Un puntatore a un buffer con il valore del diversificatore della chiave dell'applicazione.
[in] diversifierLen
La lunghezza del diversificatore della chiave dell'applicazione.
[out] appKey
Un puntatore a un buffer in cui verrà scritta la chiave derivata.
[in] keyBufSize
La lunghezza del buffer delle chiavi fornito.
[in] keyLen
La lunghezza del materiale della chiave richiesto.
[out] appGroupGlobalId
L'ID globale del gruppo di applicazioni della chiave associata.
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se la dimensione del buffer delle chiavi fornita non è sufficiente.
WEAVE_ERROR_INVALID_KEY_ID
Se la chiave richiesta ha un ID chiave non valido.
WEAVE_ERROR_INVALID_ARGUMENT
Se il key store della piattaforma restituisce parametri chiave non validi o se l'identificatore della chiave ha un valore non valido.
other
Altri errori specifici della piattaforma restituiti dalle API del key store della piattaforma.

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
)

Restituisce l'ID chiave corrente.

Trova la chiave dell'epoca corrente in base all'ora di sistema corrente e al parametro dell'ora di inizio di ogni chiave dell'epoca. Se il sistema non ha un'ora valida e precisa, viene restituito l'ID chiave dell'epoca dell'ultima utilizzata.

Dettagli
Parametri
[in] keyId
L'ID chiave dell'applicazione.
[out] curKeyId
L'ID chiave corrente dell'applicazione.
Valori restituiti
WEAVE_NO_ERROR
In caso di esito positivo.
WEAVE_ERROR_INVALID_KEY_ID
Se l'ID chiave inserito aveva un valore non valido.
WEAVE_ERROR_KEY_NOT_FOUND
Se le chiavi epoch non vengono trovate nel key store della piattaforma.
other
Altri errori specifici della piattaforma restituiti dalle API del key store della piattaforma.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Recupera l'ora UTC attuale della piattaforma in secondi.

Dettagli
Parametri
[out] utcTime
Un riferimento al valore di tempo.
Valori restituiti
WEAVE_NO_ERROR
Un successo.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Se la piattaforma non supporta un orologio in tempo reale.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Se l'orologio in tempo reale del sistema non è sincronizzato con un'origine ora precisa.
other
Altri codici di errore Weave o della piattaforma.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Ottieni la chiave del gruppo di applicazioni.

Questa funzione ricava o recupera le chiavi del gruppo di applicazioni. I tipi di chiavi supportati da questa funzione sono: secret della struttura, chiave radice, chiave epoch, chiave master di gruppo e chiave intermedia.

Dettagli
Parametri
[in] keyId
L'ID della chiave di gruppo.
[out] groupKey
Un riferimento all'oggetto chiave del gruppo.
Valori restituiti
WEAVE_NO_ERROR
In caso di esito positivo.
WEAVE_ERROR_INVALID_KEY_ID
Se la chiave richiesta ha un ID chiave non valido.
WEAVE_ERROR_INVALID_ARGUMENT
Se il key store della piattaforma restituisce parametri chiave non validi.
other
Altri errori specifici della piattaforma restituiti dalle API del key store della piattaforma.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Funzioni protette

Inizializzazione

void Init(
  void
)

Inizializza i parametri del magazzino chiavi di gruppo locale.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Restituisce l'ID chiave corrente.

Imposta le variabili membro associate alle chiavi di epoca sui valori predefiniti quando si verifica una modifica (eliminazione o memorizzazione) dell'insieme di chiavi di epoca dell'applicazione. È responsabilità della sottoclasse che implementa le funzioni StoreGroupKey(), DeleteGroupKey() ed DeleteGroupKeysOfAType() chiamare questo metodo.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0