nl::Weave::WeaveKeyId

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

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

Résumé

Cette classe contient des types de clés, des options de clé, une définition des champs d'ID de clé et des fonctions d'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
}
énum
Champs, indicateurs et types de clé Weave publique.

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
Permet d'obtenir l'ID de clé principale du groupe d'applications utilisé pour obtenir 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 qui a été utilisé pour dériver la clé d'application spécifiée.
GetEpochKeyNumber(uint32_t keyId)
uint8_t
Permet d'obtenir le numéro de la clé d'époque du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetRootKeyId(uint32_t keyId)
uint32_t
Permet d'obtenir l'ID de la 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 la clé racine du groupe d'applications utilisé pour dériver la clé d'application spécifiée.
GetType(uint32_t keyId)
uint32_t
Récupère le type de clé Weave de l'ID de clé spécifié.
IncorporatesAppGroupMasterKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié incorpore la clé principale du groupe.
IncorporatesEpochKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié intègre une clé epoch.
IncorporatesRootKey(uint32_t keyId)
bool
Déterminez si l'ID de clé du groupe d'applications spécifié incorpore la clé racine.
IsAppEpochKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type clé 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 de type clé principale du groupe d'applications.
IsAppRootKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type de clé racine d'application.
IsAppRotatingKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est de type rotatif d'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 particulière.
IsSessionKey(uint32_t keyId)
bool
Déterminez si l'ID de clé spécifié est d'un type de session.
IsValidKeyId(uint32_t keyId)
bool
Déterminez si l'identifiant de clé a une valeur (légale) valide.
MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
uint32_t
Crée 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
Crée l'ID de clé intermédiaire de l'application en fonction des ID de clés constitutifs.
MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Créez l'ID de clé du groupe d'applications à partir des ID des clés composantes et d'autres informations.
MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
Créez une application en effectuant une rotation des ID de clé à partir des ID de clé constitutifs et d'autres informations.
MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
uint32_t
Crée un ID de clé statique d'application en fonction des ID de clés constitutifs.
MakeEpochKeyId(uint8_t epochKeyNumber)
uint32_t
Crée l'ID de clé racine du groupe d'applications en fonction du numéro de clé d'époque.
MakeGeneralKeyId(uint16_t generalKeyNumber)
uint16_t
Construire l'ID de clé général à partir du numéro de clé général.
MakeRootKeyId(uint8_t rootKeyNumber)
uint32_t
Crée l'ID de clé racine du groupe d'applications en fonction du numéro de clé racine donné.
MakeSessionKeyId(uint16_t sessionKeyNumber)
uint16_t
Créez l'ID de clé de session fourni par le numéro de clé de session.
UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
uint32_t
Mettez à jour l'ID de clé du groupe d'applications avec le nouveau numéro de clé d'époque.
UsesCurrentEpochKey(uint32_t keyId)
bool
Déterminer si l'ID de clé du groupe d'applications spécifié utilise la valeur "actuelle" clé epoch.

Types publics

@52

 @52

Champs, indicateurs et types de clé Weave publique.

Propriétés
kClientRootKey

ID de la clé racine du client.

kFabricRootKey

ID de la clé racine Fabric.

kFabricSecret

ID secret du tissu Weave.

kKeyNumber_Max

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

kNone

ID de clé globaux Weave.

ID de clé Weave non spécifié.

kServiceRootKey

ID de la 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

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

kType_AppRotatingKey

Type de clé de rotation 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 terminée par la 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é du groupe d'applications Weave.
Renvoie
le numéro local du groupe d'applications.

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

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

Détails
Paramètres
[in] keyId
Identifiant de clé du groupe d'applications Weave.
Renvoie
ID de la 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 qui a été utilisé pour dériver la clé d'application spécifiée.

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

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

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

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

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

Permet d'obtenir l'ID de la 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é du groupe d'applications Weave.
Renvoie
ID de clé racine.

GetRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

Récupère le numéro de la 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é du groupe d'applications Weave.
Renvoie
numéro de clé racine.

GetType

uint32_t GetType(
  uint32_t keyId
)

Récupère le type de clé Weave de l'ID de clé spécifié.

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

IncorporatesAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

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

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

IncorporatesEpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

Déterminez si l'ID de clé du groupe d'applications spécifié intègre une clé epoch.

Détails
Paramètres
[in] keyId
Identifiant de clé du groupe d'applications Weave.
Renvoie
"true" si l'ID de clé inclut une clé d'époque.

IncorporatesRootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

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

Détails
Paramètres
[in] keyId
Identifiant de clé du groupe d'applications Weave.
Renvoie
Valeur true si l'ID de clé inclut une clé racine.

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

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

Détails
Paramètres
[in] keyId
Identifiant de clé Weave.
Renvoie
"true" si le keyId d'un type de clé epoch de l'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 clé Weave.
Renvoie
"true" si l'ID de clé est de type rotatif ou statique.

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

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

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

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

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

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

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

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

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

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 clé Weave.
Renvoie
"true" si 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 clé Weave.
Renvoie
"true" si l'ID de clé est de type général.

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é logique (tels que la clé alternée "actuelle") doivent être considérés comme adaptés au chiffrement des messages.
Renvoie
"true" si la clé identifiée peut être utilisée pour chiffrer des 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 particulière.

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 d'un type de session.

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

IsValidKeyId

bool IsValidKeyId(
  uint32_t keyId
)

Déterminez si l'identifiant de clé a une valeur (légale) valide.

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

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

Créez 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
ID de la clé principale du groupe d'applications.

MakeAppIntermediateKeyId

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

Crée l'ID de clé intermédiaire de l'application en fonction des ID de clés constitutifs.

Détails
Paramètres
[in] rootKeyId
ID de clé racine permettant de 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 "current" clé epoch.
Renvoie
l'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
)

Créez l'ID de clé du groupe d'applications à partir des ID des clés composantes et d'autres informations.

Détails
Paramètres
[in] keyType
Type de clé de groupe d'applications dérivée.
[in] rootKeyId
ID de clé racine utilisé pour obtenir 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 la clé principale du groupe d'applications utilisé pour obtenir la clé du groupe d'applications.
[in] useCurrentEpochKey
Indicateur booléen qui indique si la clé doit être dérivée à l'aide de "current" clé epoch.
Renvoie
l'ID de clé du groupe d'applications.

MakeAppRotatingKeyId

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

Créez une application en effectuant une rotation des ID de clé à partir des ID de clé constitutifs et d'autres informations.

Détails
Paramètres
[in] rootKeyId
ID de la clé racine permettant de dériver la clé rotative de l'application.
[in] epochKeyId
ID de clé epoch utilisé pour dériver la clé rotative de l'application.
[in] appGroupMasterKeyId
ID de clé principale du groupe d'applications utilisé pour 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 "current" clé epoch.
Renvoie
l'ID de clé de rotation de l'application.

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

Crée un ID de clé statique d'application en fonction des ID de clés constitutifs.

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

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

Crée l'ID de clé racine du groupe d'applications en fonction du numéro de clé d'époque.

Détails
Paramètres
[in] epochKeyNumber
Clé epoch.
Renvoie
l'identifiant de la clé epoch.

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

Construire 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
un ID de clé général.

MakeRootKeyId

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

Crée l'ID de clé racine du groupe d'applications en fonction du numéro de clé racine donné.

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

MakeSessionKeyId

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

Créez l'ID de clé de session fourni par le numéro de clé de session.

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

UpdateEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

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

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

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

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

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