nl::Menenun::WeaveFabricState

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

Deklarasi maju dari WeaveFabricState.

Ringkasan

Konstruktor dan Destruktor

WeaveFabricState(void)

Jenis publik

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

Atribut publik

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

Fungsi publik

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
Metode ini menambahkan node akhir baru ke data node akhir bersama.
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)
Metode ini menemukan entri kunci sesi.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Telusuri tabel kunci sesi untuk menemukan kunci sesi bersama yang dibuat, yang menargetkan node penghentian yang ditentukan, serta cocok dengan mode autentikasi dan jenis enkripsi yang ditentukan.
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)
Metode ini menampilkan semua ID node akhir yang berbagi sesi yang ditentukan.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
Menentukan apakah alamat IP mewakili alamat node dalam kain Weave lokal.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Menentukan apakah alamat IP mewakili alamat kain Weave untuk node lokal.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Metode ini memeriksa apakah sesi aman yang dikaitkan dengan pembanding dan keyId yang ditentukan akan dibagikan.
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)
Memulihkan Sesi Keamanan Weave yang ditangguhkan sebelumnya dari status serial.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Menampilkan IPAddress yang berisi Weave ULA untuk node tertentu.
SelectNodeAddress(uint64_t nodeId) const
Menampilkan IPAddress yang berisi Weave ULA untuk node tertentu.
SetDelegate(FabricStateDelegate *aDelegate)
void
Metode ini menetapkan objek delegasi.
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)
Menangguhkan dan menserialisasikan status sesi keamanan Weave yang aktif.

Struct

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Jenis publik

PeerIndexType

uint8_t PeerIndexType

SesiEndCbFunct

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

Negara bagian

 State

Atribut publik

KunciBuatOtomatis

bool AutoCreateKeys

ID KainDebug

uint64_t DebugFabricId

Subnet Default

uint16_t DefaultSubnet

ID Fabric

uint64_t FabricId

GroupKeyStore

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

DengarkanIPv4Addr

IPAddress ListenIPv4Addr

DengarkanIPv6Addr

IPAddress ListenIPv6Addr

ID Lokal

uint64_t LocalNodeId

LogKey

bool LogKeys

MaxUnencUDPmsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

MessageLayer

WeaveMessageLayer * MessageLayer

Indeks yang Terakhir Digunakan

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

ID Node

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

KodePenyambungan

const char * PairingCode

Negara bagian

uint8_t State

FlagUnencRcvv

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

Menggunakan KunciPengujian

bool UseTestKey

Fungsi publik

MenambahkanSharedSessionEndNode

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

MenambahkanSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Metode ini menambahkan node akhir baru ke data node akhir bersama.

Detail
Parameter
[in] sessionKey
Objek WeaveSessionKey yang mewakili sesi tempat node akhir baru harus ditambahkan.
[in] endNodeId
ID node dari node akhir sesi yang akan ditambahkan.
Nilai yang Ditampilkan
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Jika tidak ada ruang kosong untuk entri baru dalam daftar node akhir bersama.
WEAVE_NO_ERROR
Jika berhasil.

KunciSesi Alloc

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

ClearFabricState

void ClearFabricState(
  void
)

CreateFabric

WEAVE_ERROR CreateFabric(
  void
)

Menemukan KunciSesi

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

Metode ini menemukan entri kunci sesi.

Detail
Parameter
[in] keyId
ID kunci tenun.
[in] peerNodeId
ID node pembanding.
[in] create
Nilai boolean yang menunjukkan apakah kunci baru harus dibuat jika kunci yang ditentukan tidak ditemukan.
[out] retRec
Referensi pointer ke objek WeaveSessionKey.
Nilai yang Ditampilkan
WEAVE_ERROR_WRONG_KEY_TYPE
Jika kunci yang ditentukan bukan jenis kunci sesi.
WEAVE_ERROR_INVALID_ARGUMENT
Jika argumen input memiliki nilai yang salah.
WEAVE_ERROR_KEY_NOT_FOUND
Jika kunci yang ditentukan tidak ditemukan.
WEAVE_ERROR_TOO_MANY_KEYS
Jika tidak ada entri gratis untuk membuat kunci sesi baru.
WEAVE_NO_ERROR
Jika berhasil.

FindSharedSession

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

