nl::Weave::WeaveKeyId

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

Définition de l'identifiant de la clé Weave.

Résumé

Cette classe contient des types de clés, des indicateurs de clé, la définition des champs d'ID de clé et des fonctions API.

Types publics

@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
Champs, indicateurs et types de clés Weave publiques.

Fonctions statiques publiques

ConvertToCurrentAppKeyId(uint32_t keyId)
uint32_t
Convertir l'ID de clé du groupe d'applications en ID de clé actuel de l'application.
ConvertToStaticAppKeyId(uint32_t keyId)
uint32_t
Convertir l'ID de clé d'application en ID de clé statique d'application
DescribeKey(uint32_t keyId)
const char *
Décodez un identifiant de clé Weave à l'aide d'une chaîne descriptive.
GetAppGroupLocalNumber(uint32_t keyId)
uint8_t
Récupère le numéro local du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetAppGroupMasterKeyId(uint32_t keyId)
uint32_t
Récupère l'ID de clé principale du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetEpochKeyId(uint32_t keyId)
uint32_t
Permet d'obtenir l'ID de clé epoch du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetEpochKeyNumber(uint32_t keyId)
uint8_t
Permet d'obtenir le numéro de clé epoch du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetRootKeyId(uint32_t keyId)
uint32_t
Récupère l'ID de clé racine du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetRootKeyNumber(uint32_t keyId)
uint8_t
Récupère le numéro de clé racine du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetType(uint32_t keyId)
uint32_t
Permet d'obtenir le type de clé Weave de l'ID de clé spécifié.
IncorporatesAppGroupMasterKey(uint32_t keyId)
bool
Déterminez si l'ID de clé de groupe d'applications spécifié inclut la clé principale du groupe.
IncorporatesEpochKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié inclut la clé epoch.
IncorporatesRootKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié inclut la clé racine.
IsAppEpochKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type "Epoch de l'application".
IsAppGroupKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié appartient à l'un des types de clés du groupe d'applications (statique ou rotative).
IsAppGroupMasterKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est un type de clé principale de groupe d'applications.
IsAppRootKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est un type de clé racine d'application.
IsAppRotatingKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type rotatif de l'application.
IsAppStaticKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type statique d'application.
IsGeneralKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type général.
IsMessageEncryptionKeyId(uint32_t keyId, bool allowLogicalKeys)
bool
Déterminez si un ID de clé donné identifie une clé adaptée au chiffrement des messages Weave.
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
bool
Détermine si deux ID de clé identifient la même clé ou, dans le cas d'une rotation de clés, le même groupe de clés indépendamment d'une époque donnée.
IsSessionKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type session.
IsValidKeyId(uint32_t keyId)
bool
Déterminez si la valeur (légale) de l'identifiant de clé est valide.
MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
uint32_t
Construit l'ID de clé principale du groupe d'applications en fonction du numéro local du groupe d'applications.
MakeAppIntermediateKeyId(uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey)
uint32_t
Permet de construire un ID de clé intermédiaire d'application à partir des ID de clé constitutifs.
MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Permet de construire l'ID de clé du groupe d'applications à partir des ID de clé des composants et d'autres informations.
MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Permet de construire une rotation des ID de clé d'application à partir des ID de clé des composants et d'autres informations.
MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
uint32_t
Permet de construire un ID de clé statique d'application à partir des ID de clé des composants.
MakeEpochKeyId(uint8_t epochKeyNumber)
uint32_t
Construit l'ID de clé racine du groupe d'applications en fonction du numéro de clé de l'epoch.
MakeGeneralKeyId(uint16_t generalKeyNumber)
uint16_t
Construit l'ID de clé général à partir du numéro de clé général.
MakeRootKeyId(uint8_t rootKeyNumber)
uint32_t
Construit l'ID de clé racine du groupe d'applications à partir du numéro de clé racine.
MakeSessionKeyId(uint16_t sessionKeyNumber)
uint16_t
Construire l'ID de clé de session à partir du numéro de clé de session.
UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
uint32_t
Mise à jour de l'ID de clé du groupe d'applications avec le nouveau numéro de clé epoch.
UsesCurrentEpochKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié utilise la clé de l'epoch "actuelle".

Types publics

@52

 @52

Champs, indicateurs et types de clés Weave publiques.

Propriétés
kClientRootKey

ID de la clé racine du client.

kFabricRootKey

ID de clé racine Fabric.

kFabricSecret

Identifiant secret du tissu tissé.

kKeyNumber_Max

Valeurs maximales pour les sous-champs d'ID de clé.

kNone

Tisser des ID de clé globaux.

ID de clé Weave non spécifié.

kServiceRootKey

ID de clé racine du service.

