nl::Weave::WeaveSecurityManager

Résumé

Constructeurs et destructeurs

WeaveSecurityManager(void)

Types publics

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
Type de fonction de gestion des messages d'erreur clés.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Type de la fonction de traitement complet du protocole d'exportation de clé.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Type de fonction de gestion des erreurs du protocole d'exportation de clé.
SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport) typedef
void(*
SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType) typedef
void(*
State enum

Attributs publics

CASEUseKnownECDHKey
bool
ExchangeManager
FabricState
IdleSessionTimeout
uint32_t
InitiatorAllowedCASEConfigs
uint8_t
InitiatorAllowedCASECurves
uint8_t
InitiatorAllowedKeyExportConfigs
uint8_t
InitiatorCASEConfig
uint32_t
InitiatorCASECurveId
uint32_t
InitiatorKeyExportConfig
uint8_t
OnKeyErrorMsgRcvd
Fonction de rappel d'erreur de touche.
OnSessionError
SessionErrorFunct
OnSessionEstablished
SessionEstablishedFunct
ResponderAllowedCASEConfigs
uint8_t
ResponderAllowedCASECurves
uint8_t
ResponderAllowedKeyExportConfigs
uint8_t
SessionEstablishTimeout
uint32_t
State
uint8_t
mCASEEngine
mKeyExport
mPASEEngine
mStartKeyExport_OnComplete
Fonction de rappel complet du protocole d'exportation de clé.
mStartKeyExport_OnError
Fonction de rappel d'erreur du protocole d'exportation de clé.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Fonctions publiques

CancelSessionEstablishment(void *reqState)
Annuler l'établissement d'une session en cours
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Vérifie si le code d'erreur Weave spécifié fait partie des principaux codes d'erreur.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Libérez une réservation de clé de chiffrement de message.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Effectuer une réservation sur une clé de chiffrement de message
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Message d'erreur concernant la clé envoyé.
SetCASEAuthDelegate(WeaveCASEAuthDelegate *delegate)
void
SetKeyExportDelegate(WeaveKeyExportDelegate *delegate)
void
SetTAKEAuthDelegate(WeaveTAKEChallengerAuthDelegate *delegate)
void
SetTAKETokenAuthDelegate(WeaveTAKETokenAuthDelegate *delegate)
void
Shutdown(void)
StartCASESession(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, WeaveCASEAuthDelegate *authDelegate, uint64_t terminatingNodeId)
Cette méthode est appelée pour établir une nouvelle session CASE ou rechercher une session CASE existante.
StartKeyExport(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, uint32_t keyId, bool signMessage, void *reqState, KeyExportCompleteFunct onComplete, KeyExportErrorFunct onError, WeaveKeyExportDelegate *keyExportDelegate)
StartPASESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, const uint8_t *pw, uint16_t pwLen)
Cette méthode est appelée pour établir une session PASE sécurisée.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
Cette méthode est appelée pour établir une session TAKE sécurisée.

Types publics

KeyErrorMsgRcvdFunct

void(* KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)

Type de fonction de gestion des messages d'erreur clés.

Détails
Paramètres
[in] keyId
La clé de chiffrement a généré la réponse du pair au message d'erreur de la clé.
[in] encType
Type de chiffrement associé à keyId.
[in] messageId
L'identifiant du message Weave a généré la réponse d'erreur clé du pair.
[in] peerNodeId
Identifiant du nœud Weave qui a envoyé le message d'erreur lié à la clé.
[in] keyErr
Code d'erreur reçu du pair.

KeyExportCompleteFunct

void(* KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)

Type de la fonction de traitement complet du protocole d'exportation de clé.

Détails
Paramètres
[in] sm
Pointeur vers l'objet WeaveSecurityManager.
[in] con
Pointeur vers un objet WeaveConnection.
[in] reqState
Pointeur vers l'état du demandeur d'exportation de clé.
[in] keyId
ID de clé exporté.
[in] exportedKey
Un pointeur vers la clé secrète exportée.
[in] exportedKeyLen
Référence à la longueur de la clé secrète exportée.

KeyExportErrorFunct

void(* KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)

Type de fonction de gestion des erreurs du protocole d'exportation de clé.

Détails
Paramètres
[in] sm
Pointeur vers l'objet WeaveSecurityManager.
[in] con
Pointeur vers un objet WeaveConnection.
[in] reqState
Pointeur vers l'état du demandeur d'exportation de clé.
[in] localErr
WEAVE_ERROR s'est produite lors du protocole d'exportation de clé.
[in] statusReport
Pointeur vers l'objet StatusReport si l'état d'erreur est reçu du pair.

