จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

nl::Weave::โปรไฟล์::ความปลอดภัย::AppKeys::GroupKeyStoreBase

นี่เป็นชั้นเรียนนามธรรม

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

คําจํากัดความของชั้นเรียนคีย์สโตร์ของกลุ่ม Weave

สรุป

ระบบจะเรียกใช้ฟังก์ชันในชั้นเรียนนี้เพื่อจัดการคีย์กลุ่มแอปพลิเคชัน

การสืบทอด

คลาสย่อยที่เป็นที่รู้จักโดยตรง:
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl{/10:Wesve:Wesmo

แอตทริบิวต์ที่ได้รับการปกป้อง

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

ฟังก์ชันสาธารณะ

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)
คีย์แอปพลิเคชัน Derives
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
แสดงผลรหัสคีย์ปัจจุบัน
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
รับเวลา UTC แพลตฟอร์มปัจจุบันเป็นวินาที
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
ดาวน์โหลดคีย์กลุ่มแอปพลิเคชัน
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

ฟังก์ชันที่ได้รับการคุ้มครอง

Init(void)
void
เริ่มต้นพารามิเตอร์คีย์สโตร์ของกลุ่มในเครื่อง
OnEpochKeysChange(void)
void
แสดงผลรหัสคีย์ปัจจุบัน
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

แอตทริบิวต์ที่ได้รับการปกป้อง

ใช้ครั้งสุดท้าย EpochKeyId

uint32_t LastUsedEpochKeyId

เวลาเริ่มต้นคีย์ถัดไป

uint32_t NextEpochKeyStartTime

ฟังก์ชันสาธารณะ

ล้าง

virtual WEAVE_ERROR Clear(
  void
)=0

ลบกลุ่ม

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

ลบกลุ่มคีย์AA

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

คีย์แอปพลิเคชันแหล่งที่มา

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
)

คีย์แอปพลิเคชัน Derives

คีย์แอปพลิเคชันมี 3 ประเภทด้วยกัน ได้แก่ คีย์แอปพลิเคชันปัจจุบัน แป้นแอปพลิเคชันที่หมุนเวียน และคีย์แอปพลิเคชันแบบคงที่ เมื่อมีการขอคีย์แอปพลิเคชันปัจจุบัน ฟังก์ชันจะค้นหาและใช้คีย์ Epoch ปัจจุบันโดยอิงตามเวลาระบบปัจจุบันและพารามิเตอร์เวลาเริ่มต้นของคีย์ Epoch แต่ละรายการ

รายละเอียด
พารามิเตอร์
[in,out] keyId
การอ้างอิงรหัสคีย์ที่ขอ เมื่อมีการขอคีย์แอปพลิเคชันปัจจุบัน ช่องนี้จะได้รับการอัปเดตเพื่อแสดงประเภทคีย์ใหม่ (หมุนเวียนคีย์แอปพลิเคชัน) และรหัสคีย์ Epoch จริงที่ใช้สร้างคีย์แอปพลิเคชัน
[in] keySalt
ตัวชี้ไปยังบัฟเฟอร์ที่มีค่าเกลือคีย์แอปพลิเคชัน
[in] saltLen
ความยาวของเกลือคีย์แอปพลิเคชัน
[in] keyDiversifier
ตัวชี้ไปยังบัฟเฟอร์ที่มีค่าตัวกระจายคีย์แอปพลิเคชัน
[in] diversifierLen
ความยาวของเครื่องมือเปลี่ยนเส้นทางคีย์แอปพลิเคชัน
[out] appKey
ตัวชี้ไปยังบัฟเฟอร์ที่จะเขียนคีย์ที่ได้รับ
[in] keyBufSize
ความยาวของบัฟเฟอร์คีย์ที่ระบุ
[in] keyLen
ความยาวของเนื้อหาคีย์ที่ขอ
[out] appGroupGlobalId
รหัสส่วนกลางของกลุ่มแอปพลิเคชันของคีย์ที่เชื่อมโยง
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
WEAVE_ERROR_BUFFER_TOO_SMALL
หากขนาดบัฟเฟอร์ของคีย์ที่ระบุไม่เพียงพอ
WEAVE_ERROR_INVALID_KEY_ID
หากคีย์ที่ขอมีรหัสคีย์ที่ไม่ถูกต้อง
WEAVE_ERROR_INVALID_ARGUMENT
หากคีย์สโตร์ของแพลตฟอร์มแสดงพารามิเตอร์คีย์ที่ไม่ถูกต้องหรือตัวระบุคีย์มีค่าไม่ถูกต้อง
other
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ ที่แสดงผลโดย API ที่เก็บข้อมูลคีย์ของแพลตฟอร์ม

