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

Dies ist eine abstrakte Klasse.

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

Die Definition der Weave-Gruppenschlüsselspeicherklasse.

Zusammenfassung

Funktionen in dieser Klasse werden aufgerufen, um Schlüssel für Anwendungsgruppen zu verwalten.

Übernahme

Direkt bekannte Unterklassen:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Geschützte Attribute

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Öffentliche Funktionen

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)
Leitet den Anwendungsschlüssel ab.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Gibt die aktuelle Schlüssel-ID zurück.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Die aktuelle UTC-Zeit der Plattform in Sekunden.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
App-Gruppenschlüssel abrufen.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Geschützte Funktionen

Init(void)
void
Parameter für den lokalen Gruppenschlüsselspeicher initialisieren.
OnEpochKeysChange(void)
void
Gibt die aktuelle Schlüssel-ID zurück.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Geschützte Attribute

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Öffentliche Funktionen

Löschen

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
)

Leitet den Anwendungsschlüssel ab.

Es werden drei Arten von Anwendungsschlüsseln unterstützt: aktueller Anwendungsschlüssel, rotierende Anwendungsschlüssel und statische Anwendungsschlüssel. Wenn der aktuelle Anwendungsschlüssel angefordert wird, ermittelt und verwendet die Funktion den aktuellen Epochenschlüssel anhand der aktuellen Systemzeit und des Startzeitparameters jedes Epochenschlüssels.

Details
Parameter
[in,out] keyId
Ein Verweis auf die angeforderte Schlüssel-ID. Wenn der aktuelle Anwendungsschlüssel angefordert wird, wird dieses Feld aktualisiert, um den neuen Typ (rotierender Anwendungsschlüssel) und die tatsächliche Epochenschlüssel-ID anzugeben, die zum Generieren des Anwendungsschlüssels verwendet wurde.
[in] keySalt
Ein Verweis auf einen Puffer mit dem Salt-Wert des Anwendungsschlüssels.
[in] saltLen
Die Länge des Salts für den Anwendungsschlüssel.
[in] keyDiversifier
Ein Verweis auf einen Puffer mit dem Wert für die Diversifizierung des Anwendungsschlüssels.
[in] diversifierLen
Die Länge des Anwendungsschlüssel-Diversifiers.
[out] appKey
Ein Verweis auf einen Puffer, in den der abgeleitete Schlüssel geschrieben wird.
[in] keyBufSize
Die Länge des angegebenen Schlüsselpuffers.
[in] keyLen
Die Länge des angeforderten Schlüsselmaterials.
[out] appGroupGlobalId
Die globale ID der Anwendungsgruppe des zugehörigen Schlüssels.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn die angegebene Schlüsselzwischenspeichergröße nicht ausreicht.
WEAVE_ERROR_INVALID_KEY_ID
Wenn der angeforderte Schlüssel eine ungültige Schlüssel-ID hat.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der Plattformschlüsselspeicher ungültige Schlüsselparameter zurückgibt oder die Schlüssel-ID einen ungültigen Wert hat.
other
Andere plattformspezifische Fehler, die von den Plattform-Schlüsselspeicher-APIs zurückgegeben werden.

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
)

Gibt die aktuelle Schlüssel-ID zurück.

Sucht den aktuellen Epocheschlüssel anhand der aktuellen Systemzeit und des Startzeitparameters jedes Epocheschlüssels. Wenn das System keine gültige, genaue Uhrzeit hat, wird die zuletzt verwendete Epoche-Schlüssel-ID zurückgegeben.

Details
Parameter
[in] keyId
Die ID des Anwendungsschlüssels.
[out] curKeyId
Die aktuelle Schlüssel-ID der Anwendung.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_KEY_ID
Wenn die Eingabeschlüssel-ID einen ungültigen Wert hat.
WEAVE_ERROR_KEY_NOT_FOUND
Wenn im Plattformschlüsselspeicher keine Epochenschlüssel gefunden werden.
other
Andere plattformspezifische Fehler, die von den APIs des Plattformschlüsselspeichers zurückgegeben werden.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Die aktuelle UTC-Zeit der Plattform in Sekunden.

Details
Parameter
[out] utcTime
Ein Verweis auf den Zeitwert.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Wenn die Plattform keine Echtzeituhr unterstützt.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Wenn die Echtzeituhr des Systems nicht mit einer genauen Zeitquelle synchronisiert ist.
other
Andere Weave- oder Plattformfehlercodes

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Schlüssel der Anwendungsgruppe abrufen

Diese Funktion leitet oder ruft Anwendungsgruppenschlüssel ab. Von dieser Funktion werden die folgenden Schlüsseltypen unterstützt: Fabric-Secret, Stammschlüssel, Epochenschlüssel, Gruppenmasterschlüssel und Zwischenschlüssel.

Details
Parameter
[in] keyId
Die Gruppenschlüssel-ID.
[out] groupKey
Ein Verweis auf das Gruppenschlüsselobjekt.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg
WEAVE_ERROR_INVALID_KEY_ID
Wenn der angeforderte Schlüssel eine ungültige Schlüssel-ID hat.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der Plattformschlüsselspeicher ungültige Schlüsselparameter zurückgibt.
other
Andere plattformspezifische Fehler, die von den APIs des Plattformschlüsselspeichers zurückgegeben werden.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Geschützte Funktionen

Init

void Init(
  void
)

Parameter für den lokalen Gruppenschlüsselspeicher initialisieren.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Gibt die aktuelle Schlüssel-ID zurück.

Stellt Mitgliedsvariablen, die mit Epochenschlüsseln verknüpft sind, auf die Standardwerte zurück, wenn Änderungen (Löschen oder Speichern) an den Epochenschlüsseln der Anwendung vorgenommen werden. Die Unterklasse, die die Funktionen „StoreGroupKey()“, „DeleteGroupKey()“ und „DeleteGroupKeysOfAType()“ implementiert, ist dafür verantwortlich, diese Methode aufzurufen.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0