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

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

Implementa la logica di base dell'oggetto del protocollo di provisioning dei certificati Weave.

Riepilogo

Costruttori e distruttori

WeaveCertProvEngine(void)

Tipi pubblici

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
Questa funzione è il callback dell'applicazione che viene invocato sugli eventi dell'API Certificate Provisioning Engine.
EventType{
  kEvent_PrepareAuthorizeInfo = 1,
  kEvent_ResponseReceived = 2,
  kEvent_CommunicationError = 3
}
enum
State{
  kState_NotInitialized = 0,
  kState_Idle = 1,
  kState_PreparingBinding = 2,
  kState_RequestInProgress = 3
}
enum

Attributi pubblici

AppState
void *
Un puntatore a dati specifici dell'applicazione.

Funzioni pubbliche

AbortCertificateProvisioning(void)
void
Interrompe qualsiasi scambio GetCertificate in corso.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Genera il messaggio GetCertificateRequest.
GetBinding(void) const
Restituisce un puntatore all'oggetto Binding associato a WeaveCertProvEngine.
GetEventCallback(void) const
Restituisce un puntatore alla funzione callback dell'evento API attualmente configurata nell'oggetto WeaveCertProvEngine.
GetMfrAttestDelegate(void) const
Restituisce un puntatore all'oggetto del rappresentante per l'attestazione del produttore attualmente configurato nell'oggetto WeaveCertProvEngine.
GetOpAuthDelegate(void) const
Restituisce un puntatore all'oggetto delegato dell'autenticazione operativa attualmente configurato nell'oggetto WeaveCertProvEngine.
GetReqType(void) const
uint8_t
Recupera il tipo di richiesta corrente.
GetState(void) const
Recupera lo stato corrente dell'oggetto WeaveCertProvEngine.
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
Inizializza un oggetto WeaveCertProvEngine in preparazione all'invio del messaggio di richiesta di ottenimento del certificato.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
Elabora il messaggio GetCertificateResponse.
SetBinding(Binding *binding)
void
Imposta l'oggetto di associazione sull'oggetto WeaveCertProvEngine.
SetEventCallback(EventCallback eventCallback)
void
Imposta la funzione di callback dell'evento API sull'oggetto WeaveCertProvEngine.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Imposta l'oggetto del rappresentante per l'attestazione del produttore sull'oggetto WeaveCertProvEngine.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Imposta l'oggetto delegato per l'autenticazione operativa sull'oggetto WeaveCertProvEngine.
Shutdown(void)
void
Arresta un oggetto WeaveCertProvEngine inizializzato in precedenza.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
Avvia il protocollo di provisioning dei certificati.

Strutture

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

Parametri di input per l'evento dell'API Weave Certificate Provisioning.

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

Parametri di output per l'evento dell'API Weave Certificate Provisioning.

Tipi pubblici

@246

 @246
Proprietà
kReqType_GetInitialOpDeviceCert

Il tipo di richiesta Ottieni certificato è quello di ottenere il certificato operativo iniziale.

kReqType_RotateOpDeviceCert

Il tipo di richiesta Get Certificate serve a ruotare il certificato operativo corrente.

EventCallback

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

Questa funzione è il callback dell'applicazione che viene invocato negli eventi dell'API Certificate Provisioning Engine.

Dettagli
Parametri
[in] appState
Un puntatore alle informazioni sullo stato definite dall'applicazione associate all'oggetto engine.
[in] eventType
ID evento passato dal callback dell'evento.
[in] inParam
Riferimento dei parametri evento di input passati dal callback dell'evento.
[in] outParam
Riferimento dei parametri evento di output passati dal callback evento.

EventType

 EventType
Proprietà
kEvent_CommunicationError

Si è verificato un errore di comunicazione durante l'invio di un GetCertificateRequest o l'attesa di una risposta.

kEvent_PrepareAuthorizeInfo

All'applicazione viene chiesto di preparare il payload per la richiesta GetCertificateRequest.

kEvent_ResponseReceived

Il peer ha ricevuto un messaggio GetCertificateResponse.

Stato

 State
Proprietà
kState_Idle

L'oggetto del motore è inattivo.

kState_NotInitialized

L'oggetto engine non è stato inizializzato.

kState_PreparingBinding

L'oggetto engine è in attesa che il binding sia pronto.

kState_RequestInProgress

È stato inviato un messaggio GetCertificateRequest e l'oggetto motore è in attesa di risposta.

Attributi pubblici

AppState

void * AppState

Un puntatore a dati specifici dell'applicazione.

Funzioni pubbliche

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

Interrompe qualsiasi scambio GetCertificate in corso.

GenerateGetCertificateRequest

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

Genera il messaggio GetCertificateRequest.

Questo metodo genera la struttura Weave GetCertificateRequest codificata nel formato Weave TLV.

