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

Đây là một lớp trừu tượng.

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

Định nghĩa về lớp cửa hàng khoá nhóm Weave.

Tóm tắt

Các hàm trong lớp này được gọi để quản lý khoá nhóm ứng dụng.

Tính kế thừa

Lớp con đã biết trực tiếp:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImplnl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

Thuộc tính được bảo vệ

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

Hàm công khai

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)
Trích xuất khoá ứng dụng.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
Trả về mã khoá hiện tại.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
Lấy thời gian hiện tại theo múi giờ UTC của nền tảng tính bằng giây.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Nhận khoá nhóm ứng dụng.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

Hàm được bảo vệ

Init(void)
void
Khởi chạy các thông số của kho khoá nhóm cục bộ.
OnEpochKeysChange(void)
void
Trả về mã khoá hiện tại.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

Thuộc tính được bảo vệ

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

Hàm công khai

Xóa

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
)

Trích xuất khoá ứng dụng.

Hệ thống hỗ trợ 3 loại khoá ứng dụng: khoá ứng dụng hiện tại, khoá ứng dụng xoay vòng và khoá ứng dụng tĩnh. Khi khoá ứng dụng hiện tại được yêu cầu, hàm sẽ tìm và sử dụng khoá thời gian bắt đầu của hệ thống hiện tại dựa trên thời gian hệ thống hiện tại và tham số thời gian bắt đầu của mỗi khoá thời gian bắt đầu của hệ thống.

Thông tin chi tiết
Thông số
[in,out] keyId
Thông tin tham chiếu đến mã khoá được yêu cầu. Khi khoá ứng dụng hiện tại được yêu cầu, trường này sẽ được cập nhật để phản ánh loại mới (khoá ứng dụng xoay vòng) và mã khoá thời gian bắt đầu thực tế được dùng để tạo khoá ứng dụng.
[in] keySalt
Con trỏ đến vùng đệm có giá trị muối khoá ứng dụng.
[in] saltLen
Độ dài của muối khoá ứng dụng.
[in] keyDiversifier
Con trỏ đến vùng đệm có giá trị đa dạng hoá khoá ứng dụng.
[in] diversifierLen
Độ dài của việc đa dạng hoá khoá ứng dụng.
[out] appKey
Con trỏ trỏ đến vùng đệm nơi khoá dẫn xuất sẽ được ghi.
[in] keyBufSize
Độ dài của vùng đệm khoá được cung cấp.
[in] keyLen
Độ dài của tài liệu khoá được yêu cầu.
[out] appGroupGlobalId
Mã nhận dạng chung của nhóm ứng dụng của khoá được liên kết.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu kích thước bộ đệm khoá được cung cấp không đủ.
WEAVE_ERROR_INVALID_KEY_ID
Nếu khoá được yêu cầu có mã khoá không hợp lệ.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu kho khoá nền tảng trả về các thông số khoá không hợp lệ hoặc giá trị nhận dạng khoá không hợp lệ.
other
Các lỗi khác riêng của từng nền tảng do các API kho khoá của nền tảng trả về.

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
)

Trả về mã khoá hiện tại.

Tìm khoá epoch hiện tại dựa trên thời gian hệ thống hiện tại và tham số thời gian bắt đầu của mỗi khoá epoch. Nếu hệ thống không có thời gian hợp lệ, chính xác, thì mã khoá thời gian bắt đầu của hệ thống được sử dụng gần đây nhất sẽ được trả về.

Thông tin chi tiết
Thông số
[in] keyId
Mã khoá ứng dụng.
[out] curKeyId
Mã khoá hiện tại của ứng dụng.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_INVALID_KEY_ID
Nếu mã khoá đầu vào có giá trị không hợp lệ.
WEAVE_ERROR_KEY_NOT_FOUND
Nếu không tìm thấy khoá epoch trong kho khoá của nền tảng.
other
Các lỗi khác dành riêng cho nền tảng do API kho khoá nền tảng trả về.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Lấy thời gian hiện tại theo múi giờ UTC của nền tảng tính bằng giây.

Thông tin chi tiết
Thông số
[out] utcTime
Tham chiếu đến giá trị thời gian.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng không hỗ trợ đồng hồ thời gian thực.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Nếu đồng hồ theo thời gian thực của hệ thống không được đồng bộ hoá với nguồn thời gian chính xác.
other
Các mã lỗi khác của Weave hoặc nền tảng.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Lấy khoá nhóm ứng dụng.

Hàm này lấy hoặc truy xuất khoá nhóm ứng dụng. Các loại khoá được hàm này hỗ trợ là: khoá bí mật fabric, khoá gốc, khoá epoch, khoá chính của nhóm và khoá trung gian.

Thông tin chi tiết
Thông số
[in] keyId
Mã khoá nhóm.
[out] groupKey
Tham chiếu đến đối tượng khoá nhóm.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_INVALID_KEY_ID
Nếu khoá được yêu cầu có mã khoá không hợp lệ.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu kho khoá nền tảng trả về các tham số khoá không hợp lệ.
other
Các lỗi khác dành riêng cho nền tảng do API kho khoá nền tảng trả về.

RetrieveGroupKey

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

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

Hàm được bảo vệ

Khởi tạo

void Init(
  void
)

Khởi chạy các thông số của kho khoá nhóm cục bộ.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

Trả về mã khoá hiện tại.

Đặt các biến thành viên liên kết với khoá thời gian bắt đầu của hệ thống thành giá trị mặc định khi có bất kỳ thay đổi nào (xoá hoặc lưu trữ) xảy ra với tập hợp khoá thời gian bắt đầu của hệ thống của ứng dụng. Lớp con triển khai các hàm StoreGroupKey(), DeleteGroupKey() và DeleteGroupKeysOfAType() có trách nhiệm gọi phương thức này.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0