nl::Weave::Profiles::安全性::KeyExport::WeaveKeyExportDelegate

此為抽象類別。

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

KeyExport 引擎呼叫的抽象委任類別,可在金鑰匯出期間執行各種驗證相關操作。

總結

繼承

直接已知子類別: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient

公開函式

BeginCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
準備驗證對等互連憑證。
EndCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
釋出與對等互連憑證驗證相關的資源。
GenerateNodeSignature(WeaveKeyExport *keyExport, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer)=0
virtual WEAVE_ERROR
為金鑰匯出訊息產生簽名。
GetNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
取得本機節點的金鑰匯出憑證集。
HandleCertValidationResult(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
處理對等互連憑證的驗證結果。
ReleaseNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
釋出節點的憑證集。
ValidateUnsignedKeyExportMessage(WeaveKeyExport *keyExport, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
驗證未簽署金鑰匯出訊息的安全性。

公開函式

開始驗證

virtual WEAVE_ERROR BeginCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

準備驗證對等互連憑證。

憑證驗證開始時呼叫。此方法會負責準備提供的憑證集和驗證內容,以驗證對等互連節點的憑證。實作時,必須將提供之 WeaveCertificateSet 物件初始化,並有足夠的資源來處理後續的憑證驗證作業。此外,實作程序也必須將所有必要的信任根憑證或 CA 憑證載入憑證集。

提供的驗證內容將會使用一組預設的驗證標準來初始化,而實作可能會視需要加以變更。實作作業必須設定 EffectiveTime 欄位,或者設定適當的驗證標記,以略過憑證生命週期驗證。

您必須實作實作程序,以維護在 StartCertValidation() 期間分配的任何資源,直到呼叫相應的 EndCertValidation() 為止。實作這些方法可確保系統對每個成功呼叫 StartCertValidation() 的呼叫,都會只呼叫一次 EndCertValidation()

EndCertValidation

virtual WEAVE_ERROR EndCertValidation(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

釋出與對等互連憑證驗證相關的資源。

對等憑證驗證與要求驗證作業完成時呼叫。

產生節點簽名

virtual WEAVE_ERROR GenerateNodeSignature(
  WeaveKeyExport *keyExport,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer
)=0

為金鑰匯出訊息產生簽名。

這個方法負責使用本機節點私密金鑰來計算指定雜湊值的簽章,然後將簽名寫入提供的 TLV 寫入器中,做為 WeaveSignature TLV 結構。

GetNodeCertSet

virtual WEAVE_ERROR GetNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

取得本機節點的金鑰匯出憑證集。

金鑰匯出引擎準備簽署金鑰匯出訊息時,就會呼叫這個函式。這個方法會負責初始化憑證集,並載入所有在郵件簽名中包含或參照的憑證。上次載入的憑證必須是簽署憑證。

處理憑證驗證結果

virtual WEAVE_ERROR HandleCertValidationResult(
  WeaveKeyExport *keyExport,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  uint32_t requestedKeyId
)=0

處理對等互連憑證的驗證結果。

對等互連節點的憑證完成驗證時,會呼叫此事件。只有在成功完成憑證驗證時,才會呼叫這個方法。實作方法可能會使用這個呼叫來檢查驗證結果,並可能覆寫錯誤的結果。

如果是回應節點,該方法預期必須驗證要求者以匯出要求金鑰。

如果是啟動的節點,該方法預期必須驗證經過驗證的憑證,才能正確識別傳送金鑰匯出要求的對等對象。

ReleaseNodeCertSet

virtual WEAVE_ERROR ReleaseNodeCertSet(
  WeaveKeyExport *keyExport,
  WeaveCertificateSet & certSet
)=0

釋出節點的憑證集。

使用 GetNodeCertSet() 傳回的憑證集完成金鑰匯出引擎時,就會呼叫此事件。

驗證未簽署金鑰匯出訊息

virtual WEAVE_ERROR ValidateUnsignedKeyExportMessage(
  WeaveKeyExport *keyExport,
  uint32_t requestedKeyId
)=0

驗證未簽署金鑰匯出訊息的安全性。

在節點收到未簽署的金鑰匯出訊息時呼叫。這個方法應根據通訊內容,驗證未簽署金鑰匯出訊息的安全性,例如透過傳送訊息的安全性工作階段屬性。

針對回應節點,該方法預期可驗證發起者,以匯出匯出的金鑰。

對於啟動的節點,該方法預期必須驗證來自匯出金鑰匯出要求的對等點的合法郵件。