нл:: Переплетение:: ТкатьТканьСостояние

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

Форвардное объявление WeaveFabricState .

Краткое содержание

Конструкторы и деструкторы

WeaveFabricState (void)

Публичные типы

PeerIndexType определение типа
uint8_t
SessionEndCbFunct )(uint16_t keyId, uint64_t peerNodeId, void *context) определение типа
void(*
State перечисление

Публичные атрибуты

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

Общественные функции

AddSharedSessionEndNode (uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode ( WeaveSessionKey *sessionKey, uint64_t endNodeId)
Этот метод добавляет новый конечный узел в запись общих конечных узлов.
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)
Этот метод находит запись ключа сеанса.
FindSharedSession (uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Найдите в таблице сеансовых ключей установленный общий сеансовый ключ, который нацелен на указанный конечный узел и соответствует заданному режиму аутентификации и типу шифрования.
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)
Этот метод возвращает все идентификаторы конечных узлов, которые используют указанный сеанс.
HandleConnectionClosed ( WeaveConnection *con)
void
Init (void)
Init ( nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress (const IPAddress & addr) const
bool
Определяет, представляет ли IP-адрес адрес узла в локальной структуре Weave.
IsLocalFabricAddress (const IPAddress & addr) const
bool
Определяет, представляет ли IP-адрес адрес структуры Weave для локального узла.
IsSharedSession (uint16_t keyId, uint64_t peerNodeId)
bool
Этот метод проверяет, является ли безопасный сеанс, связанный с указанным узлом и идентификатором ключа, общим.
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)
Восстановите ранее приостановленный сеанс безопасности Weave из сериализованного состояния.
SelectNodeAddress (uint64_t nodeId, uint16_t subnet) const
Возвращает IPAddress, содержащий ULA Weave для указанного узла.
SelectNodeAddress (uint64_t nodeId) const
Возвращает IPAddress, содержащий ULA Weave для указанного узла.
SetDelegate ( FabricStateDelegate *aDelegate)
void
Этот метод устанавливает объект делегата.
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)
Приостановите и сериализуйте состояние активного сеанса безопасности Weave.

Структуры

nl:: Weave:: WeaveFabricState:: SessionEndCbCtxt

Публичные типы

PeerIndexType

uint8_t PeerIndexType

Сеансендкбфункт

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

Состояние

 State

Публичные атрибуты

AutoCreateKeys

bool AutoCreateKeys

DebugFabricId

uint64_t DebugFabricId

DefaultSubnet

uint16_t DefaultSubnet

Ид ткани

uint64_t FabricId

Групповое хранилище ключей

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

СлушатьIPv4Addr

IPAddress ListenIPv4Addr

СлушатьIPv6Addr

IPAddress ListenIPv6Addr

Локальныйнодеид

uint64_t LocalNodeId

ЛогКейс

bool LogKeys

МаксуненкUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

Слой сообщений

WeaveMessageLayer * MessageLayer

Большинство недавно использованных индексов

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

идентификатор узла

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

Код сопряжения

const char * PairingCode

Состояние

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

Усетесткей

bool UseTestKey

Общественные функции

Аддшаредсессионендноде

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

Аддшаредсессионендноде

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Этот метод добавляет новый конечный узел в запись общих конечных узлов.

Подробности
Параметры
[in] sessionKey
Объект WeaveSessionKey, представляющий сеанс, для которого следует добавить новый конечный узел.
[in] endNodeId
Идентификатор добавляемого конечного узла сеанса.
Возвращаемые значения
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Если в списке общих конечных узлов нет свободного места для новой записи.
WEAVE_NO_ERROR
Об успехе.

Аллоксессионкей

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

ClearFabricState

void ClearFabricState(
  void
)

CreateFabric

WEAVE_ERROR CreateFabric(
  void
)

НайтиSessionKey

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

Этот метод находит запись ключа сеанса.

Подробности
Параметры
[in] keyId
Идентификатор ключа Weave.
[in] peerNodeId
Идентификатор узла однорангового узла.
[in] create
Логическое значение, указывающее, следует ли создавать новый ключ, если указанный ключ не найден.
[out] retRec
Ссылка на указатель на объект WeaveSessionKey .
Возвращаемые значения
WEAVE_ERROR_WRONG_KEY_TYPE
Если указанный ключ не является типом сеансового ключа.
WEAVE_ERROR_INVALID_ARGUMENT
Если входные аргументы имеют неправильные значения.
WEAVE_ERROR_KEY_NOT_FOUND
Если указанный ключ не найден.
WEAVE_ERROR_TOO_MANY_KEYS
Если нет свободного входа, создайте новый сеансовый ключ.
WEAVE_NO_ERROR
Об успехе.

