nl::Weave::WeaveSecurityManager

Zusammenfassung

Konstruktoren und Zerstörer

WeaveSecurityManager(void)

Öffentliche Typen

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
Typ der Funktion zur Verarbeitung wichtiger Fehlermeldungen.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Typ der Funktion für die vollständige Verarbeitung des Schlüsselexportprotokolls.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Typ der Fehlerbehandlungsfunktion des Schlüsselexportprotokolls.
SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport) typedef
void(*
SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType) typedef
void(*
State enum

Öffentliche Attribute

CASEUseKnownECDHKey
bool
ExchangeManager
FabricState
IdleSessionTimeout
uint32_t
InitiatorAllowedCASEConfigs
uint8_t
InitiatorAllowedCASECurves
uint8_t
InitiatorAllowedKeyExportConfigs
uint8_t
InitiatorCASEConfig
uint32_t
InitiatorCASECurveId
uint32_t
InitiatorKeyExportConfig
uint8_t
OnKeyErrorMsgRcvd
Die Callback-Funktion für Schlüsselfehler.
OnSessionError
SessionErrorFunct
OnSessionEstablished
SessionEstablishedFunct
ResponderAllowedCASEConfigs
uint8_t
ResponderAllowedCASECurves
uint8_t
ResponderAllowedKeyExportConfigs
uint8_t
SessionEstablishTimeout
uint32_t
State
uint8_t
mCASEEngine
mKeyExport
mPASEEngine
mStartKeyExport_OnComplete
Die Callback-Funktion für den Abschluss des Schlüsselexportprotokolls.
mStartKeyExport_OnError
Die Callback-Funktion für Schlüsselexportprotokollfehler.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Öffentliche Funktionen

CancelSessionEstablishment(void *reqState)
Einrichtung einer laufenden Sitzung abbrechen
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Prüft, ob der angegebene Weave-Fehlercode einer der wichtigsten Fehlercodes ist.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Freigabe eines Schlüssels für die Nachrichtenverschlüsselung
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Reservieren Sie einen Nachrichtenverschlüsselungsschlüssel.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Fehlermeldung zum Schlüssel senden.
SetCASEAuthDelegate(WeaveCASEAuthDelegate *delegate)
void
SetKeyExportDelegate(WeaveKeyExportDelegate *delegate)
void
SetTAKEAuthDelegate(WeaveTAKEChallengerAuthDelegate *delegate)
void
SetTAKETokenAuthDelegate(WeaveTAKETokenAuthDelegate *delegate)
void
Shutdown(void)
StartCASESession(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, WeaveCASEAuthDelegate *authDelegate, uint64_t terminatingNodeId)
Diese Methode wird aufgerufen, um eine neue CASE-Sitzung zu erstellen oder eine vorhandene zu suchen.
StartKeyExport(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, uint32_t keyId, bool signMessage, void *reqState, KeyExportCompleteFunct onComplete, KeyExportErrorFunct onError, WeaveKeyExportDelegate *keyExportDelegate)
StartPASESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, const uint8_t *pw, uint16_t pwLen)
Diese Methode wird aufgerufen, um eine sichere PASE-Sitzung einzurichten.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
Diese Methode wird aufgerufen, um eine sichere TAKE-Sitzung einzurichten.

Öffentliche Typen

KeyErrorMsgRcvdFunct

void(* KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)

Typ der Funktion zur Verarbeitung wichtiger Fehlermeldungen.

Details
Parameter
[in] keyId
Der Verschlüsselungsschlüssel hat vom Peer die Fehlermeldung des Peers verursacht.
[in] encType
Verschlüsselungstyp, der mit keyId verknüpft ist.
[in] messageId
Die Kennung der Weave-Nachricht führte zur Schlüsselfehlerantwort des Peers.
[in] peerNodeId
Die Kennung des Weave-Knotens, der die Schlüsselfehlermeldung gesendet hat.
[in] keyErr
Der vom Peer empfangene Fehlercode.

KeyExportCompleteFunct

void(* KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)

Typ der Funktion zur vollständigen Verarbeitung des Schlüsselexportprotokolls.

Details
Parameter
[in] sm
Ein Zeiger auf das Objekt WeaveSecurityManager.
[in] con
Ein Zeiger auf das Objekt WeaveConnection.
[in] reqState
Ein Zeiger auf den Status des Anforderungsstellers für den Schlüsselexport.
[in] keyId
Die Schlüssel-ID wurde exportiert.
[in] exportedKey
Ein Verweis auf den exportierten geheimen Schlüssel.
[in] exportedKeyLen
Ein Verweis auf die exportierte Länge des geheimen Schlüssels.

KeyExportErrorFunct

void(* KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)

Typ der Fehlerbehandlungsfunktion des Schlüsselexportprotokolls.

Details
Parameter
[in] sm
Ein Zeiger auf das Objekt WeaveSecurityManager.
[in] con
Ein Zeiger auf das Objekt WeaveConnection.
[in] reqState
Ein Zeiger auf den Status des Anforderungsstellers für den Schlüsselexport.
[in] localErr
WEAVE_ERROR ist während des Schlüsselexportprotokolls aufgetreten.
[in] statusReport
Ein Zeiger auf das StatusReport-Objekt, wenn der Fehler vom Peer empfangen wurde.

