нл:: Переплетение:: WeaveKeyId

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

Определение идентификатора Weave Key.

Краткое содержание

Этот класс содержит типы ключей, ключевые флаги, определения полей идентификатора ключа и функции API.

Публичные типы

@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
}
перечисление
Поля, флаги и типы идентификатора открытого ключа Weave.

Публичные статические функции

ConvertToCurrentAppKeyId (uint32_t keyId)
uint32_t
Преобразование идентификатора ключа группы приложений в текущий идентификатор ключа приложения.
ConvertToStaticAppKeyId (uint32_t keyId)
uint32_t
Преобразование идентификатора ключа приложения в идентификатор статического ключа приложения.
DescribeKey (uint32_t keyId)
const char *
Декодируйте идентификатор ключа Weave с помощью описательной строки.
GetAppGroupLocalNumber (uint32_t keyId)
uint8_t
Получите локальный номер группы приложений, который использовался для получения указанного ключа приложения.
GetAppGroupMasterKeyId (uint32_t keyId)
uint32_t
Получите идентификатор главного ключа группы приложений, который использовался для получения указанного ключа приложения.
GetEpochKeyId (uint32_t keyId)
uint32_t
Получите идентификатор ключа эпохи группы приложений, который использовался для получения указанного ключа приложения.
GetEpochKeyNumber (uint32_t keyId)
uint8_t
Получите номер ключа эпохи группы приложений, который использовался для получения указанного ключа приложения.
GetRootKeyId (uint32_t keyId)
uint32_t
Получите идентификатор корневого ключа группы приложений, который использовался для получения указанного ключа приложения.
GetRootKeyNumber (uint32_t keyId)
uint8_t
Получите номер корневого ключа группы приложений, который использовался для получения указанного ключа приложения.
GetType (uint32_t keyId)
uint32_t
Получить тип ключа Weave для указанного идентификатора ключа.
IncorporatesAppGroupMasterKey (uint32_t keyId)
bool
Определите, включает ли указанный идентификатор ключа группы приложений главный ключ группы.
IncorporatesEpochKey (uint32_t keyId)
bool
Определите, включает ли указанный идентификатор ключа группы приложений ключ эпохи.
IncorporatesRootKey (uint32_t keyId)
bool
Определите, содержит ли указанный идентификатор ключа группы приложений корневой ключ.
IsAppEpochKey (uint32_t keyId)
bool
Определите, относится ли указанный идентификатор ключа к типу ключа эпохи приложения.
IsAppGroupKey (uint32_t keyId)
bool
Определите, принадлежит ли указанный идентификатор ключа к одному из типов ключей группы приложений (статическому или ротирующемуся).
IsAppGroupMasterKey (uint32_t keyId)
bool
Определите, относится ли указанный идентификатор ключа к типу главного ключа группы приложений.
IsAppRootKey (uint32_t keyId)
bool
Определите, относится ли указанный идентификатор ключа к типу корневого ключа приложения.
IsAppRotatingKey (uint32_t keyId)
bool
Определите, относится ли указанный идентификатор ключа к вращающемуся типу приложения.
IsAppStaticKey (uint32_t keyId)
bool
Определите, имеет ли указанный идентификатор ключа статический тип приложения.
IsGeneralKey (uint32_t keyId)
bool
Определите, имеет ли указанный идентификатор ключа общий тип.
IsMessageEncryptionKeyId (uint32_t keyId, bool allowLogicalKeys)
bool
Определите, идентифицирует ли данный идентификатор ключа ключ, подходящий для шифрования сообщений Weave.
IsSameKeyOrGroup (uint32_t keyId1, uint32_t keyId2)
bool
Определяет, идентифицируют ли два идентификатора ключа один и тот же ключ или, в случае ротации ключей, одну и ту же группу ключей независимо от какой-либо конкретной эпохи.
IsSessionKey (uint32_t keyId)
bool
Определите, относится ли указанный идентификатор ключа к типу сеанса.
IsValidKeyId (uint32_t keyId)
bool
Определите, имеет ли идентификатор ключа действительное (законное) значение.
MakeAppGroupMasterKeyId (uint8_t appGroupLocalNumber)
uint32_t
Создайте идентификатор главного ключа группы приложений по локальному номеру группы приложений.
MakeAppIntermediateKeyId (uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey)
uint32_t
Создайте идентификатор промежуточного ключа приложения с учетом идентификаторов составных ключей.
MakeAppKeyId (uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Создайте идентификатор ключа группы приложений с учетом идентификаторов составляющих ключей и другой информации.
MakeAppRotatingKeyId (uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Создайте идентификатор ротационного ключа приложения, используя идентификаторы составных ключей и другую информацию.
MakeAppStaticKeyId (uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
uint32_t
Создайте идентификатор статического ключа приложения с учетом идентификаторов составляющих ключей.
MakeEpochKeyId (uint8_t epochKeyNumber)
uint32_t
Создайте идентификатор корневого ключа группы приложений по номеру ключа эпохи.
MakeGeneralKeyId (uint16_t generalKeyNumber)
uint16_t
Создайте идентификатор общего ключа по номеру общего ключа.
MakeRootKeyId (uint8_t rootKeyNumber)
uint32_t
Создайте идентификатор корневого ключа группы приложений по номеру корневого ключа.
MakeSessionKeyId (uint16_t sessionKeyNumber)
uint16_t
Создайте идентификатор сеансового ключа по номеру сеансового ключа.
UpdateEpochKeyId (uint32_t keyId, uint32_t epochKeyId)
uint32_t
Обновите идентификатор ключа группы приложений, указав новый номер ключа эпохи.
UsesCurrentEpochKey (uint32_t keyId)
bool
Определите, использует ли указанный идентификатор ключа группы приложений «текущий» ключ эпохи.

Публичные типы

@52

 @52

Поля, флаги и типы идентификатора открытого ключа Weave.

Характеристики
kClientRootKey

Идентификатор корневого ключа клиента.

kFabricRootKey

Идентификатор корневого ключа структуры.

kFabricSecret

Секретный идентификатор переплетения ткани.

kKeyNumber_Max

Максимальные значения для подполей идентификатора ключа.

kNone

Сплетите идентификаторы глобальных ключей.

Неуказанный идентификатор ключа Weave.

kServiceRootKey

Идентификатор корневого ключа службы.

kType_AppEpochKey

Тип ключа эпохи группы приложений.

kType_AppGroupMasterKey

Тип главного ключа группы приложений.

kType_AppIntermediateKey

Тип промежуточного ключа группы приложений.

kType_AppRootKey

Типы ключей Weave (кроме типов шифрования сообщений Weave).

kType_AppRotatingKey

Тип вращающегося ключа приложения.

kType_AppStaticKey

Тип статического ключа приложения.

kType_General

Тип общего ключа.

kType_None

Типы ключей Weave, используемые для шифрования сообщений Weave.

kType_Session

Тип сеансового ключа.

Публичные статические функции

Конвертотокуррентаппкэйид

uint32_t ConvertToCurrentAppKeyId(
  uint32_t keyId
)

Преобразование идентификатора ключа группы приложений в текущий идентификатор ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа приложения.
Возврат
текущий идентификатор ключа приложения.

Конвертотостатикапкейид

uint32_t ConvertToStaticAppKeyId(
  uint32_t keyId
)

Преобразование идентификатора ключа приложения в идентификатор статического ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа приложения.
Возврат
Идентификатор статического ключа приложения.

Описать ключ

const char * DescribeKey(
  uint32_t keyId
)

Декодируйте идентификатор ключа Weave с помощью описательной строки.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave для декодирования и возврата описательной строки.
Возврат
Указатель на строку, завершающуюся NULL, описывающую указанный идентификатор ключа.

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

Получите локальный номер группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
локальный номер группы приложений.

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

Получите идентификатор главного ключа группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
Идентификатор главного ключа группы приложений.

ПолучитьEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

Получите идентификатор ключа эпохи группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
Идентификатор ключа эпохи.

ПолучитьEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

Получите номер ключа эпохи группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
ключевой номер эпохи.

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

Получите идентификатор корневого ключа группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
идентификатор корневого ключа.

ПолучитьRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

Получите номер корневого ключа группы приложений, который использовался для получения указанного ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
номер корневого ключа.

GetType

uint32_t GetType(
  uint32_t keyId
)

Получить тип ключа Weave для указанного идентификатора ключа.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
тип идентификатора ключа.

ВключаетAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

Определите, включает ли указанный идентификатор ключа группы приложений главный ключ группы.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
true, если keyId включает главный ключ группы.

Включает EpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

Определите, включает ли указанный идентификатор ключа группы приложений ключ эпохи.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
true, если keyId включает ключ эпохи.

Включает RootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

Определите, содержит ли указанный идентификатор ключа группы приложений корневой ключ.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
true, если keyId включает корневой ключ.

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

Определите, относится ли указанный идентификатор ключа к типу ключа эпохи приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId типа ключа эпохи приложения.

IsAppGroupKey

bool IsAppGroupKey(
  uint32_t keyId
)

Определите, принадлежит ли указанный идентификатор ключа к одному из типов ключей группы приложений (статическому или ротирующемуся).

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId имеет тип вращающегося или статического ключа.

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

Определите, относится ли указанный идентификатор ключа к типу главного ключа группы приложений.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId типа главного ключа группы приложений.

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

Определите, относится ли указанный идентификатор ключа к типу корневого ключа приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId типа корневого ключа приложения.

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

Определите, относится ли указанный идентификатор ключа к вращающемуся типу приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если идентификатор ключа вращающегося типа приложения.

IsAppStaticKey

bool IsAppStaticKey(
  uint32_t keyId
)

Определите, имеет ли указанный идентификатор ключа статический тип приложения.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId статического типа приложения.

IsGeneralKey

bool IsGeneralKey(
  uint32_t keyId
)

Определите, имеет ли указанный идентификатор ключа общий тип.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId имеет общий тип.

Исмессажеенкриптионкэйид

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

Определите, идентифицирует ли данный идентификатор ключа ключ, подходящий для шифрования сообщений Weave.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
[in] allowLogicalKeys
Указывает, следует ли считать идентификаторы логических ключей (например, «текущий» вращающийся ключ) подходящими для шифрования сообщений.
Возврат
true, если указанный ключ можно использовать для шифрования сообщений Weave.

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

Определяет, идентифицируют ли два идентификатора ключа один и тот же ключ или, в случае ротации ключей, одну и ту же группу ключей независимо от какой-либо конкретной эпохи.

Подробности
Параметры
[in] keyId1
Первый идентификатор ключа для проверки.
[in] keyId2
Второй идентификатор ключа для проверки.
Возврат
Истинно, если идентификаторы ключей представляют один и тот же ключ.

Иссессионкей

bool IsSessionKey(
  uint32_t keyId
)

Определите, относится ли указанный идентификатор ключа к типу сеанса.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если keyId типа сеанса.

Исвалидкейид

bool IsValidKeyId(
  uint32_t keyId
)

Определите, имеет ли идентификатор ключа действительное (законное) значение.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
Возврат
true, если значение идентификатора ключа действительно.

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

Создайте идентификатор главного ключа группы приложений по локальному номеру группы приложений.

Подробности
Параметры
[in] appGroupLocalNumber
Местный номер группы приложений.
Возврат
Идентификатор главного ключа группы приложений.

MakeAppIntermediateKeyId

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

Создайте идентификатор промежуточного ключа приложения с учетом идентификаторов составных ключей.

Подробности
Параметры
[in] rootKeyId
Идентификатор корневого ключа, используемый для получения промежуточного ключа приложения.
[in] epochKeyId
Идентификатор ключа эпохи, используемый для получения промежуточного ключа приложения.
[in] useCurrentEpochKey
Логический флаг, указывающий, следует ли получить ключ с использованием ключа «текущей» эпохи.
Возврат
Идентификатор промежуточного ключа приложения.

MakeAppKeyId

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

Создайте идентификатор ключа группы приложений с учетом идентификаторов составляющих ключей и другой информации.

Подробности
Параметры
[in] keyType
Тип ключа производной группы приложений.
[in] rootKeyId
Идентификатор корневого ключа, используемый для получения ключа группы приложений.
[in] epochKeyId
Идентификатор ключа эпохи, используемый для получения ключа группы приложений.
[in] appGroupMasterKeyId
Идентификатор главного ключа группы приложений, используемый для получения ключа группы приложений.
[in] useCurrentEpochKey
Логический флаг, указывающий, следует ли получить ключ с использованием ключа «текущей» эпохи.
Возврат
Идентификатор ключа группы приложений.

MakeAppRotatingKeyId

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

Создайте идентификатор ротационного ключа приложения, используя идентификаторы составных ключей и другую информацию.

Подробности
Параметры
[in] rootKeyId
Идентификатор корневого ключа, используемый для получения вращающегося ключа приложения.
[in] epochKeyId
Идентификатор ключа эпохи, используемый для получения вращающегося ключа приложения.
[in] appGroupMasterKeyId
Идентификатор главного ключа группы приложений, используемый для получения вращающегося ключа приложения.
[in] useCurrentEpochKey
Логический флаг, указывающий, следует ли получить ключ с использованием ключа «текущей» эпохи.
Возврат
ID вращающегося ключа приложения.

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

Создайте идентификатор статического ключа приложения с учетом идентификаторов составляющих ключей.

Подробности
Параметры
[in] rootKeyId
Идентификатор корневого ключа, используемый для получения статического ключа приложения.
[in] appGroupMasterKeyId
Идентификатор главного ключа группы приложений, используемый для получения статического ключа приложения.
Возврат
Идентификатор статического ключа приложения.

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

Создайте идентификатор корневого ключа группы приложений по номеру ключа эпохи.

Подробности
Параметры
[in] epochKeyNumber
Ключевой номер эпохи.
Возврат
Идентификатор ключа эпохи.

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

Создайте идентификатор общего ключа по номеру общего ключа.

Подробности
Параметры
[in] generalKeyNumber
Общий номер ключа.
Возврат
общий идентификатор ключа.

MakeRootKeyId

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

Создайте идентификатор корневого ключа группы приложений по номеру корневого ключа.

Подробности
Параметры
[in] rootKeyNumber
Номер корневого ключа.
Возврат
идентификатор корневого ключа.

MakeSessionKeyId

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

Создайте идентификатор сеансового ключа по номеру сеансового ключа.

Подробности
Параметры
[in] sessionKeyNumber
Номер сеансового ключа.
Возврат
идентификатор сеансового ключа.

ОбновлениеEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

Обновите идентификатор ключа группы приложений, указав новый номер ключа эпохи.

Подробности
Параметры
[in] keyId
Идентификатор ключа приложения.
[in] epochKeyId
Идентификатор ключа эпохи, который будет использоваться при создании обновленного идентификатора ключа приложения.
Возврат
идентификатор ключа приложения.

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

Определите, использует ли указанный идентификатор ключа группы приложений «текущий» ключ эпохи.

Подробности
Параметры
[in] keyId
Идентификатор ключа группы приложений Weave.
Возврат
true, если keyId указывает на использование ключа текущей эпохи.