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 טיפוסים בני מנייה (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 מייצגת כתובת מבד 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)
שחזור הפעלת אבטחה של 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
)

השיטה הזו בודקת אם הסשן המאובטח שמשויך לעמית ול-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
)

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
)

שיטה זו מגדירה את אובייקט ההקצאה.

שיטות הקריאה החוזרת (callback) מופעלות בכל פעם ש-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
)