nl::Weave::WeaveFabricState

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

Déclaration de transfert de WeaveFabricState.

Résumé

Constructeurs et destructeurs

WeaveFabricState(void)

Types publics

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

Attributs publics

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

Fonctions publiques

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Cette méthode ajoute un nouveau nœud de fin à l'enregistrement de nœuds de fin partagés.
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)
Cette méthode trouve l'entrée de la clé de session.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Dans le tableau des clés de session, recherchez une clé de session partagée établie qui cible le nœud d'arrêt spécifié et qui correspond au mode d'authentification et au type de chiffrement donnés.
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)
Cette méthode renvoie tous les ID de nœud final qui partagent une session spécifiée.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Détermine si une adresse IP correspond à l'adresse d'un nœud dans la structure Weave locale.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Détermine si une adresse IP représente une adresse Weave fabric pour le nœud local.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Cette méthode vérifie si la session sécurisée associée au pair et à l'ID de clé spécifiés est partagée.
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)
Restaurez une session de sécurité Weave précédemment suspendue à partir d'un état sérialisé.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Renvoie une adresse IP (IPAddress) contenant une ULA Weave pour un nœud spécifié.
SelectNodeAddress(uint64_t nodeId) const
Renvoie une adresse IP (IPAddress) contenant une ULA Weave pour un nœud spécifié.
SetDelegate(FabricStateDelegate *aDelegate)
void
Cette méthode définit l'objet délégué.
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)
Suspend et sérialise l'état d'une session de sécurité Weave active.

Structs

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Types publics

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

État

 State

Attributs publics

AutoCreateKeys

bool AutoCreateKeys

DebugFabricId

uint64_t DebugFabricId

DefaultSubnet

uint16_t DefaultSubnet

FabricId

uint64_t FabricId

GroupKeyStore

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

ListenIPv4Addr

IPAddress ListenIPv4Addr

ListenIPv6Addr

IPAddress ListenIPv6Addr

LocalNodeId

uint64_t LocalNodeId

LogKeys

bool LogKeys

MaxUnencUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

MessageLayer

WeaveMessageLayer * MessageLayer

MostRecentlyUsedIndexes

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

NodeId

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

PairingCode

const char * PairingCode

État

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

Fonctions publiques

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Cette méthode ajoute un nouveau nœud de fin à l'enregistrement de nœuds de fin partagés.

Détails
Paramètres
[in] sessionKey
Objet WeaveSessionKey représentant la session pour laquelle le nouveau nœud de fin doit être ajouté.
[in] endNodeId
ID du nœud du nœud de fin de session à ajouter.
Valeurs de retour
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
S'il n'y a pas d'espace libre pour une nouvelle entrée dans la liste des nœuds finaux partagés.
WEAVE_NO_ERROR
Pour la réussite.

AllocSessionKey

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

ClearFabricState

void ClearFabricState(
  void
)

CreateFabric

WEAVE_ERROR CreateFabric(
  void
)

FindSessionKey

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

Cette méthode trouve l'entrée de la clé de session.

Détails
Paramètres
[in] keyId
Identifiant de la clé Weave.
[in] peerNodeId
Identifiant de nœud du pair.
[in] create
Valeur booléenne indiquant si une clé doit être créée si la clé spécifiée est introuvable.
[out] retRec
Référence de pointeur à un objet WeaveSessionKey.
Valeurs de retour
WEAVE_ERROR_WRONG_KEY_TYPE
Si la clé est spécifiée n'est pas un type de clé de session.
WEAVE_ERROR_INVALID_ARGUMENT
Si les arguments d'entrée ont des valeurs incorrectes.
WEAVE_ERROR_KEY_NOT_FOUND
Si la clé spécifiée est introuvable.
WEAVE_ERROR_TOO_MANY_KEYS
S'il n'y a pas d'entrée libre pour créer une clé de session.
WEAVE_NO_ERROR
Pour la réussite.

FindSharedSession

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