SessionErrorFunct

void(* SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)

SessionEstablishedFunct

void(* SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)

Status

 State

Öffentliche Attribute

CASEUseKnownECDHKey

bool CASEUseKnownECDHKey

ExchangeManager

WeaveExchangeManager * ExchangeManager

FabricState

WeaveFabricState * FabricState

IdleSessionTimeout

uint32_t IdleSessionTimeout

InitiatorAllowedCASEConfigs

uint8_t InitiatorAllowedCASEConfigs

InitiatorAllowedCASECurves

uint8_t InitiatorAllowedCASECurves

InitiatorAllowedKeyExportConfigs

uint8_t InitiatorAllowedKeyExportConfigs

InitiatorCASEConfig

uint32_t InitiatorCASEConfig

InitiatorCASECurveId

uint32_t InitiatorCASECurveId

InitiatorKeyExportConfig

uint8_t InitiatorKeyExportConfig

OnKeyErrorMsgRcvd

KeyErrorMsgRcvdFunct OnKeyErrorMsgRcvd

Die Callback-Funktion für Schlüsselfehler.

Diese Funktion wird aufgerufen, wenn eine wichtige Fehlermeldung empfangen wird.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

Status

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

Die Callback-Funktion für den Abschluss des Schlüsselexportprotokolls.

Diese Funktion wird aufgerufen, wenn der Export des geheimen Schlüssels abgeschlossen ist.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

Die Callback-Funktion für Schlüsselexportprotokollfehler.

Diese Funktion wird aufgerufen, wenn beim Schlüsselexportvorgang ein Fehler auftritt.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

Öffentliche Funktionen

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

Einrichtung einer laufenden Sitzung abbrechen

Details
Parameter
[in] reqState
Ein Zeigerwert, der mit dem Wert übereinstimmt, der von der Anwendung beim Start der Sitzung bereitgestellt wurde.
Rückgabewerte
WEAVE_NO_ERROR
Wenn eine entsprechende Einrichtung für eine laufende Sitzung gefunden und abgebrochen wurde.
WEAVE_ERROR_INCORRECT_STATE
Wenn keine Sitzungseinrichtung im Gange war oder die laufende Sitzung nicht mit dem angegebenen Anfragestatuszeiger übereinstimmte.

Init

WEAVE_ERROR Init(
  WeaveExchangeManager & aExchangeMgr,
  System::Layer & aSystemLayer
)

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Prüft, ob der angegebene Weave-Fehlercode einer der wichtigsten Fehlercodes ist.

Diese Funktion wird aufgerufen, um zu bestimmen, ob eine Schlüsselfehlermeldung an den Initiator der Meldung gesendet werden soll, die während der Decodierung keinen richtigen Schlüssel gefunden hat.

Details
Parameter
[in] err
Ein Weave-Fehlercode.
Rückgabewerte
true
Falls angegeben, ist der Weave-Fehlercode ein Schlüsselfehler.
false
Andernfalls.

OnEncryptedMsgRcvd

void OnEncryptedMsgRcvd(
  uint16_t sessionKeyId,
  uint64_t peerNodeId,
  uint8_t encType
)

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Freigabe eines Schlüssels für die Nachrichtenverschlüsselung

Reservierungen freigeben, die zuvor für einen Nachrichtenverschlüsselungsschlüssel festgelegt wurden.

Für jede Reservierung, die auf einen bestimmten Schlüssel angewendet wird, darf die Methode ReleaseKey() nur einmal aufgerufen werden.

Diese Methode akzeptiert jede Form von Schlüssel-ID, einschließlich "None". Schlüssel-IDs, die keine tatsächlichen Schlüssel benennen, werden ignoriert.

Details
Parameter
[in] peerNodeId
Die Weave-Knoten-ID des Peers, für den der Schlüssel freigegeben wurde.
[in] keyId
Die ID des Schlüssels, dessen Reservierung freigegeben werden soll.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Reservieren Sie einen Nachrichtenverschlüsselungsschlüssel.

Schlüsselreservierungen werden verwendet, um zu signalisieren, dass ein bestimmter Schlüssel aktiv verwendet wird und beibehalten werden sollte. Beachten Sie, dass die Reservierung eines Schlüssels keine Garantie dafür ist, dass der Schlüssel nicht durch eine explizite Aktion wie z. B. den Empfang einer KeyError-Nachricht entfernt wird.

Für jede Reservierung, die auf einen bestimmten Schlüssel angewendet wird, muss ein entsprechender Aufruf an ReleaseKey() erfolgen.

Diese Methode akzeptiert jede Form von Schlüssel-ID, einschließlich "None". Schlüssel-IDs, die keine tatsächlichen Schlüssel benennen, werden ignoriert.

Details
Parameter
[in] peerNodeId
Die Weave-Knoten-ID des Peers, für den der Schlüssel freigegeben wurde.
[in] keyId
Die ID des Schlüssels, der reserviert werden soll.

