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
ピアのノード 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
メッセージにチャレンジャー ID を含めるかどうかを示すブール値のフラグ。この値が含まれていない場合、Weave ノード ID の値がチャレンジャー ID として使用されます。
[in] authDelegate
TAKE チャレンジャー認証デリゲート オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
成功時。

WeaveSecurityManager

 WeaveSecurityManager(
  void
)