nl::Weave::WeaveFabricState

#include <src/lib/core/WeaveFabricState.h>

Vorwärtsdeklaration von WeaveFabricState.

Fazit

Konstrukteur und Zerstörer

WeaveFabricState(void)

Öffentliche Typen

PeerIndexType Typdef
uint8_t
SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context) Typdef
void(*
State enum

Öffentliche Attribute

AutoCreateKeys
bool
DebugFabricId
uint64_t
DefaultSubnet
uint16_t
FabricId
uint64_t
GroupKeyStore
ListenIPv4Addr
IPAddress
ListenIPv6Addr
IPAddress
LocalNodeId
uint64_t
LogKeys
bool
MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]
uint32_t
MessageLayer
MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]
PeerIndexType
NodeId[WEAVE_CONFIG_MAX_PEER_NODES]
uint64_t
PairingCode
const char *
State
uint8_t
UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]
WeaveSessionState::ReceiveFlagsType
UseTestKey
bool

Öffentliche Funktionen

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Diese Methode fügt dem Eintrag für die freigegebenen Endknoten einen neuen Endknoten hinzu.
AllocSessionKey(uint64_t peerNodeId, uint16_t keyId, WeaveConnection *boundCon, WeaveSessionKey *& sessionKey)
ClearFabricState(void)
void
CreateFabric(void)
FindSessionKey(uint16_t keyId, uint64_t peerNodeId, bool create, WeaveSessionKey *& retRec)
Mit dieser Methode wird der Schlüsseleintrag der Sitzung gefunden.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Suchen Sie in der Tabelle mit den Sitzungsschlüsseln nach einem vorhandenen Schlüssel für eine freigegebene Sitzung, der auf den angegebenen Knotenende ausgerichtet ist und mit dem angegebenen Authentifizierungsmodus und Verschlüsselungstyp übereinstimmt.
GetFabricState(uint8_t *buf, uint32_t bufSize, uint32_t & fabricStateLen)
GetPassword(uint8_t pwSrc, const char *& ps, uint16_t & pwLen)
GetSessionKey(uint16_t keyId, uint64_t peerNodeId, WeaveSessionKey *& outSessionKey)
GetSessionState(uint64_t remoteNodeId, uint16_t keyId, uint8_t encType, WeaveConnection *con, WeaveSessionState & outSessionState)
GetSharedSessionEndNodeIds(const WeaveSessionKey *sessionKey, uint64_t *endNodeIds, uint8_t endNodeIdsBufSize, uint8_t & endNodeIdsCount)
Diese Methode gibt alle End-IDs zurück, die die angegebene Sitzung gemeinsam nutzen.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Legt fest, ob eine IP-Adresse eine Adresse eines Knotens im lokalen Weave-Fabric darstellt.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Legt fest, ob eine IP-Adresse eine Weave-Fabric-Adresse für den lokalen Knoten darstellt.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Diese Methode prüft, ob die sichere Sitzung, die mit dem angegebenen Peer und der Schlüssel-ID verknüpft ist, freigegeben ist.
JoinExistingFabric(const uint8_t *fabricState, uint32_t fabricStateLen)
RegisterSessionEndCallback(SessionEndCbCtxt *sessionEndCb)
RemoveIdleSessionKeys()
bool
RemoveSessionKey(uint16_t keyId, uint64_t peerNodeId)
RemoveSessionKey(WeaveSessionKey *sessionKey, bool wasIdle)
void
RemoveSharedSessionEndNodes(const WeaveSessionKey *sessionKey)
void
RestoreSession(uint8_t *serializedSession, uint16_t serializedSessionLen)
Eine zuvor gesperrte Weave-Sicherheitssitzung aus einem serialisierten Zustand wiederherstellen.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Gibt eine IPAdresse zurück, die eine Weave-ULA für einen angegebenen Knoten enthält.
SelectNodeAddress(uint64_t nodeId) const
Gibt eine IPAdresse zurück, die eine Weave-ULA für einen angegebenen Knoten enthält.
SetDelegate(FabricStateDelegate *aDelegate)
void
Mit dieser Methode wird das Bevollmächtigten festgelegt.
SetSessionKey(uint16_t keyId, uint64_t peerNodeId, uint8_t encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
SetSessionKey(WeaveSessionKey *sessionKey, uint8_t encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
Shutdown(void)
SuspendSession(uint16_t keyId, uint64_t peerNodeId, uint8_t *buf, uint16_t bufSize, uint16_t & serializedSessionLen)
Den Status einer aktiven Weave-Sicherheitssitzung sperren und serialisiert

Strebenklemmen

nl::Weave::WeaveFabricState::SitzungEndCbCtxt

Öffentliche Typen

Peer-Index-Typ

uint8_t PeerIndexType

SitzungEndCbFct

void(* SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context)

Status

 State

Öffentliche Attribute

AutoCreateKeys

bool AutoCreateKeys

DebugFabric-ID

uint64_t DebugFabricId

Standardsubnetz

uint16_t DefaultSubnet

Textil-ID

uint64_t FabricId

Logo: GroupKeyStore

nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase * GroupKeyStore

ListenIPv4Addr

IPAddress ListenIPv4Addr

ListenIPv6Addr

IPAddress ListenIPv6Addr

Lokale Knoten-ID

uint64_t LocalNodeId

Logschlüssel

bool LogKeys

MaxUnencUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

Nachrichtenschicht

WeaveMessageLayer * MessageLayer

Meistverwendete Indexe

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

Knoten-ID

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

Kopplungscode

const char * PairingCode

Status

uint8_t State

UnencrcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

Testschlüssel verwenden

bool UseTestKey

Öffentliche Funktionen

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  uint64_t endNodeId,
  uint64_t terminatingNodeId,
  uint16_t keyId
)

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Diese Methode fügt dem Eintrag für die freigegebenen Endknoten einen neuen Endknoten hinzu.

Details
Parameter
[in] sessionKey
Das WeaveSessionKey-Objekt, das die Sitzung darstellt, für die der neue Endknoten hinzugefügt werden soll.
[in] endNodeId
Die Knoten-ID des Sitzungsendknotens, der hinzugefügt werden soll.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Wenn es keinen freien Speicherplatz für einen neuen Eintrag in der Liste der freigegebenen Endknoten gibt.
WEAVE_NO_ERROR
Erfolg.

Sitzungsschlüssel

WEAVE_ERROR AllocSessionKey(
  uint64_t peerNodeId,
  uint16_t keyId,
  WeaveConnection *boundCon,
  WeaveSessionKey *& sessionKey
)

Logo: ClearFabricState

void ClearFabricState(
  void
)

Stoff erstellen

WEAVE_ERROR CreateFabric(
  void
)

Sitzungsschlüssel

WEAVE_ERROR FindSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  bool create,
  WeaveSessionKey *& retRec
)

