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
عرض عنوان IP الذي يحتوي على ULA Weave لعقدة محددة.
SelectNodeAddress(uint64_t nodeId) const
عرض عنوان IP الذي يحتوي على 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

الأنواع المتاحة للجميع

نوع بيانات PeerIndex

uint8_t PeerIndexType

نهاية الجلسة

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

الولاية

 State

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

إنشاء المفاتيح تلقائيًا

bool AutoCreateKeys

معرف DebugFabric

uint64_t DebugFabricId

الشبكة الفرعية التلقائية

uint16_t DefaultSubnet

معرِّف أقمشة

uint64_t FabricId

GroupKeyStore

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

أداة AddIPv4Addr

IPAddress ListenIPv4Addr

أداة AddIPv6Addr

IPAddress ListenIPv6Addr

رقم تعريف العقدة المحلية

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

وظائف عامة

إضافة SharedSessionEndNode

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

إضافة SharedSessionEndNode

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
)

إنشاء أقمشة

WEAVE_ERROR CreateFabric(
  void
)

مفتاح الجلسة

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
النجاح.

جلسة مشتركة

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
)

حالة الجلسة

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 المحلي.

عنوان IsLocalFabric

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

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

جلسة مشتركة

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

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

التفاصيل
المعلَمات
[in] keyId
رقم تعريف مفتاح الجلسة.
[in] peerNodeId
رقم تعريف العقدة للنظراء.
قيم الإرجاع
bool
تحديد ما إذا كانت ستتم مشاركة الجلسة أم لا.

الانضمام الحاليFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

LoginSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

إزالة رقم تعريف الجلسة

bool RemoveIdleSessionKeys()

إزالة الجلسة

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

إزالة الجلسة

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 

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

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

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

تحديد عقدة العنوان

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

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

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

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

ضبط التفويض

void SetDelegate(
  FabricStateDelegate *aDelegate
)

تضبط هذه الطريقة عنصر التفويض.

يتم استدعاء أساليب رد الاتصال للمفوّض عند تغيير معرّف FabricId، أي عند انضمامنا إلى الأقمشة أو إنشائها أو عندما نترك قماشًا (حالة القماش الشفاف)

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

التفاصيل
المعلَمات
[in] aDelegate
الكائن المفوَّض. ويمكن ترك الحقل فارغًا في حال لم يكن هناك حاجة إلى تفويض.

ضبط الجلسة

WEAVE_ERROR SetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

ضبط الجلسة

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 المحددة في المخزن المؤقت الذي تم توفيره وتعليق الجلسة بحيث لا يمكن إرسال أو استلام المزيد من الرسائل.

ومن المفترض أن يتم استخدام هذه الطريقة من خلال الأجهزة التي لا تحتفظ بذاكرة الوصول العشوائي (RAM) أثناء السكون، مما يسمح لها بالاحتفاظ بحالة الجلسة النشطة وبالتالي تجنب الحاجة إلى إعادة إنشاء الجلسة عند تنشيطها.

WeaveFabricState

 WeaveFabricState(
  void
)