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 clave de manejo de mensajes de error.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Es el tipo de función de control completo del protocolo de exportación de claves.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
El 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.
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)
Cancela 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
Realiza una reserva en una clave de encriptación de mensajes.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Envía el 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 buscar 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 de TOMA 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 clave de manejo de mensajes de error.

Detalles
Parámetros
[in] keyId
La clave de encriptación causó 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 dio como resultado una respuesta de error clave del par.
[in] peerNodeId
El identificador del nodo de Weave que envió el mensaje de error de clave.
[in] keyErr
El código de error que se recibió de la app similar.

KeyExportCompleteFunct

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

Es el tipo de función de control completo 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 exportación de claves.
[in] keyId
Se exportó el ID de la 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)

El 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 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 de una app similar.

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
)

Cancela el establecimiento de una sesión en curso.

Detalles
Parámetros
[in] reqState
Un valor del puntero que coincide con el valor proporcionado por la aplicación cuando se inició la sesión.
Valores de retorno
WEAVE_NO_ERROR
Si se encontró y canceló un establecimiento de sesión en curso coincidente.
WEAVE_ERROR_INCORRECT_STATE
Si no hubo un establecimiento de sesión en curso o esta no coincidió con el puntero de estado de 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 el mensaje de error de tecla al iniciador del mensaje que no pudo encontrar la clave correcta durante la decodificación.

Detalles
Parámetros
[in] err
Un código de error de Weave.
Valores de retorno
true
Si se especifica, el código de error de Weave es un error 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 realizado anteriormente en una clave de encriptación de mensajes.

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

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

Detalles
Parámetros
[in] peerNodeId
El ID del 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
)

Realiza 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 de forma activa y debe conservarse. Ten en cuenta que colocar la reserva en una clave no garantiza que esta no se quite a través de una acción explícita, como la recepción de un mensaje KeyError.

Por cada reserva que se realice en una clave determinada, se debe realizar la llamada correspondiente a ReleaseKey().

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

Detalles
Parámetros
[in] peerNodeId
El ID del 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
)

Enviar mensaje de error 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 al objeto WeaveConnection.
[in] keyErr
Código de error de la clave de Weave.
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Si no se pudo asignar la memoria para el nuevo contexto de intercambio o el nuevo búfer de mensajes.
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 buscar una existente.

Detalles
Parámetros
[in] con
Un puntero al objeto WeaveConnection.
[in] peerNodeId
Es el identificador de nodo del intercambio de tráfico.
[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 cual se debe autenticar el intercambio de tráfico. 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 la 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 solicitado.
[in] authDelegate
Un puntero al objeto delegado de autenticación CASE.
[in] terminatingNodeId
Es el identificador del nodo de finalización de la sesión. Cuando esta entrada es diferente de kNodeIdNotSpecify, que indica que se solicitó la sesión segura compartida.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.

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 al objeto WeaveConnection.
[in] requestedAuthMode
El medio deseado por el cual se debe autenticar el intercambio de tráfico. Este debe ser uno de los modos de autenticación 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 la 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 solicitado.
[in] pw
Un puntero a la contraseña secreta de PASE.
[in] pwLen
Longitud de la contraseña secreta de PASE.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.

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 de TOMA segura.

Detalles
Parámetros
[in] con
Un puntero al objeto WeaveConnection.
[in] requestedAuthMode
El medio deseado por el cual se debe autenticar el intercambio de tráfico. Este debe ser uno de los modos de autenticación 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 la 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 solicitado.
[in] encryptAuthPhase
Una marca booleana que indica si la fase de autenticación del protocolo debe estar encriptada.
[in] encryptCommPhase
Una marca booleana que indica si la fase de comunicación del protocolo debe estar encriptada.
[in] timeLimitedIK
Marca booleana que indica si la clave de identificación (IK) tiene un límite de tiempo.
[in] sendChallengerId
Marca booleana que indica si la identificación del desafiante se debe incluir en el mensaje. Si no se incluye, el valor del ID del nodo de Weave se usa como un ID de desafío.
[in] authDelegate
Un puntero al objeto delegado de autenticación taker.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)