Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::WeaveFabricState

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

Khai báo WeaveFabricState.

Tóm tắt

Hàm dựng và hàm phá hủy

WeaveFabricState(void)

Loại công khai

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

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 kết thúc mới vào bản ghi nút kết thúc được chia sẻ.
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 sẽ tìm thấy mục nhập khóa trong phiên.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Tìm kiếm bảng khóa phiên cho một khóa phiên được chia sẻ đã thiết lập nhắm mục tiêu nút kết thúc đã chỉ định và khớp với chế độ xác thực và chế độ mã hóa đã cho.
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ả các mã nút cuối có phiên hoạt động đượ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 Dệt 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 pháp này kiểm tra xem phiên an toàn liên kết với ứng dụng 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 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ề địa chỉ IP chứa ULA dệt cho một nút đã chỉ định.
SelectNodeAddress(uint64_t nodeId) const
Trả về địa chỉ IP chứa ULA dệt cho một nút đã chỉ định.
SetDelegate(FabricStateDelegate *aDelegate)
void
Phương thức này đặt đối tượng ủy 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 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

Loại ứng dụng ngang hàng

uint8_t PeerIndexType

Phiên kết thúc

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

Tiểu bang

 State

Thuộc tính công khai

Tự động tạo khóa

bool AutoCreateKeys

Gỡ lỗi

uint64_t DebugFabricId

Mạng con mặc định

uint16_t DefaultSubnet

Mã vải

uint64_t FabricId

Cửa hàng khóa nhóm

nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase * GroupKeyStore

ListenIPv4Addr

IPAddress ListenIPv4Addr

Trình xử lý IPIP

IPAddress ListenIPv6Addr

Mã nút địa phương

uint64_t LocalNodeId

Khóa nhật ký

bool LogKeys

MaxUnencUDPMMSIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

Lớp thông báo

WeaveMessageLayer * MessageLayer

Gần đâyđược sử dụngchỉ mục

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

Mã nút

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

Mã ghép nối

const char * PairingCode

Tiểu bang

uint8_t State

Cờ riêng

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

Sử dụngkhóathử nghiệm

bool UseTestKey

Hàm công khai

AddSessionSessionEndNode

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

AddSessionSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Phương thức này sẽ thêm nút kết thúc mới vào bản ghi nút kết thúc được chia sẻ.

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

Khoá liên kết

WEAVE_ERROR AllocSessionKey(
  uint64_t peerNodeId,
  uint16_t keyId,
  WeaveConnection *boundCon,
  WeaveSessionKey *& sessionKey
)

XóaFabricState

void ClearFabricState(
  void
)

Tiêu chí tạo

WEAVE_ERROR CreateFabric(
  void
)

Khóa phiên tìm

WEAVE_ERROR FindSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  bool create,
  WeaveSessionKey *& retRec
)

Phương thức này sẽ tìm thấy mục nhập khóa trong phiên.

Thông tin chi tiết
Các thông số
[in] keyId
Giá trị nhận dạng khóa dệt.
[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 liệu có nên tạo khóa mới nếu không tìm thấy khóa đã chỉ định hay không.
[out] retRec
Tham chiếu con trỏ đến đối tượng WeaveSessionKey.
Giá trị trả về
WEAVE_ERROR_WRONG_KEY_TYPE
Nếu khóa đã chỉ định không phải là một loại khóa phiên.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu các đối số đầu vào có giá trị không chính xác.
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 nhập miễn phí để tạo khóa phiên mới.
WEAVE_NO_ERROR
Thành công!

Phiên tìm kiếm được chia sẻ

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

Tìm kiếm bảng khóa phiên cho một khóa phiên được chia sẻ đã thiết lập nhắm mục tiêu nút kết thúc đã chỉ định và khớp với chế độ xác thực và chế độ mã hóa đã cho.

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

GetFabricState

WEAVE_ERROR GetFabricState(
  uint8_t *buf,
  uint32_t bufSize,
  uint32_t & fabricStateLen
)

Nhận mật khẩu

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
)

GetchiaSessionSessionSessionIds

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ả các mã nút cuối có phiên hoạt động được chỉ định.

Thông tin chi tiết
Các thông số
[in] sessionKey
Con trỏ đến đối tượng khóa phiên.
[in] endNodeIds
Con trỏ đệm bộ mã nhận dạng nút.
[in] endNodeIdsMaxCount
Số lượng mã nút tối đa có thể nằm trong bộ đệm.
[out] endNodeIdsCount
Số ID nút cuối được tìm thấy có chung phiên được chỉ định.
Giá trị trả về
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm mã nút cuối được cung cấp không đủ lớn.
WEAVE_NO_ERROR
Thành công!

Xử lý kết nối

void HandleConnectionClosed(
  WeaveConnection *con
)

Số nguyên

WEAVE_ERROR Init(
  void
)

Số nguyên

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

Địa chỉ liên kết

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 Dệt cục bộ hay không.

Địa phương thành địa phương

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.

Phiên được chia sẻ

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Phương pháp này kiểm tra xem phiên an toàn liên kết với ứng dụng ngang hàng và keyId đã chỉ định có được chia sẻ hay không.

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

Tham giaFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

VéSessionSessionCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

Xóa khóa phiên hoạt động rảnh

bool RemoveIdleSessionKeys()

Loại bỏ khóa

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

Loại bỏ khóa

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

Loại bỏ nút kết thúc phiên chia sẻ

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

Phiên khôi phục

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Khôi phục 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ự.

Chọn địa chỉ nút

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Trả về địa chỉ IP chứa ULA dệt cho một nút đã chỉ định.

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

Thông tin chi tiết
Các thông số
[in] nodeId
Số nút nút của nút được đề cập.
[in] subnet
Mạng con mong muốn của ULA.
Giá trị trả về
IPAddress
Đối tượng IPAddress.

Chọn địa chỉ nút

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Trả về địa chỉ IP chứa ULA dệt cho một nút đã chỉ định.

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

Thông tin chi tiết
Các thông số
[in] nodeId
Số nút nút của nút được đề cập.
Giá trị trả về
IPAddress
Đối tượng IPAddress.

Người được ủy quyền sử dụng

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Phương thức này đặt đối tượng ủy quyền.

Các phương thức gọi lại của đại biểu được gọi bất cứ khi nào FabricId được thay đổi, tức là khi chúng ta tham gia/tạo một loại vải hoặc khi chúng ta rời khỏi một loại vải (trạng thái vải rõ ràng)

Nếu thực thể đại diện được đặt trước đó, thì lệnh gọi thứ hai đến phương thức này sẽ ghi đè đại biểu trước.

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

Đặt khóa phiên

WEAVE_ERROR SetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

Đặt khóa phiên

WEAVE_ERROR SetSessionKey(
  WeaveSessionKey *sessionKey,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

Tắt

WEAVE_ERROR Shutdown(
  void
)

Phiên bị tạm ngưng

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 trạng thái của một phiên bảo mật Weave đang hoạt động.

Chuyển đổi trạng thái của một phiên bảo mật Weave đã xác định vào bộ đệm đã cung cấp và tạm ngưng phiên để không thể gửi hay nhận thêm thông báo nào.

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

WeaveFabricState

 WeaveFabricState(
  void
)