SessionErrorFunct

void(* SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)

SessionEstablishedFunct

void(* SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)

État

 State

Attributs publics

CASEUseknownECDHKey

bool CASEUseKnownECDHKey

ExchangeManager

WeaveExchangeManager * ExchangeManager

FabricState

WeaveFabricState * FabricState

IdleSessionTimeout

uint32_t IdleSessionTimeout

InitiatorAllowedCASEConfigs

uint8_t InitiatorAllowedCASEConfigs

InitiatorAllowedCASECurves

uint8_t InitiatorAllowedCASECurves

InitiatorAllowedKeyExportConfigs

uint8_t InitiatorAllowedKeyExportConfigs

InitiatorCASEConfig

uint32_t InitiatorCASEConfig

InitiatorCASECurveId

uint32_t InitiatorCASECurveId

InitiatorKeyExportConfig

uint8_t InitiatorKeyExportConfig

OnKeyErrorMsgRcvd

KeyErrorMsgRcvdFunct OnKeyErrorMsgRcvd

Fonction de rappel d'erreur de touche.

Cette fonction est appelée lorsqu'un message d'erreur de touche est reçu.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

État

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

Fonction de rappel complet du protocole d'exportation de clé.

Cette fonction est appelée à la fin du processus d'exportation de la clé secrète.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

Fonction de rappel d'erreur du protocole d'exportation de clé.

Cette fonction est appelée lorsqu'une erreur se produit lors du processus d'exportation de la clé.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

Fonctions publiques

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

Annuler l'établissement d'une session en cours

Détails
Paramètres
[in] reqState
Valeur de pointeur correspondant à la valeur fournie par l'application au démarrage de la session.
Valeurs de retour
WEAVE_NO_ERROR
Si un établissement de session en cours correspondant a été trouvé et annulé.
WEAVE_ERROR_INCORRECT_STATE
Si aucun établissement de session n'était en cours ou si la session en cours ne correspondait pas au pointeur d'état de requête fourni.

Init

WEAVE_ERROR Init(
  WeaveExchangeManager & aExchangeMgr,
  System::Layer & aSystemLayer
)

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Vérifie si le code d'erreur Weave spécifié fait partie des principaux codes d'erreur.

Cette fonction est appelée pour déterminer si un message d'erreur de clé doit être envoyé à l'initiateur du message qui n'a pas trouvé de clé correcte lors du décodage.

Détails
Paramètres
[in] err
Un code d'erreur Weave.
Valeurs de retour
true
Si le code d'erreur Weave est spécifié, il s'agit d'une erreur clé.
false
Sinon.

OnEncryptedMsgRcvd

void OnEncryptedMsgRcvd(
  uint16_t sessionKeyId,
  uint64_t peerNodeId,
  uint8_t encType
)

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Libérez une réservation de clé de chiffrement de message.

Libérez une réservation précédemment placée sur une clé de chiffrement de message.

Pour chaque réservation placée sur une clé particulière, la méthode ReleaseKey() ne doit pas être appelée plusieurs fois.

Cette méthode accepte toute forme d'ID de clé, y compris None. Les ID de clé qui ne nomment pas les clés réelles sont ignorés.

Détails
Paramètres
[in] peerNodeId
ID du nœud Weave du pair avec lequel la clé a été partagée.
[in] keyId
Identifiant de la clé dont la réservation doit être libérée.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Effectuer une réservation sur une clé de chiffrement de message

Les réservations de clés permettent de signaler qu'une clé spécifique est activement utilisée et doit être conservée. Notez que le fait de réserver une clé ne garantit pas qu'elle ne sera pas supprimée par une action explicite telle que la réception d'un message KeyError.

Pour chaque réservation effectuée sur une clé particulière, un appel correspondant à ReleaseKey() doit être effectué.

Cette méthode accepte toute forme d'ID de clé, y compris None. Les ID de clé qui ne nomment pas les clés réelles sont ignorés.

Détails
Paramètres
[in] peerNodeId
ID du nœud Weave du pair avec lequel la clé a été partagée.
[in] keyId
Identifiant de la clé à réserver.

SendKeyErrorMsg

WEAVE_ERROR SendKeyErrorMsg(
  WeaveMessageInfo *rcvdMsgInfo,
  const IPPacketInfo *rcvdMsgPacketInfo,
  WeaveConnection *con,
  WEAVE_ERROR keyErr
)

Message d'erreur concernant la clé envoyé.

Cette fonction est appelée lorsque le décodage du message Weave reçu échoue en raison d'une erreur de clé.

