nl::Weave::WeaveFabricState

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

Se reenvió la declaración de WeaveFabricState.

Resumen

Constructores y destructores

WeaveFabricState(void)

Tipos públicos

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

Atributos públicos

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

Funciones públicas

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Este método agrega nuevos nodos finales al registro compartido de los nodos finales.
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)
Este método busca la entrada de la clave de sesión.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Busca en la tabla de claves de sesión una clave de sesión compartida que se oriente al nodo de finalización especificado y coincida con el modo de autenticación y el tipo de encriptación determinados.
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)
Este método muestra todos los ID de los nodos finales que comparten la sesión especificada.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Determina si una dirección IP representa una dirección de un nodo dentro del tejido local de Weave.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Determina si una dirección IP representa una dirección de tejido de Weave para el nodo local.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Este método verifica si se comparte la sesión segura asociada con el par especificado y keyId.
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)
Restablece una sesión de seguridad de Weave suspendida con anterioridad desde un estado serializado.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Muestra una IPAddress que contiene una ULA de Weave para un nodo especificado.
SelectNodeAddress(uint64_t nodeId) const
Muestra una IPAddress que contiene una ULA de Weave para un nodo especificado.
SetDelegate(FabricStateDelegate *aDelegate)
void
Este método establece el objeto delegado.
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)
Suspender y serializar el estado de una sesión de seguridad de Weave activa

Structs

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Tipos públicos

Tipo de índice de par

uint8_t PeerIndexType

Fin de sesión de sesión

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

Estado

 State

Atributos públicos

Crear claves automáticamente

bool AutoCreateKeys

ID de DebugFabric

uint64_t DebugFabricId

Subred predeterminada

uint16_t DefaultSubnet

ID de Fabric

uint64_t FabricId

Almacenamiento de claves de grupo

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

ListenIPv4Addr.

IPAddress ListenIPv4Addr

ListenIPv6Addr.

IPAddress ListenIPv6Addr

ID de nodo local

uint64_t LocalNodeId

Claves de registro

bool LogKeys

MaxUnencUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

Capa de mensajes

WeaveMessageLayer * MessageLayer

Índices más recientes

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

ID del nodo

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

Código de vinculación

const char * PairingCode

Estado

uint8_t State

UnencRcFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UsarTestKey

bool UseTestKey

Funciones públicas

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Este método agrega nuevos nodos finales al registro compartido de los nodos finales.

Detalles
Parámetros
[in] sessionKey
El objeto WeaveSessionKey que representa la sesión a la que se debe agregar el nuevo nodo final.
[in] endNodeId
Es el ID del nodo final de la sesión que se agregará.
Valores que se muestran
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Si no hay espacio libre para una entrada nueva en la lista compartida de nodos finales.
WEAVE_NO_ERROR
Si la operación se realiza correctamente

Clave de sesión de Allo

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

BorrarFabricState

void ClearFabricState(
  void
)

CreateFabric

WEAVE_ERROR CreateFabric(
  void
)

Clave de sesión

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

Este método busca la entrada de la clave de sesión.

Detalles
Parámetros
[in] keyId
Identificador de clave de Weave.
[in] peerNodeId
Es el identificador de nodo del par.
[in] create
Un valor booleano que indica si se debe crear una clave nueva si no se encuentra la clave especificada.
[out] retRec
Una referencia de puntero a un objeto WeaveSessionKey.
Valores que se muestran
WEAVE_ERROR_WRONG_KEY_TYPE
Si la clave especificada no es un tipo de clave de sesión.
WEAVE_ERROR_INVALID_ARGUMENT
Si los argumentos de entrada tienen valores incorrectos.
WEAVE_ERROR_KEY_NOT_FOUND
Si no se encuentra la clave especificada,
WEAVE_ERROR_TOO_MANY_KEYS
Si no hay una entrada gratuita para crear una clave de sesión nueva,
WEAVE_NO_ERROR
Si la operación se realiza correctamente

