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

Übernahme

Direkte bekannte abgeleitete Klassen:
  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
Ruft die aktuelle UTC-Zeit der Plattform in Sekunden ab.
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
Initialisieren Sie die Parameter des lokalen Gruppenschlüsselspeichers.
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üssel unterstützt: der aktuelle Anwendungsschlüssel, der rotierende Anwendungsschlüssel und der statische Anwendungsschlüssel. Wenn der aktuelle Anwendungsschlüssel angefordert wird, findet 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 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 Zwischenspeicher mit dem Salt-Wert des Anwendungsschlüssels.
[in] saltLen
Die Länge des Anwendungsschlüssels Salt.
[in] keyDiversifier
Ein Zeiger auf einen Zwischenspeicher mit dem Diversifier-Wert des Anwendungsschlüssels.
[in] diversifierLen
Die Länge des Anwendungsschlüssel-Diversifiers.
[out] appKey
Ein Zeiger auf einen Zwischenspeicher, 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
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üsselkennung einen ungültigen Wert hat.
other
Andere plattformspezifische Fehler, die von den Platform Key Store 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 anhand der aktuellen Systemzeit und des Startzeitparameters jedes Epochenschlüssels. Wenn das System keine gültige, genaue Zeit hat, wird die zuletzt verwendete Epochenschlü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 Platform Key Store APIs zurückgegeben werden.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Ruft die aktuelle UTC-Zeit der Plattform in Sekunden ab.

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
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
)

App-Gruppenschlüssel abrufen.

Diese Funktion leitet Anwendungsgruppenschlüssel ab oder ruft sie ab. Von dieser Funktion unterstützte Schlüsseltypen sind: Fabric-Secret, Stammschlüssel, Epochenschlüssel, Gruppen-Masterschlü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 Platform Key Store 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
)

Initialisieren Sie die Parameter des lokalen Gruppenschlüsselspeichers.

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) an den Epochenschlüsseln der Anwendung vorgenommen wird. Für den Aufruf dieser Methode ist die Unterklasse verantwortlich, die die Funktionen StoreGroupKey(), DeleteGroupKey() und DeleteGroupKeysOfAType() implementiert.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0