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

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

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

Định nghĩa về lớp kho khoá cho nhóm Weave.

Tóm tắt

Các hàm trong lớp này được gọi để quản lý khoá của 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
Xem giờ UTC của nền tảng hiện tại 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 động các thông số 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

Xoá

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.

Ba loại phím ứng dụng được hỗ trợ: khoá ứng dụng hiện tại, khoá ứng dụng xoay và khoá ứng dụng tĩnh. Khi có yêu cầu khoá ứng dụng hiện tại, 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 từng khoá thời gian bắt đầu của hệ thống.

Thông tin chi tiết
Thông số
[in,out] keyId
Tham chiếu đến mã khoá được yêu cầu. Khi có yêu cầu khoá ứng dụng hiện tại, 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ủa hệ thống đã được dùng để tạo khoá ứng dụng.
[in] keySalt
Con trỏ đến một vùng đệm có giá trị dữ liệu ngẫu nhiên của khoá ứng dụng.
[in] saltLen
Độ dài của dữ liệu ngẫu nhiên khoá ứng dụng.
[in] keyDiversifier
Con trỏ đến một vùng đệm có giá trị đa dạng hoá khoá ứng dụng.
[in] diversifierLen
Độ dài của trình đa dạng hoá khoá ứng dụng.
[out] appKey
Con 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 chính được yêu cầu.
[out] appGroupGlobalId
Mã chung của nhóm ứng dụng của khoá đã liên kết.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu dung lượng bộ nhớ đệm đượ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 tham số khoá không hợp lệ hoặc giá trị nhận dạng khoá có giá trị không hợp lệ.
other
Các lỗi khác theo nền tảng cụ thể do 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á thời gian bắt đầu hiện tại của hệ thống 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 từng khoá thời gian bắt đầu của hệ thống. Nếu hệ thống không có thời gian chính xác, hợp lệ 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á nhập có giá trị không hợp lệ.
WEAVE_ERROR_KEY_NOT_FOUND
Nếu không tìm thấy khoá thời gian bắt đầu của hệ thống trong kho khoá nền tảng.
other
Các lỗi khác theo nền tảng cụ thể do API kho khoá của nền tảng trả về.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Xem giờ UTC của nền tảng hiện tại 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ồ 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
)

Nhận khoá nhóm ứng dụng.

Hàm này lấy hoặc truy xuất khoá của nhóm ứng dụng. Các loại khoá được hàm này hỗ trợ là: khoá bí mật kết xuất, khoá gốc, khoá thời gian bắt đầu của hệ thống, 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 theo nền tảng cụ thể do API kho khoá của 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ệ

Bắt đầu

void Init(
  void
)

Khởi động các thông số 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 phầ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ó thay đổi (xoá hoặc lưu trữ) xảy ra với tập hợp khoá thời gian bắt đầu của ứng dụng. Lớp con triển khai các hàm StoreGroupKey(), DeleteGroupKey() và DeleteGroupKeysOfAType() chịu 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