nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine

#include <src/lib/profiles/security/WeaveCertProvisioning.h>

Weave 証明書プロビジョニング プロトコル オブジェクトのコアロジックを実装します。

概要

コンストラクタとデストラクタ

WeaveCertProvEngine(void)

パブリック タイプ

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
この関数は、Certificate Provisioning Engine API イベントで呼び出されるアプリケーション コールバックです。
EventType{
  kEvent_PrepareAuthorizeInfo = 1,
  kEvent_ResponseReceived = 2,
  kEvent_CommunicationError = 3
}
enum
State{
  kState_NotInitialized = 0,
  kState_Idle = 1,
  kState_PreparingBinding = 2,
  kState_RequestInProgress = 3
}
enum

パブリック属性

AppState
void *
アプリケーション固有のデータへのポインタ。

パブリック関数

AbortCertificateProvisioning(void)
void
進行中の GetCertificate 交換を停止します。
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
GetCertificateRequest メッセージを生成します。
GetBinding(void) const
WeaveCertProvEngine に関連付けられている Binding オブジェクトへのポインタを返します。
GetEventCallback(void) const
WeaveCertProvEngine オブジェクトに現在構成されている API イベント コールバック関数へのポインタを返します。
GetMfrAttestDelegate(void) const
WeaveCertProvEngine オブジェクトで現在構成されているメーカーの証明書デリゲート オブジェクトへのポインタを返します。
GetOpAuthDelegate(void) const
WeaveCertProvEngine オブジェクトで現在構成されている運用認証委任オブジェクトへのポインタを返します。
GetReqType(void) const
uint8_t
現在のリクエスト タイプを取得します。
GetState(void) const
WeaveCertProvEngine オブジェクトの現在の状態を取得します。
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
証明書取得リクエスト メッセージの送信に備えて、WeaveCertProvEngine オブジェクトを初期化します。
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
GetCertificateResponse メッセージを処理します。
SetBinding(Binding *binding)
void
WeaveCertProvEngine オブジェクトのバインディング オブジェクトを設定します。
SetEventCallback(EventCallback eventCallback)
void
WeaveCertProvEngine オブジェクトに API イベント コールバック関数を設定します。
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
WeaveCertProvEngine オブジェクトでメーカーの証明書デリゲート オブジェクトを設定します。
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
WeaveCertProvEngine オブジェクトに運用認証の委譲オブジェクトを設定します。
Shutdown(void)
void
以前に初期化した WeaveCertProvEngine オブジェクトをシャットダウンします。
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
[Certificate Provisioning Protocol] を起動します。

構造体

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::InEventParam

Weave Certificate Provisioning API イベントにパラメータを入力します。

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::OutEventParam

Weave Certificate Provisioning API イベントへの出力パラメータ。

パブリック タイプ

@246

 @246
プロパティ
kReqType_GetInitialOpDeviceCert

証明書取得リクエスト タイプは、最初の運用証明書を取得します。

kReqType_RotateOpDeviceCert

証明書取得リクエストの種類は、現在の運用中の証明書をローテーションします。

EventCallback

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

この関数は、Certificate Provisioning Engine API イベントで呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] appState
エンジン オブジェクトに関連付けられたアプリケーション定義の状態情報へのポインタ。
[in] eventType
イベント コールバックによって渡されたイベント ID。
[in] inParam
イベント コールバックによって渡される入力イベント パラメータの参照。
[in] outParam
イベント コールバックによって渡される出力イベント パラメータの参照。

EventType

 EventType
プロパティ
kEvent_CommunicationError

GetCertificateRequest の送信中または応答の待機中に通信エラーが発生しました。

kEvent_PrepareAuthorizeInfo

アプリケーションは、GetCertificateRequest のペイロードを準備するようにリクエストされます。

kEvent_ResponseReceived

ピアから GetCertificateResponse メッセージを受信しました。

状態

 State
プロパティ
kState_Idle

エンジン オブジェクトがアイドル状態である。

kState_NotInitialized

エンジン オブジェクトが初期化されていません。

kState_PreparingBinding

エンジン オブジェクトは、バインディングの準備が整うまで待機しています。

kState_RequestInProgress

GetCertificateRequest メッセージが送信され、エンジン オブジェクトは応答を待機しています。

パブリック属性

AppState

void * AppState

アプリケーション固有のデータへのポインタ。

パブリック関数

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

進行中の GetCertificate 交換を停止します。

GenerateGetCertificateRequest

WEAVE_ERROR GenerateGetCertificateRequest(
  PacketBuffer *msgBuf,
  uint8_t reqType,
  bool doMfrAttest
)

GetCertificateRequest メッセージを生成します。

このメソッドは、Weave の TLV 形式でエンコードされた Weave GetCertificateRequest 構造を生成します。

