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

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

Implementiert die Kernlogik des Protokollobjekts für die Weave-Zertifikatbereitstellung.

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 der Certificate Provisioning Engine 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)
GetCertificateRequest-Nachricht generieren.
GetBinding(void) const
Gibt einen Zeiger auf das Objekt Binding zurück, das WeaveCertProvEngine zugeordnet ist.
GetEventCallback(void) const
Gibt einen Zeiger auf die Callback-Funktion für API-Ereignisse zurück, die derzeit für das WeaveCertProvEngine-Objekt konfiguriert ist.
GetMfrAttestDelegate(void) const
Gibt einen Zeiger auf das Objekt des Herstellerbescheinigungsdelegats zurück, das derzeit für das Objekt WeaveCertProvEngine konfiguriert ist.
GetOpAuthDelegate(void) const
Gibt einen Zeiger auf das Objekt für Operational Authentication-Delegat zurück, das derzeit 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 Zertifikatsanfragenachricht vorzubereiten.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
Process GetCertificateResponse-Nachricht.
SetBinding(Binding *binding)
void
Legt das Bindungsobjekt für das WeaveCertProvEngine-Objekt fest.
SetEventCallback(EventCallback eventCallback)
void
Legt die Callback-Funktion des API-Ereignisses für das Objekt WeaveCertProvEngine fest.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Legt das Objekt des Herstellers der Attestierungsdelegation für das Objekt WeaveCertProvEngine fest.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Legt das Delegatobjekt 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)
Zertifikatbereitstellungsprotokoll starten.

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“ dient zum Abrufen des anfänglichen Betriebszertifikats.

kReqType_RotateOpDeviceCert

Der Anfragetyp „Zertifikat abrufen“ dient dazu, 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 der Certificate Provisioning Engine aufgerufen wird.

Details
Parameter
[in] appState
Ein Zeiger auf anwendungsdefinierte Statusinformationen, die mit dem Suchmaschinenobjekt verknüpft sind.
[in] eventType
Die Ereignis-ID, die vom Ereignis-Callback übergeben wird.
[in] inParam
Referenz der Eingabeereignisparameter, die vom Ereignis-Callback übergeben werden
[in] outParam
Referenz der Ausgabeereignisparameter, die vom Ereignis-Callback ü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 GetCertificateRequest vorzubereiten.

kEvent_ResponseReceived

Eine GetCertificateResponse-Nachricht wurde vom Peer empfangen.

Status

 State
Attribute
kState_Idle

Das Suchmaschinenobjekt ist inaktiv.

kState_NotInitialized

Das Suchmaschinenobjekt ist nicht initialisiert.

kState_PreparingBinding

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

kState_RequestInProgress

Eine GetCertificateRequest-Nachricht wurde gesendet und das Suchmaschinenobjekt 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
)

GetCertificateRequest-Nachricht generieren.

Diese Methode generiert eine Weave GetCertificateRequest-Struktur, die im Weave-TLV-Format codiert ist.

Beim Erstellen der GetCertificateRequest-Nachricht stellt die Methode über die Funktionen WeaveNodeOpAuthDelegate und WeaveNodeMfrAttestDelegate sowie das API-Ereignis PrepareAuthorizeInfo eine Anfrage zur Vorbereitung der Nutzlast der Nachricht an die Anwendung.

Details
Parameter
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die GetCertificateRequest-Nachricht enthält.
[in] reqType
Zertifikatanfragetyp abrufen.
[in] doMfrAttest
Boolescher Parameter, der 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 Objekt Binding zurück, das WeaveCertProvEngine zugeordnet ist.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

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

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Gibt einen Zeiger auf das Objekt des Herstellerbescheinigungsdelegats zurück, das derzeit für das Objekt WeaveCertProvEngine konfiguriert ist.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Gibt einen Zeiger auf das Objekt für Operational Authentication-Delegat zurück, das derzeit 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 Zertifikatsanfragenachricht vorzubereiten.

Details
Parameter
[in] binding
Ein Binding-Objekt, das verwendet wird, um die Kommunikation mit dem Peer-Knoten einzurichten.
[in] opAuthDelegate
Ein Zeiger auf ein Operational Authentication-Delegat-Objekt, das zum Erstellen und Signieren mit den Betriebsanmeldedaten des Knotens verwendet wird.
[in] mfrAttestDelegate
Ein Zeiger auf ein Herstellerbescheinigungs-Delegatobjekt, das zum Erstellen und Signieren der Anfrage mit den vom Knoten 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 API-Ereignis an die Anwendung zurückgegeben wird.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

Process GetCertificateResponse-Nachricht.

Diese Methode verarbeitet die Weave GetCertificateResponse-Struktur, die im Weave-TLV-Format codiert ist.

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

Wenn die Verarbeitung der GetCertificateResponse-Nachricht fehlschlägt, ruft die Methode die Anwendung über das CommunicationError API-Ereignis auf, 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 für das WeaveCertProvEngine-Objekt fest.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

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

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Legt das Objekt des Herstellers der Attestierungsdelegation für das Objekt WeaveCertProvEngine fest.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Legt das Delegatobjekt 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 zuvor die Methode Init() aufgerufen wurde.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Zertifikatbereitstellungsprotokoll starten.

Diese Methode initiiert das Senden einer GetCertificateRequest-Nachricht an den CA-Dienst. Sobald eine entsprechende GetCertificateResponse-Nachricht eingeht, wird sie über das API-Ereignis ResponseReceived an die Anwendung übermittelt.

Wenn sich das Objekt Binding beim Aufruf dieser Methode nicht im Status „Bereit“ befindet, wird eine Anfrage an die Methode Binding::RequestPrepare() gesendet, um die Vorbereitung auf Anfrage zu initiieren. Der Anfragevorgang wartet dann, bis dieser Prozess abgeschlossen ist. Alle Aufrufe von StartCertificateProvisioning() während einer vorherigen Anfrage werden ignoriert.

Details
Parameter
[in] reqType
Zertifikatanfragetyp abrufen.
[in] doMfrAttest
Boolescher Parameter, der angibt, ob das Protokoll Herstellerattestierungsdaten enthalten soll.
Rückgabewerte
WEAVE_NO_ERROR
Ob StartCertificateProvisioning() erfolgreich verarbeitet wurde.

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)