nl::Weave::Hồ sơ::Bảo mật::AppKeys::GroupKeyStoreBase

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

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

Định nghĩa của lớp cửa hàng khóa Weave group.

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

Các lớp con đã biết trực tiếp:
nl::Weave::DeviceOverlay::internal::GroupKeyStoreImpl
nl::Weave::Devicelayer::GroupKey::GroupKeyStoreImpl
nl::Weave::DeviceClass::GroupKeyStoreimpl{/10:Wenl:We:

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)
Khóa ứng dụng phái sinh.
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
Nhận thời gian hiện tại theo nền tảng UTC là giây.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
Nhận khóa 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 tạo thông số cửa hàng chính của 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ệ

Đã sử dụng EpochKeyId

uint32_t LastUsedEpochKeyId

Thời gian bắt đầu khóa tiếp theo

uint32_t NextEpochKeyStartTime

Hàm công khai

Quang đãng

virtual WEAVE_ERROR Clear(
  void
)=0

Khóa nhóm

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

DeleteGroupKeysOfAType

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

Khóa ứng dụng Derive

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
)

Khóa ứng dụng phái sinh.

Có ba loại khoá ứng dụng: khoá ứng dụng hiện tại, khoá ứng dụng xoay và khoá ứng dụng tĩnh. Khi yêu cầu khóa ứng dụng hiện tại, hàm tìm thấy và sử dụng khóa epoch hiện tại dựa trên thời gian hệ thống hiện tại và thông số thời gian bắt đầu của mỗi khóa kỷ nguyên.

Thông tin chi tiết
Các thông số
[in,out] keyId
Tham chiếu đến mã khóa được yêu cầu. Khi có yêu cầu mới về khóa ứng dụng, trường này sẽ được cập nhật để phản ánh loại mới (khóa ứng dụng xoay vòng) và mã khóa Epoch thực tế đã dùng để tạo khóa ứng dụng.
[in] keySalt
Con trỏ đến bộ đệm có giá trị muối của ứng dụng.
[in] saltLen
Độ dài của muối khoá ứng dụng.
[in] keyDiversifier
Con trỏ đến một bộ đệm có giá trị trình đa dạng khóa ứng dụng.
[in] diversifierLen
Độ dài của trình phân tích khóa ứng dụng.
[out] appKey
Con trỏ đến một vùng đệm, nơi sẽ ghi khóa phái sinh.
[in] keyBufSize
Độ dài của bộ đệm chính mà bạn cung cấp.
[in] keyLen
Độ dài của tài liệu chính được yêu cầu.
[out] appGroupGlobalId
ID toàn cầu của nhóm ứng dụng của khóa được liên kết.
Giá trị trả về
WEAVE_NO_ERROR
Thành công!
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu kích thước bộ đệm chính được cung cấp là 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 khóa khóa nền tảng trả về các thông số khóa hoặc giá trị nhận dạng khóa không hợp lệ có giá trị không hợp lệ.
other
Các lỗi khác dành riêng cho nền tảng do các API cửa hàng khóa nền tảng trả về.

Khoá EnumerateGroup

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

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

Thời gian nhận UTC

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

Nhận thời gian hiện tại theo nền tảng UTC là giây.

Thông tin chi tiết
Các thông số
[out] utcTime
Giá trị tham chiếu đến giá trị thời gian.
Giá trị trả về
WEAVE_NO_ERROR
Thành công!
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng không hỗ trợ đồng hồ theo 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 một nguồn thời gian chính xác.
other
Các mã lỗi Weave hoặc nền tảng khác.

Nhận nhóm

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

Nhận khóa nhóm ứng dụng.

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

Thông tin chi tiết
Các thông số
[in] keyId
Mã khóa nhóm.
[out] groupKey
Tham chiếu đến đối tượng khóa nhóm.
Giá trị trả về
WEAVE_NO_ERROR
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 cửa hàng khóa của nền tảng trả về các thông số khóa không hợp lệ.
other
Các lỗi khác dành riêng cho nền tảng do các API cửa hàng khóa nền tảng trả về.

Khóa truy xuất

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

Khóa nhóm cửa hàng

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

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

Số nguyên

void Init(
  void
)

Khởi tạo thông số cửa hàng chính của 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 được liên kết với các khóa epoch về giá trị mặc định khi có bất kỳ thay đổi nào (xóa hoặc lưu trữ) xảy ra với tập hợp các khóa epoch của ứng dụng. Lớp con triển khai các hàm StoreGroupKey(), DeleteGroupKey() và DeleteGroupKeysOfAType() để đảm bảo trách nhiệm của lớp này sẽ gọi phương thức này.

LấyLastLastEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0