nl::Weave::WeaveFabricState

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

Deklarasi penerusan 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 catatan 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 akan menemukan entri kunci sesi.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
Telusuri kunci sesi bersama yang telah dibuat di tabel kunci sesi yang menargetkan node penghentian yang ditentukan dan 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 fabric lokal Weave.
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 terkait dengan peer dan keyId yang ditentukan 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 ULA Weave untuk node yang ditentukan.
SelectNodeAddress(uint64_t nodeId) const
Menampilkan IPAddress yang berisi ULA Weave 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)
Tangguhkan dan lakukan 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 catatan node akhir bersama.

Detail
Parameter
[in] sessionKey
Objek WeaveSessionKey yang mewakili sesi yang harus ditambahkan node akhir baru.
[in] endNodeId
ID node node akhir sesi yang akan ditambahkan.
Nilai Pengembalian
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
Jika tidak ada ruang kosong untuk entri baru dalam daftar node akhir bersama.
WEAVE_NO_ERROR
Setelah 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 akan 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 Pengembalian
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
Setelah berhasil.

FindSharedSession

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

Telusuri kunci sesi bersama yang telah dibuat di tabel kunci sesi yang menargetkan node penghentian yang ditentukan dan 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 Pengembalian
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 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 ke dalam buffering.
[out] endNodeIdsCount
Jumlah ID node akhir yang ditemukan yang berbagi sesi yang ditentukan.
Nilai Pengembalian
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika yang diberikan, buffering ID node akhir tidak cukup besar.
WEAVE_NO_ERROR
Setelah 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 lokal Weave.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

Menentukan apakah alamat IP mewakili alamat kain 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 dibagikan.

Detail
Parameter
[in] keyId
ID kunci sesi.
[in] peerNodeId
ID node pembanding.
Nilai Pengembalian
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 ULA Weave 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 Pengembalian
IPAddress
Objek IPAddress.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

Menampilkan IPAddress yang berisi ULA Weave untuk node yang ditentukan.

Varian ini menggunakan subnet default node lokal.

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

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

Metode ini menetapkan objek delegasi.

Metode callback untuk delegasi dipanggil setiap kali FabricId diubah, yaitu saat kita bergabung/membuat kain, atau saat kita meninggalkan kain (kondisi kain yang jelas)

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

Detail
Parameter
[in] aDelegate
Objek delegasi. Nilainya bisa 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
)

Tangguhkan dan lakukan serialisasi status sesi keamanan Weave yang aktif.

Menserialisasikan status sesi keamanan Weave yang diidentifikasi ke dalam buffering yang disediakan dan menangguhkan sesi tersebut sehingga tidak ada pesan lebih lanjut yang dapat dikirim atau diterima.

Metode ini dimaksudkan untuk digunakan oleh perangkat yang tidak mempertahankan RAM saat tidur, memungkinkan perangkat tersebut mempertahankan status sesi aktif dan dengan demikian menghindari kebutuhan untuk membangun kembali sesi saat mereka bangun.

WeaveFabricState

 WeaveFabricState(
  void
)