FindSharedSession

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

Busca en la tabla de claves de sesión una clave de sesión compartida que se oriente al nodo de finalización especificado y coincida con el modo de autenticación y el tipo de encriptación determinados.

Detalles
Parámetros
[in] terminatingNodeId
Es el identificador de nodo del terminador de sesión.
[in] authMode
Modo de autenticación de la sesión deseado.
[in] encType
El tipo de encriptación de mensaje deseado.
Valores que se muestran
WeaveSessionKey
* Un puntero a un objeto WeaveSessionKey que representa la sesión compartida coincidente; o bien un valor NULL si no se encontró ninguna sesión coincidente.

ObtenerFabricState

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

Obtener contraseña

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

GetSessionKey.

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

Estado de GetSession

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
)

Este método muestra todos los ID de los nodos finales que comparten la sesión especificada.

Detalles
Parámetros
[in] sessionKey
Un puntero al objeto de clave de sesión.
[in] endNodeIds
Un puntero para el búfer de los ID de nodo.
[in] endNodeIdsMaxCount
La cantidad máxima de ID de nodos que pueden caber en el búfer.
[out] endNodeIdsCount
Cantidad de ID de nodos finales encontrados que comparten una sesión especificada.
Valores que se muestran
WEAVE_ERROR_BUFFER_TOO_SMALL
Si se proporciona, el búfer de los ID de nodo final no es lo suficientemente grande.
WEAVE_NO_ERROR
Si la operación se realiza correctamente

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 

Determina si una dirección IP representa una dirección de un nodo dentro del tejido local de Weave.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Determina si una dirección IP representa una dirección de tejido de Weave para el nodo local.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Este método verifica si se comparte la sesión segura asociada con el par especificado y keyId.

Detalles
Parámetros
[in] keyId
Es el identificador de la clave de sesión.
[in] peerNodeId
Es el identificador de nodo del par.
Valores que se muestran
bool
Indica si se compartió la sesión especificada.

JoinExistingFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegistrarEndEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

RemoveIdleSessionKeys

bool RemoveIdleSessionKeys()

QuitarSesiónClave

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

QuitarSesiónClave

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

QuitaSharedSharedEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

RestoreSession

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Restablece una sesión de seguridad de Weave suspendida con anterioridad desde un estado serializado.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Muestra una IPAddress que contiene una ULA de Weave para un nodo especificado.

Esta variante permite especificar una subred.

Detalles
Parámetros
[in] nodeId
El número de ID del nodo en cuestión.
[in] subnet
La subred deseada de la ULA.
Valores que se muestran
IPAddress
Un objeto de IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Muestra una IPAddress que contiene una ULA de Weave para un nodo especificado.

Esta variante usa la subred predeterminada del nodo local.

Detalles
Parámetros
[in] nodeId
El número de ID del nodo en cuestión.
Valores que se muestran
IPAddress
Un objeto de IPAddress.

Delegado de Set

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Este método establece el objeto delegado.

Los métodos de devolución de llamada de delegado se invocan cada vez que se modifica FabricId, es decir, cuando se une o se crea una tejido o cuando se deja una estructura (borrar el estado de la tejido).

Si el delegado ya se configuró, una segunda llamada a este método reemplazará al delegado anterior.

Detalles
Parámetros
[in] aDelegate
El objeto delegado. Puede ser NULO si no se necesita un delegado.

Clave de la sesión

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

Clave de la sesión

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

Cierre

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

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

Suspender y serializar el estado de una sesión de seguridad de Weave activa

Se serializa el estado de una sesión de seguridad de Weave en el búfer proporcionado y se suspende la sesión para que no se puedan enviar ni recibir más mensajes.

Este método está diseñado para que lo usen los dispositivos que no retienen la RAM mientras duermen, lo que les permite conservar el estado de una sesión activa y, por lo tanto, evitar la necesidad de restablecer la sesión cuando se despiertan.

Estado de WeaveFabric

 WeaveFabricState(
  void
)