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 zur vollständigen Verarbeitung des Schlüsselexportprotokolls.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Typ der Funktion zur Fehlerbehandlung 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 den 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 den Schlüsselexportprotokollfehler.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Öffentliche Funktionen

CancelSessionEstablishment(void *reqState)
Laufende 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 Schlüsselfehlercodes ist.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Geben Sie eine Reservierung für den Nachrichtenverschlüsselungsschlüssel frei.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Reservieren Sie eine Reservierung für einen Nachrichtenverschlüsselungsschlüssel.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Fehlermeldung für 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 einzurichten oder eine bestehende zu finden.
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 die Schlüsselfehlermeldung vom Peer verursacht.
[in] encType
Verschlüsselungstyp, der keyId zugeordnet 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 erhaltene 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 Anforderers für den Schlüsselexport.
[in] keyId
Exportierte Schlüssel-ID.
[in] exportedKey
Ein Zeiger auf den exportierten geheimen Schlüssel.
[in] exportedKeyLen
Ein Verweis auf die exportierte geheime Schlüssellänge.

KeyExportErrorFunct

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

Typ der Funktion zur Fehlerbehandlung 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 Anforderers für den Schlüsselexport.
[in] localErr
Beim Schlüsselexportprotokoll wurde der Fehler WEAVE_ERROR erkannt.
[in] statusReport
Ein Zeiger auf das StatusReport-Objekt, wenn der Fehlerstatus von einem 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

CASEUseBekannteECDHSchlüssel

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 den Schlüsselfehler.

Diese Funktion wird aufgerufen, wenn eine Schlüsselfehlermeldung 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 den Schlüsselexportprotokollfehler.

Diese Funktion wird aufgerufen, wenn beim Schlüsselexport 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
)

Laufende Einrichtung einer laufenden Sitzung abbrechen.

Details
Parameter
[in] reqState
Ein Zeigerwert, der mit dem von der Anwendung beim Start der Sitzung bereitgestellten Wert übereinstimmt.
Rückgabewerte
WEAVE_NO_ERROR
Wenn eine passende, laufende Sitzungseinrichtung gefunden und abgebrochen wurde.
WEAVE_ERROR_INCORRECT_STATE
Wenn keine Sitzungseinrichtung ausgeführt wird oder die laufende Sitzung nicht mit dem bereitgestellten Anfragestatuszeiger übereinstimmt.

Init

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

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Prüft, ob der angegebene Weave-Fehlercode einer der Schlüsselfehlercodes ist.

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

Details
Parameter
[in] err
Ein Weave-Fehlercode.
Rückgabewerte
true
Wenn 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
)

Geben Sie eine Reservierung für den Nachrichtenverschlüsselungsschlüssel frei.

Reservierungen, die zuvor auf einem Nachrichtenverschlüsselungsschlüssel platziert wurden, freigeben.

Für jede Reservierung, die für einen bestimmten Schlüssel platziert wird, darf die ReleaseKey()-Methode 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, mit dem der Schlüssel geteilt wurde.
[in] keyId
Die ID des Schlüssels, dessen Reservierung freigegeben werden soll.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Reservieren Sie eine Reservierung für einen Nachrichtenverschlüsselungsschlüssel.

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

Für jede Reservierung, die auf einem bestimmten Schlüssel platziert wird, muss ein entsprechender Aufruf von 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, mit dem der Schlüssel geteilt wurde.
[in] keyId
Die ID des zu reservierenden Schlüssels.

SendKeyErrorMsg

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

Fehlermeldung für Schlüssel senden.

Diese Funktion wird aufgerufen, wenn die Decodierung der Weave-Nachricht 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 Speicher nicht für den neuen Austauschkontext oder den neuen Nachrichtenpuffer zugewiesen werden konnte.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn der Puffer zu klein ist
WEAVE_NO_ERROR
Gibt an, ob 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 einzurichten oder eine bestehende zu finden.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] peerNodeId
Die Knoten-ID des Peers.
[in] peerAddr
Die IP-Adresse des Peer-Knotens.
[in] peerPort
Der Port des Peer-Knotens.
[in] requestedAuthMode
Das gewünschte Mittel, mit dem der Peer authentifiziert werden soll. 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, sobald die angeforderte sichere Sitzung erstellt wurde.
[in] onError
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, wenn die angeforderte Sitzungseinrichtung fehlschlägt.
[in] authDelegate
Ein Zeiger auf das Delegatobjekt der CASE-Authentifizierung.
[in] terminatingNodeId
Die Knotenkennung des Knotens, der die Sitzung beendet. Wenn sich diese Eingabe von „kNodeIdNotSpecific“ unterscheidet, die 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 Mittel, mit dem der Peer authentifiziert werden soll. 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, sobald die angeforderte sichere Sitzung erstellt wurde.
[in] onError
Ein Zeiger auf die Callback-Funktion, die aufgerufen wird, wenn die angeforderte Sitzungseinrichtung fehlschlägt.
[in] pw
Ein Zeiger 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 Mittel, mit dem der Peer authentifiziert werden soll. 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, sobald die angeforderte sichere Sitzung erstellt 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 Protokollauthentifizierungsphase 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 Identifizierungsschlüssel (IK) zeitlich begrenzt ist.
[in] sendChallengerId
Ein boolesches Flag, das angibt, ob die Challenger-Identifizierung in der Nachricht enthalten sein soll. Wenn er nicht enthalten ist, wird der Weave-Knoten-ID-Wert als Challenger-ID verwendet.
[in] authDelegate
Ein Zeiger auf das TAKE-Challenger-Authentifizierungs-Delegat-Objekt.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)