nl::Weave::WeaveSecurityManager

Resumen

Constructores y destructores

WeaveSecurityManager(void)

Tipos públicos

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
Tipo de función de manejo de mensajes de error clave.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Tipo de función de control completa del protocolo de exportación de claves.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Tipo de función de manejo de errores del protocolo de exportación de claves.
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

Atributos públicos

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 función de devolución de llamada de error de tecla
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 función de devolución de llamada del protocolo de exportación de claves completa la función de devolución de llamada.
mStartKeyExport_OnError
La función de devolución de llamada de error del protocolo de exportación de claves.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Funciones públicas

CancelSessionEstablishment(void *reqState)
Cancelar el establecimiento de una sesión en curso
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Comprueba si el código de error de Weave especificado es uno de los códigos de error clave.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Libera una reserva de clave de encriptación de mensajes.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Realizar una reserva en una clave de encriptación de mensajes
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Envía un mensaje de error de la clave.
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)
Se llama a este método para establecer una sesión CASE nueva o encontrar una existente.
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)
Se llama a este método para establecer una sesión de PASE segura.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
Se llama a este método para establecer una sesión Take segura.

Tipos públicos

KeyErrorMsgRcvdFunct

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

Tipo de función de manejo de mensajes de error clave.

Detalles
Parámetros
[in] keyId
La clave de encriptación generó la respuesta del mensaje de error de clave del par.
[in] encType
Tipo de encriptación asociado con keyId.
[in] messageId
El identificador del mensaje de Weave generó la respuesta de un error de clave del par.
[in] peerNodeId
Es el identificador del nodo de Weave que envió el mensaje de error clave.
[in] keyErr
El código de error que recibió del par.

KeyExportCompleteFunct

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

Tipo de función de control completa del protocolo de exportación de claves.

Detalles
Parámetros
[in] sm
Un puntero para el objeto WeaveSecurityManager.
[in] con
Un puntero para el objeto WeaveConnection.
[in] reqState
Un puntero para el estado del solicitante de la exportación de claves.
[in] keyId
Se exportó el ID de clave.
[in] exportedKey
Un puntero a la clave secreta exportada.
[in] exportedKeyLen
Una referencia a la longitud de la clave secreta exportada.

KeyExportErrorFunct

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

Tipo de función de manejo de errores del protocolo de exportación de claves.

Detalles
Parámetros
[in] sm
Un puntero para el objeto WeaveSecurityManager.
[in] con
Un puntero para el objeto WeaveConnection.
[in] reqState
Un puntero para el estado del solicitante de la exportación de claves.
[in] localErr
Se encontró WEAVE_ERROR durante el protocolo de exportación de claves.
[in] statusReport
Un puntero al objeto StatusReport si se recibe el estado de error del par.

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)

Estado

 State

Atributos públicos

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 función de devolución de llamada de error de tecla

Se llama a esta función cuando se recibe un mensaje de error clave.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

Estado

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

La función de devolución de llamada del protocolo de exportación de claves completa.

Se llama a esta función cuando se completa el proceso de exportación de la clave secreta.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

La función de devolución de llamada de error del protocolo de exportación de claves.

Se llama a esta función cuando se encuentra un error durante el proceso de exportación de claves.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

Funciones públicas

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

Cancelar el establecimiento de una sesión en curso

Detalles
Parámetros
[in] reqState
Un valor de puntero que coincide con el valor proporcionado por la aplicación cuando se inició la sesión.
Valores que se muestran
WEAVE_NO_ERROR
Si se encontró y se canceló un establecimiento de sesión en curso coincidente.
WEAVE_ERROR_INCORRECT_STATE
Si no hubo un establecimiento de sesión en curso o la sesión en curso no coincidió con el puntero de estado de la solicitud proporcionado.

Init

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

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Comprueba si el código de error de Weave especificado es uno de los códigos de error clave.

Se llama a esta función para determinar si se debe enviar un mensaje de error de clave al iniciador del mensaje que no pudo encontrar una clave correcta durante la decodificación.

Detalles
Parámetros
[in] err
Un código de error de Weave.
Valores que se muestran
true
Si el código de error de Weave se especifica es un error de clave.
false
De lo contrario.

OnEncryptedMsgRcvd

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

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Libera una reserva de clave de encriptación de mensajes.

Libera una reserva que se haya colocado anteriormente en una clave de encriptación de mensajes.

Por cada reserva realizada con una clave en particular, no se debe llamar al método ReleaseKey() más de una vez.

Este método acepta cualquier tipo de ID de clave, incluido None. Se ignoran los ID de clave que no nombran claves reales.

