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)
証明書プロビジョニング プロトコルを開始します。

構造体

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

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

kReqType_RotateOpDeviceCert

Get Certificate リクエスト タイプは、現在動作している証明書をローテーションすることです。

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
)

証明書プロビジョニング プロトコルを開始します。

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

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

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

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)