nl::Weave::WeaveFabricState
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
#include <src/lib/core/WeaveFabricState.h>
การประกาศล่วงหน้าของ WeaveFabricState
สรุป
ผู้ผลิตและผู้ทำลาย |
|
---|---|
WeaveFabricState(void)
|
ประเภทสาธารณะ |
|
---|---|
PeerIndexType
|
typedefuint8_t
|
SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context)
|
typedefvoid(*
|
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 Fabric สำหรับโหนดภายในหรือไม่
|
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 ที่มี 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 ที่มีการใช้งานอยู่
|
ประเภทสาธารณะ
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
)
เมธอดนี้จะเพิ่มโหนดปลายทางใหม่ไปยังระเบียนโหนดปลายทางที่แชร์
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
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
)
วิธีนี้จะค้นหารายการคีย์เซสชัน
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
ผลลัพธ์ |
|
FindSharedSession
WeaveSessionKey * FindSharedSession(
uint64_t terminatingNodeId,
WeaveAuthMode authMode,
uint8_t encType
)
ค้นหาตารางคีย์เซสชันเพื่อหาเซสชันคีย์ที่ใช้ร่วมกันที่สร้างไว้แล้ว ซึ่งกำหนดเป้าหมายไปยังโหนดที่สิ้นสุดการใช้งานที่ระบุไว้ และตรงกับโหมดการตรวจสอบสิทธิ์และประเภทการเข้ารหัสที่ระบุ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
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
)
เมธอดนี้จะแสดงรหัสโหนดปลายทางทั้งหมดที่แชร์เซสชันที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
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 Fabric สำหรับโหนดภายในหรือไม่
IsSharedSession
bool IsSharedSession(
uint16_t keyId,
uint64_t peerNodeId
)
วิธีนี้จะตรวจสอบว่ามีการแชร์เซสชันที่ปลอดภัยซึ่งเชื่อมโยงกับเพียร์และ keyId ที่ระบุหรือไม่
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
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 สำหรับโหนดที่ระบุ
ตัวแปรนี้ช่วยให้ระบุซับเน็ตได้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
SelectNodeAddress
IPAddress SelectNodeAddress(
uint64_t nodeId
) const
แสดงผล IPAddress ที่มี Weave ULA สำหรับโหนดที่ระบุ
ตัวแปรนี้ใช้ซับเน็ตเริ่มต้นของโหนดในเครื่อง
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
ผลลัพธ์ |
|
SetDelegate
void SetDelegate(
FabricStateDelegate *aDelegate
)
เมธอดนี้จะตั้งค่าออบเจ็กต์ที่ได้รับมอบสิทธิ์
จะมีการเรียกใช้เมธอด Callback ของผู้รับมอบสิทธิ์เมื่อใดก็ตามที่ FabricId มีการเปลี่ยนแปลง เช่น เมื่อเราเข้าร่วม/สร้างผ้า หรือเมื่อปล่อยผ้าไว้ (ทำให้เนื้อผ้าใส)
หากมีการตั้งค่าผู้รับมอบสิทธิ์ไว้ก่อนหน้านี้ การเรียกใช้วิธีนี้ครั้งที่ 2 จะเป็นการเขียนทับผู้รับมอบสิทธิ์ก่อนหน้า
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
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
)