nl::Weave::WeaveFabricState

#include <src/lib/core/WeaveFabricState.h>

Phần khai báo chuyển tiếp của WeaveFabricState.

Tóm tắt

Hàm khởi tạo và phá huỷ

WeaveFabricState(void)

Loại công khai

PeerIndexType typedef
uint8_t
SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context) typedef
void(*
State enum

Các thuộc tính công khai

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

Hàm công khai

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Phương thức này sẽ thêm nút cuối mới vào bản ghi nút cuối dùng chung.
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)
Phương thức này tìm mục nhập khoá phiên.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Tìm kiếm trong bảng khoá phiên để tìm khoá phiên dùng chung đã thiết lập nhắm mục tiêu nút kết thúc được chỉ định và khớp với chế độ xác thực cũng như loại mã hoá nhất định.
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)
Phương thức này trả về tất cả mã nút cuối chia sẻ phiên được chỉ định.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Xác định xem địa chỉ IP có đại diện cho địa chỉ của một nút trong vải Weave cục bộ hay không.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Xác định xem địa chỉ IP có đại diện cho địa chỉ vải Weave cho nút cục bộ hay không.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Phương thức này kiểm tra xem phiên bảo mật liên kết với lớp ngang hàng và keyId đã chỉ định có được chia sẻ hay không.
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)
Khôi phục một Phiên bảo mật Weave bị tạm ngưng trước đó từ trạng thái đã chuyển đổi tuần tự.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Trả về một IPAddress chứa ULA Weave cho một nút được chỉ định.
SelectNodeAddress(uint64_t nodeId) const
Trả về một IPAddress chứa ULA Weave cho một nút được chỉ định.
SetDelegate(FabricStateDelegate *aDelegate)
void
Phương thức này sẽ thiết lập đối tượng uỷ quyền.
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)
Tạm ngưng và chuyển đổi tuần tự trạng thái của một phiên bảo mật Weave đang hoạt động.

Cấu trúc

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Loại công khai

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

Tiểu bang

 State

Các thuộc tính công khai

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

Tiểu bang

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

Hàm công khai

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Phương thức này sẽ thêm nút cuối mới vào bản ghi nút cuối dùng chung.

Thông tin chi tiết
Thông số
[in] sessionKey
Đối tượng WeaveSessionKey đại diện cho phiên mà nút cuối mới sẽ được thêm vào.
[in] endNodeId
Mã nút của nút kết thúc phiên cần được thêm.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Nếu không còn dung lượng trống cho mục nhập mới trong danh sách nút kết thúc dùng chung.
WEAVE_NO_ERROR
Khi thành công.

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
)

Phương thức này tìm mục nhập khoá phiên.

Thông tin chi tiết
Thông số
[in] keyId
Giá trị nhận dạng khoá Weave.
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng.
[in] create
Giá trị boolean cho biết có nên tạo khoá mới hay không nếu không tìm thấy khoá được chỉ định.
[out] retRec
Tham chiếu con trỏ đến đối tượng WeaveSessionKey.
Giá trị trả về
WEAVE_ERROR_WRONG_KEY_TYPE
Nếu khoá được chỉ định không phải là loại khoá phiên.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu đối số đầu vào có giá trị không đúng.
WEAVE_ERROR_KEY_NOT_FOUND
Nếu không tìm thấy khoá đã chỉ định.
WEAVE_ERROR_TOO_MANY_KEYS
Nếu không có mục miễn phí để tạo khoá phiên mới.
WEAVE_NO_ERROR
Khi thành công.

FindSharedSession

WeaveSessionKey * FindSharedSession(
  uint64_t terminatingNodeId,
  WeaveAuthMode authMode,
  uint8_t encType
)

Tìm kiếm trong bảng khoá phiên để tìm khoá phiên dùng chung đã thiết lập nhắm mục tiêu nút kết thúc được chỉ định và khớp với chế độ xác thực cũng như loại mã hoá nhất định.

