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

To zajęcia abstrakcyjne.

#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)
Pobiera 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 identyfikator bieżącego klucza.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Pobierz bieżący czas UTC platformy 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
)

Pobiera klucz aplikacji.

Obsługiwane są 3 typy kluczy aplikacji: bieżący klucz aplikacji, klucz z rotacją aplikacji i statyczny klucz aplikacji. Po zażądaniu bieżącego klucza aplikacji funkcja znajduje i używa bieżącego klucza epoki na podstawie bieżącego czasu systemowego i parametru czasu rozpoczęcia każdego klucza epoki.

Szczegóły
Parametry
[in,out] keyId
Odwołanie do identyfikatora żądanego 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ą ciągu zaburzającego klucza aplikacji.
[in] saltLen
Długość ciągu zaburzającego klucza aplikacji.
[in] keyDiversifier
Wskaźnik do bufora z wartością dywersyfikatora klucza aplikacji.
[in] diversifierLen
Długość dywersyfikatora klucza aplikacji.
[out] appKey
Wskaźnik do bufora, w którym zostanie zapisany klucz derywowany.
[in] keyBufSize
Długość 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
Powodzenie.
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.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli magazyn kluczy platformy 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 identyfikator bieżącego klucza.

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

Szczegóły
Parametry
[in] keyId
Identyfikator klucza aplikacji.
[out] curKeyId
Identyfikator bieżącego klucza aplikacji.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
WEAVE_ERROR_INVALID_KEY_ID
Jeśli identyfikator klucza wejściowego 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 magazynu kluczy platformy.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Pobierz bieżący czas UTC platformy w sekundach.

Szczegóły
Parametry
[out] utcTime
Odwołanie do wartości czasu.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
#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 czasu rzeczywistego systemu 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 pobiera lub pobiera klucze grup aplikacji. Typy kluczy obsługiwane przez tę funkcję to: tajny klucz tkanin, klucz główny, klucz epoki, klucz grupowy i klucz pośredni.

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.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli magazyn kluczy platformy zwraca nieprawidłowe parametry kluczy.
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

Init

void Init(
  void
)

Zainicjuj parametry magazynu kluczy grup lokalnych.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Zwraca identyfikator bieżącego klucza.

Ustawia zmienne członkowskie powiązane z kluczami epoki na wartości domyślne po każdej zmianie (usunięciu lub zapisaniu) zestawu kluczy epoki aplikacji. Odpowiedzią za wywołanie tej metody jest podklasa, która implementuje funkcje StoreGroupKey(), DeleteGroupKey() i DeleteGroupKeysOfAType().

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0