nl::Weave::WeaveFabricState

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

Declaração de encaminhamento de WeaveFabricState.

Resumo

Construtores e destruidores

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

Funções públicas

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Esse método adiciona um novo nó final ao registro de nós finais compartilhado.
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)
Esse método encontra a entrada da chave de sessão.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Pesquise na tabela de chaves de sessão uma chave de sessão compartilhada estabelecida que seja destinada ao nó final especificado e corresponda ao modo de autenticação e ao tipo de criptografia fornecidos.
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)
Esse método retorna todos os IDs de nó final que compartilham a sessão especificada.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Determina se um endereço IP representa um endereço de um nó dentro da malha local do Weave.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Determina se um endereço IP representa um endereço de malha Weave para o nó local.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Esse método verifica se a sessão segura associada ao peering e ao keyId especificados está compartilhada.
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)
Restaura uma sessão de segurança do Weave suspensa anteriormente de um estado serializado.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Retorna um IPAddress que contém um ULA do Weave para um nó especificado.
SelectNodeAddress(uint64_t nodeId) const
Retorna um IPAddress que contém um ULA do Weave para um nó especificado.
SetDelegate(FabricStateDelegate *aDelegate)
void
Esse método define o 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)
Suspenda e serialize o estado de uma sessão de segurança ativa do Weave.

Tipos públicos

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

Estado

 State

Atributos públicos

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

Estado

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

Funções públicas

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
 
WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Esse método adiciona um novo nó final ao registro de nós finais compartilhado.

Detalhes
Parâmetros
[in] sessionKey
O objeto WeaveSessionKey, que representa a sessão em que o novo nó final precisa ser adicionado.
[in] endNodeId
O ID do nó final da sessão a ser adicionado.
Valores de retorno
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Se não houver espaço livre para uma nova entrada na lista de nós finais compartilhada.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

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
)

Esse método encontra a entrada da chave de sessão.

Detalhes
Parâmetros
[in] keyId
Identificador de chave do Weave.
[in] peerNodeId
O identificador de nó do peering.
[in] create
Um valor booleano que indica se a nova chave precisa ser criada caso a chave especificada não seja encontrada.
[out] retRec
Uma referência de ponteiro para um objeto WeaveSessionKey.
Valores de retorno
WEAVE_ERROR_WRONG_KEY_TYPE
Se a chave especificada não for um tipo de chave de sessão.
WEAVE_ERROR_INVALID_ARGUMENT
Se os argumentos de entrada tiverem valores incorretos.
WEAVE_ERROR_KEY_NOT_FOUND
Se a chave especificada não for encontrada.
WEAVE_ERROR_TOO_MANY_KEYS
Se não houver entrada livre para criar uma nova chave de sessão.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

FindSharedSession

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

Pesquise na tabela de chaves de sessão uma chave de sessão compartilhada estabelecida que seja destinada ao nó final especificado e corresponda ao modo de autenticação e ao tipo de criptografia fornecidos.

Detalhes
Parâmetros
[in] terminatingNodeId
O identificador de nó do terminador de sessão.
[in] authMode
O modo de autenticação da sessão desejado.
[in] encType
O tipo de criptografia de mensagens desejado.
Valores de retorno
WeaveSessionKey
* Um ponteiro para um objeto WeaveSessionKey que representa a sessão compartilhada correspondente. ou NULL se nenhuma sessão correspondente for encontrada.

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
)

Esse método retorna todos os IDs de nó final que compartilham a sessão especificada.

Detalhes
Parâmetros
[in] sessionKey
Um ponteiro para o objeto de chave de sessão.
[in] endNodeIds
Um ponteiro para o buffer de IDs de nó.
[in] endNodeIdsMaxCount
O número máximo de IDs de nó que podem caber no buffer.
[out] endNodeIdsCount
Número de IDs de nós finais encontrados que compartilham a sessão especificada.
Valores de retorno
WEAVE_ERROR_BUFFER_TOO_SMALL
Se fornecido, o buffer de IDs do nó final não é grande o suficiente.
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

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 se um endereço IP representa um endereço de um nó dentro da malha local do Weave.

IsLocalFabricAddress

bool IsLocalFabricAddress(
 
const IPAddress & addr
) const

Determina se um endereço IP representa um endereço de malha Weave para o nó local.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId
,
  uint64_t peerNodeId
)

Esse método verifica se a sessão segura associada ao peering e ao keyId especificados está compartilhada.

Detalhes
Parâmetros
[in] keyId
É o identificador de chave de sessão.
[in] peerNodeId
O identificador de nó do peering.
Valores de retorno
bool
Se a sessão especificada é compartilhada ou não.

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
)

Restaura uma sessão de segurança do Weave suspensa anteriormente de um estado serializado.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
,
  uint16_t subnet
) const

Retorna um IPAddress que contém um ULA do Weave para um nó especificado.

Essa variante permite que uma sub-rede seja especificada.

Detalhes
Parâmetros
[in] nodeId
O número de ID do nó em questão.
[in] subnet
A sub-rede desejada do ULA.
Valores de retorno
IPAddress
Um objeto IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const

Retorna um IPAddress que contém um ULA do Weave para um nó especificado.

Essa variante usa a sub-rede padrão do nó local.

Detalhes
Parâmetros
[in] nodeId
O número de ID do nó em questão.
Valores de retorno
IPAddress
Um objeto IPAddress.

SetDelegate

void SetDelegate(
 
FabricStateDelegate *aDelegate
)

Esse método define o objeto delegado.

Os métodos de callback do delegado são invocados sempre que o FabricId é alterado, ou seja, quando mesclamos/criamos um tecido ou quando deixamos um tecido (estado claro da malha).

Se o delegado tiver sido definido anteriormente, uma segunda chamada para este método substituirá o delegado anterior.

Detalhes
Parâmetros
[in] aDelegate
O objeto delegado. Pode ser NULL se nenhum delegado for necessário.

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
)

Encerramento

WEAVE_ERROR Shutdown(
 
void
)

SuspendSession

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

Suspende e serializa o estado de uma sessão de segurança ativa do Weave.

Serializa o estado de uma sessão de segurança do Weave identificada no buffer fornecido e suspende a sessão, de modo que nenhuma outra mensagem possa ser enviada ou recebida.

Esse método deve ser usado por dispositivos que não retêm RAM durante a suspensão, permitindo que mantenham o estado de uma sessão ativa e, assim, evitem a necessidade de restabelecer a sessão quando forem ativados.

WeaveFabricState

 WeaveFabricState(
 
void
)