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)
このメソッドは、安全なテイク セッションを確立するために呼び出されます。

パブリック タイプ

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 ノードの 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() メソッドを 1 回だけ呼び出す必要があります。

このメソッドは、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
)

このメソッドは、安全なテイク セッションを確立するために呼び出されます。

詳細
パラメータ
[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
)