Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl ::織り::プロファイル::セキュリティ::場合:: WeaveCASEAuthDelegate

これは抽象クラスです。

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

認証アクションが中に委譲された抽象インタフェースCASEのセッション確立。

概要

継承

直系の既知のサブクラス: NL ::織り::デバイス・マネージャ:: WeaveDeviceManager

公共機能

BeginValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
証明書の検証の開始時に呼び出されます。
EncodeNodeCertInfo (const BeginSessionContext & msgCtx,TLVWriter & writer)=0
virtual WEAVE_ERROR
エンコードCASEローカル・ノードの証明書情報。
EncodeNodePayload (const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
含まれるアプリケーション固有のペイロードコードするCASEのピアにメッセージを。
EndValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual void
証明書の検証の最後に呼び出されます。
GenerateNodeSignature (const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen,TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
ローカルノードの秘密鍵を使用して署名を生成します。
HandleValidationResult (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
virtual WEAVE_ERROR
証明書の検証結果とともに呼び出されます。
OnPeerCertsLoaded (const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
virtual WEAVE_ERROR
ピアの証明書がロードされた後に呼び出されます。

公共機能

BeginValidation

virtual WEAVE_ERROR BeginValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

証明書の検証の開始時に呼び出されます。

実装は、提供された初期化する必要がありWeaveCertificateSetの今後の証明書の検証を処理するのに十分なリソースを持つオブジェクトを。この時、実装は、証明書のセットに信頼されたルート証明書またはCA証明書をロードすることができ、あるいはまで待つ()OnPeerCertsLoadedと呼ばれています。

証明書セットにロードされた各証明書には、ロード機能によってデフォルトの証明書タイプが割り当てられます。実装は、検証中の証明書の正しい治療、及びためWeaveAuthModeの正しい割当てを保証するために、必要に応じてこれらの型を調整する必要がありCASEの相互作用を。

提供された検証コンテキストは、実装が必要に応じて変更できるデフォルトの検証基準のセットで初期化されます。実装では、EffectiveTimeフィールドを設定するか、適切な検証フラグを設定して、証明書の有効期間の検証を抑制する必要があります。

詳細な検証結果が必要な場合、実装はCertValidationResultsフィールドとCertValidationLenフィールドを初期化できます。

実装時に割り当てられたリソースを維持するために必要とされるBeginValidation()は、対応するまでEndValidation()が形成されていると呼ばれています。実装があることが保証されているEndValidationは()への各呼び出しが成功するために1回だけ呼び出されます)BeginValidation( 。

EncodeNodeCertInfo

virtual WEAVE_ERROR EncodeNodeCertInfo(
  const BeginSessionContext & msgCtx,
  TLVWriter & writer
)=0

エンコードCASEローカル・ノードの証明書情報。

実装はデフォルトのエンコーディング上書きするために、このコールを使用することができCASEローカル・ノードのCertificateInformation構造を。呼び出されると、実装は少なくともローカルノードのエンティティ証明書を含むCertificateInformation構造を書き込む必要があります。実装には、オプションで、関連する証明書やトラストアンカーのセットを含めることができます。

EncodeNodePayload

virtual WEAVE_ERROR EncodeNodePayload(
  const BeginSessionContext & msgCtx,
  uint8_t *payloadBuf,
  uint16_t payloadBufSize,
  uint16_t & payloadLen
)

含まれるアプリケーション固有のペイロードコードするCASEのピアにメッセージを。

このメソッドの実装はオプションです。デフォルトの実装は、長さがゼロのペイロードを返します。

EndValidation

virtual void EndValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

証明書の検証の最後に呼び出されます。

実装は、この呼び出しを使用して、認証の検証が完了した後にクリーンアップを実行できます。実装があることが保証されているEndValidationは()への各呼び出しが成功するために1回だけ呼び出されます)BeginValidation( 。

GenerateNodeSignature

virtual WEAVE_ERROR GenerateNodeSignature(
  const BeginSessionContext & msgCtx,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer,
  uint64_t tag
)=0

ローカルノードの秘密鍵を使用して署名を生成します。

実装が呼び出されると、ノードの秘密鍵を使用して、指定されたハッシュ値の署名を計算する必要があります。生成された署名は、その後の形式で書かれるべきであるCASE供給にECDSASignature構造TLVは、指定されたタグを使用して書き込みます。

ノードの秘密鍵がローカルバッファに保持されている場合には、 GenerateAndEncodeWeaveECDSASignature()効用関数は、この方法を実施するために有用であり得ます。

HandleValidationResult

virtual WEAVE_ERROR HandleValidationResult(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  WEAVE_ERROR & validRes
)=0

証明書の検証結果とともに呼び出されます。

実装は、この呼び出しを使用して、ピアの証明書の検証結果を検査し、場合によっては変更することができます。検証が成功した場合、validResはWEAVE_NO_ERRORに設定されます。この場合、検証コンテキストには結果に関する詳細が含まれます。特に、TrustAnchorフィールドはトラストアンカー証明書に設定されます。

実装は、内CertValidationResultsとCertValidationLenフィールドを初期化した場合ValidationContextの間に構造BeginValidation()と呼ばれ、これらのフィールドは、証明書セット内の各証明書の詳細な検証結果が含まれています。

実装は、validResをエラー値に設定することでこれをオーバーライドし、それによって検証が失敗する可能性があります。

検証が失敗した場合、validResは失敗の理由を反映します。実装は結果を別のエラー値にオーバーライドする場合がありますが、結果をWEAVE_NO_ERRORに設定してはなりません。

OnPeerCertsLoaded

virtual WEAVE_ERROR OnPeerCertsLoaded(
  const BeginSessionContext & msgCtx,
  WeaveDN & subjectDN,
  CertificateKeyId & subjectKeyId,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)

ピアの証明書がロードされた後に呼び出されます。

実装では、この呼び出しを使用して、ピアの証明書の検証を実行するために使用される入力証明書と検証基準を確定できます。呼び出し時に、ピアによって提供された証明書が証明書セットにロードされます(存在する場合は独自の証明書を含む)。さらに、subjectDN および subjectKeyId 引数は、証明書セットからピアの証明書を解決するために使用される値に初期化されます。ピアが(証明書参照ではなく)独自の証明書を提供した場合、validCtx引数内のEntityCertフィールドには、その証明書へのポインターが含まれます。

この呼び出し中に、実装は、新しい証明書の追加など、証明書セットの内容を変更する場合があります。また、必要に応じて、subjectDN、subjectKeyId、またはvalidCtx引数を変更する場合もあります。最も重要なことは、実装は、検証およびその後のアクセス制御チェック中に証明書が正しく処理されるように、戻る前に証明書セットで証明書タイプフィールドを調整する必要があります。

注:ピアが完全な証明書ではなく、自身の証明書参照を提供する場合、検証コンテキストのEntityCertフィールドにはNULLが含まれます。実装が証明書参照をサポートしたい場合は、返す前に、ピアのサブジェクトDNとキーIDに一致する証明書を証明書セットに追加する必要があります。

このメソッドの実装はオプションです。デフォルトの実装は何もしません。