nl::Weave::WeaveSecurityManager

요약

생성자 및 소멸자

WeaveSecurityManager(void)

공개 유형

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
주요 오류 메시지 처리 함수의 유형입니다.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
키 내보내기 프로토콜 완료 처리 함수의 유형입니다.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
키 내보내기 프로토콜 오류 처리 함수의 유형입니다.
SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport) typedef
void(*
SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType) typedef
void(*
State enum

공개 속성

CASEUseKnownECDHKey
bool
ExchangeManager
FabricState
IdleSessionTimeout
uint32_t
InitiatorAllowedCASEConfigs
uint8_t
InitiatorAllowedCASECurves
uint8_t
InitiatorAllowedKeyExportConfigs
uint8_t
InitiatorCASEConfig
uint32_t
InitiatorCASECurveId
uint32_t
InitiatorKeyExportConfig
uint8_t
OnKeyErrorMsgRcvd
키 오류 콜백 함수입니다.
OnSessionError
SessionErrorFunct
OnSessionEstablished
SessionEstablishedFunct
ResponderAllowedCASEConfigs
uint8_t
ResponderAllowedCASECurves
uint8_t
ResponderAllowedKeyExportConfigs
uint8_t
SessionEstablishTimeout
uint32_t
State
uint8_t
mCASEEngine
mKeyExport
mPASEEngine
mStartKeyExport_OnComplete
키 내보내기 프로토콜 완료 콜백 함수입니다.
mStartKeyExport_OnError
키 내보내기 프로토콜 오류 콜백 함수입니다.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

공개 함수

CancelSessionEstablishment(void *reqState)
진행 중인 세션 설정을 취소합니다.
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
지정된 Weave 오류 코드가 주요 오류 코드 중 하나인지 확인합니다.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
메시지 암호화 키 예약을 해제합니다.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
메시지 암호화 키를 사용해 예약합니다.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
키 오류 메시지를 보냅니다.
SetCASEAuthDelegate(WeaveCASEAuthDelegate *delegate)
void
SetKeyExportDelegate(WeaveKeyExportDelegate *delegate)
void
SetTAKEAuthDelegate(WeaveTAKEChallengerAuthDelegate *delegate)
void
SetTAKETokenAuthDelegate(WeaveTAKETokenAuthDelegate *delegate)
void
Shutdown(void)
StartCASESession(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, WeaveCASEAuthDelegate *authDelegate, uint64_t terminatingNodeId)
이 메서드는 새 CASE 세션을 설정하거나 기존 CASE 세션을 찾기 위해 호출됩니다.
StartKeyExport(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, uint32_t keyId, bool signMessage, void *reqState, KeyExportCompleteFunct onComplete, KeyExportErrorFunct onError, WeaveKeyExportDelegate *keyExportDelegate)
StartPASESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, const uint8_t *pw, uint16_t pwLen)
이 메서드는 보안 PASE 세션을 설정하기 위해 호출됩니다.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
이 메서드는 보안 TAKE 세션을 설정하기 위해 호출됩니다.

공개 유형

KeyErrorMsgRcvdFunct

void(* KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)

주요 오류 메시지 처리 함수의 유형입니다.

세부정보
매개변수
[in] keyId
암호화 키로 인해 피어의 키 오류 메시지 응답이 발생했습니다.
[in] encType
keyId와 연결된 암호화 유형입니다.
[in] messageId
Weave 메시지의 식별자로 인해 피어의 키 오류 응답이 발생했습니다.
[in] peerNodeId
키 오류 메시지를 전송한 Weave 노드의 식별자입니다.
[in] keyErr
피어에서 수신된 오류 코드입니다.

KeyExportCompleteFunct

void(* KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)

키 내보내기 프로토콜 완료 처리 함수의 유형입니다.

세부정보
매개변수
[in] sm
WeaveSecurityManager 객체에 대한 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] reqState
키 내보내기 요청자 상태를 가리키는 포인터입니다.
[in] keyId
내보낸 키 ID입니다.
[in] exportedKey
내보낸 보안 비밀 키에 대한 포인터입니다.
[in] exportedKeyLen
내보낸 보안 비밀 키 길이에 대한 참조입니다.

KeyExportErrorFunct

void(* KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)

키 내보내기 프로토콜 오류 처리 함수의 유형입니다.

세부정보
매개변수
[in] sm
WeaveSecurityManager 객체에 대한 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] reqState
키 내보내기 요청자 상태를 가리키는 포인터입니다.
[in] localErr
키 내보내기 프로토콜 중에 WEAVE_ERROR가 발생했습니다.
[in] statusReport
피어에서 오류 상태를 수신한 경우 StatusReport 객체에 대한 포인터입니다.

SessionErrorFunct

