nl::Weave::WeaveSecurityManager

Riepilogo

Costruttori e distruttori

WeaveSecurityManager(void)

Tipi pubblici

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
Tipo di funzione di gestione dei messaggi di errore chiave.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Tipo di funzione di gestione completa del protocollo di esportazione della chiave.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Tipo di funzione di gestione degli errori del protocollo di esportazione delle chiavi.
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

Attributi pubblici

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
La funzione di callback dell'errore chiave.
OnSessionError
SessionErrorFunct
OnSessionEstablished
SessionEstablishedFunct
ResponderAllowedCASEConfigs
uint8_t
ResponderAllowedCASECurves
uint8_t
ResponderAllowedKeyExportConfigs
uint8_t
SessionEstablishTimeout
uint32_t
State
uint8_t
mCASEEngine
mKeyExport
mPASEEngine
mStartKeyExport_OnComplete
La funzione di callback completa del protocollo di esportazione della chiave.
mStartKeyExport_OnError
La funzione di callback dell'errore del protocollo di esportazione chiave.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Funzioni pubbliche

CancelSessionEstablishment(void *reqState)
Annullare l'impostazione di una sessione in corso.
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Controlla se il codice di errore Weave specificato è uno dei codici di errore chiave.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Rilascia una prenotazione della chiave di crittografia del messaggio.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Effettua una prenotazione su una chiave di crittografia del messaggio.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Invia messaggio di errore relativo alla chiave.
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)
Questo metodo viene chiamato per stabilire una nuova sessione CASE o trovare una esistente.
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)
Questo metodo viene chiamato per stabilire una sessione PASE sicura.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
Questo metodo viene chiamato per stabilire una sessione sicura TAKE.

Tipi pubblici

KeyErrorMsgRcvdFunct

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

Tipo di funzione di gestione dei messaggi di errore chiave.

Dettagli
Parametri
[in] keyId
La chiave di crittografia ha causato la risposta al messaggio di errore della chiave dal peer.
[in] encType
Tipo di crittografia associato a keyId.
[in] messageId
L'identificatore del messaggio Weave ha generato la risposta di errore chiave del peer.
[in] peerNodeId
L'identificatore del nodo Weave che ha inviato il messaggio di errore chiave.
[in] keyErr
Il codice di errore ricevuto dal peer.

KeyExportCompleteFunct

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

Tipo di funzione di gestione completa del protocollo di esportazione della chiave.

Dettagli
Parametri
[in] sm
Un puntatore all'oggetto WeaveSecurityManager.
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] reqState
Un puntatore allo stato del richiedente dell'esportazione delle chiavi.
[in] keyId
ID chiave esportato.
[in] exportedKey
Un puntatore alla chiave segreta esportata.
[in] exportedKeyLen
Un riferimento alla lunghezza della chiave segreta esportata.

KeyExportErrorFunct

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

Tipo di funzione di gestione degli errori del protocollo di esportazione delle chiavi.

Dettagli
Parametri
[in] sm
Un puntatore all'oggetto WeaveSecurityManager.
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] reqState
Un puntatore allo stato del richiedente dell'esportazione delle chiavi.
[in] localErr
WEAVE_ERROR rilevato durante il protocollo di esportazione della chiave.
[in] statusReport
Un puntatore all'oggetto StatusReport se lo stato di errore ricevuto dal peer.

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)

Stato

 State

Attributi pubblici

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

La funzione di callback dell'errore chiave.

Questa funzione viene richiamata quando si riceve un messaggio di errore chiave.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

Stato

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

La funzione di callback completa del protocollo di esportazione delle chiavi.

Questa funzione viene chiamata al completamento del processo di esportazione della chiave segreta.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

La funzione di callback dell'errore del protocollo di esportazione chiave.

Questa funzione viene chiamata quando si verifica un errore durante il processo di esportazione delle chiavi.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

Funzioni pubbliche

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

Annullare l'impostazione di una sessione in corso.

Dettagli
Parametri
[in] reqState
Un valore di puntatore che corrisponde al valore fornito dall'applicazione quando è stata avviata la sessione.
Valori restituiti
WEAVE_NO_ERROR
Se è stata trovata e annullata una struttura di sessione in corso corrispondente.
WEAVE_ERROR_INCORRECT_STATE
Se non è in corso alcuna sessione o se la sessione in corso non corrisponde al puntatore dello stato della richiesta fornito.

Inizializzazione

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

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Controlla se il codice di errore Weave specificato è uno dei codici di errore chiave.

Questa funzione viene chiamata per determinare se il messaggio di errore della chiave deve essere inviato all'iniziatore del messaggio che non è riuscito a trovare una chiave corretta durante la decodifica.

Dettagli
Parametri
[in] err
Un codice di errore Weave.
Valori restituiti
true
Se specificato, il codice di errore Weave è un errore chiave.
false
Altrimenti.

OnEncryptedMsgRcvd

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

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Rilascia una prenotazione della chiave di crittografia del messaggio.

Rilascia una prenotazione inserita in precedenza su una chiave di crittografia del messaggio.

Per ogni prenotazione inserita in una determinata chiave, il metodo ReleaseKey() non deve essere chiamato più di una volta.

