nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine

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

Met en œuvre la logique de base de l'objet du protocole de provisionnement des certificats Weave.

Résumé

Constructeurs et destructeurs

WeaveCertProvEngine(void)

Types publics

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
énum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
Cette fonction est le rappel de l'application qui est invoqué lors des événements de l'API Certificate Provisioning Engine.
EventType{
  kEvent_PrepareAuthorizeInfo = 1,
  kEvent_ResponseReceived = 2,
  kEvent_CommunicationError = 3
}
énum
State{
  kState_NotInitialized = 0,
  kState_Idle = 1,
  kState_PreparingBinding = 2,
  kState_RequestInProgress = 3
}
énum

Attributs publics

AppState
void *
Pointeur vers les données spécifiques à l'application.

Fonctions publiques

AbortCertificateProvisioning(void)
void
Arrête tout échange GetCertificate en cours.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Générez un message GetCertificateRequest.
GetBinding(void) const
Renvoie un pointeur vers l'objet Binding associé à WeaveCertProvEngine.
GetEventCallback(void) const
Renvoie un pointeur vers la fonction de rappel d'événement d'API actuellement configurée sur l'objet WeaveCertProvEngine.
GetMfrAttestDelegate(void) const
Renvoie un pointeur vers l'objet délégué d'attestation du fabricant actuellement configuré sur l'objet WeaveCertProvEngine.
GetOpAuthDelegate(void) const
Renvoie un pointeur vers l'objet de délégation d'authentification opérationnelle actuellement configuré sur l'objet WeaveCertProvEngine.
GetReqType(void) const
uint8_t
Récupérez le type de requête actuel.
GetState(void) const
Récupérez l'état actuel de l'objet WeaveCertProvEngine.
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
Initialisez un objet WeaveCertProvEngine en vue de l'envoi du message de demande de certificat.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
Traitement du message GetCertificateResponse.
SetBinding(Binding *binding)
void
Définit l'objet de liaison sur l'objet WeaveCertProvEngine.
SetEventCallback(EventCallback eventCallback)
void
Définit la fonction de rappel d'événement d'API sur l'objet WeaveCertProvEngine.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Définit l'objet délégué d'attestation du fabricant sur l'objet WeaveCertProvEngine.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Définit l'objet délégué d'authentification opérationnel sur l'objet WeaveCertProvEngine.
Shutdown(void)
void
Arrêtez un objet WeaveCertProvEngine précédemment initialisé.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
Démarrez le protocole de provisionnement des certificats.

Structs

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::InEventParam

Paramètres d'entrée pour l'événement de l'API de provisionnement des certificats Weave.

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::OutEventParam

Paramètres de sortie pour l'événement de l'API de provisionnement des certificats Weave.

Types publics

@246

 @246
Propriétés
kReqType_GetInitialOpDeviceCert

Le type de requête "Obtenir un certificat" permet d'obtenir un certificat opérationnel initial.

kReqType_RotateOpDeviceCert

Le type de requête "Obtenir un certificat" consiste à alterner le certificat opérationnel actuel.

EventCallback

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

Cette fonction est le rappel de l'application qui est invoqué lors des événements de l'API Certificate Provisioning Engine.

Détails
Paramètres
[in] appState
Pointeur vers les informations d'état définies par l'application associées à l'objet de moteur.
[in] eventType
ID de l'événement transmis par le rappel d'événement.
[in] inParam
Référence des paramètres d'événement d'entrée transmis par le rappel d'événement.
[in] outParam
Référence des paramètres d'événement de sortie transmis par le rappel d'événement.

EventType

 EventType
Propriétés
kEvent_CommunicationError

Une erreur de communication s'est produite lors de l'envoi d'une requête GetCertificateRequest ou de l'attente d'une réponse.

kEvent_PrepareAuthorizeInfo

L’application est invitée à préparer la charge utile pour GetCertificateRequest.

kEvent_ResponseReceived

Un message GetCertificateResponse a été reçu du pair.

État

 State
Propriétés
kState_Idle

L'objet de moteur est inactif.

kState_NotInitialized

L'objet de moteur n'est pas initialisé.

kState_PreparingBinding

L'objet de moteur attend que la liaison soit prête.

kState_RequestInProgress

Un message GetCertificateRequest a été envoyé et l'objet du moteur attend une réponse.

Attributs publics

AppState

void * AppState

Pointeur vers les données spécifiques à l'application.

Fonctions publiques

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

Arrête tout échange GetCertificate en cours.

GenerateGetCertificateRequest

WEAVE_ERROR GenerateGetCertificateRequest(
  PacketBuffer *msgBuf,
  uint8_t reqType,
  bool doMfrAttest
)

Générez un message GetCertificateRequest.

Cette méthode génère la structure Weave GetCertificateRequest encodée au format TLV de Weave.

