Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::Profile::Sicherheit::AppKeys::GroupKeyStoreBase

Dies ist eine abstrakte Klasse.

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

Die Definition der Weave-Gruppenschlüsselspeicherklasse.

Fazit

Funktionen in dieser Klasse werden zum Verwalten von Anwendungsgruppenschlüsseln aufgerufen.

Übernahme

Direkte bekannte Unterklassen:
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Inter::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Group::Key

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
Sie erhalten die aktuelle UTC-Zeit in Sekunden.
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
Initialisieren Sie die Parameter für den lokalen Gruppenschlüssel.
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

NextEpochKeyStartzeit

uint32_t NextEpochKeyStartTime

Öffentliche Funktionen

Löschen

virtual WEAVE_ERROR Clear(
  void
)=0

Gruppenschlüssel löschen

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

DeleteGroupKeysOfAType

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

Anwendungsschlüssel

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, rotierender und statischer Anwendungsschlüssel. Wenn der aktuelle Anwendungsschlüssel angefordert wird, findet und verwendet die Funktion den aktuellen Epochenschlüssel auf der Grundlage der aktuellen Systemzeit und des Parameters „start_time“ für jeden Epochenschlüssel.

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, die zum Generieren des Anwendungsschlüssels verwendet wurde, zu berücksichtigen.
[in] keySalt
Ein Zeiger auf einen Puffer mit Salzwert des Anwendungsschlüssels.
[in] saltLen
Die Länge des Anwendungsschlüssels Salt.
[in] keyDiversifier
Ein Zeiger auf einen Puffer mit einem Diversifier-Wert des Anwendungsschlüssels.
[in] diversifierLen
Länge des Diversifiers des Anwendungsschlüssels.
[out] appKey
Ein Zeiger auf einen Zwischenspeicher, in den der abgeleitete Schlüssel geschrieben wird.
[in] keyBufSize
Die Länge des angegebenen Schlüsselzwischenspeichers.
[in] keyLen
Die Länge des angeforderten Schlüsselmaterials.
[out] appGroupGlobalId
Die globale ID der verknüpften Schlüssel der Anwendungsgruppe.
Rückgabewerte
WEAVE_NO_ERROR
Erfolg.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn die angegebene Puffergröße für den Schlüssel 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 oder die Schlüsselkennung enthält, hat dies einen ungültigen Wert.
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

AktuellsteAppKeyID

WEAVE_ERROR GetCurrentAppKeyId(
  uint32_t keyId,
  uint32_t & curKeyId
)

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

Hiermit wird der aktuelle Epochenschlüssel basierend auf der aktuellen Systemzeit und dem Startzeitpunkt der einzelnen Epochenschlüssel ermittelt. Wenn das System keine gültige und genaue Zeit hat, wird die zuletzt verwendete Epochenschlüssel-ID zurückgegeben.

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

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Sie erhalten die aktuelle UTC-Zeit in Sekunden.

Details
Parameter
[out] utcTime
Ein Verweis auf den Zeitwert.
Rückgabewerte
WEAVE_NO_ERROR
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 wird
other
Andere Weave- oder Plattform-Fehlercodes.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Anwendungsgruppenschlüssel abrufen

Mit dieser Funktion werden Anwendungsgruppenschlüssel abgeleitet oder abgerufen. Von dieser Funktion unterstützte Schlüsseltypen sind: Fabric-Secret, Root-Schlü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
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 Plattformschlüsselspeicher-APIs zurückgegeben werden.

Gruppenschlüssel abrufen

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 für den lokalen Gruppenschlüssel.

OnEpochSchlüssel

void OnEpochKeysChange(
  void
)

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

Legt die mit Epochschlüsselschlüsseln verknüpften Mitgliedsvariablen auf die Standardwerte fest, wenn eine Änderung (Löschen oder Speichern) mit den Epochenschlüsseln der Anwendungen geschieht. Die Unterklasse, die StoreGroupKey(), DeleteGroupKey() und DeleteGroupKeysOfAType()-Funktionen implementiert, ist für den Aufruf dieser Methode verantwortlich.

FetchLastUsedEpochKeyId verwenden

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0