Questo metodo accetta qualsiasi tipo di ID chiave, incluso None. Gli ID chiave che non nominano chiavi effettive vengono ignorati.

Dettagli
Parametri
[in] peerNodeId
L'ID nodo Weave del peer con cui è stata condivisa la chiave.
[in] keyId
L'ID della chiave di cui deve essere rilasciata la prenotazione.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Effettua una prenotazione su una chiave di crittografia del messaggio.

Le prenotazioni delle chiavi vengono utilizzate per segnalare che una determinata chiave è attivamente in uso e deve essere conservata. Tieni presente che l'inserimento di una prenotazione su una chiave non garantisce che quest'ultima non verrà rimossa da un'azione esplicita, come la ricezione di un messaggio KeyError.

Per ogni prenotazione inserita in una determinata chiave, è necessario effettuare una chiamata corrispondente a ReleaseKey().

Questo metodo accetta qualsiasi tipo di ID chiave, incluso None. Gli ID chiave che non nominano chiavi effettive vengono ignorati.

Dettagli
Parametri
[in] peerNodeId
L'ID nodo Weave del peer con cui è stata condivisa la chiave.
[in] keyId
L'ID della chiave da prenotare.

SendKeyErrorMsg

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

Invia messaggio di errore relativo alla chiave.

Questa funzione viene chiamata quando la decodifica del messaggio Weave ricevuto non riesce a causa di un errore della chiave.

Dettagli
Parametri
[in] rcvdMsgInfo
Un puntatore alle informazioni del messaggio Weave ricevuto.
[in] rcvdMsgPacketInfo
Un puntatore all'oggetto IPPacketInfo del messaggio Weave ricevuto.
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] keyErr
Codice di errore chiave Weave.
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non è stato possibile allocare la memoria per il nuovo contesto di scambio o il nuovo buffer dei messaggi.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se il buffer è troppo piccolo
WEAVE_NO_ERROR
Se il metodo ha esito positivo.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Arresto

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
)

Questo metodo viene chiamato per stabilire una nuova sessione CASE o trovare una esistente.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] peerNodeId
L'identificatore del nodo del peer.
[in] peerAddr
L'indirizzo IP del nodo peer.
[in] peerPort
La porta del nodo peer.
[in] requestedAuthMode
Il mezzo desiderato con cui il peer deve essere autenticato. Deve essere una delle modalità di autenticazione CASE.
[in] reqState
Un puntatore allo stato del richiedente.
[in] onComplete
Un puntatore alla funzione di callback, che verrà chiamata una volta stabilita la sessione sicura richiesta.
[in] onError
Un puntatore alla funzione di callback, che viene chiamata in caso di errore di creazione della sessione richiesta.
[in] authDelegate
Un puntatore all'oggetto delegato dell'autenticazione CASE.
[in] terminatingNodeId
L'identificatore del nodo che termina la sessione. Quando questo input è diverso da kNodeIdNotSpecified, indica che è stata richiesta una sessione sicura condivisa.
Valori restituiti
WEAVE_NO_ERROR
Un successo.

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
)

Questo metodo viene chiamato per stabilire una sessione PASE sicura.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] requestedAuthMode
Il mezzo desiderato con cui il peer deve essere autenticato. Deve essere una delle modalità di autenticazione PASE.
[in] reqState
Un puntatore allo stato del richiedente.
[in] onComplete
Un puntatore alla funzione di callback, che verrà chiamata una volta stabilita la sessione sicura richiesta.
[in] onError
Un puntatore alla funzione di callback, che viene chiamata in caso di errore di creazione della sessione richiesta.
[in] pw
Un puntatore alla password del secret PASE.
[in] pwLen
Lunghezza della password del secret PASE.
Valori restituiti
WEAVE_NO_ERROR
Un successo.

StartTAKESession

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

Questo metodo viene chiamato per stabilire una sessione sicura TAKE.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] requestedAuthMode
Il mezzo desiderato con cui il peer deve essere autenticato. Deve essere una delle modalità di autenticazione TAKE.
[in] reqState
Un puntatore allo stato del richiedente.
[in] onComplete
Un puntatore alla funzione di callback, che verrà chiamata una volta stabilita la sessione sicura richiesta.
[in] onError
Un puntatore alla funzione di callback, che viene chiamata in caso di errore di creazione della sessione richiesta.
[in] encryptAuthPhase
Un flag booleano che indica se la fase di autenticazione del protocollo deve essere criptata.
[in] encryptCommPhase
Un flag booleano che indica se la fase di comunicazione del protocollo deve essere criptata.
[in] timeLimitedIK
Un flag booleano che indica se la chiave di identificazione (IK) è soggetta a limitazioni nel tempo.
[in] sendChallengerId
Un flag booleano che indica se l'identificazione dello challenger deve essere inclusa nel messaggio. Se non è incluso, il valore dell'ID del nodo Weave viene utilizzato come ID sfida.
[in] authDelegate
Un puntatore all'oggetto delega di autenticazione Challenger TAKE.
Valori restituiti
WEAVE_NO_ERROR
Un successo.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)