Quando si forma il messaggio GetCertificateRequest, il metodo effettua una richiesta all'applicazione mediante le funzioni WeaveNodeOpAuthDelegate e WeaveNodeMfrAttestDelegate e l'evento API Prepare DKIMInfo, per preparare il payload del messaggio.

Dettagli
Parametri
[in] msgBuf
Un puntatore all'oggetto PacketBuffer contenente il messaggio GetCertificateRequest.
[in] reqType
Ottieni il tipo di richiesta di certificato.
[in] doMfrAttest
Un flag booleano che indica se la richiesta deve includere i dati di attestazione del produttore.
Valori restituiti
WEAVE_NO_ERROR
Se GetCertificateRequest è stato generato correttamente.

GetBinding

Binding * GetBinding(
  void
) const 

Restituisce un puntatore all'oggetto Binding associato a WeaveCertProvEngine.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Restituisce un puntatore alla funzione di callback degli eventi API attualmente configurata nell'oggetto WeaveCertProvEngine.

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Restituisce un puntatore all'oggetto del rappresentante per l'attestazione del produttore attualmente configurato nell'oggetto WeaveCertProvEngine.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Restituisce un puntatore all'oggetto del delegato di autenticazione operativo attualmente configurato nell'oggetto WeaveCertProvEngine.

GetReqType

uint8_t GetReqType(
  void
) const 

Recupera il tipo di richiesta corrente.

GetState

State GetState(
  void
) const 

Recupera lo stato attuale dell'oggetto WeaveCertProvEngine.

Inizializzazione

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

Inizializza un oggetto WeaveCertProvEngine in preparazione all'invio del messaggio di richiesta di ottenimento del certificato.

Dettagli
Parametri
[in] binding
Un oggetto Binding che verrà utilizzato per stabilire la comunicazione con il nodo peer.
[in] opAuthDelegate
Un puntatore a un oggetto delegato di autenticazione operativa che verrà utilizzato per creare e firmare utilizzando le credenziali operative del nodo.
[in] mfrAttestDelegate
Un puntatore a un oggetto del delegato di attestazione del produttore che verrà utilizzato per creare e firmare la richiesta utilizzando le credenziali di provisioning del produttore del nodo.
[in] eventCallback
Un puntatore a una funzione che verrà chiamata dall'oggetto WeaveCertProvEngine per inviare gli eventi API all'applicazione.
[in] appState
Un puntatore a un oggetto definito dall'applicazione che verrà restituito all'applicazione ogni volta che si verifica un evento API.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

Elabora il messaggio GetCertificateResponse.

Questo metodo elabora la struttura Weave GetCertificateResponse codificata nel formato TLV di Weave.

Quando l'elaborazione del messaggio GetCertificateResponse è completata correttamente, il metodo effettua una chiamata all'applicazione, tramite l'evento API ResponseReceived, per inviare il risultato.

Se l'elaborazione del messaggio GetCertificateResponse non riesce, il metodo effettua una chiamata all'applicazione, tramite l'evento API CommunicationError, per segnalare l'errore.

Dettagli
Parametri
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene il messaggio GetCertificateResponse.
Valori restituiti
WEAVE_NO_ERROR
Se il messaggio GetCertificateResponse è stato elaborato correttamente.

SetBinding

void SetBinding(
  Binding *binding
)

Imposta l'oggetto di associazione sull'oggetto WeaveCertProvEngine.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Imposta la funzione di callback dell'evento API sull'oggetto WeaveCertProvEngine.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Imposta l'oggetto del rappresentante per l'attestazione del produttore sull'oggetto WeaveCertProvEngine.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Imposta l'oggetto delegato di autenticazione operativa sull'oggetto WeaveCertProvEngine.

Arresto

void Shutdown(
  void
)

Arresta un oggetto WeaveCertProvEngine inizializzato in precedenza.

Tieni presente che questo metodo può essere chiamato solo se il metodo Init() è stato chiamato in precedenza.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Avvia il protocollo di provisioning dei certificati.

Questo metodo avvia la procedura di invio di un messaggio GetCertificateRequest al servizio CA. Se e quando viene ricevuto un messaggio GetCertificateResponse corrispondente, questo verrà consegnato all'applicazione tramite l'evento API ResponseReceived.

Se l'oggetto Binding non è nello stato Pronto quando viene chiamato questo metodo, verrà inviata una richiesta al metodo Binding::RequestPrepare() per avviare la preparazione on demand. L'operazione di richiesta rimarrà in attesa fino al completamento di questa procedura. Qualsiasi chiamata a StartCertificateProvisioning() mentre è in corso una richiesta precedente verrà ignorata.

Dettagli
Parametri
[in] reqType
Ottieni il tipo di richiesta di certificato.
[in] doMfrAttest
Un flag booleano che indica se il protocollo deve includere i dati di attestazione del produttore.
Valori restituiti
WEAVE_NO_ERROR
Se StartCertificateProvisioning() è stato elaborato correttamente.

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)