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 principale per la gestione dei messaggi di errore.
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 della chiave.
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 principale di callback degli errori.
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 dei tasti.
mStartKeyExport_OnError
La funzione di callback di errore del protocollo di esportazione.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Funzioni pubbliche

CancelSessionEstablishment(void *reqState)
Annullare la creazione di una sessione in corso.
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Verifica se il codice di errore Weave specificato è uno dei codici di errore principali.
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
Inserisci una prenotazione su una chiave di crittografia del messaggio.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Invia messaggio di errore 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 sessione CASE nuova o 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 protetta.
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 di take.

Tipi pubblici

KeyErrorMsgRcvdFunct

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

Tipo di funzione principale per la gestione dei messaggi di errore.

Dettagli
Parametri
[in] keyId
La chiave di crittografia ha causato la risposta del messaggio di errore relativo alla chiave da parte del 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 della chiave.
[in] keyId
ID chiave esportata.
[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 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 della chiave.
[in] localErr
WEAVE_ERROR rilevato durante il protocollo di esportazione della chiave.
[in] statusReport
Un puntatore all'oggetto StatusReport se è stato ricevuto uno stato di errore 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 principale di callback degli errori.

Questa funzione viene richiamata alla ricezione di 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 dei tasti.

Questa funzione viene richiamata quando il processo di esportazione della chiave segreta è completo.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

La funzione di callback di errore del protocollo di esportazione.

Questa funzione viene richiamata quando si verifica un errore durante il processo di esportazione della chiave.

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 la creazione di una sessione in corso.

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

Inizia

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

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Verifica se il codice di errore Weave specificato è uno dei codici di errore principali.

Questa funzione viene chiamata per determinare se il messaggio di errore principale deve essere inviato all'autore 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.

Rilasciare una prenotazione precedentemente effettuata su una chiave di crittografia dei messaggi.

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

Questo metodo accetta qualsiasi forma di ID chiave, incluso Nessuno. Gli ID delle chiavi che non nominano le 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
)

Inserisci una prenotazione su una chiave di crittografia del messaggio.

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

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

Questo metodo accetta qualsiasi forma di ID chiave, incluso Nessuno. Gli ID delle chiavi che non nominano le 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 chiave.

Questa funzione viene richiamata quando la decodifica del messaggio Weave ricevuto non va a buon fine a causa di un errore chiave.

Dettagli
Parametri
[in] rcvdMsgInfo
Un puntatore alle informazioni relative al 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 della chiave Weave.
Valori restituiti
WEAVE_ERROR_NO_MEMORY
Se non è stato possibile allocare la memoria per il nuovo contesto di Exchange o per il nuovo buffer dei messaggi.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se il buffer è troppo piccolo
WEAVE_NO_ERROR
Se il metodo è riuscito.

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 sessione CASE nuova o 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 una sessione protetta richiesta.
[in] onError
Un puntatore alla funzione di callback, che verrà chiamata se la creazione della sessione richiesta non va a buon fine.
[in] authDelegate
Un puntatore all'oggetto delegato dell'autenticazione CASE.
[in] terminatingNodeId
L'identificatore del nodo che termina la sessione. Se questo input è diverso da kNodeIdNotStream, significa che è stata richiesta una sessione sicura condivisa.
Valori restituiti
WEAVE_NO_ERROR
In caso di 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 protetta.

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 una sessione protetta richiesta.
[in] onError
Un puntatore alla funzione di callback, che verrà chiamata se la creazione della sessione richiesta non va a buon fine.
[in] pw
Un puntatore alla password del secret PASE.
[in] pwLen
Lunghezza della password secret PASE.
Valori restituiti
WEAVE_NO_ERROR
In caso di 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 di 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 una sessione protetta richiesta.
[in] onError
Un puntatore alla funzione di callback, che verrà chiamata se la creazione della sessione richiesta non va a buon fine.
[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) è a tempo limitato.
[in] sendChallengerId
Un flag booleano che indica se l'identificazione challenger deve essere inclusa nel messaggio. Se non è incluso, il valore ID nodo Weave viene utilizzato come ID challenger.
[in] authDelegate
Un puntatore all'oggetto del delegato dell'autenticazione challenger Take.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)