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 Destruktoren

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 Certificate Provisioning Engine API-Ereignissen 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 Verweis auf anwendungsspezifische Daten.

Öffentliche Funktionen

AbortCertificateProvisioning(void)
void
Beendet alle laufenden GetCertificate-Austausche.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Generieren Sie die Nachricht „GetCertificateRequest“.
GetBinding(void) const
Gibt einen Zeiger auf das Binding-Objekt zurück, das der WeaveCertProvEngine zugeordnet ist.
GetEventCallback(void) const
Gibt einen Verweis auf die API-Ereignis-Callback-Funktion zurück, die derzeit für das Objekt WeaveCertProvEngine konfiguriert ist.
GetMfrAttestDelegate(void) const
Gibt einen Verweis auf das Attestierungsdelegatobjekt des Herstellers zurück, das derzeit für das 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
Ruft 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 eine Nachricht zum Abrufen des Zertifikats zu senden.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
Nachricht vom Typ „GetCertificateResponse“ 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
Ein zuvor initialisiertes WeaveCertProvEngine-Objekt herunterfahren.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
Starten Sie das Zertifikatbereitstellungsprotokoll.

Structs

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

Mit dem Anfragetyp „Zertifikat abrufen“ wird das erste Betriebszertifikat abgerufen.

kReqType_RotateOpDeviceCert

Mit dem Anfragetyp „Zertifikat abrufen“ wird das aktuelle betriebsbereite Zertifikat rotiert.

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 mit dem Engine-Objekt verknüpft sind.
[in] eventType
Ereignis-ID, die vom Ereignis-Callback übergeben wird.
[in] inParam
Verweis auf Eingabeereignisparameter, die vom Ereignis-Callback übergeben werden.
[in] outParam
Referenz von Ausgabeereignisparametern, die vom Ereignisrückruf übergeben werden

EventType

 EventType
Attribute
kEvent_CommunicationError

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

kEvent_PrepareAuthorizeInfo

Die Anwendung wird aufgefordert, die Nutzlast für den 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 ist.

kState_RequestInProgress

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

Öffentliche Attribute

AppState

void * AppState

Ein Verweis auf anwendungsspezifische Daten.

Öffentliche Funktionen

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

Beendet alle laufenden GetCertificate-Austausche.

GenerateGetCertificateRequest

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

Generieren Sie die Nachricht „GetCertificateRequest“.

Mit dieser Methode wird die Weave-GetCertificateRequest-Struktur generiert, die im Weave-TLV-Format codiert ist.

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

Details
Parameter
[in] msgBuf
Ein Verweis auf das PacketBuffer-Objekt, das die GetCertificateRequest-Nachricht enthält.
[in] reqType
Zertifikatsanforderungstyp abrufen.
[in] doMfrAttest
Ein boolescher Wert, der angibt, ob die Anfrage Attestierungsdaten des Herstellers enthalten soll.
Rückgabewerte
WEAVE_NO_ERROR
Ob „GetCertificateRequest“ erfolgreich generiert wurde.

GetBinding

Binding * GetBinding(
  void
) const 

Gibt einen Verweis auf das Binding-Objekt zurück, das mit der WeaveCertProvEngine verknüpft 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 Verweis auf das Attestierungsdelegatobjekt des Herstellers zurück, das derzeit für das Objekt WeaveCertProvEngine konfiguriert ist.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Gibt einen Verweis auf das Objekt für die operative Authentifizierung zurück, das derzeit für das Objekt WeaveCertProvEngine konfiguriert ist.

GetReqType

uint8_t GetReqType(
  void
) const 

Ruft den aktuellen Anfragetyp ab.

GetState

State GetState(
  void
) const 

Ruft 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 Verweis auf ein Objekt für die delegierte Authentifizierung, das zum Erstellen und Signieren mit den Betriebsanmeldedaten des Knotens verwendet wird.
[in] mfrAttestDelegate
Ein Verweis auf ein Attestierungsobjekt des Herstellers, das zum Erstellen und Signieren einer Anfrage mit den vom Hersteller bereitgestellten Anmeldeinformationen des Knotens verwendet wird.
[in] eventCallback
Ein Verweis auf eine Funktion, die vom Objekt WeaveCertProvEngine aufgerufen wird, um API-Ereignisse an die Anwendung zu senden.
[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
)

Nachricht vom Typ „GetCertificateResponse“ 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 Verweis auf das PacketBuffer-Objekt, das die GetCertificateResponse-Nachricht enthält.
Rückgabewerte
WEAVE_NO_ERROR
Gibt an, ob die Nachricht „GetCertificateResponse“ erfolgreich verarbeitet wurde.

SetBinding

void SetBinding(
  Binding *binding
)

Hiermit wird das Bindungsobjekt für das Objekt WeaveCertProvEngine festgelegt.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Hiermit wird die API-Ereignis-Callback-Funktion für das Objekt WeaveCertProvEngine festgelegt.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Legt das Attestierungsdelegatobjekt 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
)

Ein zuvor initialisiertes WeaveCertProvEngine-Objekt herunterfahren.

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

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Starten Sie das Zertifikatbereitstellungsprotokoll.

Mit dieser Methode wird der Vorgang zum Senden einer GetCertificateRequest-Nachricht an den CA-Dienst initiiert. Wenn eine entsprechende GetCertificateResponse-Nachricht empfangen wird, wird sie über das API-Ereignis „ResponseReceived“ an die Anwendung gesendet.

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

Details
Parameter
[in] reqType
Zertifikatsanforderungstyp abrufen.
[in] doMfrAttest
Ein boolescher Parameter, der angibt, ob das Protokoll Attestierungsdaten des Herstellers enthalten soll.
Rückgabewerte
WEAVE_NO_ERROR
Wenn StartCertificateProvisioning() erfolgreich verarbeitet wurde.

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)