透過集合功能整理內容 你可以依據偏好儲存及分類內容。

NL::編織::編織安全管理器

概括

構造函數和析構函數

WeaveSecurityManager (void)

公共類型

KeyErrorMsgRcvdFunct )(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)類型定義
void(*
關鍵錯誤消息處理函數的類型。
KeyExportCompleteFunct )(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)類型定義
void(*
類型密鑰導出協議完成處理功能。
KeyExportErrorFunct )(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)類型定義
void(*
密鑰導出協議錯誤處理函數的類型。
SessionErrorFunct )(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)類型定義
void(*
SessionEstablishedFunct )(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)類型定義
void(*
State枚舉

公共屬性

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 會話。
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 對象的指針。

會話錯誤函數

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

交換管理器

WeaveExchangeManager * ExchangeManager

織物狀態

WeaveFabricState * FabricState

空閒會話超時

uint32_t IdleSessionTimeout

InitiatorAllowedCASEConfigs

uint8_t InitiatorAllowedCASEConfigs

InitiatorAllowedCASECurves

uint8_t InitiatorAllowedCASECurves

InitiatorAllowedKeyExportConfigs

uint8_t InitiatorAllowedKeyExportConfigs

啟動器CASEConfig

uint32_t InitiatorCASEConfig

啟動器CASECurveId

uint32_t InitiatorCASECurveId

啟動器密鑰導出配置

uint8_t InitiatorKeyExportConfig

OnKeyErrorMsgRcvd

KeyErrorMsgRcvdFunct OnKeyErrorMsgRcvd

關鍵錯誤回調函數。

當收到關鍵錯誤消息時調用此函數。

會話錯誤

SessionErrorFunct OnSessionError

會話建立

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

會話建立超時

uint32_t SessionEstablishTimeout

狀態

uint8_t State

mCASE引擎

WeaveCASEEngine * mCASEEngine

密鑰導出

WeaveKeyExport * mKeyExport

mPASE引擎

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

mTAKE引擎

WeaveTAKEEngine * mTAKEEngine

公共職能

取消會話建立

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

取消正在進行的會話建立。

細節
參數
[in] reqState
與會話啟動時應用程序提供的值相匹配的指針值。
返回值
WEAVE_NO_ERROR
如果找到並取消匹配的正在進行的會話建立。
WEAVE_ERROR_INCORRECT_STATE
如果沒有正在進行的會話建立,或者正在進行的會話與提供的請求狀態指針不匹配。

在裡面

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

鍵錯誤

bool IsKeyError(
  WEAVE_ERROR err
)

檢查指定的 Weave 錯誤代碼是否是關鍵錯誤代碼之一。

調用此函數以確定是否應將密鑰錯誤消息發送給在解碼過程中未能找到正確密鑰的消息的發起方。

細節
參數
[in] err
編織錯誤代碼。
返回值
true
如果指定 Weave 錯誤代碼是關鍵錯誤。
false
除此以外。

OnEncryptedMsgRcvd

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

釋放鍵

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

釋放消息加密密鑰保留。

釋放先前放置在消息加密密鑰上的保留。

對於放置在一個特定的鍵的每個預訂,則ReleaseKey()方法,必須調用不超過一次。

此方法接受任何形式的密鑰 ID,包括 None。未命名實際密鑰的密鑰 ID 將被忽略。

細節
參數
[in] peerNodeId
與密鑰共享的對等方的 Weave 節點 ID。
[in] keyId
應釋放其保留的密鑰的 id。

保留密鑰

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

對消息加密密鑰進行保留。

密鑰保留用於表示特定密鑰正在使用中並應保留。請注意,對密鑰進行保留並不能保證該密鑰不會被顯式操作(例如接收 KeyError 消息)刪除。

對於放置在一個特定的鍵的每個預訂,到相應的呼叫ReleaseKey()必須進行。

此方法接受任何形式的密鑰 ID,包括 None。未命名實際密鑰的密鑰 ID 將被忽略。

細節
參數
[in] peerNodeId
與密鑰共享的對等方的 Weave 節點 ID。
[in] keyId
要保留的密鑰的 id。

發送密鑰錯誤消息

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_ERROR_NO_MEMORY
如果無法為新的交換上下文或新的消息緩衝區分配內存。
WEAVE_ERROR_BUFFER_TOO_SMALL
如果緩衝區太小
WEAVE_NO_ERROR
如果方法成功。

設置CASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

設置TAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

設置TAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

關掉

WEAVE_ERROR Shutdown(
  void
)

開始CASE會話

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 會話。

細節
參數
[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
關於成功。

開始密鑰導出

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
)

開始PASE會話

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
關於成功。

開始TAKE會話

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
指示標識密鑰 (IK) 是否有時間限制的布爾標誌。
[in] sendChallengerId
指示挑戰者標識是否應包含在消息中的布爾標誌。如果未包含,則 Weave 節點 ID 值將用作挑戰者 ID。
[in] authDelegate
指向 TAKE 挑戰者身份驗證委託對象的指針。
返回值
WEAVE_NO_ERROR
關於成功。

編織安全管理器

 WeaveSecurityManager(
  void
)