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

Ini adalah class abstrak.

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

Definisi class penyimpanan kunci grup Weave.

Ringkasan

Fungsi dalam 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::DeviceLayer::Internal::GroupKeyStoreImpl
  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)
Menghasilkan 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
Mendapatkan 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
)

Menghasilkan kunci aplikasi.

Ada tiga jenis kunci aplikasi yang didukung: kunci aplikasi saat ini, kunci aplikasi berputar, dan kunci aplikasi statis. Saat kunci aplikasi saat ini diminta, fungsi akan menemukan dan menggunakan kunci epoch saat ini berdasarkan waktu sistem saat ini dan parameter waktu mulai dari setiap kunci epoch.

Detail
Parameter
[in,out] keyId
Referensi ke ID kunci yang diminta. Jika kunci aplikasi saat ini diminta, kolom ini diupdate untuk mencerminkan jenis baru (kunci aplikasi rotasi) dan ID kunci epoch sebenarnya yang digunakan untuk membuat kunci aplikasi.
[in] keySalt
Pointer ke buffering 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 buffering tempat kunci turunan akan ditulis.
[in] keyBufSize
Panjang buffer kunci yang disediakan.
[in] keyLen
Panjang materi kunci yang diminta.
[out] appGroupGlobalId
ID global grup aplikasi dari kunci terkait.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika 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 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 saat ini aplikasi.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika 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 spesifik per platform lainnya yang ditampilkan oleh API platform key store.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Mendapatkan waktu UTC platform saat ini dalam detik.

Detail
Parameter
[out] utcTime
Referensi ke nilai waktu.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika berhasil.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Jika platform tidak mendukung jam real time.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Jika jam real time sistem tidak disinkronkan ke sumber waktu yang akurat.
other
Kode error Weave atau platform 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 yang Ditampilkan
WEAVE_NO_ERROR
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

Init

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 yang mengimplementasikan fungsi StoreGroupKey(), DeleteGroupKey(), dan DeleteGroupKeysOfAType() bertanggung jawab untuk memanggil metode ini.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0