kType_AppEpochKey

Type de clé epoch du groupe d'applications.

kType_AppGroupMasterKey

Type de clé principale du groupe d'applications.

kType_AppIntermediateKey

Type de clé intermédiaire du groupe d'applications.

kType_AppRootKey

les types de clés Weave (autres que les types de chiffrement des messages Weave).

kType_AppRotatingKey

Type de clé rotative de l'application.

kType_AppStaticKey

Type de clé statique de l'application.

kType_General

Type de clé général.

kType_None

Types de clés Weave utilisés pour le chiffrement des messages Weave.

kType_Session

Type de clé de session

Fonctions statiques publiques

ConvertToCurrentAppKeyId

uint32_t ConvertToCurrentAppKeyId(
  uint32_t keyId
)

Convertir l'ID de clé du groupe d'applications en ID de clé actuel de l'application.

Détails
Paramètres
[in] keyId
ID de clé d'application.
Renvoie
l'ID de clé actuel de l'application.

ConvertToStaticAppKeyId

uint32_t ConvertToStaticAppKeyId(
  uint32_t keyId
)

Convertir l'ID de clé d'application en ID de clé statique d'application

Détails
Paramètres
[in] keyId
ID de clé d'application.
Renvoie
l'ID de clé statique de l'application.

DescribeKey

const char * DescribeKey(
  uint32_t keyId
)

Décodez un identifiant de clé Weave à l'aide d'une chaîne descriptive.

Détails
Paramètres
[in] keyId
ID de clé Weave à décoder et pour lequel renvoyer une chaîne descriptive.
Renvoie
Pointeur vers une chaîne se terminant par une valeur NULL décrivant l'ID de clé spécifié.

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

Récupère le numéro local du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
numéro local du groupe d'applications.

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

Récupère l'ID de clé principale du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
l'ID de clé principale du groupe d'applications.

GetEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

Permet d'obtenir l'ID de clé epoch du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
de clé "epoch".

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

Permet d'obtenir le numéro de clé epoch du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
epoch.

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

Récupère l'ID de clé racine du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
ID de clé racine.

GetRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

Récupère le numéro de clé racine du groupe d'applications utilisé pour dériver la clé d'application spécifiée.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
numéro de clé racine.

GetType

uint32_t GetType(
  uint32_t keyId
)

Permet d'obtenir le type de clé Weave de l'ID de clé spécifié.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
le type de l'ID de clé.

IncorporatesAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

Déterminez si l'ID de clé de groupe d'applications spécifié inclut la clé principale du groupe.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
true si l’ID de clé intègre la clé principale du groupe.

IncorporatesEpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

Déterminez si l'ID de clé du groupe d'applications spécifié inclut la clé epoch.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
La valeur est "true" si l'ID de clé intègre la clé "epoch".

IncorporatesRootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

Déterminez si l'ID de clé du groupe d'applications spécifié inclut la clé racine.

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
La valeur est "true" si l'ID de clé intègre la clé racine.

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est de type "Epoch de l'application".

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" si l'ID de clé (keyId) d'un type de clé epoch d'application.

IsAppGroupKey

bool IsAppGroupKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié appartient à l'un des types de clés du groupe d'applications (statique ou rotative).

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
La valeur est "true" si l'ID de clé est de type statique ou rotatif.

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est un type de clé principale de groupe d'applications.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" si l'ID de clé d'un type de clé principale de groupe d'applications.

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est un type de clé racine d'application.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" si l'ID de clé (keyId) d'un type de clé racine d'application.

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est de type rotatif de l'application.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" si l'ID de clé (keyId) d'un type de rotation d'application.

IsAppStaticKey

bool IsAppStaticKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est de type statique d'application.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" s'il s'agit de l'ID de clé d'un type statique d'application.

IsGeneralKey

bool IsGeneralKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est de type général.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
La valeur est "true" si l'ID de clé est de type "General".

IsMessageEncryptionKeyId

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

Déterminez si un ID de clé donné identifie une clé adaptée au chiffrement des messages Weave.

Détails
Paramètres
[in] keyId
ID de clé Weave.
[in] allowLogicalKeys
Indique si les ID de clés logiques (tels que la clé rotative "actuelle") doivent être considérés comme adaptés au chiffrement des messages.
Renvoie
La valeur "true" si la clé identifiée peut être utilisée pour chiffrer les messages Weave.

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

Détermine si deux ID de clé identifient la même clé ou, dans le cas d'une rotation de clés, le même groupe de clés indépendamment d'une époque donnée.

Détails
Paramètres
[in] keyId1
Premier ID de clé à tester.
[in] keyId2
Deuxième ID de clé à tester.
Renvoie
"True" si les ID de clé représentent la même clé.

