nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate

Il s'agit d'une classe abstraite.

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

Classe déléguée abstraite appelée par le moteur KeyExport pour effectuer diverses actions liées à l'authentification lors de l'exportation de la clé.

Résumé

Héritage

Sous-classes directes connues: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient

Fonctions publiques

BeginCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Préparez la validation du certificat du pair.
EndCertValidation(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Libérer les ressources associées à la validation du certificat de pair
GenerateNodeSignature(WeaveKeyExport *keyExport, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer)=0
virtual WEAVE_ERROR
Générez une signature pour un message d'exportation de clé.
GetNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Obtenez le certificat d'exportation de clé pour le nœud local.
HandleCertValidationResult(WeaveKeyExport *keyExport, ValidationContext & validCtx, WeaveCertificateSet & certSet, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
Traiter les résultats de la validation du certificat du pair
ReleaseNodeCertSet(WeaveKeyExport *keyExport, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Libérez l'ensemble de certificats du nœud.
ValidateUnsignedKeyExportMessage(WeaveKeyExport *keyExport, uint32_t requestedKeyId)=0
virtual WEAVE_ERROR
Vérifier la sécurité d'un message d'exportation de clé non signé

Fonctions publiques

BeginCertValidation

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

Préparez la validation du certificat du pair.

Appelée au début de la validation du certificat. Cette méthode permet de préparer l'ensemble de certificats fourni et le contexte de validation à utiliser pour valider le certificat du nœud pair. Les implémentations doivent initialiser l'objet WeaveCertificateSet fourni avec suffisamment de ressources pour gérer la prochaine validation du certificat. L'implémentation doit également charger tous les certificats racine ou CA de confiance nécessaires dans l'ensemble de certificats.

Le contexte de validation fourni sera initialisé avec un ensemble de critères de validation par défaut, que l'implémentation peut modifier si nécessaire. L'implémentation doit définir le champ EffectiveTime ou définir les indicateurs de validation appropriés pour supprimer la validation de la durée de vie des certificats.

L'implémentation est nécessaire pour conserver toutes les ressources allouées lors de BeginCertValidation() jusqu'à ce que la méthode EndCertValidation() correspondante soit appelée. Les implémentations sont garanties que EndCertValidation() sera appelé exactement une fois pour chaque appel réussi de BeginCertValidation().

EndCertValidation

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

Libérer les ressources associées à la validation du certificat de pair

Appelé lorsque la validation du certificat de pair et la vérification des demandes sont terminées.

GenerateNodeSignature

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

Générez une signature pour un message d'exportation de clé.

Cette méthode permet de calculer une signature de la valeur de hachage donnée à l'aide de la clé privée du nœud local et d'écrire la signature dans le rédacteur TLV fourni en tant que structure TLV WeaveSignature.

GetNodeCertSet

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

Obtenez le certificat d'exportation de clé pour le nœud local.

Appelé lorsque le moteur d'exportation de clés se prépare à signer un message d'exportation de clé. Cette méthode permet d'initialiser l'ensemble de certificats et de charger tous les certificats qui seront inclus ou référencés dans la signature du message. Le dernier certificat chargé doit être le certificat de signature.

HandleCertValidationResult

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

Traiter les résultats de la validation du certificat du pair

Appelé lorsque la validation du certificat du nœud pair est terminée. Cette méthode n'est appelée que si la validation du certificat aboutit. Les implémentations peuvent utiliser cet appel pour inspecter les résultats de la validation et éventuellement remplacer le résultat par une erreur.

Pour un nœud répondant, la méthode doit vérifier que le demandeur est autorisé à exporter la clé demandée.

Pour un nœud initiateur, la méthode doit vérifier que le certificat validé identifie correctement le pair auquel la demande d'exportation de clé a été envoyée.

ReleaseNodeCertSet

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

Libérez l'ensemble de certificats du nœud.

Appelé lorsque le moteur d'exportation de clés a terminé avec l'ensemble de certificats renvoyé par GetNodeCertSet().

ValidateUnsignedKeyExportMessage

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

Vérifier la sécurité d'un message d'exportation de clé non signé

Appelé lorsque le nœud reçoit un message d'exportation de clé non signé. La méthode doit permettre de vérifier la sécurité d'un message d'exportation de clé non signé en fonction du contexte de sa communication, par exemple via les attributs d'une session de sécurité utilisée pour envoyer le message.

Pour un nœud répondant, la méthode doit vérifier que l'initiateur est habilité à exporter la clé demandée.

Pour un nœud initiateur, la méthode doit vérifier que le message provient légitimement du pair auquel la requête d'exportation de clé a été envoyée.