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

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

Implementiert die Kernlogik des Protokollobjekts für die Weave Certificate Provisioning-Bereitstellung.

Zusammenfassung

Konstruktoren und Zerstörer

WeaveCertProvEngine(void)

Öffentliche Typen

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der bei API-Ereignissen für die Zertifikatbereitstellung aufgerufen wird.
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

Öffentliche Attribute

AppState
void *
Ein Zeiger auf anwendungsspezifische Daten.

Öffentliche Funktionen

AbortCertificateProvisioning(void)
void
Beendet jeden laufenden GetCertificate-Austausch.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Generieren Sie die GetCertificateRequest-Nachricht.
GetBinding(void) const
Gibt einen Zeiger auf das Binding-Objekt zurück, das der WeaveCertProvEngine zugeordnet ist.
GetEventCallback(void) const
Gibt einen Zeiger auf die API-Ereignis-Callback-Funktion zurück, die aktuell für das WeaveCertProvEngine-Objekt konfiguriert ist.
GetMfrAttestDelegate(void) const
Gibt einen Zeiger auf das Attestierungsdelegatobjekt des Herstellers zurück, das aktuell im Objekt WeaveCertProvEngine konfiguriert ist.
GetOpAuthDelegate(void) const
Gibt einen Zeiger auf das Delegierungsobjekt für die operative Authentifizierung zurück, das aktuell im Objekt WeaveCertProvEngine konfiguriert ist.
GetReqType(void) const
uint8_t
Rufen Sie den aktuellen Anfragetyp ab.
GetState(void) const
Rufen Sie den aktuellen Status des Objekts WeaveCertProvEngine ab.
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
Initialisieren Sie ein WeaveCertProvEngine-Objekt, um das Senden einer Zertifikatsanforderungsnachricht vorzubereiten.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
GetCertificateResponse-Nachricht verarbeiten.
SetBinding(Binding *binding)
void
Legt das Bindungsobjekt auf dem Objekt WeaveCertProvEngine fest.
SetEventCallback(EventCallback eventCallback)
void
Legt die API-Ereignis-Callback-Funktion für das WeaveCertProvEngine-Objekt fest.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Legt das Bevollmächtigte-Objekt des Herstellers für das Objekt WeaveCertProvEngine fest.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Legt das Delegate-Objekt für die operative Authentifizierung im Objekt WeaveCertProvEngine fest.
Shutdown(void)
void
Fahren Sie ein zuvor initialisiertes WeaveCertProvEngine-Objekt herunter.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
Starten Sie das Zertifikatbereitstellungsprotokoll.

Strukturen

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

Eingabeparameter für das Weave Certificate Provisioning API-Ereignis.

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

Ausgabeparameter für das Weave Certificate Provisioning API-Ereignis.

Öffentliche Typen

@246

 @246
Attribute
kReqType_GetInitialOpDeviceCert

Der Anfragetyp "Zertifikat abrufen" besteht darin, ein erstes Betriebszertifikat abzurufen.

kReqType_RotateOpDeviceCert

Der Anfragetyp "Zertifikat abrufen" besteht darin, das aktuelle Betriebszertifikat zu rotieren.

EventCallback

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

Diese Funktion ist der Anwendungs-Callback, der bei API-Ereignissen für die Zertifikatbereitstellung aufgerufen wird.

Details
Parameter
[in] appState
Ein Verweis auf anwendungsdefinierte Statusinformationen, die dem Engine-Objekt zugeordnet sind.
[in] eventType
Die vom Ereignis-Callback übergebene Ereignis-ID.
[in] inParam
Referenz von Eingabeereignisparametern, die vom Ereignisrückruf übergeben werden
[in] outParam
Referenz von Ausgabeereignisparametern, die vom Ereignisrückruf übergeben werden

EventType

 EventType
Attribute
kEvent_CommunicationError

Beim Senden einer GetCertificateRequest oder beim Warten auf eine Antwort ist ein Kommunikationsfehler aufgetreten.

kEvent_PrepareAuthorizeInfo

Die Anwendung wird angefordert, um die Nutzlast für die GetCertificateRequest vorzubereiten.

kEvent_ResponseReceived

Der Peer hat eine GetCertificateResponse-Nachricht empfangen.

Status

 State
Attribute
kState_Idle

Das Engine-Objekt ist inaktiv.

kState_NotInitialized

Das Engine-Objekt ist nicht initialisiert.

kState_PreparingBinding

Das Engine-Objekt wartet darauf, dass die Bindung bereit wird.

kState_RequestInProgress

Eine GetCertificateRequest-Nachricht wurde gesendet und das Engine-Objekt wartet auf eine Antwort.

Öffentliche Attribute

AppState

void * AppState

Ein Zeiger auf anwendungsspezifische Daten.

Öffentliche Funktionen

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

Beendet jeden laufenden GetCertificate-Austausch.

GenerateGetCertificateRequest

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

Generieren Sie die GetCertificateRequest-Nachricht.

Diese Methode generiert eine im Weave-TLV-Format codierte Weave GetCertificateRequest-Struktur.

Beim Erstellen der GetCertificateRequest-Nachricht sendet die Methode über die Funktionen WeaveNodeOpAuthDelegate und WeaveNodeMfrAttestDelegate und das API-Ereignis PrepareInfoInfo, eine Anfrage an die Anwendung, um die Nutzlast der Nachricht vorzubereiten.