Telusuri tabel kunci sesi untuk menemukan kunci sesi bersama yang dibuat, yang menargetkan node penghentian yang ditentukan, serta cocok dengan mode autentikasi dan jenis enkripsi yang ditentukan.

Detail
Parameter
[in] terminatingNodeId
ID node terminator sesi.
[in] authMode
Mode autentikasi sesi yang diinginkan.
[in] encType
Jenis enkripsi pesan yang diinginkan.
Nilai yang Ditampilkan
WeaveSessionKey
* Pointer ke objek WeaveSessionKey yang mewakili sesi bersama yang cocok; atau NULL jika tidak ada sesi yang cocok ditemukan.

GetFabricState

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

DapatkanSandi

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
)

Metode ini menampilkan semua ID node akhir yang berbagi sesi yang ditentukan.

Detail
Parameter
[in] sessionKey
Pointer ke objek kunci sesi.
[in] endNodeIds
Pointer untuk buffering ID node.
[in] endNodeIdsMaxCount
Jumlah maksimum ID node yang dapat dimuat dalam buffer.
[out] endNodeIdsCount
Jumlah ID node akhir yang ditemukan yang berbagi sesi yang ditentukan.
Nilai yang Ditampilkan
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer ID node akhir yang diberikan tidak cukup besar.
WEAVE_NO_ERROR
Jika berhasil.

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

Init

WEAVE_ERROR Init(
  void
)

Init

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

Alamat Fabric

bool IsFabricAddress(
  const IPAddress & addr
) const 

Menentukan apakah alamat IP mewakili alamat node dalam kain Weave lokal.

AlamatIsLocalFabric

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Menentukan apakah alamat IP mewakili alamat kain Weave untuk node lokal.

Sesi Bersama

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Metode ini memeriksa apakah sesi aman yang dikaitkan dengan pembanding dan keyId yang ditentukan akan dibagikan.

Detail
Parameter
[in] keyId
ID kunci sesi.
[in] peerNodeId
ID node pembanding.
Nilai yang Ditampilkan
bool
Apakah sesi yang ditentukan dibagikan atau tidak.

Gabung Dengan Fabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

MenghapusIdleSessionKeys

bool RemoveIdleSessionKeys()

Menghapus KunciSesi

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

Menghapus KunciSesi

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

MenghapusNodeSessionSessionEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

Sesi Pemulihan

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

Memulihkan Sesi Keamanan Weave yang ditangguhkan sebelumnya dari status serial.

PilihNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Menampilkan IPAddress yang berisi Weave ULA untuk node tertentu.

Varian ini memungkinkan subnet ditentukan.

Detail
Parameter
[in] nodeId
Nomor ID Nodus node yang dimaksud.
[in] subnet
Subnet ULA yang diinginkan.
Nilai yang Ditampilkan
IPAddress
Objek IPAddress.

PilihNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Menampilkan IPAddress yang berisi Weave ULA untuk node tertentu.

Varian ini menggunakan subnet default node lokal.

Detail
Parameter
[in] nodeId
Nomor ID Nodus node yang dimaksud.
Nilai yang Ditampilkan
IPAddress
Objek IPAddress.

SetDelegasi

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Metode ini menetapkan objek delegasi.

Metode callback delegasi dipanggil setiap kali FabricId berubah, yaitu saat kita menggabungkan/membuat kain, atau meninggalkan kain (status kain bening)

Jika delegasi sudah ditetapkan, panggilan kedua untuk metode ini akan menimpa delegasi sebelumnya.

Detail
Parameter
[in] aDelegate
Objek delegasi. Atribut ini dapat menjadi NULL jika tidak memerlukan delegasi.

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
)

Mematikan

WEAVE_ERROR Shutdown(
  void
)

SesiPenangguhan

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

Menangguhkan dan menserialisasikan status sesi keamanan Weave yang aktif.

Melakukan serialisasi status sesi keamanan Weave yang diidentifikasi ke dalam buffer yang diberikan dan menangguhkan sesi sehingga tidak ada pesan lebih lanjut yang dapat dikirim atau diterima.

Metode ini ditujukan untuk digunakan oleh perangkat yang tidak mempertahankan RAM saat tidur, yang memungkinkannya mempertahankan status sesi aktif dan dengan demikian tidak perlu membuat ulang sesi saat pengguna bangun.

WeaveFabricState

 WeaveFabricState(
  void
)