Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::WeaveKeyId

#include <src/lib/core/WeaveKeyIds.h>

Định nghĩa giá trị nhận dạng Weave Key.

Tóm tắt

Lớp này chứa các loại khóa, cờ khóa, định nghĩa trường mã khóa và các hàm API.

Loại công khai

@52{
  kType_None = 0x00000000,
  kType_General = 0x00001000,
  kType_Session = 0x00002000,
  kType_AppStaticKey = 0x00004000,
  kType_AppRotatingKey = kType_AppStaticKey | kTypeModifier_IncorporatesEpochKey,
  kType_AppRootKey = 0x00010000,
  kType_AppEpochKey = 0x00020000 | kTypeModifier_IncorporatesEpochKey,
  kType_AppGroupMasterKey = 0x00030000,
  kType_AppIntermediateKey = kType_AppRootKey | kTypeModifier_IncorporatesEpochKey,
  kNone = kType_None | 0x0000,
  kFabricSecret = kType_General | 0x0001,
  kFabricRootKey = kType_AppRootKey | (0 << kShift_RootKeyNumber),
  kClientRootKey = kType_AppRootKey | (1 << kShift_RootKeyNumber),
  kServiceRootKey = kType_AppRootKey | (2 << kShift_RootKeyNumber),
  kKeyNumber_Max = kMask_KeyNumber
}
enum
Các trường, mã và cờ của khóa dệt công khai.

Hàm tĩnh công khai

ConvertToCurrentAppKeyId(uint32_t keyId)
uint32_t
Chuyển đổi mã khóa nhóm ứng dụng thành mã khóa hiện tại của ứng dụng.
ConvertToStaticAppKeyId(uint32_t keyId)
uint32_t
Chuyển đổi mã khoá ứng dụng thành mã khoá ứng dụng tĩnh.
DescribeKey(uint32_t keyId)
const char *
Giải mã giá trị nhận dạng khóa Weave bằng một chuỗi mô tả.
GetAppGroupLocalNumber(uint32_t keyId)
uint8_t
Lấy số địa phương của nhóm ứng dụng dùng để lấy khóa ứng dụng đã chỉ định.
GetAppGroupMasterKeyId(uint32_t keyId)
uint32_t
Nhận mã khóa ứng dụng chính đã được dùng để lấy khóa ứng dụng đã chỉ định.
GetEpochKeyId(uint32_t keyId)
uint32_t
Lấy mã khóa ứng dụng của nhóm ứng dụng dùng để lấy khóa ứng dụng đã chỉ định.
GetEpochKeyNumber(uint32_t keyId)
uint8_t
Lấy số khóa ứng dụng của nhóm ứng dụng dùng để lấy khóa ứng dụng được chỉ định.
GetRootKeyId(uint32_t keyId)
uint32_t
Nhận mã khóa ứng dụng gốc đã được dùng để lấy khóa ứng dụng đã chỉ định.
GetRootKeyNumber(uint32_t keyId)
uint8_t
Nhận số khóa gốc của nhóm ứng dụng đã được dùng để lấy khóa ứng dụng đã chỉ định.
GetType(uint32_t keyId)
uint32_t
Lấy loại khóa Weave của mã khóa đã chỉ định.
IncorporatesAppGroupMasterKey(uint32_t keyId)
bool
Xác định xem mã khóa nhóm ứng dụng đã chỉ định có kết hợp khóa chính của nhóm hay không.
IncorporatesEpochKey(uint32_t keyId)
bool
Xác định xem mã khóa nhóm ứng dụng đã chỉ định có kết hợp khóa epoch hay không.
IncorporatesRootKey(uint32_t keyId)
bool
Xác định xem mã khóa ứng dụng đã chỉ định có kết hợp khóa gốc hay không.
IsAppEpochKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại khóa kỷ niệm ứng dụng hay không.
IsAppGroupKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc một trong các loại khóa nhóm ứng dụng (tĩnh hay xoay) không.
IsAppGroupMasterKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại khóa chính của nhóm ứng dụng hay không.
IsAppRootKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại khóa gốc của ứng dụng hay không.
IsAppRotatingKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại xoay vòng ứng dụng hay không.
IsAppStaticKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại tĩnh của ứng dụng hay không.
IsGeneralKey(uint32_t keyId)
bool
Xác định xem mã khóa đã chỉ định có thuộc loại chung hay không.
IsMessageEncryptionKeyId(uint32_t keyId, bool allowLogicalKeys)
bool
Hãy xác định xem một mã khóa nhất định có xác định một khóa phù hợp để mã hóa thông báo Weave không.
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
bool
Xác định xem hai mã khóa có xác định cùng một khóa hay không, hoặc trong trường hợp các khóa xoay vòng, thì cùng một nhóm khóa sẽ độc lập với mọi kỷ nguyên cụ thể.
IsSessionKey(uint32_t keyId)
bool
Xác định xem mã khóa được chỉ định có thuộc loại phiên hay không.
IsValidKeyId(uint32_t keyId)
bool
Xác định xem giá trị nhận dạng khóa có giá trị (pháp lý) hợp lệ hay không.
MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
uint32_t
Tạo mã khóa chính của nhóm ứng dụng theo số cục bộ của nhóm ứng dụng.
MakeAppIntermediateKeyId(uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey)
uint32_t
Xây dựng mã khóa trung gian của ứng dụng dựa trên mã khóa thành phần.
MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Tạo mã khóa nhóm ứng dụng dựa trên mã khóa thành phần và các thông tin khác.
MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Tạo mã khóa xoay vòng của ứng dụng dựa trên mã khóa thành phần và các thông tin khác.
MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
uint32_t
Tạo mã khóa tĩnh của ứng dụng dựa trên mã khóa thành phần.
MakeEpochKeyId(uint8_t epochKeyNumber)
uint32_t
Tạo mã khóa gốc của nhóm ứng dụng đã cung cấp số điện thoại chính.
MakeGeneralKeyId(uint16_t generalKeyNumber)
uint16_t
Tạo mã khóa chung dựa trên số khóa chung.
MakeRootKeyId(uint8_t rootKeyNumber)
uint32_t
Tạo mã khóa gốc của nhóm ứng dụng dựa trên số khóa gốc.
MakeSessionKeyId(uint16_t sessionKeyNumber)
uint16_t
Tạo mã khoá phiên vì đã cho số khoá phiên.
UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
uint32_t
Cập nhật mã khoá nhóm ứng dụng bằng số khoá mới của hệ thống.
UsesCurrentEpochKey(uint32_t keyId)
bool
Xác định xem mã khóa nhóm ứng dụng đã chỉ định có sử dụng khóa "current" epoch hay không.