GetCertificateRequest メッセージを作成するときに、このメソッドが WeaveNodeOpAuthDelegate 関数、WeaveNodeMfrAttestDelegate 関数、PrepareAuthorizeInfo API イベントを介してアプリケーションにリクエストを行い、メッセージのペイロードを準備します。

詳細
パラメータ
[in] msgBuf
GetCertificateRequest メッセージを保持する PacketBuffer オブジェクトへのポインタ。
[in] reqType
証明書リクエストの種類を取得します。
[in] doMfrAttest
リクエストにメーカー認証データを含めるかどうかを示すブール値のフラグ。
戻り値
WEAVE_NO_ERROR
GetCertificateRequest が正常に生成されたかどうか。

GetBinding

Binding * GetBinding(
  void
) const 

WeaveCertProvEngine に関連付けられている Binding オブジェクトへのポインタを返します。

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

WeaveCertProvEngine オブジェクトに現在構成されている API イベント コールバック関数へのポインタを返します。

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

WeaveCertProvEngine オブジェクトで現在構成されているメーカーの証明書デリゲート オブジェクトへのポインタを返します。

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

WeaveCertProvEngine オブジェクトで現在構成されている運用認証委任オブジェクトへのポインタを返します。

GetReqType

uint8_t GetReqType(
  void
) const 

現在のリクエスト タイプを取得します。

GetState

State GetState(
  void
) const 

WeaveCertProvEngine オブジェクトの現在の状態を取得します。

init

WEAVE_ERROR Init(
  Binding *binding,
  WeaveNodeOpAuthDelegate *opAuthDelegate,
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate,
  EventCallback eventCallback,
  void *appState
)

証明書取得リクエスト メッセージの送信に備えて、WeaveCertProvEngine オブジェクトを初期化します。

詳細
パラメータ
[in] binding
ピアノードとの通信を確立するために使用される Binding オブジェクト。
[in] opAuthDelegate
ノードの動作認証情報を使用して構築と署名に使用される運用認証委任オブジェクトへのポインタ。
[in] mfrAttestDelegate
ノードのメーカーがプロビジョニングした認証情報を使用してリクエストを作成し、署名する際に使用されるメーカーの証明書デリゲート オブジェクトへのポインタ。
[in] eventCallback
API イベントをアプリケーションに配信するために WeaveCertProvEngine オブジェクトによって呼び出される関数へのポインタ。
[in] appState
アプリケーション定義オブジェクトへのポインタ。API イベントが発生するたびにアプリケーションに返されます。

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

GetCertificateResponse メッセージを処理します。

このメソッドは、Weave の TLV 形式でエンコードされた Weave GetCertificateResponse 構造を処理します。

GetCertificateResponse メッセージの処理が正常に完了すると、このメソッドは ResponseReceived API イベントを介してアプリケーションに呼び出しを行い、結果を渡します。

GetCertificateResponse メッセージの処理が失敗した場合、このメソッドは CommunicationError API イベントを介してアプリケーションを呼び出してエラーを報告します。

詳細
パラメータ
[in] msgBuf
GetCertificateResponse メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
GetCertificateResponse メッセージが正常に処理されたかどうか。

SetBinding

void SetBinding(
  Binding *binding
)

WeaveCertProvEngine オブジェクトのバインディング オブジェクトを設定します。

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

WeaveCertProvEngine オブジェクトに API イベント コールバック関数を設定します。

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

WeaveCertProvEngine オブジェクトでメーカーの証明書デリゲート オブジェクトを設定します。

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

WeaveCertProvEngine オブジェクトに運用認証の委譲オブジェクトを設定します。

シャットダウン

void Shutdown(
  void
)

以前に初期化した WeaveCertProvEngine オブジェクトをシャットダウンします。

このメソッドは、以前に Init() メソッドを呼び出している場合にのみ呼び出すことができます。

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

[Certificate Provisioning Protocol] を起動します。

このメソッドは、CA サービスに GetCertificateRequest メッセージを送信するプロセスを開始します。対応する GetCertificateResponse メッセージを受信すると、ResponseReceived API イベントを介してアプリケーションに配信されます。

このメソッドが呼び出されたときに Binding オブジェクトが Ready 状態でない場合、Binding::RequestPrepare() メソッドにリクエストが実行され、オンデマンドの準備が開始されます。リクエスト オペレーションは、このプロセスが完了するまで待機します。前のリクエストが処理中の場合に StartCertificateProvisioning() を呼び出しても無視されます。

詳細
パラメータ
[in] reqType
証明書リクエストの種類を取得します。
[in] doMfrAttest
プロトコルにメーカー構成証明データを含めるかどうかを示すブール値のフラグ。
戻り値
WEAVE_NO_ERROR
StartCertificateProvisioning() が正常に処理されたかどうか。

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)