nl::Weave::Profile::Sicherheit::KeyExport::WeaveKeyExportDelegate

Dies ist eine abstrakte Klasse.

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

Abstrakte Delegierungsklasse, die von der KeyExport-Engine aufgerufen wird, um verschiedene Aktionen im Zusammenhang mit der Authentifizierung während des Schlüsselexports auszuführen

Fazit

Übernahme

Direkte bekannte Unterklassen: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient

Öffentliche Funktionen

BeginCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Bereiten Sie die Validierung des Peer-Zertifikats vor.
EndCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Ressourcen freigeben, die mit der Peer-Zertifikatvalidierung verknüpft sind.
GenerateNodeSignature(WeaveKeyExport *keyExport, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer)=0
virtual WEAVE_ERROR
Generieren Sie eine Signatur für eine Schlüsselexportnachricht.
GetNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Rufen Sie den Schlüsselexportzertifikat für den lokalen Knoten ab.
HandleCertValidationResult(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
Ergebnisse der Validierung des Peer-Zertifikats verarbeiten.
ReleaseNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Lassen Sie den Zertifikatssatz des Knotens los.
ValidateUnsignedKeyExportMessage(WeaveKeyExport *keyExport, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
Prüfen Sie die Sicherheit einer nicht signierten Schlüsselexportnachricht.

Öffentliche Funktionen

BeginCertValidierung

virtual WEAVE_ERROR BeginCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

Bereiten Sie die Validierung des Peer-Zertifikats vor.

Wird zu Beginn der Zertifikatsvalidierung aufgerufen. Diese Methode ist verantwortlich für die Vorbereitung des bereitgestellten Zertifikatssatzes und des Validierungskontexts für die Validierung des Zertifikats des Peer-Knotens. Implementierungen müssen das bereitgestellte WeaveCertificateSet-Objekt initialisieren, und zwar mit ausreichenden Ressourcen für die anstehende Zertifikatsprüfung. Bei der Implementierung müssen außerdem alle erforderlichen vertrauenswürdigen Root- oder CA-Zertifikate in den Zertifikatsatz geladen werden.

Der bereitgestellte Validierungskontext wird mit einer Reihe von Standardvalidierungskriterien initialisiert, die sich bei Bedarf an der Implementierung ändern können. In der Implementierung muss entweder das Feld „EffectiveTime“ festgelegt oder die entsprechenden Validierungs-Flags festgelegt werden, um die Lebensdauer der Zertifikate zu unterdrücken.

Die Implementierung ist erforderlich, um alle Ressourcen beizubehalten, die während der Aktion BeginCertValidation() zugewiesen werden, bis die entsprechende EndCertValidation() aufgerufen wird. Implementierungen werden garantiert garantiert, dass EndCertValidation() für jeden erfolgreichen Aufruf von BeginCertValidation() aufgerufen wird.

EndCertValidierung

virtual WEAVE_ERROR EndCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

Ressourcen freigeben, die mit der Peer-Zertifikatvalidierung verknüpft sind.

Wird aufgerufen, wenn die Validierung des Peer-Zertifikats und die Bestätigung der Anfrage abgeschlossen sind.

Signatur generieren

virtual WEAVE_ERROR GenerateNodeSignature(
  WeaveKeyExport *keyExport,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer
)=0

Generieren Sie eine Signatur für eine Schlüsselexportnachricht.

Diese Methode ist verantwortlich für die Berechnung einer Signatur des angegebenen Hashwerts mit dem privaten Schlüssel des lokalen Knotens und das Schreiben der Signatur an den bereitgestellten TLV-Autor als WeaveSignature-TLV-Struktur.

GetNodeCertSet

virtual WEAVE_ERROR GetNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

Rufen Sie den Schlüsselexportzertifikat für den lokalen Knoten ab.

Wird aufgerufen, wenn das Schlüsselexportmodul die Signatur einer Schlüsselexportnachricht vorbereitet. Diese Methode ist für die Initialisierung des Zertifikatssatzes und das Laden aller Zertifikate verantwortlich, die in der Signatur der Nachricht enthalten oder auf die verwiesen wird. Das zuletzt geladene Zertifikat muss das Signaturzertifikat sein.

HandleCertValidationResult

virtual WEAVE_ERROR HandleCertValidationResult(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  uint32_t requestedKeyId
)=0

Ergebnisse der Validierung des Peer-Zertifikats verarbeiten.

Wird aufgerufen, wenn die Validierung des Peer-Knotens abgeschlossen ist. Diese Methode wird nur aufgerufen, wenn die Zertifikatsprüfung erfolgreich abgeschlossen wurde. Implementierungen können diesen Aufruf verwenden, um die Ergebnisse der Validierung zu prüfen und das Ergebnis möglicherweise mit einem Fehler zu überschreiben.

Bei einem Antwortknoten wird erwartet, dass die Methode die Anforderung des Anforderers zum Exportieren des angeforderten Schlüssels prüft.

Bei einem initiierenden Knoten wird von der Methode erwartet, dass das validierte Zertifikat den Peer korrekt identifiziert, an den die Schlüsselexportanfrage gesendet wurde.

ReleaseNodeCertSet

virtual WEAVE_ERROR ReleaseNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

Lassen Sie den Zertifikatssatz des Knotens los.

Wird aufgerufen, wenn die Schlüsselexport-Engine mit dem von GetNodeCertSet() zurückgegebenen Zertifikatsatz abgeschlossen ist.

UnsignedKeyExportMessage validieren

virtual WEAVE_ERROR ValidateUnsignedKeyExportMessage(
  WeaveKeyExport *keyExport,
  uint32_t requestedKeyId
)=0

Prüfen Sie die Sicherheit einer nicht signierten Schlüsselexportnachricht.

Wird aufgerufen, wenn der Knoten eine Schlüsselexportnachricht erhält, die nicht signiert ist. Bei der Methode wird erwartet, dass die Sicherheit einer nicht signierten Schlüsselexportnachricht anhand des Kontexts der Kommunikation bestätigt wird, z.B. über die Attribute einer Sicherheitssitzung, die zum Senden der Nachricht verwendet wird.

Für einen Antwortknoten wird erwartet, dass die Methode die Berechtigung des Initiators benötigt, um den angeforderten Schlüssel zu exportieren.

Bei einem einleitenden Knoten wird erwartet, dass die Methode die Nachricht auf legitime Art vom Peer überprüft, an den die Schlüsselexportanfrage gesendet wurde.