nl::Weave::WeaveFabricState

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

Dichiarazione di WeaveFabricState.

Riepilogo

Costruttori e distruttori

WeaveFabricState(void)

Tipi pubblici

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

Attributi pubblici

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

Funzioni pubbliche

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Questo metodo aggiunge un nuovo nodo finale al record dei nodi finali condivisi.
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)
Questo metodo consente di trovare l'immissione della chiave di sessione.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Cerca nella tabella delle chiavi di sessione una chiave di sessione condivisa stabilita che abbia come target il nodo di chiusura specificato e che corrisponda alla modalità di autenticazione e al tipo di crittografia specificati.
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)
Questo metodo restituisce tutti gli ID nodo finale che condividono la sessione specificata.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Determina se un indirizzo IP rappresenta un indirizzo di un nodo all'interno della struttura Weave locale.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Determina se un indirizzo IP rappresenta un indirizzo dell'Infrastruttura Weave per il nodo locale.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Questo metodo verifica se la sessione sicura associata al peer e all'ID chiave specificati è condivisa.
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)
Ripristina una sessione di sicurezza Weave precedentemente sospesa da uno stato serializzato.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Restituisce un indirizzo IP contenente un ULA Weave per un nodo specificato.
SelectNodeAddress(uint64_t nodeId) const
Restituisce un indirizzo IP contenente un ULA Weave per un nodo specificato.
SetDelegate(FabricStateDelegate *aDelegate)
void
Questo metodo imposta l'oggetto delegato.
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)
Sospendere e serializzare lo stato di una sessione di sicurezza Weave attiva.

Strutture

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Tipi pubblici

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

Stato

 State

Attributi pubblici

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

Stato

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

Funzioni pubbliche

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Questo metodo aggiunge un nuovo nodo finale al record dei nodi finali condivisi.

Dettagli
Parametri
[in] sessionKey
L'oggetto WeaveSessionKey che rappresenta la sessione per cui deve essere aggiunto il nuovo nodo finale.
[in] endNodeId
L'ID nodo del nodo finale della sessione da aggiungere.
Valori restituiti
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Se non c'è spazio libero per una nuova voce nell'elenco dei nodi finali condivisi.
WEAVE_NO_ERROR
In caso di successo.

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
)

Questo metodo consente di trovare l'immissione della chiave di sessione.

Dettagli
Parametri
[in] keyId
Identificatore chiave Weave.
[in] peerNodeId
L'identificatore del nodo del peer.
[in] create
Un valore booleano che indica se è necessario creare una nuova chiave nel caso in cui non venga trovata la chiave specificata.
[out] retRec
Un riferimento puntatore a un oggetto WeaveSessionKey.
Valori restituiti
WEAVE_ERROR_WRONG_KEY_TYPE
Se la chiave specificata non è un tipo di chiave di sessione.
WEAVE_ERROR_INVALID_ARGUMENT
Se gli argomenti di input presentano valori errati.
WEAVE_ERROR_KEY_NOT_FOUND
Se la chiave specificata non è stata trovata.
WEAVE_ERROR_TOO_MANY_KEYS
Se non è disponibile un accesso senza costi per creare una nuova chiave di sessione.
WEAVE_NO_ERROR
In caso di successo.

FindSharedSession

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

Cerca nella tabella delle chiavi di sessione una chiave di sessione condivisa stabilita che abbia come target il nodo di chiusura specificato e che corrisponda alla modalità di autenticazione e al tipo di crittografia specificati.

Dettagli
Parametri
[in] terminatingNodeId
L'identificatore del nodo del carattere di terminazione della sessione.
[in] authMode
La modalità di autenticazione della sessione desiderata.
[in] encType
Il tipo di crittografia dei messaggi desiderato.
Valori restituiti
WeaveSessionKey
* Un puntatore a un oggetto WeaveSessionKey che rappresenta la sessione condivisa corrispondente oppure NULL se non è stata trovata alcuna sessione corrispondente.

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
)

Questo metodo restituisce tutti gli ID nodo finale che condividono la sessione specificata.

Dettagli
Parametri
[in] sessionKey
Un puntatore all'oggetto chiave della sessione.
[in] endNodeIds
Un puntatore al buffer degli ID nodo.
[in] endNodeIdsMaxCount
Il numero massimo di ID nodo che possono rientrare nel buffer.
[out] endNodeIdsCount
Numero di ID nodo finale trovati che condividono la sessione specificata.
Valori restituiti
WEAVE_ERROR_BUFFER_TOO_SMALL
Se fornito, il buffer degli ID dei nodi finali non è abbastanza grande.
WEAVE_NO_ERROR
In caso di successo.

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

Inizia

WEAVE_ERROR Init(
  void
)

Inizia

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

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

Determina se un indirizzo IP rappresenta un indirizzo di un nodo all'interno della struttura Weave locale.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Determina se un indirizzo IP rappresenta un indirizzo dell'Infrastruttura Weave per il nodo locale.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Questo metodo verifica se la sessione sicura associata al peer e all'ID chiave specificati è condivisa.

Dettagli
Parametri
[in] keyId
L'identificatore della chiave di sessione.
[in] peerNodeId
L'identificatore del nodo del peer.
Valori restituiti
bool
Indica se la sessione specificata è condivisa o meno.

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
)

Ripristina una sessione di sicurezza Weave precedentemente sospesa da uno stato serializzato.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Restituisce un indirizzo IP contenente un ULA Weave per un nodo specificato.

Questa variante consente di specificare una subnet.

Dettagli
Parametri
[in] nodeId
Il numero ID del nodo in questione.
[in] subnet
La subnet desiderata dell'ULA.
Valori restituiti
IPAddress
Un oggetto IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Restituisce un indirizzo IP contenente un ULA Weave per un nodo specificato.

Questa variante utilizza la subnet predefinita del nodo locale.

Dettagli
Parametri
[in] nodeId
Il numero ID del nodo in questione.
Valori restituiti
IPAddress
Un oggetto IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Questo metodo imposta l'oggetto delegato.

I metodi di callback del delegato vengono richiamati ogni volta che il FabricId viene modificato, ad esempio quando uniamo o creiamo un fabric oppure quando usciamo da un fabric (stato fabric chiaro)

Se il delegato è stato precedentemente impostato, una seconda chiamata a questo metodo sovrascriverà il delegato precedente.

Dettagli
Parametri
[in] aDelegate
L'oggetto delegato. Può essere NULL se non è richiesto alcun delegato.

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
)

Arresto

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

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

Sospendere e serializzare lo stato di una sessione di sicurezza Weave attiva.

Serializza lo stato di una sessione di sicurezza Weave identificata nel buffer fornito e sospende la sessione in modo che non possano essere inviati o ricevuti ulteriori messaggi.

Questo metodo è stato pensato per essere utilizzato dai dispositivi che non conservano la RAM durante il sonno, consentendo loro di mantenere lo stato di una sessione attiva e quindi di evitare di dover ristabilire la sessione quando si riattivano.

WeaveFabricState

 WeaveFabricState(
  void
)