Loại công khai

@52

 @52

Các trường, mã và cờ của khóa dệt công khai.

Thuộc tính
kClientRootKey

Mã khóa gốc của ứng dụng.

kFabricRootKey

Mã gốc gốc vải.

kFabricSecret

Mã bí mật vải dệt.

kKeyNumber_Max

Giá trị tối đa cho các trường con của mã khóa.

kNone

Tạo mã khóa toàn cầu.

Mã khóa Weave chưa chỉ định.

kServiceRootKey

Mã khóa gốc của dịch vụ.

kType_AppEpochKey

Loại khóa Epoch của nhóm ứng dụng.

kType_AppGroupMasterKey

Loại khóa chính của nhóm ứng dụng.

kType_AppIntermediateKey

Loại khóa trung gian của nhóm ứng dụng.

kType_AppRootKey

Các loại khóa Weave (ngoài các loại mã hóa thư Weave).

kType_AppRotatingKey

Loại khóa xoay ứng dụng.

kType_AppStaticKey

Loại khóa tĩnh của ứng dụng.

kType_General

Loại khóa chung.

kType_None

Các loại khóa Weave dùng để mã hóa tin nhắn Weave.

kType_Session

Loại khóa phiên.

Hàm tĩnh công khai

ConvertToCurrentAppKeyId

uint32_t ConvertToCurrentAppKeyId(
  uint32_t keyId
)

Chuyển đổi mã khóa nhóm ứng dụng thành mã khóa hiện tại của ứng dụng.

Thông tin chi tiết
Các thông số
[in] keyId
ID khoá ứng dụng.
Trả về
mã khóa ứng dụng hiện tại.

ConvertToStaticAppKeyId

uint32_t ConvertToStaticAppKeyId(
  uint32_t keyId
)

Chuyển đổi mã khoá ứng dụng thành mã khoá ứng dụng tĩnh.

Thông tin chi tiết
Các thông số
[in] keyId
ID khoá ứng dụng.
Trả về
Mã khóa tĩnh của ứng dụng.

Khóa mô tả

const char * DescribeKey(
  uint32_t keyId
)

Giải mã giá trị nhận dạng khóa Weave bằng một chuỗi mô tả.

Thông tin chi tiết
Các thông số
[in] keyId
Dẫn mã khóa để giải mã và trả về một chuỗi mô tả.
Trả về
Con trỏ đến một chuỗi kết thúc NULL mô tả mã khóa được chỉ định.

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

