nl:: بافت:: WeaveFabricState

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

اعلامیه فوروارد WeaveFabricState .

خلاصه

سازندگان و ویرانگرها

WeaveFabricState (void)

انواع عمومی

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

صفات عمومی

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 نشان دهنده یک آدرس بافت بافت برای گره محلی است یا خیر.
IsSharedSession (uint16_t keyId, uint64_t peerNodeId)
bool
این روش بررسی می کند که آیا جلسه امن مرتبط با peer و 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)
یک جلسه امنیتی Weave که قبلاً به حالت تعلیق درآمده بود را از حالت سریال بازیابی کنید.
SelectNodeAddress (uint64_t nodeId, uint16_t subnet) const
یک آدرس IP حاوی یک ULA Weave برای یک گره مشخص را برمی‌گرداند.
SelectNodeAddress (uint64_t nodeId) const
یک آدرس IP حاوی یک ULA Weave برای یک گره مشخص را برمی‌گرداند.
SetDelegate ( FabricStateDelegate *aDelegate)
void
این متد شی delegate را تنظیم می کند.
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:: بافت:: WeaveFabricState:: SessionEndCbCtxt

انواع عمومی

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

حالت

 State

صفات عمومی

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

حالت

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

توابع عمومی

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

این روش گره پایانی جدیدی را به رکورد گره های انتهایی مشترک اضافه می کند.

جزئیات
مولفه های
[in] sessionKey
شی WeaveSessionKey نشان دهنده جلسه ای است که گره انتهایی جدید باید برای آن اضافه شود.
[in] endNodeId
شناسه گره گره پایان جلسه که باید اضافه شود.
ارزش های بازگشتی
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
اگر فضای خالی برای ورودی جدید در لیست گره های انتهایی مشترک وجود نداشته باشد.
WEAVE_NO_ERROR
در مورد موفقیت

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
)

این روش ورودی کلید جلسه را پیدا می کند.

جزئیات
مولفه های
[in] keyId
شناسه کلید ببافید.
[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
در مورد موفقیت

FindSharedSession

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
در مورد موفقیت

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

شروع کنید

WEAVE_ERROR Init(
  void
)

شروع کنید

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

آدرس فابریک

bool IsFabricAddress(
  const IPAddress & addr
) const 

تعیین می کند که آیا یک آدرس IP نشان دهنده آدرس یک گره در بافت محلی Weave است یا خیر.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

تعیین می کند که آیا یک آدرس IP نشان دهنده یک آدرس بافت بافت برای گره محلی است یا خیر.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

این روش بررسی می کند که آیا جلسه امن مرتبط با peer و keyId مشخص شده به اشتراک گذاشته شده است یا خیر.

جزئیات
مولفه های
[in] keyId
شناسه کلید جلسه
[in] peerNodeId
شناسه گره همتا.
ارزش های بازگشتی
bool
اینکه آیا جلسه مشخص شده به اشتراک گذاشته شده است یا خیر.

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
)

جلسه بازیابی

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

یک جلسه امنیتی Weave که قبلاً به حالت تعلیق درآمده بود را از حالت سریال بازیابی کنید.

NodeAddress را انتخاب کنید

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

یک آدرس IP حاوی یک ULA Weave برای یک گره مشخص را برمی‌گرداند.

این نوع اجازه می دهد تا یک زیرشبکه مشخص شود.

جزئیات
مولفه های
[in] nodeId
شماره شناسه گره گره مورد نظر.
[in] subnet
زیرشبکه مورد نظر ULA.
ارزش های بازگشتی
IPAddress
یک شیء آدرس IP.

NodeAddress را انتخاب کنید

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

یک آدرس IP حاوی یک ULA Weave برای یک گره مشخص را برمی‌گرداند.

این نوع از زیرشبکه پیش فرض گره محلی استفاده می کند.

جزئیات
مولفه های
[in] nodeId
شماره شناسه گره گره مورد نظر.
ارزش های بازگشتی
IPAddress
یک شیء آدرس IP.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

این متد شی delegate را تنظیم می کند.

زمانی که 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
)

SuspendSession

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

حالت یک جلسه امنیتی Weave فعال را به حالت تعلیق درآورید و سریال کنید.

وضعیت یک جلسه امنیتی Weave شناسایی شده را در بافر ارائه شده سریال می کند و جلسه را به حالت تعلیق در می آورد که هیچ پیام دیگری ارسال یا دریافت نشود.

این روش برای دستگاه‌هایی در نظر گرفته شده است که در هنگام خواب RAM را حفظ نمی‌کنند و به آن‌ها اجازه می‌دهد تا وضعیت یک جلسه فعال را حفظ کنند و در نتیجه نیازی به برقراری مجدد جلسه در هنگام بیدار شدن نداشته باشند.

WeaveFabricState

 WeaveFabricState(
  void
)