Détails
Paramètres
[in] rcvdMsgInfo
Pointeur vers les informations du message Weave reçu.
[in] rcvdMsgPacketInfo
Pointeur vers l'objet IPPacketInfo du message Weave reçu.
[in] con
Pointeur vers l'objet WeaveConnection.
[in] keyErr
Code d'erreur de touche Weave.
Valeurs de retour
WEAVE_ERROR_NO_MEMORY
Si la mémoire n'a pas pu être allouée pour le nouveau contexte d'échange ou le nouveau tampon de message.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si la mémoire tampon est trop petite
WEAVE_NO_ERROR
Si la méthode a réussi.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Arrêt

WEAVE_ERROR Shutdown(
  void
)

StartCASESession

WEAVE_ERROR StartCASESession(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  WeaveCASEAuthDelegate *authDelegate,
  uint64_t terminatingNodeId
)

Cette méthode est appelée pour établir une nouvelle session CASE ou rechercher une session CASE existante.

Détails
Paramètres
[in] con
Pointeur vers l'objet WeaveConnection.
[in] peerNodeId
Identifiant de nœud du pair.
[in] peerAddr
Adresse IP du nœud pair.
[in] peerPort
Port du nœud pair.
[in] requestedAuthMode
Le moyen souhaité par lequel le pair doit être authentifié. Il doit s'agir de l'un des modes d'authentification CASE.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Pointeur vers la fonction de rappel, qui sera appelée une fois la session sécurisée demandée établie.
[in] onError
Pointeur vers la fonction de rappel, qui sera appelée si l'établissement de la session demandée échoue.
[in] authDelegate
Pointeur vers l'objet délégué d'authentification CASE.
[in] terminatingNodeId
Identifiant du nœud qui met fin à la session. Lorsque cette entrée est différente de kNodeIdNotSpecified, cela signifie que la session sécurisée partagée a été demandée.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.

StartKeyExport

WEAVE_ERROR StartKeyExport(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  uint32_t keyId,
  bool signMessage,
  void *reqState,
  KeyExportCompleteFunct onComplete,
  KeyExportErrorFunct onError,
  WeaveKeyExportDelegate *keyExportDelegate
)

StartPASESession

WEAVE_ERROR StartPASESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  const uint8_t *pw,
  uint16_t pwLen
)

Cette méthode est appelée pour établir une session PASE sécurisée.

Détails
Paramètres
[in] con
Pointeur vers l'objet WeaveConnection.
[in] requestedAuthMode
Le moyen souhaité par lequel le pair doit être authentifié. Il doit s'agir de l'un des modes d'authentification PASE.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Pointeur vers la fonction de rappel, qui sera appelée une fois la session sécurisée demandée établie.
[in] onError
Pointeur vers la fonction de rappel, qui sera appelée si l'établissement de la session demandée échoue.
[in] pw
Pointeur vers le mot de passe secret PASE.
[in] pwLen
Longueur du mot de passe du secret PASE.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.

StartTAKESession

WEAVE_ERROR StartTAKESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  bool encryptAuthPhase,
  bool encryptCommPhase,
  bool timeLimitedIK,
  bool sendChallengerId,
  WeaveTAKEChallengerAuthDelegate *authDelegate
)

Cette méthode est appelée pour établir une session TAKE sécurisée.

Détails
Paramètres
[in] con
Pointeur vers l'objet WeaveConnection.
[in] requestedAuthMode
Le moyen souhaité par lequel le pair doit être authentifié. Il doit s'agir de l'un des modes d'authentification TAKE.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Pointeur vers la fonction de rappel, qui sera appelée une fois la session sécurisée demandée établie.
[in] onError
Pointeur vers la fonction de rappel, qui sera appelée si l'établissement de la session demandée échoue.
[in] encryptAuthPhase
Indicateur booléen qui indique si la phase d'authentification du protocole doit être chiffrée.
[in] encryptCommPhase
Indicateur booléen qui indique si la phase de communication du protocole doit être chiffrée.
[in] timeLimitedIK
Indicateur booléen indiquant si la clé d'identification (IK) est limitée dans le temps.
[in] sendChallengerId
Indicateur booléen indiquant si l'identification de l'interlocuteur doit être incluse dans le message. Si elle n'est pas incluse, la valeur de l'ID du nœud Weave est utilisée comme ID challenger.
[in] authDelegate
Pointeur vers l'objet délégué d'authentification TAKE du challenger.
Valeurs de retour
WEAVE_NO_ERROR
Pour la réussite.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)