Lấy số địa phương của nhóm ứng dụng dùng để lấy khóa ứng dụng đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
mã số địa phương của nhóm ứng dụng.

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

Nhận mã khóa ứng dụng chính đã được dùng để lấy khóa ứng dụng đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
mã nhận dạng chính của nhóm ứng dụng.

GetEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

Lấy mã khóa ứng dụng của nhóm ứng dụng dùng để lấy khóa ứng dụng đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
epoch ID ID.

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

Lấy số khóa ứng dụng của nhóm ứng dụng dùng để lấy khóa ứng dụng được chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
số Epoch epoch.

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

Nhận mã khóa ứng dụng gốc đã được dùng để lấy khóa ứng dụng đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
mã khóa gốc.

Số tiền gốc

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

Nhận số khóa gốc của nhóm ứng dụng đã được dùng để lấy khóa ứng dụng đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
số khóa gốc.

Loại

uint32_t GetType(
  uint32_t keyId
)

Lấy loại khóa Weave của mã khóa đã chỉ định.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
loại mã khóa.

Kết hợp AppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

Xác định xem mã khóa nhóm ứng dụng đã chỉ định có kết hợp khóa chính của nhóm hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
true nếu keyId kết hợp với khóa chính của nhóm.

Kết hợp EpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

Xác định xem mã khóa nhóm ứng dụng đã chỉ định có kết hợp khóa epoch hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
true nếu keyId kết hợp với epoch key.

Tích hợp

bool IncorporatesRootKey(
  uint32_t keyId
)

Xác định xem mã khóa ứng dụng đã chỉ định có kết hợp khóa gốc hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
true nếu keyId kết hợp với khóa gốc.

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại khóa kỷ niệm ứng dụng hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu khóa id của loại khóa epoch ứng dụng.

Khóa nhóm ứng dụng

bool IsAppGroupKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc một trong các loại khóa nhóm ứng dụng (tĩnh hay xoay) không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu keyId thuộc loại khóa tĩnh hoặc xoay.

Khóa nhóm ứng dụng

bool IsAppGroupMasterKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại khóa chính của nhóm ứng dụng hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu khóa id của loại khóa chính của ứng dụng.

Khóa ứng dụng

bool IsAppRootKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại khóa gốc của ứng dụng hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu keyId của loại khóa gốc ứng dụng.

Khóa ứng dụng

bool IsAppRotatingKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại xoay vòng ứng dụng hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu khóa phím của loại xoay vòng ứng dụng.

Khóa ứng dụng tĩnh

bool IsAppStaticKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại tĩnh của ứng dụng hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu khóa id của loại tĩnh ứng dụng.

Khóa chung

bool IsGeneralKey(
  uint32_t keyId
)

Xác định xem mã khóa đã chỉ định có thuộc loại chung hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu keyId có loại Chung.

IsMessageEncryptionKeyId

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

Hãy xác định xem một mã khóa nhất định có xác định một khóa phù hợp để mã hóa thông báo Weave không.

Thông tin chi tiết
Các thông số
[in] keyId
Mã khóa dệt.
[in] allowLogicalKeys
Chỉ định xem mã khóa logic (chẳng hạn như khóa "current" xoay vòng) có được coi là phù hợp để mã hóa thông báo hay không.
Trả về
true Nếu có thể sử dụng khóa đã xác định để mã hóa thông báo Weave.

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

Xác định xem hai mã khóa có xác định cùng một khóa hay không, hoặc trong trường hợp các khóa xoay vòng, thì cùng một nhóm khóa sẽ độc lập với mọi kỷ nguyên cụ thể.

Thông tin chi tiết
Các thông số
[in] keyId1
Mã khóa đầu tiên để kiểm tra.
[in] keyId2
Mã khóa thứ hai để kiểm tra.
Trả về
True nếu các mã khóa đại diện cho cùng một khóa.

Khóa phiên

bool IsSessionKey(
  uint32_t keyId
)

Xác định xem mã khóa được chỉ định có thuộc loại phiên hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
Trả về
true nếu khóa id của loại phiên.

Khóa hợp lệ

bool IsValidKeyId(
  uint32_t keyId
)

Xác định xem giá trị nhận dạng khóa có giá trị (pháp lý) hợp lệ hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Mã khóa dệt.
Trả về
true nếu giá trị ID khóa hợp lệ.

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

Tạo mã khóa chính của nhóm ứng dụng theo số cục bộ của nhóm ứng dụng.

Thông tin chi tiết
Các thông số
[in] appGroupLocalNumber
Số địa phương của nhóm ứng dụng.
Trả về
mã nhận dạng chính của nhóm ứng dụng.