НайтиSharedSession

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

Найдите в таблице сеансовых ключей установленный общий сеансовый ключ, который нацелен на указанный конечный узел и соответствует заданному режиму аутентификации и типу шифрования.

Подробности
Параметры
[in] terminatingNodeId
Идентификатор узла терминатора сеанса.
[in] authMode
Желаемый режим аутентификации сеанса.
[in] encType
Желаемый тип шифрования сообщения.
Возвращаемые значения
WeaveSessionKey
* Указатель на объект WeaveSessionKey , представляющий соответствующий общий сеанс; или NULL, если соответствующий сеанс не найден.

GetFabricState

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

Получить пароль

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
)

Этот метод возвращает все идентификаторы конечных узлов, которые используют указанный сеанс.

Подробности
Параметры
[in] sessionKey
Указатель на объект ключа сеанса.
[in] endNodeIds
Указатель на буфер идентификаторов узлов.
[in] endNodeIdsMaxCount
Максимальное количество идентификаторов узлов, которые могут поместиться в буфере.
[out] endNodeIdsCount
Количество найденных идентификаторов конечных узлов, которые используют указанный сеанс.
Возвращаемые значения
WEAVE_ERROR_BUFFER_TOO_SMALL
Если предоставлен буфер идентификаторов конечных узлов, он недостаточно велик.
WEAVE_NO_ERROR
Об успехе.

РучкаСоединениеЗакрыто

void HandleConnectionClosed(
  WeaveConnection *con
)

Инициализировать

WEAVE_ERROR Init(
  void
)

Инициализировать

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

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

Определяет, представляет ли IP-адрес адрес узла в локальной структуре Weave.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Определяет, представляет ли IP-адрес адрес структуры Weave для локального узла.

Исшаредсессион

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Этот метод проверяет, является ли безопасный сеанс, связанный с указанным узлом и идентификатором ключа, общим.

Подробности
Параметры
[in] keyId
Идентификатор ключа сеанса.
[in] peerNodeId
Идентификатор узла однорангового узла.
Возвращаемые значения
bool
Является ли указанный сеанс общим или нет.

Присоединиться к существующей фабрике

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

Регистрациясессионконецобратный вызов

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

УдалитьIdleSessionKeys

bool RemoveIdleSessionKeys()

УдалитьSessionKey

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

УдалитьSessionKey

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

Ремумовередсессионенднодес

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

Восстановить сессию

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Восстановите ранее приостановленный сеанс безопасности Weave из сериализованного состояния.

Адрес СелектаНоде

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Возвращает IPAddress, содержащий ULA Weave для указанного узла.

Этот вариант позволяет указать подсеть.

Подробности
Параметры
[in] nodeId
Идентификатор узла, о котором идет речь.
[in] subnet
Желаемая подсеть ULA.
Возвращаемые значения
IPAddress
Объект IPAddress.

Адрес СелектаНоде

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Возвращает IPAddress, содержащий ULA Weave для указанного узла.

В этом варианте используется подсеть локального узла по умолчанию.

Подробности
Параметры
[in] nodeId
Идентификатор узла, о котором идет речь.
Возвращаемые значения
IPAddress
Объект IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Этот метод устанавливает объект делегата.

Методы обратного вызова делегата вызываются всякий раз, когда изменяется FabricId, т. е. когда мы присоединяемся к фабрике/создаем ее или когда покидаем фабрику (очищаем состояние фабрики).

Если делегат установлен ранее, то второй вызов этого метода перезапишет предыдущий делегат.

Подробности
Параметры
[in] aDelegate
Объект делегата. Оно может быть NULL, если делегат не требуется.

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
)

Неисправность

WEAVE_ERROR Shutdown(
  void
)

Приостановить сеанс

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

Приостановите и сериализуйте состояние активного сеанса безопасности Weave.

Сериализует состояние идентифицированного сеанса безопасности Weave в предоставленный буфер и приостанавливает сеанс, чтобы дальнейшие сообщения не могли быть отправлены или получены.

Этот метод предназначен для использования устройствами, которые не сохраняют оперативную память во время сна, что позволяет им сохранять состояние активного сеанса и тем самым избегать необходимости повторно устанавливать сеанс после пробуждения.

ТкатьТканьСостояние

 WeaveFabricState(
  void
)