Lors de la création du message GetCertificateRequest, la méthode envoie une requête à l'application, via les fonctions WeaveNodeOpAuthDelegate et WeaveNodeMfrAttestDelegate et l'événement API PrepareAuthorizeInfo, pour préparer la charge utile du message.

Détails
Paramètres
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le message GetCertificateRequest.
[in] reqType
Type de requête "Obtenir un certificat".
[in] doMfrAttest
Indicateur booléen qui indique si la requête doit inclure des données d'attestation du fabricant.
Valeurs renvoyées
WEAVE_NO_ERROR
Si GetCertificateRequest a été correctement généré.

GetBinding

Binding * GetBinding(
  void
) const 

Renvoie un pointeur vers l'objet Binding associé à WeaveCertProvEngine.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Renvoie un pointeur vers la fonction de rappel d'événement d'API actuellement configurée sur l'objet WeaveCertProvEngine.

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Renvoie un pointeur vers l'objet délégué d'attestation du fabricant actuellement configuré sur l'objet WeaveCertProvEngine.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Renvoie un pointeur vers l'objet de délégation d'authentification opérationnelle actuellement configuré sur l'objet WeaveCertProvEngine.

GetReqType

uint8_t GetReqType(
  void
) const 

Récupérez le type de requête actuel.

GetState

State GetState(
  void
) const 

Récupérez l'état actuel de l'objet WeaveCertProvEngine.

Init

WEAVE_ERROR Init(
  Binding *binding,
  WeaveNodeOpAuthDelegate *opAuthDelegate,
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate,
  EventCallback eventCallback,
  void *appState
)

Initialisez un objet WeaveCertProvEngine en vue de l'envoi du message de demande de certificat.

Détails
Paramètres
[in] binding
Un objet Binding qui sera utilisé pour établir la communication avec le nœud pair.
[in] opAuthDelegate
Pointeur vers un objet délégué d'authentification opérationnel qui sera utilisé pour construire et signer à l'aide des identifiants opérationnels du nœud.
[in] mfrAttestDelegate
Pointeur vers un objet délégué d'attestation du fabricant qui sera utilisé pour construire et signer la requête à l'aide des identifiants provisionnés par le fabricant du nœud.
[in] eventCallback
Pointeur vers une fonction qui sera appelée par l'objet WeaveCertProvEngine pour diffuser les événements de l'API à l'application.
[in] appState
Pointeur vers un objet défini par l'application qui sera renvoyé à l'application chaque fois qu'un événement d'API se produit.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

Traitement du message GetCertificateResponse.

Cette méthode traite la structure Weave GetCertificateResponse encodée au format TLV de Weave.

Une fois le traitement du message GetCertificateResponse terminé, la méthode appelle l'application via l'événement API ResponseReceived pour fournir le résultat.

Si le traitement du message GetCertificateResponse échoue, la méthode appelle l'application, via l'événement API CommunicationError, pour signaler l'erreur.

Détails
Paramètres
[in] msgBuf
Pointeur vers l'objet PacketBuffer contenant le message GetCertificateResponse.
Valeurs renvoyées
WEAVE_NO_ERROR
Si le message GetCertificateResponse a été correctement traité.

SetBinding

void SetBinding(
  Binding *binding
)

Définit l'objet de liaison sur l'objet WeaveCertProvEngine.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Définit la fonction de rappel d'événement d'API sur l'objet WeaveCertProvEngine.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Définit l'objet délégué d'attestation du fabricant sur l'objet WeaveCertProvEngine.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Définit l'objet délégué d'authentification opérationnel sur l'objet WeaveCertProvEngine.

Arrêt

void Shutdown(
  void
)

Arrêtez un objet WeaveCertProvEngine précédemment initialisé.

Notez que cette méthode ne peut être appelée que si la méthode Init() a déjà été appelée.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Démarrez le protocole de provisionnement des certificats.

Cette méthode lance le processus d'envoi d'un message GetCertificateRequest au service d'autorité de certification. Si le message GetCertificateResponse correspondant est reçu, il est transmis à l'application via l'événement d'API ResponseReceived.

Si l'objet Binding n'est pas à l'état "Prêt" lorsque cette méthode est appelée, une requête est envoyée à la méthode Binding::RequestPrepare() pour lancer la préparation à la demande. L'opération de requête attend alors la fin de ce processus. Tout appel à StartCertificateProvisioning() lors d'une requête précédente en cours est ignoré.

Détails
Paramètres
[in] reqType
Type de requête "Obtenir un certificat".
[in] doMfrAttest
Indicateur booléen qui indique si le protocole doit inclure des données d'attestation du fabricant.
Valeurs renvoyées
WEAVE_NO_ERROR
si StartCertificateProvisioning() a été correctement traité ;

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)