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 列舉

公開屬性

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 訊息的 ID 導致對等點發生重大錯誤回應。
[in] peerNodeId
傳送主要錯誤訊息的 Weave 節點 ID。
[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() 方法。

這個方法接受任何形式的金鑰 ID,包括 None。未命名實際鍵的金鑰 ID 將予以忽略。

詳細資料
參數
[in] peerNodeId
金鑰共用節點的 Weave 節點 ID。
[in] keyId
應釋出預留項目的金鑰 ID。

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

將預留項目存放在訊息加密金鑰上。

金鑰預留項目可用來表示特定索引鍵正在使用中,並應予以保留。請注意,將預留項目放在金鑰上,並不保證金鑰一定會遭到明確操作 (例如接收 KeyError 訊息) 移除。

對於特定金鑰上的每個預留項目,都必須對 ReleaseKey() 發出對應的呼叫。

這個方法接受任何形式的金鑰 ID,包括 None。未命名實際鍵的金鑰 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_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
對等點的節點 ID。
[in] peerAddr
對等節點的 IP 位址。
[in] peerPort
對等節點的通訊埠。
[in] requestedAuthMode
您希望透過何種方式驗證對等點。這必須是其中一種 CASE 驗證模式。
[in] reqState
要求者狀態的指標。
[in] onComplete
回呼函式的指標,系統會在要求安全工作階段建立後呼叫該函式。
[in] onError
回呼函式的指標;如果要求的工作階段建立失敗,就會呼叫該函式。
[in] authDelegate
CASE 驗證委派物件的指標。
[in] terminatingNodeId
終止節點的工作階段節點 ID。如果此輸入內容與 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
布林值標記,用於指出識別金鑰 (IK) 是否設有時間限制。
[in] sendChallengerId
布林值標記,表示是否應在郵件中加入驗證者身分。如果不是,則使用 Weave 節點 ID 值做為驗證者 ID。
[in] authDelegate
指向 TAKE 驗證者驗證委派物件的指標。
傳回值
WEAVE_NO_ERROR
成功時。

WeaveSecurityManager

 WeaveSecurityManager(
  void
)