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
השיטה הזו בודקת אם משותף סשן מאובטח שמשויך לאפליקציה השכנה ולמזהה המפתח שצוינו.
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 המכילה Weave ULA עבור צומת שצוין.
SelectNodeAddress(uint64_t nodeId) const
הפונקציה מחזירה כתובת IPAddress המכילה Weave ULA עבור צומת שצוין.
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
שזירה של מזהה מפתח.
[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 המכילה Weave ULA עבור צומת שצוין.

הווריאנט הזה מאפשר לציין רשת משנה.

פרטים
פרמטרים
[in] nodeId
מספר מזהה הצומת של הצומת הרלוונטי.
[in] subnet
רשת המשנה הרצויה של ה-ULA.
ערכים מוחזרים
IPAddress
אובייקט IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

הפונקציה מחזירה כתובת IPAddress המכילה Weave ULA עבור צומת שצוין.

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

פרטים
פרמטרים
[in] nodeId
מספר מזהה הצומת של הצומת הרלוונטי.
ערכים מוחזרים
IPAddress
אובייקט IPAddress.

SetDelegate

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
)

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
)