void(* SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)

SessionEstablishedFunct

void(* SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)

상태

 State

공개 속성

CASEUseKnownECDHKey

bool CASEUseKnownECDHKey

ExchangeManager

WeaveExchangeManager * ExchangeManager

FabricState

WeaveFabricState * FabricState

IdleSessionTimeout

uint32_t IdleSessionTimeout

InitiatorAllowedCASEConfigs

uint8_t InitiatorAllowedCASEConfigs

InitiatorAllowedCASECurves

uint8_t InitiatorAllowedCASECurves

InitiatorAllowedKeyExportConfigs

uint8_t InitiatorAllowedKeyExportConfigs

InitiatorCASEConfig

uint32_t InitiatorCASEConfig

InitiatorCASECurveId

uint32_t InitiatorCASECurveId

InitiatorKeyExportConfig

uint8_t InitiatorKeyExportConfig

OnKeyErrorMsgRcvd

KeyErrorMsgRcvdFunct OnKeyErrorMsgRcvd

키 오류 콜백 함수입니다.

이 함수는 키 오류 메시지가 수신될 때 호출됩니다.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

상태

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

키 내보내기 프로토콜 완료 콜백 함수입니다.

이 함수는 보안 비밀 키 내보내기 프로세스가 완료되면 호출됩니다.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

키 내보내기 프로토콜 오류 콜백 함수입니다.

이 함수는 키 내보내기 프로세스 중에 오류가 발생하면 호출됩니다.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

공개 함수

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

진행 중인 세션 설정을 취소합니다.

세부정보
매개변수
[in] reqState
세션이 시작되었을 때 애플리케이션이 제공한 값과 일치하는 포인터 값입니다.
반환 값
WEAVE_NO_ERROR
일치하는 진행 중인 세션 설정이 발견되어 취소된 경우
WEAVE_ERROR_INCORRECT_STATE
진행 중인 세션 설정이 없거나 진행 중인 세션이 제공된 요청 상태 포인터와 일치하지 않는 경우입니다.

Init

WEAVE_ERROR Init(
  WeaveExchangeManager & aExchangeMgr,
  System::Layer & aSystemLayer
)

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

지정된 Weave 오류 코드가 주요 오류 코드 중 하나인지 확인합니다.

이 함수는 디코딩 중에 올바른 키를 찾지 못한 메시지의 시작자에게 키 오류 메시지를 보내야 하는지 결정하기 위해 호출됩니다.

세부정보
매개변수
[in] err
Weave 오류 코드입니다.
반환 값
true
지정된 Weave 오류 코드는 키 오류입니다.
false
그렇지 않은 경우

OnEncryptedMsgRcvd

void OnEncryptedMsgRcvd(
  uint16_t sessionKeyId,
  uint64_t peerNodeId,
  uint8_t encType
)

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

메시지 암호화 키 예약을 해제합니다.

이전에 메시지 암호화 키에 배치된 예약을 해제합니다.

특정 키에 배치된 모든 예약에 대해 ReleaseKey() 메서드는 한 번만 호출되어야 합니다.

이 메서드는 None을 포함하여 모든 형태의 키 ID를 허용합니다. 실제 키의 이름을 지정하지 않는 키 ID는 무시됩니다.

세부정보
매개변수
[in] peerNodeId
키가 공유된 피어의 Weave 노드 ID입니다.
[in] keyId
예약이 해제되어야 하는 키의 ID입니다.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

메시지 암호화 키를 사용해 예약합니다.

키 예약은 특정 키가 사용되고 있으며 유지되어야 함을 알리는 데 사용됩니다. 키에 예약을 적용한다고 해서 KeyError 메시지 수신과 같은 명시적 작업으로 인해 키가 삭제되지 않는 것은 아닙니다.

특정 키에 배치된 모든 예약에 대해 ReleaseKey()에 상응하는 호출을 수행해야 합니다.

이 메서드는 None을 포함하여 모든 형태의 키 ID를 허용합니다. 실제 키의 이름을 지정하지 않는 키 ID는 무시됩니다.

세부정보
매개변수
[in] peerNodeId
키가 공유된 피어의 Weave 노드 ID입니다.
[in] keyId
예약할 키의 ID입니다.

SendKeyErrorMsg

WEAVE_ERROR SendKeyErrorMsg(
  WeaveMessageInfo *rcvdMsgInfo,
  const IPPacketInfo *rcvdMsgPacketInfo,
  WeaveConnection *con,
  WEAVE_ERROR keyErr
)

키 오류 메시지를 보냅니다.

이 함수는 키 오류로 인해 수신된 Weave 메시지 디코딩이 실패할 때 호출됩니다.

