nl::Weave::WeaveFabricState

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

Teruskan deklarasi 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 kumpulan data node akhir yang dibagikan.
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)
Menelusuri tabel kunci sesi untuk menemukan kunci sesi bersama yang telah ditetapkan, yang menarget node penghentian yang ditentukan dan cocok dengan mode autentikasi serta jenis enkripsi yang diberikan.
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 memiliki sesi yang sama.
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 fabric Weave lokal.
IsLocalFabricAddress(const IPAddress & addr) const
bool
Menentukan apakah alamat IP mewakili alamat fabric Weave untuk node lokal.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
Metode ini memeriksa apakah sesi aman yang terkait dengan peer dan keyId yang ditentukan telah 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 sebelumnya ditangguhkan dari status serial.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
Menampilkan IPAddress yang berisi Weave ULA untuk node yang ditentukan.
SelectNodeAddress(uint64_t nodeId) const
Menampilkan IPAddress yang berisi Weave ULA untuk node yang ditentukan.
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 melakukan serialisasi status sesi keamanan Weave yang aktif.

Struct

nl::Weave::WeaveFabricState::SessionEndCbCtxt

Jenis publik

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

Negara Bagian

 State

Atribut publik

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

Negara Bagian

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

Fungsi publik

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

Metode ini menambahkan node akhir baru ke kumpulan data node akhir yang dibagikan.

Detail
Parameter
[in] sessionKey
Objek WeaveSessionKey yang mewakili sesi yang harus ditambahi node akhir baru.
[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
Berhasil.

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
)

Metode ini menemukan entri kunci sesi.

Detail
Parameter
[in] keyId
ID kunci Weave.
[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
Berhasil.

FindSharedSession

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

Menelusuri tabel kunci sesi untuk menemukan kunci sesi bersama yang telah ditetapkan, yang menarget node penghentian yang ditentukan dan cocok dengan mode autentikasi serta jenis enkripsi yang diberikan.

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 ditemukan sesi yang cocok.

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
)

Metode ini menampilkan semua ID node akhir yang memiliki sesi yang sama.

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

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

Inisiasi

WEAVE_ERROR Init(
  void
)

Inisiasi

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

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

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

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

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

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

Metode ini memeriksa apakah sesi aman yang terkait dengan peer dan keyId yang ditentukan telah dibagikan.

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

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
)

Memulihkan Sesi Keamanan Weave yang sebelumnya ditangguhkan dari status serial.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

Menampilkan IPAddress yang berisi Weave ULA untuk node yang ditentukan.

Varian ini memungkinkan subnet ditentukan.

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

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Menampilkan IPAddress yang berisi Weave ULA untuk node yang ditentukan.

Varian ini menggunakan subnet default node lokal.

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

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Metode ini menetapkan objek delegasi.

Metode callback delegasi dipanggil setiap kali FabricId diubah, yaitu saat kita menggabungkan/membuat fabric, atau saat kita meninggalkan fabric (status fabric jelas)

Jika delegasi telah ditetapkan sebelumnya, panggilan kedua ke metode ini akan menimpa delegasi sebelumnya.

Detail
Parameter
[in] aDelegate
Objek delegasi. Ini bisa menjadi NULL jika tidak ada delegasi yang diperlukan.

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
)

Nonaktif

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

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

Menangguhkan dan melakukan serialisasi status sesi keamanan Weave yang aktif.

Menserialisasikan status sesi keamanan Weave yang diidentifikasi ke dalam buffer yang disediakan dan menangguhkan sesi sehingga tidak ada pesan lagi yang dapat dikirim atau diterima.

Metode ini dimaksudkan untuk digunakan oleh perangkat yang tidak menyimpan RAM saat tidur, memungkinkannya mempertahankan status sesi aktif dan dengan demikian menghindari kebutuhan untuk membuat kembali sesi ketika mereka bangun.

WeaveFabricState

 WeaveFabricState(
  void
)