Mit dieser Methode wird der Schlüsseleintrag der Sitzung gefunden.

Details
Parameter
[in] keyId
Weben-Schlüssel-ID.
[in] peerNodeId
Die Knoten-ID des Peers.
[in] create
Ein boolescher Wert, der angibt, ob der neue Schlüssel erstellt werden soll, wenn der angegebene Schlüssel nicht gefunden wird.
[out] retRec
Ein Verweis auf ein WeaveSessionKey-Objekt.
Rückgabewerte
WEAVE_ERROR_WRONG_KEY_TYPE
Wenn der angegebene Schlüssel kein Sitzungsschlüsseltyp ist.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn Eingabeargumente falsche Werte haben.
WEAVE_ERROR_KEY_NOT_FOUND
Wenn der angegebene Schlüssel nicht gefunden wird.
WEAVE_ERROR_TOO_MANY_KEYS
Wenn kein freier Eintrag zum Erstellen eines neuen Sitzungsschlüssels vorhanden ist.
WEAVE_NO_ERROR
Erfolg.

Sitzung suchen

WeaveSessionKey * FindSharedSession(
  uint64_t terminatingNodeId,
  WeaveAuthMode authMode,
  uint8_t encType
)

Suchen Sie in der Tabelle mit den Sitzungsschlüsseln nach einem vorhandenen Schlüssel für eine freigegebene Sitzung, der auf den angegebenen Knotenende ausgerichtet ist und mit dem angegebenen Authentifizierungsmodus und Verschlüsselungstyp übereinstimmt.

Details
Parameter
[in] terminatingNodeId
Die Knotenkennung des Sitzungsendes.
[in] authMode
Gewünschter Authentifizierungsmodus für Sitzungen.
[in] encType
Der gewünschte Verschlüsselungstyp der Nachricht.
Rückgabewerte
WeaveSessionKey
* Ein Zeiger auf ein WeaveSessionKey-Objekt, das die übereinstimmende freigegebene Sitzung darstellt, oder NULL, wenn keine übereinstimmende Sitzung gefunden wurde.

FabricState

WEAVE_ERROR GetFabricState(
  uint8_t *buf,
  uint32_t bufSize,
  uint32_t & fabricStateLen
)

Passwort abrufen

WEAVE_ERROR GetPassword(
  uint8_t pwSrc,
  const char *& ps,
  uint16_t & pwLen
)

Sitzungsschlüssel abrufen

WEAVE_ERROR GetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  WeaveSessionKey *& outSessionKey
)

GetSessionState

WEAVE_ERROR GetSessionState(
  uint64_t remoteNodeId,
  uint16_t keyId,
  uint8_t encType,
  WeaveConnection *con,
  WeaveSessionState & outSessionState
)

