nl::Weave::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 تعداد

السمات العامة

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

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
معرِّف مفتاح 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
عند النجاح

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
)

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
)

تعرض هذه الطريقة جميع أرقام تعريف عُقد النهاية التي تشترك في الجلسة المحددة.

التفاصيل
المَعلمات
[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
)

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

تحدد ما إذا كان عنوان IP يمثل عنوان عقدة داخل نسيج Weave المحلي.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

تحدِّد ما إذا كان عنوان IP يمثّل عنوان نسيج Weave للعقدة المحلية.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

تتحقّق هذه الطريقة مما إذا تمت مشاركة الجلسة الآمنة المرتبطة بزميل الفريق ورقم تعريف المفتاح المحدّدَين.

التفاصيل
المَعلمات
[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
)

RestoreSession

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

استعادة جلسة أمان Weave التي تم تعليقها سابقًا من حالة تسلسلية.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

لعرض عنوان IPAddress يحتوي على ULA في Weave لعقدة محددة.

يتيح هذا الخيار تحديد شبكة فرعية.

التفاصيل
المَعلمات
[in] nodeId
رقم معرِّف العُقدة للعقدة المعنية.
[in] subnet
الشبكة الفرعية المطلوبة من ULA.
قيم الإرجاع
IPAddress
عنصر IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

لعرض عنوان IPAddress يحتوي على ULA في Weave لعقدة محددة.

يستخدم هذا المتغيّر الشبكة الفرعية التلقائية للعقدة المحلية.

التفاصيل
المَعلمات
[in] nodeId
رقم معرِّف العُقدة للعقدة المعنية.
قيم الإرجاع
IPAddress
عنصر IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

تُعيِّن هذه الطريقة كائن التفويض.

يتم استدعاء طرق رد الاتصال الخاصة بالتفويض عندما يتم تغيير معرّف FabricId، أي عند دمج/إنشاء نسيج، أو عندما نترك نسيجًا (حالة القماش واضحة).

إذا تم تعيين المفوَّض في السابق، سيؤدي الاستدعاء الثاني لهذه الطريقة إلى استبدال التفويض السابق.

التفاصيل
المَعلمات
[in] aDelegate
الكائن المفوَّض. يمكن أن يكون فارغًا إذا لم يكن هناك تفويض مطلوب.

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
)