Detalles
Parámetros
[in] peerNodeId
El ID de nodo de Weave del par con el que se compartió la clave.
[in] keyId
El ID de la clave cuya reserva se debe liberar.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Realizar una reserva en una clave de encriptación de mensajes

Las reservas de claves se usan para indicar que una clave específica está en uso activamente y debe retenerse. Ten en cuenta que colocar una reserva en una clave no garantiza que esta no se quitará a través de una acción explícita, como la recepción de un mensaje de KeyError.

Para cada reserva realizada en una clave en particular, se debe realizar una llamada correspondiente a ReleaseKey().

Este método acepta cualquier tipo de ID de clave, incluido None. Se ignoran los ID de clave que no nombran claves reales.

Detalles
Parámetros
[in] peerNodeId
El ID de nodo de Weave del par con el que se compartió la clave.
[in] keyId
El ID de la clave que se reservará.

SendKeyErrorMsg

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

Envía un mensaje de error de la clave.

Se llama a esta función cuando la decodificación de mensajes de Weave recibidos falla debido a un error de clave.

Detalles
Parámetros
[in] rcvdMsgInfo
Un puntero a la información del mensaje de Weave recibido.
[in] rcvdMsgPacketInfo
Un puntero al objeto IPPacketInfo del mensaje de Weave recibido.
[in] con
Un puntero para el objeto WeaveConnection.
[in] keyErr
Código de error de la tecla Weave.
Valores que se muestran
WEAVE_ERROR_NO_MEMORY
Si no se pudo asignar memoria para el nuevo contexto de intercambio o búfer de mensajes nuevo.
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer es demasiado pequeño
WEAVE_NO_ERROR
Si el método tuvo éxito.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Cierre

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
)

Se llama a este método para establecer una sesión CASE nueva o encontrar una existente.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] peerNodeId
El identificador de nodo del par.
[in] peerAddr
La dirección IP del nodo de intercambio de tráfico.
[in] peerPort
El puerto del nodo de intercambio de tráfico.
[in] requestedAuthMode
El medio deseado por el que se debe autenticar el par. Este debe ser uno de los modos de autenticación CASE.
[in] reqState
Un puntero para el estado del solicitante.
[in] onComplete
Un puntero a la función de devolución de llamada, a la que se llamará una vez que se establezca una sesión segura solicitada.
[in] onError
Un puntero para la función de devolución de llamada, a la que se llamará si falla el establecimiento de la sesión solicitada.
[in] authDelegate
Un puntero para el objeto delegado de autenticación CASE.
[in] terminatingNodeId
Es el identificador de nodo del nodo de finalización de la sesión. Cuando esta entrada es diferente de kNodeIdNotspecified, indica que se solicitó una sesión segura compartida.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.

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
)

Se llama a este método para establecer una sesión de PASE segura.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] requestedAuthMode
El medio deseado por el que se debe autenticar el par. Debe ser uno de los modos de autenticación de PASE.
[in] reqState
Un puntero para el estado del solicitante.
[in] onComplete
Un puntero a la función de devolución de llamada, a la que se llamará una vez que se establezca una sesión segura solicitada.
[in] onError
Un puntero para la función de devolución de llamada, a la que se llamará si falla el establecimiento de la sesión solicitada.
[in] pw
Un puntero a la contraseña secreta de PASE.
[in] pwLen
Longitud de la contraseña secreta de PASE.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.

StartTAKESession

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

Se llama a este método para establecer una sesión Take segura.

Detalles
Parámetros
[in] con
Un puntero para el objeto WeaveConnection.
[in] requestedAuthMode
El medio deseado por el que se debe autenticar el par. Debe ser uno de los modos de autenticación de Take.
[in] reqState
Un puntero para el estado del solicitante.
[in] onComplete
Un puntero a la función de devolución de llamada, a la que se llamará una vez que se establezca una sesión segura solicitada.
[in] onError
Un puntero para la función de devolución de llamada, a la que se llamará si falla el establecimiento de la sesión solicitada.
[in] encryptAuthPhase
Marca booleana que indica si se debe encriptar la fase de autenticación del protocolo.
[in] encryptCommPhase
Marca booleana que indica si se debe encriptar la fase de comunicación del protocolo.
[in] timeLimitedIK
Marca booleana que indica si la clave de identificación (IK) tiene un tiempo limitado.
[in] sendChallengerId
Marca booleana que indica si se debe incluir la identificación del desafío en el mensaje Si no está incluido, se usa el valor de ID de nodo de Weave como ID desafiante.
[in] authDelegate
Un puntero para el objeto delegado de autenticación del desafío Take.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)