Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

nl::위브::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 enum

공개 속성

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

세션 종료 함수

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

상태

 State

공개 속성

AutoCreateKeys

bool AutoCreateKeys

DebugFabricId

uint64_t DebugFabricId

기본 서브넷

uint16_t DefaultSubnet

FabricId

uint64_t FabricId

GroupKeyStore

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

수신 대기 IPv4Addr

IPAddress ListenIPv4Addr

ListIPIP6Addr

IPAddress ListenIPv6Addr

로컬 노드 ID

uint64_t LocalNodeId

로그 키

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
성공했습니다.

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
)

이 메서드는 세션 키 항목을 찾습니다.

세부정보
매개변수
[in] keyId
위브 키 식별자
[in] peerNodeId
피어의 노드 식별자입니다.
[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
세션 종결자의 노드 식별자입니다.
[in] authMode
원하는 세션 인증 모드.
[in] encType
원하는 메일 암호화 유형입니다.
반환 값
WeaveSessionKey
* 일치하는 공유 세션을 나타내는 WeaveSessionKey 객체에 대한 포인터 또는 일치하는 세션이 없는 경우 NULL.

GetFabricState

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

비밀번호 가져오기

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
성공했습니다.

핸들 연결 종료

void HandleConnectionClosed(
  WeaveConnection *con
)

Init

WEAVE_ERROR Init(
  void
)

Init

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

IsFabric주소

bool IsFabricAddress(
  const IPAddress & addr
) const 

IP 주소가 로컬 Weave 패브릭 내의 노드 주소를 나타내는지 확인합니다.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

IP 주소가 로컬 노드의 Weave 패브릭 주소를 나타내는지 확인합니다.

공유 세션

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

이 메서드는 지정된 피어 및 keyId와 연결된 보안 세션이 공유되는지 확인합니다.

세부정보
매개변수
[in] keyId
세션 키 식별자입니다.
[in] peerNodeId
피어의 노드 식별자입니다.
반환 값
bool
지정된 세션의 공유 여부입니다.

조인기존패브릭

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

IdIdSessionKey 삭제

bool RemoveIdleSessionKeys()

세션 삭제 키

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

세션 삭제 키

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

SharedSharedSessionEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

복원 세션

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가 변경될 때마다, 즉 패브릭 조인/생성 또는 패브릭 (투명한 패브릭 상태)이 변경될 때마다 호출됩니다.

대리자가 이전에 설정된 경우 이 메서드를 다시 호출하면 이전 대리자를 덮어씁니다.

세부정보
매개변수
[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(
  void
)