IsSessionKey

bool IsSessionKey(
  uint32_t keyId
)

Déterminez si l'ID de clé spécifié est de type session.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
Renvoie
"true" si l'ID de clé (keyId) d'un type de session.

IsValidKeyId

bool IsValidKeyId(
  uint32_t keyId
)

Déterminez si la valeur (légale) de l'identifiant de clé est valide.

Détails
Paramètres
[in] keyId
ID de clé Weave.
Renvoie
"true" si l'ID de clé est valide.

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

Construit l'ID de clé principale du groupe d'applications en fonction du numéro local du groupe d'applications.

Détails
Paramètres
[in] appGroupLocalNumber
Numéro local du groupe d'applications.
Renvoie
l'ID de clé principale du groupe d'applications.

MakeAppIntermediateKeyId

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

Permet de construire un ID de clé intermédiaire d'application à partir des ID de clé constitutifs.

Détails
Paramètres
[in] rootKeyId
ID de clé racine utilisé pour dériver la clé intermédiaire de l'application.
[in] epochKeyId
ID de clé epoch utilisé pour dériver la clé intermédiaire de l'application.
[in] useCurrentEpochKey
Indicateur booléen qui indique si la clé doit être dérivée à l'aide de la clé d'epoch "actuelle".
Renvoie
ID de clé intermédiaire de l'application.

MakeAppKeyId

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

Permet de construire l'ID de clé du groupe d'applications à partir des ID de clé des composants et d'autres informations.

Détails
Paramètres
[in] keyType
Type de clé de groupe d'applications dérivé.
[in] rootKeyId
ID de clé racine utilisé pour dériver la clé du groupe d'applications.
[in] epochKeyId
ID de clé epoch utilisé pour dériver la clé du groupe d'applications.
[in] appGroupMasterKeyId
ID de clé principale du groupe d'applications utilisé pour dériver la clé du groupe d'applications.
[in] useCurrentEpochKey
Indicateur booléen qui indique si la clé doit être dérivée à l'aide de la clé d'epoch "actuelle".
Renvoie
ID de clé du groupe d'applications.

MakeAppRotatingKeyId

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

Permet de construire une rotation des ID de clé d'application à partir des ID de clé des composants et d'autres informations.

Détails
Paramètres
[in] rootKeyId
ID de clé racine utilisé pour dériver la clé rotative de l'application.
[in] epochKeyId
ID de clé epoch utilisé pour déduire la clé rotative de l'application.
[in] appGroupMasterKeyId
ID de clé principale du groupe d'applications permettant d'obtenir la clé rotative de l'application.
[in] useCurrentEpochKey
Indicateur booléen qui indique si la clé doit être dérivée à l'aide de la clé d'epoch "actuelle".
Renvoie
l'ID de clé rotatif de l'application.

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

Permet de construire un ID de clé statique d'application à partir des ID de clé des composants.

Détails
Paramètres
[in] rootKeyId
ID de clé racine utilisé pour dériver la clé statique de l'application.
[in] appGroupMasterKeyId
ID de clé principale du groupe d'applications utilisé pour dériver la clé statique de l'application.
Renvoie
l'ID de clé statique de l'application.

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

Construit l'ID de clé racine du groupe d'applications en fonction du numéro de clé de l'epoch.

Détails
Paramètres
[in] epochKeyNumber
Numéro de clé de l'epoch.
Renvoie
de clé "epoch".

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

Construit l'ID de clé général à partir du numéro de clé général.

Détails
Paramètres
[in] generalKeyNumber
Numéro de clé général.
Renvoie
l'ID de clé général.

MakeRootKeyId

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

Construit l'ID de clé racine du groupe d'applications à partir du numéro de clé racine.

Détails
Paramètres
[in] rootKeyNumber
Numéro de clé racine.
Renvoie
ID de clé racine.

MakeSessionKeyId

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

Construire l'ID de clé de session à partir du numéro de clé de session.

Détails
Paramètres
[in] sessionKeyNumber
Numéro de clé de session.
Renvoie
l'ID de clé de session.

UpdateEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

Mise à jour de l'ID de clé du groupe d'applications avec le nouveau numéro de clé epoch.

Détails
Paramètres
[in] keyId
ID de clé d'application.
[in] epochKeyId
ID de clé epoch, qui sera utilisé pour construire l'ID de clé d'application mis à jour.
Renvoie
de clé d'application.

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

Déterminez si l'ID de clé du groupe d'applications spécifié utilise la clé de l'epoch "actuelle".

Détails
Paramètres
[in] keyId
Identifiant de clé de groupe d'applications Weave.
Renvoie
La valeur est "true" si la valeur keyId indique l'utilisation de la clé d'epoch actuelle.