คีย์กลุ่มแจกแจง

virtual WEAVE_ERROR EnumerateGroupKeys(
  uint32_t keyType,
  uint32_t *keyIds,
  uint8_t keyIdsArraySize,
  uint8_t & keyCount
)=0

รับคีย์แอปปัจจุบัน

WEAVE_ERROR GetCurrentAppKeyId(
  uint32_t keyId,
  uint32_t & curKeyId
)

แสดงผลรหัสคีย์ปัจจุบัน

ค้นหาคีย์ Epoch ปัจจุบันโดยอิงตามเวลาระบบปัจจุบันและพารามิเตอร์เวลาเริ่มต้นของคีย์ Epoch แต่ละรายการ หากระบบไม่มีเวลาที่ถูกต้องและแม่นยํา ระบบจะแสดงรหัสคีย์ Epoch ที่ใช้ล่าสุด

รายละเอียด
พารามิเตอร์
[in] keyId
รหัสคีย์แอปพลิเคชัน
[out] curKeyId
รหัสคีย์ปัจจุบันของแอปพลิเคชัน
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
WEAVE_ERROR_INVALID_KEY_ID
หากรหัสคีย์อินพุตมีค่าที่ไม่ถูกต้อง
WEAVE_ERROR_KEY_NOT_FOUND
หากไม่พบคีย์ Epoch ในที่เก็บคีย์ของแพลตฟอร์ม
other
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ ที่แสดงผลโดย API ที่เก็บข้อมูลคีย์ของแพลตฟอร์ม

เวลารับสถานะปัจจุบันของ UTC

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

รับเวลา UTC แพลตฟอร์มปัจจุบันเป็นวินาที

รายละเอียด
พารามิเตอร์
[out] utcTime
การอ้างอิงไปยังค่าเวลา
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
หากแพลตฟอร์มไม่รองรับนาฬิกาแบบเรียลไทม์
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
หากระบบของนาฬิกาเรียลไทม์ไม่ซิงค์กับแหล่งข้อมูลที่ถูกต้อง
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือ Platform

คีย์ GetGroup

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

ดาวน์โหลดคีย์กลุ่มแอปพลิเคชัน

ฟังก์ชันนี้จะดึงหรือดึงคีย์กลุ่มแอปพลิเคชัน ประเภทคีย์ที่ฟังก์ชันนี้รองรับ ได้แก่ ข้อมูลลับของผ้า คีย์รูท คีย์ Epoch คีย์กลุ่มหลัก และคีย์กลาง

รายละเอียด
พารามิเตอร์
[in] keyId
รหัสคีย์กลุ่ม
[out] groupKey
การอ้างอิงถึงออบเจ็กต์คีย์ของกลุ่ม
แสดงผลค่า
WEAVE_NO_ERROR
สําเร็จแล้ว
WEAVE_ERROR_INVALID_KEY_ID
หากคีย์ที่ขอมีรหัสคีย์ที่ไม่ถูกต้อง
WEAVE_ERROR_INVALID_ARGUMENT
หากคีย์สโตร์ของแพลตฟอร์มแสดงพารามิเตอร์คีย์ที่ไม่ถูกต้อง
other
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ ที่แสดงผลโดย API ที่เก็บข้อมูลคีย์ของแพลตฟอร์ม

เรียกข้อมูลคีย์กลุ่ม

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

คีย์กลุ่มร้านค้า

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

ฟังก์ชันที่ได้รับการคุ้มครอง

เริ่ม

void Init(
  void
)

เริ่มต้นพารามิเตอร์คีย์สโตร์ของกลุ่มในเครื่อง

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

แสดงผลรหัสคีย์ปัจจุบัน

ตั้งค่าตัวแปรสมาชิกที่เชื่อมโยงกับคีย์ Epoch เป็นค่าเริ่มต้นเมื่อมีการเปลี่ยนแปลง (ลบหรือจัดเก็บ) เกิดขึ้นในชุดคีย์ Epoch ของแอปพลิเคชัน ซึ่งเป็นความรับผิดชอบของคลาสย่อยที่ใช้ฟังก์ชัน StoreGroupKey(), DeleteGroupKey() และ DeleteGroupKeysOfAType() เพื่อเรียกวิธีการนี้

เรียกข้อมูลรหัสที่ใช้ล่าสุด

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

จัดเก็บคีย์ที่ใช้ล่าสุดสําหรับ Epoch

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0