Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl::Weave::WeaveFabricState

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

WeaveFabricState のフォワード宣言。

まとめ

コンストラクタとデストラクタ

WeaveFabricState(void)

パブリック タイプ

PeerIndexType typedef
uint8_t
SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context) typedef
void(*
State 列挙型

パブリック属性

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

パブリック関数

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
この方法では、共有エンドノード レコードに新しいエンドノードが追加されます。
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)
このメソッドは、セッションキーのエントリを探します。
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
セッションキー テーブルを検索して、指定した終端ノードをターゲットとし、指定された認証モードと暗号化タイプと一致する確立済みの共有セッション鍵を探します。
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)
このメソッドは、指定されたセッションを共有するすべてのエンドノード ID を返します。
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
IP アドレスがローカル Weave ファブリック内のノードのアドレスを表すかどうかを指定します。
IsLocalFabricAddress(const IPAddress & addr) const
bool
IP アドレスがローカル ノードの Weave ファブリック アドレスを表すかどうかを指定します。
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
このメソッドは、指定したピアと keyId に関連付けられた安全なセッションが共有されるかどうかを確認します。
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)
以前に停止した Weave セキュリティ セッションをシリアル化された状態から復元します。
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
指定したノードの Weave ULA を含む IPAddress を返します。
SelectNodeAddress(uint64_t nodeId) const
指定したノードの Weave ULA を含む IPAddress を返します。
SetDelegate(FabricStateDelegate *aDelegate)
void
このメソッドはデリゲート オブジェクトを設定します。
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)
アクティブな Weave セキュリティ セッションの状態を一時停止し、シリアル化します。

構造体

nl::Weave::WeaveFabricState::SessionEndCbCtxt

パブリック タイプ

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

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

状態

 State

パブリック属性

AutoCreateKeys

bool AutoCreateKeys

DebugFabricId

uint64_t DebugFabricId

デフォルトのサブネット

uint16_t DefaultSubnet

ファブリック ID

uint64_t FabricId

グループキーストア

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

ListenIPv4Addr

IPAddress ListenIPv4Addr

ListenIPv6Addr

IPAddress ListenIPv6Addr

ローカル ノード ID

uint64_t LocalNodeId

LogKey

bool LogKeys

MaxUnencUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

メッセージ レイヤ

WeaveMessageLayer * MessageLayer

最近使用したインデックス

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

ノード ID

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

ペア設定コード

const char * PairingCode

状態

uint8_t State

UnencRcvFlags(英語)

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

パブリック関数

AddSharedSessionEndNode

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

この方法では、共有エンドノード レコードに新しいエンドノードが追加されます。

詳細
パラメータ
[in] sessionKey
新しいエンドノードを追加するセッションを表す WeaveSessionKey オブジェクト。
[in] endNodeId
追加するセッション終了ノードのノード ID を指定します。
戻り値
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
共有エンドノードのリストで新しいエントリに空きがない場合。
WEAVE_NO_ERROR
成功

割り当てセッションキー

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

ClearFabricState

void ClearFabricState(
  void
)

Fabric の作成

WEAVE_ERROR CreateFabric(
  void
)

検索セッションキー

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

このメソッドは、セッションキーのエントリを探します。

詳細
パラメータ
[in] keyId
Weave キー ID。
[in] peerNodeId
ピアのノード ID。
[in] create
指定されたキーが見つからない場合に新しいキーを作成するかどうかを示すブール値。
[out] retRec
WeaveSessionKey オブジェクトへのポインタ参照です。
戻り値
WEAVE_ERROR_WRONG_KEY_TYPE
指定されたキーがセッションキータイプでない場合。
WEAVE_ERROR_INVALID_ARGUMENT
入力引数の値が正しくない場合。
WEAVE_ERROR_KEY_NOT_FOUND
指定されたキーが見つからない場合。
WEAVE_ERROR_TOO_MANY_KEYS
新しいセッションキーを作成するための無料のエントリがない場合。
WEAVE_NO_ERROR
成功

FindSharedSession

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

セッションキー テーブルを検索して、指定した終端ノードをターゲットとし、指定された認証モードと暗号化タイプと一致する確立済みの共有セッション鍵を探します。

詳細
パラメータ
[in] terminatingNodeId
セッション ターミネーターのノード ID。
[in] authMode
目的のセッション認証モード。
[in] encType
目的のメッセージ暗号化タイプ。
戻り値
WeaveSessionKey
* 一致する共有セッションを示す WeaveSessionKey オブジェクトへのポインタ。一致するセッションが見つからない場合は NULL。

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
)

このメソッドは、指定されたセッションを共有するすべてのエンドノード ID を返します。

詳細
パラメータ
[in] sessionKey
セッション キー オブジェクトへのポインタ。
[in] endNodeIds
ノード ID のバッファへのポインタ。
[in] endNodeIdsMaxCount
バッファに収まるノード ID の最大数。
[out] endNodeIdsCount
指定したセッションを共有する終了ノード ID の数。
戻り値
WEAVE_ERROR_BUFFER_TOO_SMALL
指定すると、エンドノードの ID バッファが大きすぎます。
WEAVE_NO_ERROR
成功

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

init

WEAVE_ERROR Init(
  void
)

init

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

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

IP アドレスがローカル Weave ファブリック内のノードのアドレスを表すかどうかを指定します。

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

IP アドレスがローカル ノードの Weave ファブリック アドレスを表すかどうかを指定します。

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

このメソッドは、指定したピアと keyId に関連付けられた安全なセッションが共有されるかどうかを確認します。

詳細
パラメータ
[in] keyId
セッションキー ID。
[in] peerNodeId
ピアのノード ID。
戻り値
bool
指定したセッションが共有されているかどうか。

既存のファブリック

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

IdleSessionKeys を削除する

bool RemoveIdleSessionKeys()

削除セッションキー

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

削除セッションキー

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

DeleteSharedSessionEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

RestoreSession

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

以前に停止した Weave セキュリティ セッションをシリアル化された状態から復元します。

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

指定したノードの Weave ULA を含む IPAddress を返します。

このバリアントを使用すると、サブネットを指定できます。

詳細
パラメータ
[in] nodeId
問題のノードのノード ID 番号。
[in] subnet
ULA に必要なサブネット。
戻り値
IPAddress
IPAddress オブジェクト。

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

指定したノードの Weave ULA を含む IPAddress を返します。

このバリアントは、ローカルノードのデフォルト サブネットを使用します。

詳細
パラメータ
[in] nodeId
問題のノードのノード ID 番号。
戻り値
IPAddress
IPAddress オブジェクト。

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

このメソッドはデリゲート オブジェクトを設定します。

デリゲートのコールバック メソッドは、FabricId が変更されたとき、つまりファブリックが結合または作成されたとき、またはファブリックを離れたとき(クリアなファブリック状態)に呼び出される

以前にデリゲートが設定されていた場合、このメソッドを 2 回呼び出すと以前のデリゲートが上書きされます。

詳細
パラメータ
[in] aDelegate
デリゲート オブジェクト。デリゲートが不要な場合は NULL にすることもできます。

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
)

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

停止セッション

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

アクティブな Weave セキュリティ セッションの状態を一時停止し、シリアル化します。

指定された Weave セキュリティ セッションの状態を指定されたバッファにシリアル化し、セッションを一時停止して、それ以降はメッセージを送受信できないようにします。

この方法は、スリープ中に RAM を保持しないデバイスで使用することを想定しているため、アクティブなセッションの状態を維持できるため、スリープ状態から復帰するときにセッションを再確立する必要がありません。

WeaveFabricState

 WeaveFabricState(
  void
)