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 clé de gestion des messages d'erreur.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Type de 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 énum

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 clé.
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 de 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é est l'un 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érer une réservation de clé de chiffrement des messages.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Effectuez une réservation sur une clé de chiffrement de message.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Envoyez un message d'erreur lié à la clé.
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 session CASE nouvelle ou 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 clé de gestion des messages d'erreur.

Détails
Paramètres
[in] keyId
La clé de chiffrement a provoqué la réponse au message d'erreur lié à la clé du pair.
[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 ayant envoyé le message d'erreur de 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 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 l'objet WeaveConnection.
[in] reqState
Pointeur vers l'état du demandeur d'exportation de clé.
[in] keyId
ID de clé exporté.
[in] exportedKey
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 l'objet WeaveConnection.
[in] reqState
Pointeur vers l'état du demandeur d'exportation de clé.
[in] localErr
WEAVE_ERROR rencontrée lors du protocole d'exportation de clé.
[in] statusReport
Pointeur vers l'objet StatusReport si l'état d'erreur a été reçu de la part de l'homologue.

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 clé.

Cette fonction est appelée lorsqu'un message d'erreur clé 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 de 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 renvoyées
WEAVE_NO_ERROR
Si un établissement de session en cours correspondant a été trouvé et annulé.
WEAVE_ERROR_INCORRECT_STATE
Si aucune session n'est en cours d'établissement ou si la session en cours ne correspond 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é est l'un 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
Code d'erreur Weave.
Valeurs renvoyées
true
Si un code d'erreur Weave est spécifié, il s'agit d'une erreur majeure.
false
Sinon.

OnEncryptedMsgRcvd

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

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Libérer une réservation de clé de chiffrement des messages.

Libérer 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 plus d'une fois.

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

Détails
Paramètres
[in] peerNodeId
ID du nœud Weave du pair avec lequel la clé est 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
)

Effectuez une réservation sur une clé de chiffrement de message.

Les réservations de clé permettent de signaler qu'une clé particulière est activement utilisée et doit être conservée. Notez que le fait de placer une réservation sur une clé ne garantit pas que cette clé ne soit pas supprimée par une action explicite telle que la réception d'un message KeyError.

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

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

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

SendKeyErrorMsg

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

Envoyez un message d'erreur lié à la clé.

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 clé Weave.
Valeurs renvoyées
WEAVE_ERROR_NO_MEMORY
Si la mémoire n'a pas pu être allouée au nouveau contexte d'échange ou au nouveau tampon de message.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si le tampon est trop petit
WEAVE_NO_ERROR
Si la méthode aboutit.

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 session CASE nouvelle ou existante.

Détails
Paramètres
[in] con
Pointeur vers l'objet WeaveConnection.
[in] peerNodeId
Identifiant du nœud du pair.
[in] peerAddr
Adresse IP du nœud pair.
[in] peerPort
Port du nœud pair.
[in] requestedAuthMode
Moyen souhaité d'authentification du pair. Il doit s'agir de l'un des modes d'authentification CASE.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Un 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 session demandé échoue.
[in] authDelegate
Un 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 indique qu'une session sécurisée partagée a été demandée.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de 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
Moyen souhaité d'authentification du pair. Il doit s'agir de l'un des modes d'authentification PASE.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Un 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 session demandé échoue.
[in] pw
Un pointeur vers le mot de passe secret PASE.
[in] pwLen
Longueur du mot de passe secret PASE.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de 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
Moyen souhaité d'authentification du pair. Il doit s'agir de l'un des modes d'authentification Take.
[in] reqState
Pointeur vers l'état du demandeur.
[in] onComplete
Un 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 session demandé é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 qui indique si la clé d'identification (IK) est limitée dans le temps.
[in] sendChallengerId
Indicateur booléen qui indique si l'identification de l'utilisateur doit être incluse dans le message. S'il n'est pas inclus, la valeur de l'ID du nœud Weave est utilisée comme ID de challenger.
[in] authDelegate
Pointeur vers l'objet délégué d'authentification PRE Takeur.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)