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 สําหรับโหนดในระบบหรือไม่
|
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
|
bool
วิธีนี้จะตรวจสอบว่ามีการแชร์เซสชันที่ปลอดภัยซึ่งเชื่อมโยงกับแอปเทียบเท่าและคีย์Id ที่ระบุหรือไม่
|
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:: |
ประเภทสาธารณะ
ประเภท PeerIndex
uint8_t PeerIndexType
เซสชันสิ้นสุด CbFunct
void(* SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context)
สถานะ
State
แอตทริบิวต์สาธารณะ
สร้างคีย์อัตโนมัติ
bool AutoCreateKeys
รหัส DebugFabric
uint64_t DebugFabricId
เครือข่ายย่อยเริ่มต้น
uint16_t DefaultSubnet
รหัสผ้า
uint64_t FabricId
กลุ่มคีย์สโตร์
nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase * GroupKeyStore
ผู้ฟัง
IPAddress ListenIPv4Addr
ผู้ฟัง
IPAddress ListenIPv6Addr
รหัสท้องถิ่น
uint64_t LocalNodeId
คีย์บันทึก
bool LogKeys
ค่าสูงสุดของ UnUDcUDPMsgIdRcvd
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
ค่าสถานะ EncRcvv
WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]
ใช้คีย์ทดสอบ
bool UseTestKey
ฟังก์ชันสาธารณะ
เพิ่มเซสชันสิ้นสุดร่วมกัน
WEAVE_ERROR AddSharedSessionEndNode( uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId )
เพิ่มเซสชันสิ้นสุดร่วมกัน
WEAVE_ERROR AddSharedSessionEndNode( WeaveSessionKey *sessionKey, uint64_t endNodeId )
เมธอดนี้จะเพิ่มโหนดปลายทางใหม่ไปยังระเบียนโหนดปลายทางที่ใช้ร่วมกัน
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
คีย์ประเภทเซสชัน
WEAVE_ERROR AllocSessionKey( uint64_t peerNodeId, uint16_t keyId, WeaveConnection *boundCon, WeaveSessionKey *& sessionKey )
ล้างสถานะ
void ClearFabricState( void )
สร้างผ้า
WEAVE_ERROR CreateFabric( void )
คีย์การค้นหา
WEAVE_ERROR FindSessionKey( uint16_t keyId, uint64_t peerNodeId, bool create, WeaveSessionKey *& retRec )
วิธีนี้พบรายการคีย์เซสชัน
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
เซสชันการค้นหาที่แชร์
WeaveSessionKey * FindSharedSession( uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType )
ค้นหาตารางเซสชันคีย์ที่ใช้ร่วมกันโดยใช้คีย์เซสชันที่ใช้ร่วมกันซึ่งกําหนดเป้าหมายไปยังโหนดการสิ้นสุดที่ระบุ และตรงกับโหมดการตรวจสอบสิทธิ์และประเภทการเข้ารหัสที่ระบุ
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
สถานะ GetFabric
WEAVE_ERROR GetFabricState( uint8_t *buf, uint32_t bufSize, uint32_t & fabricStateLen )
รับรหัสผ่าน
WEAVE_ERROR GetPassword( uint8_t pwSrc, const char *& ps, uint16_t & pwLen )
คีย์ GetSession
WEAVE_ERROR GetSessionKey( uint16_t keyId, uint64_t peerNodeId, WeaveSessionKey *& outSessionKey )
สถานะ GetSession
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 )
วิธีนี้จะแสดงผลรหัสโหนดปลายทางทั้งหมดที่แชร์เซสชันที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
แฮนเดิลการเชื่อมต่อแบบปิด
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 สําหรับโหนดในระบบหรือไม่
เซสชันที่ใช้ร่วมกัน
bool IsSharedSession( uint16_t keyId, uint64_t peerNodeId )
วิธีนี้จะตรวจสอบว่ามีการแชร์เซสชันที่ปลอดภัยซึ่งเชื่อมโยงกับแอปเทียบเท่าและคีย์Id ที่ระบุหรือไม่
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
เข้าร่วมที่มีอยู่แล้ว
WEAVE_ERROR JoinExistingFabric( const uint8_t *fabricState, uint32_t fabricStateLen )
ลงทะเบียนเซสชันสิ้นสุดการโทร
WEAVE_ERROR RegisterSessionEndCallback( SessionEndCbCtxt *sessionEndCb )
นํา IDIdleเซสชัน
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
แสดงผล IPAddress ที่มี Weave ULA สําหรับโหนดที่ระบุ
ตัวแปรนี้ช่วยให้ระบุซับเน็ตได้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
แสดงผลค่า |
|
เลือกที่อยู่
IPAddress SelectNodeAddress( uint64_t nodeId ) const
แสดงผล IPAddress ที่มี Weave ULA สําหรับโหนดที่ระบุ
ตัวแปรนี้ใช้ซับเน็ตเริ่มต้น' ของโหนดในเครื่อง
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
แสดงผลค่า |
|
ผู้รับมอบสิทธิ์
void SetDelegate( FabricStateDelegate *aDelegate )
เมธอดนี้จะกําหนดออบเจ็กต์การมอบสิทธิ์
เราจะเรียกใช้เมธอดเรียกกลับของผู้รับมอบสิทธิ์เมื่อใดก็ตามที่มีการเปลี่ยนแปลง FabricId เช่น เมื่อเราเข้าร่วม/สร้างผ้า หรือเมื่อเราทิ้งผ้า (สถานะผ้าที่ชัดเจน)
หากมีการมอบสิทธิ์ไว้ก่อนหน้านี้ การเรียกใช้วิธีนี้ครั้งที่ 2 จะเขียนทับการมอบสิทธิ์ก่อนหน้านี้
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
คีย์ตั้งค่าเซสชัน
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 )