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

Das 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 Anwendungsgruppenschlüssel zu verwalten.

Übernahme

Direkte bekannte Unterklassen:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Weave::DeviceLayer::Intern::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer: :Internal::Weave: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
Aktuelle UTC-Zeit der Plattform in Sekunden abrufen.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Anwendungsgruppenschlü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 Schlüsselspeicher lokaler Gruppen 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

Klar

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: der aktuelle Anwendungsschlüssel, der rotierende Anwendungsschlüssel und der statische Anwendungsschlüssel. Wenn der aktuelle Anwendungsschlüssel angefordert wird, ermittelt und verwendet die Funktion den aktuellen Epochenschlüssel basierend auf der aktuellen Systemzeit und dem Startzeitparameter 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 mit dem neuen Typ (rotierender Anwendungsschlüssel) und der tatsächlichen Epochenschlüssel-ID aktualisiert, mit der der Anwendungsschlüssel generiert wurde.
[in] keySalt
Ein Zeiger auf einen Puffer mit dem Salt-Wert des Anwendungsschlüssels.
[in] saltLen
Die Länge des Salt-Salts des Anwendungsschlüssels.
[in] keyDiversifier
Ein Zeiger auf einen Puffer mit dem Diversifiziererwert des Anwendungsschlüssels.
[in] diversifierLen
Die Länge des Anwendungsschlüssel-Diversifizierers.
[out] appKey
Ein Zeiger auf einen Puffer, in den der abgeleitete Schlüssel geschrieben wird.
[in] keyBufSize
Die Länge des bereitgestellten 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üsselpuffergröße nicht ausreicht.
WEAVE_ERROR_INVALID_KEY_ID
Der angeforderte Schlüssel hat eine ungültige Schlüssel-ID.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der Plattformschlüsselspeicher ungültige Schlüsselparameter zurückgibt oder die Schlüsselkennung einen ungültigen Wert hat.
other
Andere plattformspezifische Fehler, die von den Plattformschlü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.

Ermittelt den aktuellen Epochenschlüssel basierend auf der aktuellen Systemzeit und dem Startzeitparameter jedes Epochenschlüssels. Wenn das System keine gültige und genaue Zeit hat, wird die letzte Epochenschlüssel-ID zurückgegeben.

Details
Parameter
[in] keyId
Die Anwendungsschlüssel-ID.
[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 Schlüsselspeicher der Plattform keine Epochenschlüssel gefunden werden.
other
Andere plattformspezifische Fehler, die von den Plattformschlüsselspeicher-APIs zurückgegeben werden.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Aktuelle UTC-Zeit der Plattform in Sekunden abrufen.

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

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Anwendungsgruppenschlüssel abrufen.

Diese Funktion leitet Anwendungsgruppenschlüssel ab oder ruft sie ab. Folgende Schlüsseltypen werden von dieser Funktion 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
Der angeforderte Schlüssel hat eine ungültige Schlüssel-ID.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der Plattformschlüsselspeicher ungültige Schlüsselparameter zurückgibt.
other
Andere plattformspezifische Fehler, die von den Plattformschlüsselspeicher-APIs 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 Schlüsselspeicher lokaler Gruppen initialisieren

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

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

Legt die mit Epochenschlüsseln verknüpften Mitgliedervariablen auf die Standardwerte fest, wenn eine Änderung (Löschen oder Speichern) am Satz von Epochenschlüsseln der Anwendung erfolgt. Es liegt in der Verantwortung der Unterklasse, die die Funktionen StoreGroupKey(), DeleteGroupKey() und DeleteGroupKeysOfAType() implementiert, um diese Methode aufzurufen.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0