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

Ini adalah class abstrak.

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

Definisi class key store grup Weave.

Ringkasan

Fungsi di class ini dipanggil untuk mengelola kunci grup aplikasi.

Inheritance

Subclass Langsung yang Diketahui:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::Device::Internal::KeyStoreImpl Impl}
nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Atribut yang dilindungi

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Fungsi publik

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)
Memperoleh kunci aplikasi.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Menampilkan ID kunci saat ini.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Dapatkan waktu UTC platform saat ini dalam detik.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Mendapatkan kunci grup aplikasi.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Fungsi yang dilindungi

Init(void)
void
Melakukan inisialisasi parameter penyimpanan kunci grup lokal.
OnEpochKeysChange(void)
void
Menampilkan ID kunci saat ini.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Atribut yang dilindungi

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Fungsi publik

Hapus

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
)

Memperoleh kunci aplikasi.

Tiga jenis kunci aplikasi didukung: kunci aplikasi saat ini, kunci aplikasi yang dirotasi, dan kunci aplikasi statis. Jika kunci aplikasi saat ini diminta, fungsi akan menemukan dan menggunakan kunci epoch saat ini berdasarkan waktu sistem saat ini dan parameter waktu mulai setiap kunci epoch.

Detail
Parameter
[in,out] keyId
Referensi ke ID kunci yang diminta. Jika kunci aplikasi saat ini diminta, kolom ini akan diperbarui untuk mencerminkan jenis baru (kunci aplikasi yang dirotasi) dan ID kunci epoch aktual yang digunakan untuk membuat kunci aplikasi.
[in] keySalt
Pointer ke buffer dengan nilai salt kunci aplikasi.
[in] saltLen
Panjang salt kunci aplikasi.
[in] keyDiversifier
Pointer ke buffer dengan nilai diversifier kunci aplikasi.
[in] diversifierLen
Panjang diversifier kunci aplikasi.
[out] appKey
Pointer ke buffer tempat kunci turunan akan ditulis.
[in] keyBufSize
Panjang buffering kunci yang disediakan.
[in] keyLen
Panjang materi kunci yang diminta.
[out] appGroupGlobalId
ID global grup aplikasi dari kunci terkait.
Nilai Pengembalian
WEAVE_NO_ERROR
Setelah berhasil.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika ukuran buffer kunci yang diberikan tidak memadai.
WEAVE_ERROR_INVALID_KEY_ID
Jika kunci yang diminta memiliki ID kunci yang tidak valid.
WEAVE_ERROR_INVALID_ARGUMENT
Jika key store platform menampilkan parameter kunci yang tidak valid atau ID kunci memiliki nilai yang tidak valid.
other
Error khusus platform lainnya yang ditampilkan oleh API key store platform.

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
)

Menampilkan ID kunci saat ini.

Menemukan kunci epoch saat ini berdasarkan waktu sistem saat ini dan parameter waktu mulai dari setiap kunci epoch. Jika sistem tidak memiliki waktu yang valid dan akurat, ID kunci epoch yang terakhir digunakan akan ditampilkan.

Detail
Parameter
[in] keyId
ID kunci aplikasi.
[out] curKeyId
ID kunci aplikasi saat ini.
Nilai Pengembalian
WEAVE_NO_ERROR
Setelah berhasil.
WEAVE_ERROR_INVALID_KEY_ID
Jika ID kunci input memiliki nilai yang tidak valid.
WEAVE_ERROR_KEY_NOT_FOUND
Jika kunci epoch tidak ditemukan di key store platform.
other
Error khusus platform lainnya yang ditampilkan oleh API key store platform.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Dapatkan waktu UTC platform saat ini dalam detik.

Detail
Parameter
[out] utcTime
Referensi ke nilai waktu.
Nilai Pengembalian
WEAVE_NO_ERROR
Setelah berhasil.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jika platform tidak mendukung waktu real time.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Jika jam real-time sistem tidak disinkronkan ke sumber waktu yang akurat.
other
Kode error platform atau Weave lainnya.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Mendapatkan kunci grup aplikasi.

Fungsi ini memperoleh atau mengambil kunci grup aplikasi. Jenis kunci yang didukung oleh fungsi ini adalah: rahasia fabric, kunci root, kunci epoch, kunci master grup, dan kunci perantara.

Detail
Parameter
[in] keyId
ID kunci grup.
[out] groupKey
Referensi ke objek kunci grup.
Nilai Pengembalian
WEAVE_NO_ERROR
Setelah berhasil.
WEAVE_ERROR_INVALID_KEY_ID
Jika kunci yang diminta memiliki ID kunci yang tidak valid.
WEAVE_ERROR_INVALID_ARGUMENT
Jika key store platform menampilkan parameter kunci yang tidak valid.
other
Error khusus platform lainnya yang ditampilkan oleh API key store platform.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Fungsi yang dilindungi

Inisiasi

void Init(
  void
)

Melakukan inisialisasi parameter penyimpanan kunci grup lokal.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Menampilkan ID kunci saat ini.

Menetapkan variabel anggota yang terkait dengan kunci epoch ke nilai default saat perubahan (hapus atau simpan) terjadi pada kumpulan kunci epoch aplikasi. Subclass bertanggung jawab yang mengimplementasikan fungsi StoreGroupKey(), DeleteGroupKey(), dan DeleteGroupKeysOfAType() untuk memanggil metode ini.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0