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 ঠিকানা স্থানীয় ওয়েভ ফ্যাব্রিকের মধ্যে একটি নোডের একটি ঠিকানা প্রতিনিধিত্ব করে কিনা তা নির্ধারণ করে।
IsLocalFabricAddress (const IPAddress & addr) const
bool
একটি IP ঠিকানা স্থানীয় নোডের জন্য একটি Weave ফ্যাব্রিক ঠিকানা প্রতিনিধিত্ব করে কিনা তা নির্ধারণ করে।
IsSharedSession (uint16_t keyId, uint64_t peerNodeId)
bool
এই পদ্ধতিটি নির্দিষ্ট পিয়ার এবং 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)
একটি ক্রমিক অবস্থা থেকে পূর্বে স্থগিত করা উইভ নিরাপত্তা সেশন পুনরুদ্ধার করুন।
SelectNodeAddress (uint64_t nodeId, uint16_t subnet) const
একটি নির্দিষ্ট নোডের জন্য একটি Weave ULA সমন্বিত একটি IPA ঠিকানা প্রদান করে।
SelectNodeAddress (uint64_t nodeId) const
একটি নির্দিষ্ট নোডের জন্য একটি Weave ULA সমন্বিত একটি IPA ঠিকানা প্রদান করে।
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)
একটি সক্রিয় ওয়েভ নিরাপত্তা সেশনের অবস্থা স্থগিত করুন এবং সিরিয়াল করুন।

কাঠামো

nl:: Weave:: 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

ডিফল্ট সাবনেট

uint16_t DefaultSubnet

ফ্যাব্রিকআইডি

uint64_t FabricId

গ্রুপকিস্টোর

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

ListenIPv4Addr

IPAddress ListenIPv4Addr

ListenIPv6Addr

IPAddress ListenIPv6Addr

LocalNodeId

uint64_t LocalNodeId

লগকি

bool LogKeys

MaxUnencUDPMsgIdRcvd

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

পাবলিক ফাংশন

ShareedSessionEndNode যোগ করুন

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

ShareedSessionEndNode যোগ করুন

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
)

ফ্যাব্রিক তৈরি করুন

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
সাফল্যের উপর।

শেয়ার করা সেশন খুঁজুন

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

একটি প্রতিষ্ঠিত শেয়ার্ড সেশন কীর জন্য সেশন কী টেবিলে অনুসন্ধান করুন যা নির্দিষ্ট টার্মিনেটিং নোডকে লক্ষ্য করে এবং প্রদত্ত প্রমাণীকরণ মোড এবং এনক্রিপশন প্রকারের সাথে মেলে।

বিস্তারিত
পরামিতি
[in] terminatingNodeId
সেশন টার্মিনেটরের নোড শনাক্তকারী।
[in] authMode
পছন্দসই সেশন প্রমাণীকরণ মোড।
[in] encType
পছন্দসই বার্তা এনক্রিপশন প্রকার।
রিটার্ন মান
WeaveSessionKey
* একটি WeaveSessionKey অবজেক্টের একটি পয়েন্টার যা মিলে যাওয়া শেয়ার্ড সেশনের প্রতিনিধিত্ব করে; অথবা শূন্য যদি কোন মিল সেশন পাওয়া না যায়।

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
শেষ নোড প্রদান করা হলে Ids বাফার যথেষ্ট বড় নয়।
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 ঠিকানা স্থানীয় ওয়েভ ফ্যাব্রিকের মধ্যে একটি নোডের একটি ঠিকানা প্রতিনিধিত্ব করে কিনা তা নির্ধারণ করে।

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

একটি IP ঠিকানা স্থানীয় নোডের জন্য একটি Weave ফ্যাব্রিক ঠিকানা প্রতিনিধিত্ব করে কিনা তা নির্ধারণ করে।

শেয়ার করা অধিবেশন

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

এই পদ্ধতিটি নির্দিষ্ট পিয়ার এবং keyId এর সাথে যুক্ত নিরাপদ সেশন শেয়ার করা হয়েছে কিনা তা পরীক্ষা করে।

বিস্তারিত
পরামিতি
[in] keyId
সেশন কী শনাক্তকারী।
[in] peerNodeId
পিয়ারের নোড শনাক্তকারী।
রিটার্ন মান
bool
নির্দিষ্ট সেশন শেয়ার করা হয় কি না।

বিদ্যমান ফ্যাব্রিকে যোগ দিন

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

IdleSessionKeys সরান

bool RemoveIdleSessionKeys()

RemoveSessionKey

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

RemoveSessionKey

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

শেয়ার করা সেশন এন্ডনোডগুলি সরান৷

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

সেশন পুনঃস্থাপন করুন

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

একটি ক্রমিক অবস্থা থেকে পূর্বে স্থগিত করা উইভ নিরাপত্তা সেশন পুনরুদ্ধার করুন।

NodeAddress নির্বাচন করুন

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

একটি নির্দিষ্ট নোডের জন্য একটি Weave ULA সমন্বিত একটি IPA ঠিকানা প্রদান করে।

এই বৈকল্পিকটি একটি সাবনেট নির্দিষ্ট করার অনুমতি দেয়।

বিস্তারিত
পরামিতি
[in] nodeId
প্রশ্নে থাকা নোডের নোড আইডি নম্বর।
[in] subnet
ULA এর কাঙ্ক্ষিত সাবনেট।
রিটার্ন মান
IPAddress
একটি আইপিএড্রেস অবজেক্ট।

NodeAddress নির্বাচন করুন

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

একটি নির্দিষ্ট নোডের জন্য একটি Weave ULA সমন্বিত একটি IPA ঠিকানা প্রদান করে।

এই বৈকল্পিক স্থানীয় নোডের ডিফল্ট সাবনেট ব্যবহার করে।

বিস্তারিত
পরামিতি
[in] nodeId
প্রশ্নে থাকা নোডের নোড আইডি নম্বর।
রিটার্ন মান
IPAddress
একটি আইপিএড্রেস অবজেক্ট।

ডেলিগেট সেট করুন

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
)

একটি সক্রিয় ওয়েভ নিরাপত্তা সেশনের অবস্থা স্থগিত করুন এবং সিরিয়াল করুন।

সরবরাহকৃত বাফারে একটি চিহ্নিত ওয়েভ সিকিউরিটি সেশনের অবস্থাকে সিরিয়ালাইজ করে এবং সেশনটিকে স্থগিত করে যাতে আর কোনো বার্তা পাঠানো বা গ্রহণ করা না যায়।

এই পদ্ধতিটি এমন ডিভাইসগুলির দ্বারা ব্যবহার করার উদ্দেশ্যে করা হয়েছে যেগুলি ঘুমানোর সময় RAM ধরে রাখে না, তাদের একটি সক্রিয় অধিবেশনের অবস্থা বজায় রাখতে দেয় এবং এর ফলে তারা জেগে উঠলে সেশনটি পুনঃস্থাপন করার প্রয়োজন এড়াতে পারে।

WeaveFabricState

 WeaveFabricState(
  void
)