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

To abstrakcyjna klasa.

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

Definicja klasy magazynu kluczy grupy Weave.

Podsumowanie

Funkcje z tej klasy są wywoływane do zarządzania kluczami grupy aplikacji.

Dziedziczenie

Bezpośrednie znane podklasy:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Atrybuty chronione

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Funkcje publiczne

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)
Wyprowadza klucz aplikacji.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Zwraca bieżący identyfikator klucza.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Pobiera bieżący czas UTC na platformie w sekundach.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Pobierz klucz grupy aplikacji.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Funkcje chronione

Init(void)
void
Zainicjuj parametry magazynu kluczy grup lokalnych.
OnEpochKeysChange(void)
void
Zwraca identyfikator bieżącego klucza.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Atrybuty chronione

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Funkcje publiczne

Wyczyść

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
)

Wyprowadza klucz aplikacji.

Obsługiwane są 3 typy kluczy aplikacji: bieżący klucz aplikacji, klucz z rotacją aplikacji i statyczny klucz aplikacji. Gdy zostanie przesłane żądanie bieżącego klucza aplikacji, funkcja wyszukuje i używa bieżącego klucza ery na podstawie bieżącego czasu systemowego i parametru czasu rozpoczęcia każdego klucza ery.

Szczegóły
Parametry
[in,out] keyId
Odniesienie do żądanego identyfikatora klucza. Gdy wymagane jest żądanie bieżącego klucza aplikacji, to pole jest aktualizowane, aby odzwierciedlić nowy typ (rotacyjny klucz aplikacji) i rzeczywisty identyfikator klucza epoki, który został użyty do wygenerowania klucza aplikacji.
[in] keySalt
Wskaźnik do bufora z wartością soli klucza aplikacji.
[in] saltLen
Długość soli klucza aplikacji.
[in] keyDiversifier
Wskaźnik do bufora z wartością klucza aplikacji.
[in] diversifierLen
Długość klucza aplikacji.
[out] appKey
Wskaźnik do bufora, w którym zostanie zapisany klucz pochodzenia.
[in] keyBufSize
Długość podanego bufora klucza.
[in] keyLen
Długość żądanego materiału klucza.
[out] appGroupGlobalId
Globalny identyfikator grupy aplikacji powiązanego klucza.
Zwracane wartości
WEAVE_NO_ERROR
W przypadku powodzenia.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli podany rozmiar bufora klucza jest niewystarczający.
WEAVE_ERROR_INVALID_KEY_ID
Jeśli żądany klucz ma nieprawidłowy identyfikator klucza.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli platforma zwraca nieprawidłowe parametry klucza lub identyfikator klucza ma nieprawidłową wartość.
other
Inne błędy specyficzne dla platformy zwracane przez interfejsy API magazynu kluczy platformy.

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
)

Zwraca bieżący identyfikator klucza.

Znajduje bieżący klucz ery na podstawie bieżącego czasu systemowego i parametru czasu rozpoczęcia każdego klucza ery. Jeśli system nie ma prawidłowego, dokładnego czasu, zwracany jest identyfikator ostatniego użytego klucza ery.

Szczegóły
Parametry
[in] keyId
Identyfikator klucza aplikacji.
[out] curKeyId
Obecny identyfikator klucza aplikacji.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_KEY_ID
Jeśli podany identyfikator klucza ma nieprawidłową wartość.
WEAVE_ERROR_KEY_NOT_FOUND
Jeśli w magazynie kluczy platformy nie można znaleźć kluczy epoki.
other
inne błędy specyficzne dla platformy zwracane przez interfejsy API platformy magazynu kluczy.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Pobiera bieżący czas UTC na platformie w sekundach.

Szczegóły
Parametry
[out] utcTime
Odwołanie do wartości czasu.
Zwracane wartości
WEAVE_NO_ERROR
W przypadku powodzenia.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jeśli platforma nie obsługuje zegara w czasie rzeczywistym.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Jeśli zegar systemowy nie jest zsynchronizowany z dokładnym źródłem czasu.
other
Inne kody błędów Weave lub platformy.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Pobierz klucz grupy aplikacji.

Ta funkcja wyprowadza lub pobiera klucze grup aplikacji. Ta funkcja obsługuje następujące typy kluczy: secret fabric, root key, epoch key, group master key i intermediate key.

Szczegóły
Parametry
[in] keyId
Identyfikator klucza grupy.
[out] groupKey
Odwołanie do obiektu klucza grupy.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_KEY_ID
Jeśli żądany klucz ma nieprawidłowy identyfikator klucza.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli magazyn kluczy platformy zwraca nieprawidłowe parametry klucza.
other
Inne błędy specyficzne dla platformy zwracane przez interfejsy API magazynu kluczy platformy.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Funkcje chronione

Rozpocznij

void Init(
  void
)

Inicjalizacja parametrów lokalnego magazynu kluczy grupowych.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Zwraca identyfikator bieżącego klucza.

Gdy nastąpi jakakolwiek zmiana (usunięcie lub zapisanie) w zbiorze kluczy okresu aplikacji, zmienne członkowskie powiązane z kluczami okresu zostaną ustawione na wartości domyślne. Wywołanie tej metody należy do podklasy, która implementuje funkcje StoreGroupKey(), DeleteGroupKey() i DeleteGroupKeysOfAType().

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0