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

To jest klasa abstrakcyjna.

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

Definicja klasy magazynu kluczy grupy Weave.

Podsumowanie

Funkcje w tej klasie są wywoływane w celu zarządzania kluczami grup aplikacji.

Dziedziczenie

Bezpośrednie znane podklasy:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImplnl::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)
Generuje 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
Pobierz bieżący czas UTC dla 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 grupy lokalnej.
OnEpochKeysChange(void)
void
Zwraca bieżący identyfikator 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
)

Generuje klucz aplikacji.

Obsługiwane są 3 typy kluczy aplikacji: bieżący klucz aplikacji, obrotowy klucz aplikacji i statyczny klucz aplikacji. Po otrzymaniu żądania 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 żądanego identyfikatora klucza. Gdy wymagane jest żądanie bieżącego klucza aplikacji, to pole jest aktualizowane tak, aby odzwierciedlić nowy typ (rotujący 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 aplikacji.
[in] saltLen
Długość soli klucza aplikacji.
[in] keyDiversifier
Wskaźnik do bufora z wartością różnorodnika klucza aplikacji.
[in] diversifierLen
Długość różnicy klucza aplikacji.
[out] appKey
Wskaźnik do bufora, w którym zostanie zapisany klucz derywowany.
[in] keyBufSize
Długość dostarczonego 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
Na sukces.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli podany rozmiar bufora klucza jest niewystarczający.
WEAVE_ERROR_INVALID_KEY_ID
Żą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 związane z platformą zwrócone 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 epoki na podstawie bieżącego czasu systemowego i parametru czasu rozpoczęcia każdego klucza epoki. Jeśli system nie ma prawidłowego, precyzyjnego czasu, zwracany jest identyfikator ostatnio używanego klucza epoki.

Szczegóły
Parametry
[in] keyId
Identyfikator klucza aplikacji.
[out] curKeyId
Identyfikator bieżącego klucza aplikacji.
Zwracane wartości
WEAVE_NO_ERROR
Na sukces.
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 ma kluczy epoki.
other
Inne błędy związane z platformą zwrócone przez interfejsy API magazynu kluczy platformy.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Pobierz bieżący czas UTC dla platformy (w sekundach).

Szczegóły
Parametry
[out] utcTime
Odwołanie do wartości czasu.
Zwracane wartości
WEAVE_NO_ERROR
Na sukces.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jeśli platforma nie obsługuje zegara w czasie rzeczywistym.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Czy zegar w systemie w czasie rzeczywistym 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 klucze grup aplikacji lub pobiera je. Typy kluczy obsługiwane przez tę funkcję to: tajny klucz tkaniny, klucz główny, klucz epoki, klucz główny grupy 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
Na sukces.
WEAVE_ERROR_INVALID_KEY_ID
Żądany klucz ma nieprawidłowy identyfikator.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli magazyn kluczy platformy zwraca nieprawidłowe parametry klucza.
other
Inne błędy związane z platformą zwrócone 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

Zainicjuj

void Init(
  void
)

Zainicjuj parametry magazynu kluczy grupy lokalnej.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Zwraca bieżący identyfikator klucza.

Ustawia zmienne członków powiązane z kluczami epoki na wartości domyślne, gdy jakakolwiek zmiana (usunięcie lub zapisanie) zestawu kluczy epoki aplikacji spowoduje ustawienie tych zmiennych. Odpowiada ona podklasie, która implementuje funkcje StoreGroupKey(), DeleteGroupKey() i DeleteGroupKeysOfAType() w celu wywołania tej metody.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0