Details
Parameter
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die GetCertificateRequest-Nachricht enthält.
[in] reqType
Zertifikatsanforderungstyp abrufen.
[in] doMfrAttest
Ein boolesches Flag, das angibt, ob die Anfrage Herstellerattestierungsdaten enthalten soll.
Rückgabewerte
WEAVE_NO_ERROR
Wenn GetCertificateRequest erfolgreich generiert wurde.

GetBinding

Binding * GetBinding(
  void
) const 

Gibt einen Zeiger auf das Binding-Objekt zurück, das der WeaveCertProvEngine zugeordnet ist.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Gibt einen Zeiger auf die API-Ereignis-Callback-Funktion zurück, die aktuell für das WeaveCertProvEngine-Objekt konfiguriert ist.

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Gibt einen Zeiger auf das Attestierungsdelegatobjekt des Herstellers zurück, das aktuell im Objekt WeaveCertProvEngine konfiguriert ist.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Gibt einen Zeiger auf das Bevollmächtigte-Objekt für die operative Authentifizierung zurück, das aktuell im Objekt WeaveCertProvEngine konfiguriert ist.

GetReqType

uint8_t GetReqType(
  void
) const 

Rufen Sie den aktuellen Anfragetyp ab.

GetState

State GetState(
  void
) const 

Rufen Sie den aktuellen Status des Objekts WeaveCertProvEngine ab.

Init

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

Initialisieren Sie ein WeaveCertProvEngine-Objekt, um das Senden einer Zertifikatsanforderungsnachricht vorzubereiten.

Details
Parameter
[in] binding
Ein Binding-Objekt, mit dem die Kommunikation mit dem Peer-Knoten hergestellt wird.
[in] opAuthDelegate
Ein Zeiger auf ein Delegatobjekt für die operative Authentifizierung, das zum Erstellen und Signieren mit den operativen Anmeldedaten des Knotens verwendet wird.
[in] mfrAttestDelegate
Ein Zeiger auf ein vom Hersteller Attestierung delegiertes Objekt, das zum Erstellen und Signieren einer Anfrage mit den vom Hersteller bereitgestellten Anmeldedaten des Knotens verwendet wird.
[in] eventCallback
Ein Zeiger auf eine Funktion, die vom Objekt WeaveCertProvEngine aufgerufen wird, um API-Ereignisse an die Anwendung zu übermitteln.
[in] appState
Ein Zeiger auf ein anwendungsdefiniertes Objekt, das bei jedem Eintreten eines API-Ereignisses an die Anwendung zurückgegeben wird.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

GetCertificateResponse-Nachricht verarbeiten.

Diese Methode verarbeitet die im Weave-TLV-Format codierte Weave GetCertificateResponse-Struktur.

Wenn die Verarbeitung der GetCertificateResponse-Nachricht erfolgreich abgeschlossen ist, ruft die Methode über das ResponseReceived API-Ereignis die Anwendung auf, um das Ergebnis zu liefern.

Wenn die Verarbeitung der GetCertificateResponse-Nachricht fehlschlägt, sendet die Methode über das CommunicationError API-Ereignis einen Aufruf an die Anwendung, um den Fehler zu melden.

Details
Parameter
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die GetCertificateResponse-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die GetCertificateResponse-Nachricht erfolgreich verarbeitet wurde.

SetBinding

void SetBinding(
  Binding *binding
)

Legt das Bindungsobjekt auf dem Objekt WeaveCertProvEngine fest.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Legt die API-Ereignis-Callback-Funktion für das WeaveCertProvEngine-Objekt fest.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Legt das Bevollmächtigte-Objekt des Herstellers für das Objekt WeaveCertProvEngine fest.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Legt das Delegate-Objekt für die operative Authentifizierung im Objekt WeaveCertProvEngine fest.

Herunterfahren

void Shutdown(
  void
)

Fahren Sie ein zuvor initialisiertes WeaveCertProvEngine-Objekt herunter.

Diese Methode kann nur aufgerufen werden, wenn die Init()-Methode zuvor aufgerufen wurde.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Starten Sie das Zertifikatbereitstellungsprotokoll.

Diese Methode initiiert das Senden einer GetCertificateRequest-Nachricht an den Zertifizierungsstellendienst. Wenn und wenn eine entsprechende GetCertificateResponse-Nachricht empfangen wird, wird diese über das ResponseReceived API-Ereignis an die Anwendung gesendet.

Befindet sich das Objekt Binding beim Aufruf dieser Methode nicht im Status „Bereit“, wird eine Anfrage an die Methode Binding::RequestPrepare() gesendet, um die On-Demand-Vorbereitung zu starten. Der Anfragevorgang wartet dann, bis dieser Prozess abgeschlossen ist. Alle Aufrufe von StartCertificateProvisioning(), während eine vorherige Anfrage in Bearbeitung ist, werden ignoriert.

Details
Parameter
[in] reqType
Zertifikatsanforderungstyp abrufen.
[in] doMfrAttest
Boolesches Flag, das angibt, ob das Protokoll Herstellerattestierungsdaten enthalten soll.
Rückgabewerte
WEAVE_NO_ERROR
Wenn StartCertificateProvisioning() erfolgreich verarbeitet wurde.

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)