Thông tin chi tiết
Thông số
[in] terminatingNodeId
Giá trị nhận dạng nút của dấu kết thúc phiên.
[in] authMode
Chế độ xác thực phiên mong muốn.
[in] encType
Loại mã hoá thư mong muốn.
Giá trị trả về
WeaveSessionKey
* Con trỏ trỏ đến đối tượng WeaveSessionKey đại diện cho phiên chung phù hợp; hoặc NULL nếu không tìm thấy phiên phù hợp.

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
)

Phương thức này trả về tất cả mã nút cuối chia sẻ phiên được chỉ định.

Thông tin chi tiết
Thông số
[in] sessionKey
Con trỏ trỏ đến đối tượng khoá phiên.
[in] endNodeIds
Con trỏ đến vùng đệm chứa mã nút.
[in] endNodeIdsMaxCount
Số lượng mã nút tối đa có thể vừa trong vùng đệm.
[out] endNodeIdsCount
Số ID nút cuối được tìm thấy có chia sẻ phiên được chỉ định.
Giá trị trả về
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu vùng đệm Id nút cuối được cung cấp không đủ lớn.
WEAVE_NO_ERROR
Khi thành công.

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

Khởi tạo

WEAVE_ERROR Init(
  void
)

Khởi tạo

WEAVE_ERROR Init(
  nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore
)

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

Xác định xem địa chỉ IP có đại diện cho địa chỉ của một nút trong vải Weave cục bộ hay không.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Xác định xem địa chỉ IP có đại diện cho địa chỉ vải Weave cho nút cục bộ hay không.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Phương thức này kiểm tra xem phiên bảo mật liên kết với lớp ngang hàng và keyId đã chỉ định có được chia sẻ hay không.

Thông tin chi tiết
Thông số
[in] keyId
Giá trị nhận dạng khoá phiên.
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng.
Giá trị trả về
bool
Liệu phiên được chỉ định có được chia sẻ hay không.

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
)

Khôi phục một Phiên bảo mật Weave bị tạm ngưng trước đó từ trạng thái đã chuyển đổi tuần tự.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Trả về một IPAddress chứa ULA Weave cho một nút được chỉ định.

Biến thể này cho phép chỉ định một mạng con.

Thông tin chi tiết
Thông số
[in] nodeId
Mã nhận dạng nút của nút có liên quan.
[in] subnet
Mạng con mong muốn của ULA.
Giá trị trả về
IPAddress
Đối tượng IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Trả về một IPAddress chứa ULA Weave cho một nút được chỉ định.

Biến thể này sử dụng mạng con mặc định của nút cục bộ.

Thông tin chi tiết
Thông số
[in] nodeId
Mã nhận dạng nút của nút có liên quan.
Giá trị trả về
IPAddress
Đối tượng IPAddress.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Phương thức này sẽ thiết lập đối tượng uỷ quyền.

Các phương thức gọi lại uỷ quyền được gọi bất cứ khi nào FabricId thay đổi, tức là khi chúng ta kết hợp/tạo một vải hoặc khi chúng ta rời khỏi một vải (trạng thái vải rõ ràng)

Nếu bạn thiết lập phương thức uỷ quyền trước đó, thì lệnh gọi thứ hai của phương thức này sẽ ghi đè phương thức uỷ quyền trước đó.

Thông tin chi tiết
Thông số
[in] aDelegate
Đối tượng uỷ quyền. Giá trị này có thể là giá trị NULL nếu không yêu cầu ủy quyền.

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
)

Tắt

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

WEAVE_ERROR SuspendSession(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t *buf,
  uint16_t bufSize,
  uint16_t & serializedSessionLen
)

Tạm ngưng và chuyển đổi tuần tự trạng thái của một phiên bảo mật Weave đang hoạt động.

Tuần tự hoá trạng thái của phiên bảo mật Weave đã xác định vào vùng đệm đã cung cấp rồi tạm ngưng phiên để không thể gửi hoặc nhận thêm thông báo nào.

Phương pháp này dành cho các thiết bị không giữ lại RAM trong khi ngủ, cho phép chúng duy trì trạng thái của phiên đang hoạt động và do đó tránh cần phải thiết lập lại phiên khi thiết bị thức.

WeaveFabricState

 WeaveFabricState(
  void
)