SendKeyErrorMsg

WEAVE_ERROR SendKeyErrorMsg(
  WeaveMessageInfo *rcvdMsgInfo,
  const IPPacketInfo *rcvdMsgPacketInfo,
  WeaveConnection *con,
  WEAVE_ERROR keyErr
)

Fehlermeldung zum Schlüssel senden.

Diese Funktion wird aufgerufen, wenn die Decodierung empfangener Weave-Nachrichten aufgrund eines Schlüsselfehlers fehlschlägt.

Details
Parameter
[in] rcvdMsgInfo
Ein Zeiger auf die Nachrichteninformationen für die empfangene Weave-Nachricht.
[in] rcvdMsgPacketInfo
Ein Zeiger auf das IPPacketInfo-Objekt der empfangenen Weave-Nachricht.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] keyErr
Fehlercode für Weave-Schlüssel
Rückgabewerte
WEAVE_ERROR_NO_MEMORY
Wenn für den neuen Austauschkontext oder den neuen Nachrichtenpuffer kein Arbeitsspeicher zugewiesen werden konnte.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn der Puffer zu klein ist
WEAVE_NO_ERROR
Wenn die Methode erfolgreich war.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

StartCASESession

WEAVE_ERROR StartCASESession(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  WeaveCASEAuthDelegate *authDelegate,
  uint64_t terminatingNodeId
)

Diese Methode wird aufgerufen, um eine neue CASE-Sitzung zu erstellen oder zu suchen.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] peerNodeId
Die Knotenkennung des Peers.
[in] peerAddr
Die IP-Adresse des Peer-Knotens.
[in] peerPort
Der Port des Peer-Knotens.
[in] requestedAuthMode
Das gewünschte Verfahren zur Authentifizierung des Peers. Dies muss einer der CASE-Authentifizierungsmodi sein.
[in] reqState
Ein Zeiger auf den Status des Anforderers.
[in] onComplete
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, nachdem die angeforderte sichere Sitzung eingerichtet wurde.
[in] onError
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, wenn die angeforderte Sitzungseinrichtung fehlschlägt.
[in] authDelegate
Ein Verweis auf das CASE-Authentifizierungsdelegatobjekt.
[in] terminatingNodeId
Die Knotenkennung des Knotens, der die Sitzung beendet. Wenn sich diese Eingabe von kNodeIdNotRequested unterscheidet und angibt, dass eine freigegebene sichere Sitzung angefordert wurde.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

StartKeyExport

WEAVE_ERROR StartKeyExport(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  uint32_t keyId,
  bool signMessage,
  void *reqState,
  KeyExportCompleteFunct onComplete,
  KeyExportErrorFunct onError,
  WeaveKeyExportDelegate *keyExportDelegate
)

StartPASESession

WEAVE_ERROR StartPASESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  const uint8_t *pw,
  uint16_t pwLen
)

Diese Methode wird aufgerufen, um eine sichere PASE-Sitzung einzurichten.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] requestedAuthMode
Das gewünschte Verfahren zur Authentifizierung des Peers. Dies muss einer der PASE-Authentifizierungsmodi sein.
[in] reqState
Ein Zeiger auf den Status des Anforderers.
[in] onComplete
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, nachdem die angeforderte sichere Sitzung eingerichtet wurde.
[in] onError
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, wenn die angeforderte Sitzungseinrichtung fehlschlägt.
[in] pw
Ein Verweis auf das geheime PASE-Passwort.
[in] pwLen
Länge des geheimen PASE-Passworts.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

StartTAKESession

WEAVE_ERROR StartTAKESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  bool encryptAuthPhase,
  bool encryptCommPhase,
  bool timeLimitedIK,
  bool sendChallengerId,
  WeaveTAKEChallengerAuthDelegate *authDelegate
)

Diese Methode wird aufgerufen, um eine sichere TAKE-Sitzung einzurichten.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] requestedAuthMode
Das gewünschte Verfahren zur Authentifizierung des Peers. Dies muss einer der TAKE-Authentifizierungsmodi sein.
[in] reqState
Ein Zeiger auf den Status des Anforderers.
[in] onComplete
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, nachdem die angeforderte sichere Sitzung eingerichtet wurde.
[in] onError
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, wenn die angeforderte Sitzungseinrichtung fehlschlägt.
[in] encryptAuthPhase
Boolescher Parameter, der angibt, ob die Phase der Protokollauthentifizierung verschlüsselt werden soll.
[in] encryptCommPhase
Boolescher Parameter, der angibt, ob die Protokollkommunikationsphase verschlüsselt werden soll.
[in] timeLimitedIK
Boolescher Parameter, der angibt, ob der Identifikationsschlüssel (IK) zeitlich begrenzt ist.
[in] sendChallengerId
Boolescher Parameter, der angibt, ob die Nachricht eine Challenger-Identifizierung enthalten soll. Wenn er nicht angegeben ist, wird der Wert der Weave-Knoten-ID als Challenger-ID verwendet.
[in] authDelegate
Ein Zeiger auf das Objekt „TAKE Challenger“ für die Authentifizierungsdelegierung.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)