세부정보
매개변수
[in] rcvdMsgInfo
수신된 Weave 메시지의 메시지 정보에 대한 포인터입니다.
[in] rcvdMsgPacketInfo
수신된 Weave 메시지의 IPPacketInfo 객체에 대한 포인터입니다.
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] keyErr
Weave 키 오류 코드입니다.
반환 값
WEAVE_ERROR_NO_MEMORY
새 교환 컨텍스트 또는 새 메시지 버퍼에 메모리를 할당할 수 없는 경우
WEAVE_ERROR_BUFFER_TOO_SMALL
버퍼가 너무 작은 경우
WEAVE_NO_ERROR
메서드가 성공한 경우

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

종료

WEAVE_ERROR Shutdown(
  void
)

StartCASESession

WEAVE_ERROR StartCASESession(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  WeaveCASEAuthDelegate *authDelegate,
  uint64_t terminatingNodeId
)

이 메서드는 새 CASE 세션을 설정하거나 기존 CASE 세션을 찾기 위해 호출됩니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] peerNodeId
피어의 노드 식별자입니다.
[in] peerAddr
피어 노드의 IP 주소입니다.
[in] peerPort
피어 노드의 포트입니다.
[in] requestedAuthMode
피어를 인증하는 원하는 방법입니다. CASE 인증 모드 중 하나여야 합니다.
[in] reqState
요청자 상태를 가리키는 포인터입니다.
[in] onComplete
요청된 보안 세션이 설정되면 호출되는 콜백 함수에 대한 포인터입니다.
[in] onError
콜백 함수에 대한 포인터로, 요청된 세션 설정이 실패하면 호출됩니다.
[in] authDelegate
CASE 인증 대리자 객체에 대한 포인터입니다.
[in] terminatingNodeId
세션을 종료하는 노드의 노드 식별자입니다. 이 입력이 kNodeIdNotSpecified와 다르면 공유 보안 세션이 요청되었음을 나타냅니다.
반환 값
WEAVE_NO_ERROR
성공 시

StartKeyExport

WEAVE_ERROR StartKeyExport(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  uint32_t keyId,
  bool signMessage,
  void *reqState,
  KeyExportCompleteFunct onComplete,
  KeyExportErrorFunct onError,
  WeaveKeyExportDelegate *keyExportDelegate
)

StartPASESession

WEAVE_ERROR StartPASESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  const uint8_t *pw,
  uint16_t pwLen
)

이 메서드는 보안 PASE 세션을 설정하기 위해 호출됩니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] requestedAuthMode
피어를 인증하는 원하는 방법입니다. PASE 인증 모드 중 하나여야 합니다.
[in] reqState
요청자 상태를 가리키는 포인터입니다.
[in] onComplete
요청된 보안 세션이 설정되면 호출되는 콜백 함수에 대한 포인터입니다.
[in] onError
콜백 함수에 대한 포인터로, 요청된 세션 설정이 실패하면 호출됩니다.
[in] pw
PASE 보안 비밀 비밀번호를 가리키는 포인터입니다.
[in] pwLen
PASE 보안 비밀 비밀번호의 길이입니다.
반환 값
WEAVE_NO_ERROR
성공 시

StartTAKESession

WEAVE_ERROR StartTAKESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  bool encryptAuthPhase,
  bool encryptCommPhase,
  bool timeLimitedIK,
  bool sendChallengerId,
  WeaveTAKEChallengerAuthDelegate *authDelegate
)

이 메서드는 보안 TAKE 세션을 설정하기 위해 호출됩니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] requestedAuthMode
피어를 인증하는 원하는 방법입니다. TAKE 인증 모드 중 하나여야 합니다.
[in] reqState
요청자 상태를 가리키는 포인터입니다.
[in] onComplete
요청된 보안 세션이 설정되면 호출되는 콜백 함수에 대한 포인터입니다.
[in] onError
콜백 함수에 대한 포인터로, 요청된 세션 설정이 실패하면 호출됩니다.
[in] encryptAuthPhase
프로토콜 인증 단계를 암호화해야 하는지 여부를 나타내는 불리언 플래그입니다.
[in] encryptCommPhase
프로토콜 통신 단계를 암호화해야 하는지 여부를 나타내는 불리언 플래그입니다.
[in] timeLimitedIK
ID 키 (IK)에 시간 제한이 있는지 여부를 나타내는 불리언 플래그입니다.
[in] sendChallengerId
메시지에 도전자 식별을 포함해야 하는지 여부를 나타내는 불리언 플래그입니다. 포함되지 않은 경우 Weave 노드 ID 값이 Challenger ID로 사용됩니다.
[in] authDelegate
TAKE challenger 인증 위임 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
성공 시

WeaveSecurityManager

 WeaveSecurityManager(
  void
)