GetSharedSessionEndNodeIds

WEAVE_ERROR GetSharedSessionEndNodeIds(
  const WeaveSessionKey *sessionKey,
  uint64_t *endNodeIds,
  uint8_t endNodeIdsBufSize,
  uint8_t & endNodeIdsCount
)

Diese Methode gibt alle End-IDs zurück, die die angegebene Sitzung gemeinsam nutzen.

Details
Parameter
[in] sessionKey
Ein Zeiger auf das Sitzungsschlüsselobjekt.
[in] endNodeIds
Ein Zeiger zum Zwischenspeichern von Knoten-IDs.
[in] endNodeIdsMaxCount
Die maximale Anzahl von Knoten-IDs, die in den Puffer passen.
[out] endNodeIdsCount
Anzahl der gefundenen Endknoten-IDs, die die angegebene Sitzung gemeinsam verwenden.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Der angegebene Puffer für den Endknoten-ID ist nicht groß genug.
WEAVE_NO_ERROR
Erfolg.

AliasConnection

void HandleConnectionClosed(
  WeaveConnection *con
)

Init

WEAVE_ERROR Init(
  void
)

Init

WEAVE_ERROR Init(
  nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore
)

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

Legt fest, ob eine IP-Adresse eine Adresse eines Knotens im lokalen Weave-Fabric darstellt.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Legt fest, ob eine IP-Adresse eine Weave-Fabric-Adresse für den lokalen Knoten darstellt.

Ist Sitzung geteilt

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Diese Methode prüft, ob die sichere Sitzung, die mit dem angegebenen Peer und der Schlüssel-ID verknüpft ist, freigegeben ist.

Details
Parameter
[in] keyId
Die Sitzungsschlüsselkennung.
[in] peerNodeId
Die Knoten-ID des Peers.
Rückgabewerte
bool
Gibt an, ob eine angegebene Sitzung freigegeben wurde.

JoinVorhandeneFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

SessionSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

IDIdleSessionKeys entfernen

bool RemoveIdleSessionKeys()

Sitzungsschlüssel entfernen

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

Sitzungsschlüssel entfernen

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

SharedSessionEndNodes entfernen

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

Sitzung wiederherstellen

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Eine zuvor gesperrte Weave-Sicherheitssitzung aus einem serialisierten Zustand wiederherstellen.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Gibt eine IPAdresse zurück, die eine Weave-ULA für einen angegebenen Knoten enthält.

Bei dieser Variante kann ein Subnetz angegeben werden.

Details
Parameter
[in] nodeId
Die Knoten-ID-Nummer des betreffenden Knotens.
[in] subnet
Das gewünschte Subnetz der ULA.
Rückgabewerte
IPAddress
Ein IPAddress-Objekt.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Gibt eine IPAdresse zurück, die eine Weave-ULA für einen angegebenen Knoten enthält.

Diese Variante verwendet das Standardsubnetz des lokalen Knotens.

Details
Parameter
[in] nodeId
Die Knoten-ID-Nummer des betreffenden Knotens.
Rückgabewerte
IPAddress
Ein IPAddress-Objekt.

Festleger

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Mit dieser Methode wird das Bevollmächtigten festgelegt.

Die Callback-Methoden des Bevollmächtigten werden aufgerufen, wenn die FabricId geändert wird, z. B. beim Zusammenführen/Erstellen eines Stoffs oder wenn wir einen Stoff verlassen (leichter Stoffstatus).

Wenn der Bevollmächtigte bereits festgelegt ist, wird der vorherige Bevollmächtigte durch einen zweiten Aufruf dieser Methode überschrieben.

Details
Parameter
[in] aDelegate
Das delegierte Objekt. Er kann NULL sein, wenn kein Bevollmächtigter erforderlich ist.

Sitzungssitzungsschlüssel

WEAVE_ERROR SetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

Sitzungssitzungsschlüssel

WEAVE_ERROR SetSessionKey(
  WeaveSessionKey *sessionKey,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

Heruntergefahren

WEAVE_ERROR Shutdown(
  void
)

Sitzung beenden

WEAVE_ERROR SuspendSession(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t *buf,
  uint16_t bufSize,
  uint16_t & serializedSessionLen
)

Den Status einer aktiven Weave-Sicherheitssitzung sperren und serialisiert

Serialisiert den Status einer identifizierten Weave-Sicherheitssitzung in den bereitgestellten Puffer und sperrt die Sitzung, damit keine weiteren Nachrichten gesendet oder empfangen werden können.

Diese Methode ist für Geräte gedacht, die RAM während des Schlafs nicht beibehalten. Dadurch können sie den Status einer aktiven Sitzung beibehalten und dadurch die Sitzung nach dem Aufwachen nicht neu erstellen.

WeaveFabricState

 WeaveFabricState(
  void
)