Dans le tableau des clés de session, recherchez une clé de session partagée établie qui cible le nœud d'arrêt spécifié et qui correspond au mode d'authentification et au type de chiffrement donnés.

Détails
Paramètres
[in] terminatingNodeId
Identifiant de nœud du terminaison de session.
[in] authMode
Mode d'authentification de session souhaité.
[in] encType
Type de chiffrement du message souhaité.
Valeurs de retour
WeaveSessionKey
* Pointeur vers un objet WeaveSessionKey représentant la session partagée correspondante, ou valeur NULL si aucune session correspondante n'a été trouvée.

GetFabricState

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

GetPassword

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

GetSessionKey

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
)

Cette méthode renvoie tous les ID de nœud final qui partagent une session spécifiée.

Détails
Paramètres
[in] sessionKey
Un pointeur vers l'objet de clé de session.
[in] endNodeIds
Pointeur vers un tampon d'ID de nœuds.
[in] endNodeIdsMaxCount
Nombre maximal d'ID de nœud pouvant tenir dans le tampon.
[out] endNodeIdsCount
Nombre d'ID de nœud final qui partagent la session spécifiée.
Valeurs de retour
WEAVE_ERROR_BUFFER_TOO_SMALL
Si ce tampon est fourni, le tampon des ID du nœud final n'est pas assez volumineux.
WEAVE_NO_ERROR
Pour la réussite.

HandleConnectionClosed

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 

Détermine si une adresse IP correspond à l'adresse d'un nœud dans la structure Weave locale.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Détermine si une adresse IP représente une adresse Weave fabric pour le nœud local.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Cette méthode vérifie si la session sécurisée associée au pair et à l'ID de clé spécifiés est partagée.

Détails
Paramètres
[in] keyId
Identifiant de clé de session.
[in] peerNodeId
Identifiant de nœud du pair.
Valeurs de retour
bool
Indique si la session spécifiée est partagée.

JoinExistingFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

RemoveIdleSessionKeys

bool RemoveIdleSessionKeys()

RemoveSessionKey

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

RemoveSessionKey

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

RemoveSharedSessionEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

RestoreSession

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Restaurez une session de sécurité Weave précédemment suspendue à partir d'un état sérialisé.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Renvoie une adresse IP (IPAddress) contenant une ULA Weave pour un nœud spécifié.

Cette variante permet de spécifier un sous-réseau.

Détails
Paramètres
[in] nodeId
L'ID du nœud en question
[in] subnet
Sous-réseau souhaité de la carte ULA.
Valeurs de retour
IPAddress
Un objet IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Renvoie une adresse IP (IPAddress) contenant une ULA Weave pour un nœud spécifié.

Cette variante utilise le sous-réseau par défaut du nœud local.

Détails
Paramètres
[in] nodeId
L'ID du nœud en question
Valeurs de retour
IPAddress
Un objet IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Cette méthode définit l'objet délégué.

Les méthodes de rappel de "delegate" sont appelées chaque fois que le FabricId est modifié, c'est-à-dire lorsque nous rejoignons/créons un maillage, ou lorsque nous quittons une fabric (état d'effacement de la structure).

Si le délégué a déjà été défini, le délégué précédent sera écrasé lors d'un second appel à cette méthode.

Détails
Paramètres
[in] aDelegate
Objet délégué. Elle peut être NULL si aucun délégué n'est requis.

SetSessionKey

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

SetSessionKey

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

Arrêt

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

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

Suspend et sérialise l'état d'une session de sécurité Weave active.

Sérialise l'état d'une session de sécurité Weave identifiée dans le tampon fourni et suspend la session afin qu'aucun autre message ne puisse être envoyé ni reçu.

Cette méthode est destinée aux appareils qui ne conservent pas de RAM en veille. Ils peuvent ainsi conserver l'état d'une session active et ainsi éviter d'avoir à rétablir la session lorsqu'ils sont activés.

WeaveFabricState

 WeaveFabricState(
  void
)