nl::Weave::WeaveFabricState

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

Déclaration 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 énum

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 final à l'enregistrement des nœuds finaux 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 recherche l'entrée de 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 de terminaison 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 la 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 représente l'adresse d'un nœud au sein de la structure Weave locale.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Détermine si une adresse IP représente une adresse de structure Weave 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 Weave Security précédemment suspendue à partir d'un état sérialisé.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Renvoie une adresse IP contenant une ULA Weave pour un nœud spécifié.
SelectNodeAddress(uint64_t nodeId) const
Renvoie une adresse IP 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)
Suspendez et sérialisez 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 final à l'enregistrement des nœuds finaux partagés.

Détails
Paramètres
[in] sessionKey
L'objet WeaveSessionKey représentant la session pour laquelle le nouveau nœud de fin doit être ajouté.
[in] endNodeId
ID du nœud de fin de session à ajouter.
Valeurs renvoyées
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
En cas de 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 recherche l'entrée de clé de session.

Détails
Paramètres
[in] keyId
Identifiant de clé Weave.
[in] peerNodeId
Identifiant du 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 renvoyées
WEAVE_ERROR_WRONG_KEY_TYPE
Si la clé spécifiée n'est pas un type de clé de session.
WEAVE_ERROR_INVALID_ARGUMENT
Si les valeurs des arguments d'entrée sont incorrectes.
WEAVE_ERROR_KEY_NOT_FOUND
Si la clé spécifiée est introuvable.
WEAVE_ERROR_TOO_MANY_KEYS
S'il n'existe pas d'entrée libre pour créer une clé de session.
WEAVE_NO_ERROR
En cas de 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 de terminaison spécifié, et qui correspond au mode d'authentification et au type de chiffrement donnés.

Détails
Paramètres
[in] terminatingNodeId
Identifiant du nœud du terminaison de session.
[in] authMode
Mode d'authentification de session souhaité.
[in] encType
Type de chiffrement du message souhaité.
Valeurs renvoyées
WeaveSessionKey
* Un pointeur vers un objet WeaveSessionKey représentant la session partagée correspondante. ou 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 la session spécifiée.

Détails
Paramètres
[in] sessionKey
Pointeur vers l'objet de clé de session.
[in] endNodeIds
Pointeur vers le tampon des ID de nœud.
[in] endNodeIdsMaxCount
Nombre maximal d'ID de nœud pouvant tenir dans le tampon.
[out] endNodeIdsCount
Nombre d'ID de nœuds finaux trouvés partageant la session spécifiée.
Valeurs renvoyées
WEAVE_ERROR_BUFFER_TOO_SMALL
Si le tampon des ID de nœud de fin fourni n'est pas assez volumineux.
WEAVE_NO_ERROR
En cas de 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 représente l'adresse d'un nœud au sein de la structure Weave locale.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Détermine si une adresse IP représente une adresse de structure Weave 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 du nœud du pair.
Valeurs renvoyées
bool
Indique si la session spécifiée est partagée ou non.

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 Weave Security précédemment suspendue à partir d'un état sérialisé.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Renvoie une adresse IP 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 l'ULA.
Valeurs renvoyées
IPAddress
Objet IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Renvoie une adresse IP 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 renvoyées
IPAddress
Objet IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

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

Les méthodes de rappel du délégué sont appelées chaque fois que l'ID FabricId est modifié, c'est-à-dire lorsque nous joignons/créez une structure, ou lorsque nous la quittons (c'est-à-dire, lorsque l'état de la structure est effacé).

Si le délégué est déjà défini, un deuxième appel à cette méthode écrasera le délégué précédent.

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
)

Suspendez et sérialisez 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 de sorte qu'aucun autre message ne puisse être envoyé ou reçu.

Cette méthode est destinée aux appareils qui ne conservent pas de RAM pendant leur veille, ce qui leur permet de conserver l'état d'une session active et d'éviter ainsi de devoir rétablir la session lorsqu'ils se réveillent.

WeaveFabricState

 WeaveFabricState(
  void
)