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

Bu, soyut bir sınıftır.

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

Weave grup anahtar mağazası sınıfının tanımı.

Özet

Bu sınıftaki işlevler, uygulama grubu anahtarlarını yönetmek için çağrılır.

Devralma

Doğrudan Bilinen Alt Sınıflar:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Korunan özellikler

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Herkese açık işlevler

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)
Uygulama anahtarı türetir.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Geçerli anahtar kimliğini döndürür.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Platformun geçerli UTC saatini saniye cinsinden alır.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Uygulama grubu anahtarını alın.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Korunan işlevler

Init(void)
void
Yerel grup anahtar deposu parametrelerini başlatın.
OnEpochKeysChange(void)
void
Geçerli anahtar kimliğini döndürür.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Korunan özellikler

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Herkese açık işlevler

Temizle

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
)

Uygulama anahtarı türetir.

Üç tür uygulama anahtarı desteklenir: geçerli uygulama anahtarı, dönen uygulama anahtarı ve statik uygulama anahtarı. Geçerli uygulama anahtarı istendiğinde, işlev geçerli sistem saatine ve her bir dönem anahtarının başlangıç zamanı parametresine göre geçerli epoch anahtarını bulup kullanır.

Ayrıntılar
Parametreler
[in,out] keyId
İstenen anahtar kimliğine referans. Geçerli uygulama anahtarı istendiğinde bu alan, yeni türü (değişen uygulama anahtarı) ve uygulama anahtarını oluşturmak için kullanılan gerçek çağ anahtarı kimliğini yansıtacak şekilde güncellenir.
[in] keySalt
Uygulama anahtarı tuz değerini içeren bir arabelleğe işaretçi.
[in] saltLen
Uygulama anahtarı tuzu uzunluğu.
[in] keyDiversifier
Uygulama anahtarı çeşitlendirici değerine sahip bir arabelleğe işaretçi.
[in] diversifierLen
Uygulama anahtarı çeşitlendiricisinin uzunluğu.
[out] appKey
Türetilen anahtarın yazılacağı tamponu işaret eden bir işaret.
[in] keyBufSize
Sağlanan anahtar arabelleğinin uzunluğu.
[in] keyLen
İstenen anahtar materyalinin uzunluğu.
[out] appGroupGlobalId
İlişkili anahtarın uygulama grubu genel kimliği.
Döndürülen değerler
WEAVE_NO_ERROR
Başarılı olursa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan anahtar arabellek boyutu yeterli değilse.
WEAVE_ERROR_INVALID_KEY_ID
İstenen anahtarın anahtar kimliği geçersizse
WEAVE_ERROR_INVALID_ARGUMENT
Platform anahtar deposu geçersiz anahtar parametreleri döndürüyorsa veya anahtar tanımlayıcısı geçersiz bir değere sahipse.
other
Platform anahtar deposu API'leri tarafından döndürülen platforma özgü diğer hatalar.

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
)

Geçerli anahtar kimliğini döndürür.

Geçerli sistem saatine ve her bir çağ anahtarının başlangıç saati parametresine göre geçerli çağ anahtarını bulur. Sistemin geçerli ve doğru bir zamanı yoksa son kullanılan dönem anahtarı kimliği döndürülür.

Ayrıntılar
Parametreler
[in] keyId
Uygulama anahtarı kimliği.
[out] curKeyId
Uygulamanın mevcut anahtar kimliği.
Döndürülen değerler
WEAVE_NO_ERROR
Başarılı olursa.
WEAVE_ERROR_INVALID_KEY_ID
Girilen anahtar kimliğinin değeri geçersizse.
WEAVE_ERROR_KEY_NOT_FOUND
Platform anahtar deposunda çağ anahtarları bulunamazsa.
other
Platform anahtar deposu API'leri tarafından döndürülen platforma özgü diğer hatalar.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Platformun geçerli UTC saatini saniye cinsinden alır.

Ayrıntılar
Parametreler
[out] utcTime
Zaman değerine referans.
Döndürülen değerler
WEAVE_NO_ERROR
Başarılı olursa.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Platform gerçek zamanlı saati desteklemiyorsa.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Sistemin gerçek zamanlı saati doğru bir saat kaynağıyla senkronize edilmemişse.
other
Diğer Weave veya platform hata kodları.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Uygulama grubu anahtarını alın.

Bu işlev, uygulama grubu anahtarlarını türetebilir veya alabilir. Bu işlev tarafından desteklenen anahtar türleri şunlardır: yapı gizli anahtarı, kök anahtarı, dönem anahtarı, grup ana anahtarı ve ara anahtar.

Ayrıntılar
Parametreler
[in] keyId
Grup anahtarı kimliği.
[out] groupKey
Grup anahtarı nesnesine referans.
Döndürülen değerler
WEAVE_NO_ERROR
Başarılı olursa.
WEAVE_ERROR_INVALID_KEY_ID
İstenen anahtarın anahtar kimliği geçersizse.
WEAVE_ERROR_INVALID_ARGUMENT
Platform anahtar deposunun geçersiz anahtar parametreleri döndürüp döndürmediği.
other
Platform anahtar deposu API'leri tarafından döndürülen platforma özgü diğer hatalar.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Korunan işlevler

Başlatma

void Init(
  void
)

Yerel grup anahtar deposu parametrelerini başlatın.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Geçerli anahtar kimliğini döndürür.

Uygulama epoch anahtarlarının kümesinde herhangi bir değişiklik (silme veya depolama) yapıldığında epoch anahtarlarıyla ilişkili üye değişkenlerini varsayılan değerlere ayarlar. Bu yöntemi çağırmak StoreGroupKey(), DeleteGroupKey() ve DeleteGroupKeysOfAType() işlevlerini uygulayan alt sınıfın sorumluluğundadır.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0