Mã khóa quảng cáo xen kẽ

uint32_t MakeAppIntermediateKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  bool useCurrentEpochKey
)

Xây dựng mã khóa trung gian của ứng dụng dựa trên mã khóa thành phần.

Thông tin chi tiết
Các thông số
[in] rootKeyId
Mã khóa gốc được dùng để lấy khóa trung gian của ứng dụng.
[in] epochKeyId
Mã khóa Epoch dùng để lấy khóa trung gian của ứng dụng.
[in] useCurrentEpochKey
Một cờ boolean cho biết liệu có nên lấy khóa bằng cách sử dụng khóa "current" khóa epoch hay không.
Trả về
mã khóa trung gian của ứng dụng.

Mã khóa ứng dụng

uint32_t MakeAppKeyId(
  uint32_t keyType,
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

Tạo mã khóa nhóm ứng dụng dựa trên mã khóa thành phần và các thông tin khác.

Thông tin chi tiết
Các thông số
[in] keyType
Loại khóa nhóm ứng dụng phái sinh.
[in] rootKeyId
Mã khóa gốc được dùng để lấy khóa nhóm ứng dụng.
[in] epochKeyId
Mã khóa Epoch dùng để lấy khóa nhóm ứng dụng.
[in] appGroupMasterKeyId
Mã khóa chính của nhóm ứng dụng dùng để lấy khóa nhóm ứng dụng.
[in] useCurrentEpochKey
Một cờ boolean cho biết liệu có nên lấy khóa bằng cách sử dụng khóa "current" khóa epoch hay không.
Trả về
mã khóa nhóm ứng dụng.

Tạo khóa ứng dụng

uint32_t MakeAppRotatingKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

Tạo mã khóa xoay vòng của ứng dụng dựa trên mã khóa thành phần và các thông tin khác.

Thông tin chi tiết
Các thông số
[in] rootKeyId
Mã khóa gốc được dùng để lấy khóa xoay vòng ứng dụng.
[in] epochKeyId
Mã khóa Epoch dùng để lấy khóa xoay vòng ứng dụng.
[in] appGroupMasterKeyId
Mã khóa chính của nhóm ứng dụng dùng để lấy khóa xoay vòng ứng dụng.
[in] useCurrentEpochKey
Một cờ boolean cho biết liệu có nên lấy khóa bằng cách sử dụng khóa "current" khóa epoch hay không.
Trả về
mã xoay vòng ứng dụng.

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

Tạo mã khóa tĩnh của ứng dụng dựa trên mã khóa thành phần.

Thông tin chi tiết
Các thông số
[in] rootKeyId
Mã khóa gốc dùng để lấy khóa tĩnh của ứng dụng.
[in] appGroupMasterKeyId
Mã khóa chính của nhóm ứng dụng dùng để lấy khóa tĩnh của ứng dụng.
Trả về
Mã khóa tĩnh của ứng dụng.

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

Tạo mã khóa gốc của nhóm ứng dụng đã cung cấp số điện thoại chính.

Thông tin chi tiết
Các thông số
[in] epochKeyNumber
Số Epoch key.
Trả về
epoch ID ID.

Mã khóa chung

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

Tạo mã khóa chung dựa trên số khóa chung.

Thông tin chi tiết
Các thông số
[in] generalKeyNumber
Số khoá chung.
Trả về
mã khóa chung.

Mã khóa gốc

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

Tạo mã khóa gốc của nhóm ứng dụng dựa trên số khóa gốc.

Thông tin chi tiết
Các thông số
[in] rootKeyNumber
Số khóa gốc.
Trả về
mã khóa gốc.

Khóa phiên tạo

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

Tạo mã khoá phiên vì đã cho số khoá phiên.

Thông tin chi tiết
Các thông số
[in] sessionKeyNumber
Số khoá của phiên.
Trả về
mã khóa phiên.

Cập nhậtEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

Cập nhật mã khoá nhóm ứng dụng bằng số khoá mới của hệ thống.

Thông tin chi tiết
Các thông số
[in] keyId
ID khoá ứng dụng.
[in] epochKeyId
Mã khóa Epoch (sẽ được sử dụng trong quá trình tạo mã khóa ứng dụng cập nhật).
Trả về
mã khóa ứng dụng.

Sử dụngCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

Xác định xem mã khóa nhóm ứng dụng đã chỉ định có sử dụng khóa "current" epoch hay không.

Thông tin chi tiết
Các thông số
[in] keyId
Tạo mã nhận dạng khóa nhóm ứng dụng.
Trả về
true nếu keyId cho biết việc sử dụng khóa epoch hiện tại.