nl::Weave::WeaveSecurityManager

Resumo

Construtores e destruidores

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 função principal de tratamento de mensagens de erro.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Tipo de função de tratamento completo do protocolo de exportação de chave.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Tipo de função de tratamento de erros do protocolo de exportação de chave.
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
A função de callback de erro 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
A função de callback completa do protocolo de exportação de chave.
mStartKeyExport_OnError
A função de callback de erro do protocolo de exportação de chave.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

Funções públicas

CancelSessionEstablishment(void *reqState)
Cancelar o estabelecimento de uma sessão em andamento.
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
Verifica se o código de erro especificado do Weave é um dos principais códigos de erro.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
Liberar uma reserva de chave de criptografia de mensagens.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
Faça uma reserva em uma chave de criptografia de mensagens.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
Enviar mensagem de erro da chave.
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)
Esse método é chamado para estabelecer uma sessão CASE nova ou 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)
Esse método é chamado para estabelecer uma sessão PASE segura.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
Esse método é chamado para estabelecer uma sessão 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 função principal de tratamento de mensagens de erro.

Detalhes
Parâmetros
[in] keyId
A chave de criptografia gerou a resposta da mensagem de erro de chave do peering.
[in] encType
Tipo de criptografia associado a keyId.
[in] messageId
O identificador da mensagem do Weave resultou na principal resposta de erro do par.
[in] peerNodeId
O identificador do nó do Weave que enviou a mensagem de erro da chave.
[in] keyErr
O código de erro recebido do peering.

KeyExportCompleteFunct

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

Tipo de função de tratamento completo do protocolo de exportação de chave.

Detalhes
Parâmetros
[in] sm
Um ponteiro para o objeto WeaveSecurityManager.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] reqState
Um ponteiro para o estado do solicitante da exportação de chave.
[in] keyId
ID da chave exportado.
[in] exportedKey
Um ponteiro para a chave secreta exportada.
[in] exportedKeyLen
Uma referência ao comprimento da chave secreta exportada.

KeyExportErrorFunct

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

Tipo de função de tratamento de erros do protocolo de exportação de chave.

Detalhes
Parâmetros
[in] sm
Um ponteiro para o objeto WeaveSecurityManager.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] reqState
Um ponteiro para o estado do solicitante da exportação de chave.
[in] localErr
O WEAVE_ERROR encontrado durante o protocolo de exportação da chave.
[in] statusReport
Um ponteiro para o objeto StatusReport se o status de erro tiver sido recebido do peering.

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

A função de callback de erro de tecla.

Essa função é chamada quando uma mensagem de erro de tecla é recebida.

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

A função de callback completa do protocolo de exportação de chave.

Essa função é chamada quando o processo de exportação da chave secreta é concluído.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

A função de callback de erro do protocolo de exportação de chave.

Essa função é chamada quando um erro é encontrado durante o processo de exportação de chave.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

Funções públicas

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

Cancelar o estabelecimento de uma sessão em andamento.

Detalhes
Parâmetros
[in] reqState
Um valor de ponteiro que corresponde ao valor fornecido pelo aplicativo quando a sessão foi iniciada.
Valores de retorno
WEAVE_NO_ERROR
Se um estabelecimento de sessão em andamento correspondente for encontrado e cancelado.
WEAVE_ERROR_INCORRECT_STATE
Se não houver um estabelecimento de sessão em andamento ou a sessão em andamento não corresponder ao ponteiro de estado da solicitação fornecido.

Init

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

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

Verifica se o código de erro especificado do Weave é um dos principais códigos de erro.

Essa função é chamada para determinar se a mensagem de erro de tecla deve ser enviada ao iniciador da mensagem que não conseguiu encontrar a chave correta durante a decodificação.

Detalhes
Parâmetros
[in] err
Um código de erro do Weave.
Valores de retorno
true
Se o código de erro especificado do Weave for um erro de chave.
false
Caso contrário.

OnEncryptedMsgRcvd

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

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Liberar uma reserva de chave de criptografia de mensagens.

Liberar uma reserva que foi feita anteriormente em uma chave de criptografia de mensagens.

Para cada reserva colocada em uma chave específica, o método ReleaseKey() não pode ser chamado mais de uma vez.

Esse método aceita qualquer forma de ID da chave, incluindo None. IDs de chave que não nomeiam chaves reais são ignorados.

Detalhes
Parâmetros
[in] peerNodeId
O código do nó do Weave do terminal com que a chave foi compartilhada.
[in] keyId
O ID da chave cuja reserva deve ser liberada.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

Faça uma reserva em uma chave de criptografia de mensagens.

As reservas de chave são usadas para sinalizar que uma chave específica está em uso e precisa ser retida. Fazer reserva em uma chave não garante que ela não será removida por uma ação explícita, como o recebimento de uma mensagem de KeyError.

Para cada reserva feita em uma chave específica, é necessário fazer uma chamada correspondente para ReleaseKey().

Esse método aceita qualquer forma de ID da chave, incluindo None. IDs de chave que não nomeiam chaves reais são ignorados.

Detalhes
Parâmetros
[in] peerNodeId
O código do nó do Weave do terminal com que a chave foi compartilhada.
[in] keyId
O ID da chave a ser reservada.

SendKeyErrorMsg

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

Enviar mensagem de erro da chave.

Esta função é chamada quando a decodificação de mensagens do Weave recebida falha devido a um erro de tecla.

Detalhes
Parâmetros
[in] rcvdMsgInfo
Um ponteiro para as informações da mensagem do Weave recebida.
[in] rcvdMsgPacketInfo
Um ponteiro para o objeto IPPacketInfo da mensagem do Weave recebida.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] keyErr
Código de erro da tecla do Weave.
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Se a memória não puder ser alocada para o novo contexto de troca ou novo buffer de mensagem.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer for muito pequeno
WEAVE_NO_ERROR
Se o método for bem-sucedido.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Encerramento

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
)

Esse método é chamado para estabelecer uma sessão CASE nova ou existente.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] peerNodeId
O identificador de nó do peering.
[in] peerAddr
O endereço IP do nó de peering.
[in] peerPort
A porta do nó de peering.
[in] requestedAuthMode
O meio desejado de autenticação do terminal. Precisa ser um dos modos de autenticação CASE.
[in] reqState
Um ponteiro para o estado do solicitante.
[in] onComplete
Um ponteiro para a função de callback, que será chamado quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de callback, que será chamado se o estabelecimento da sessão solicitado falhar.
[in] authDelegate
Um ponteiro para o objeto delegado da autenticação CASE.
[in] terminatingNodeId
O identificador de nó do nó que encerra a sessão. Quando essa entrada for diferente de kNodeIdNotUpdated, o que indica que a sessão segura compartilhada foi solicitada.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

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
)

Esse método é chamado para estabelecer uma sessão PASE segura.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] requestedAuthMode
O meio desejado de autenticação do terminal. Precisa ser um dos modos de autenticação PASE.
[in] reqState
Um ponteiro para o estado do solicitante.
[in] onComplete
Um ponteiro para a função de callback, que será chamado quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de callback, que será chamado se o estabelecimento da sessão solicitado falhar.
[in] pw
Um ponteiro para a senha secreta PASE.
[in] pwLen
Tamanho da senha secreta PASE.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

StartTAKESession

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

Esse método é chamado para estabelecer uma sessão Take segura.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] requestedAuthMode
O meio desejado de autenticação do terminal. Precisa ser um dos modos de autenticação Take.
[in] reqState
Um ponteiro para o estado do solicitante.
[in] onComplete
Um ponteiro para a função de callback, que será chamado quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de callback, que será chamado se o estabelecimento da sessão solicitado falhar.
[in] encryptAuthPhase
Uma sinalização booleana que indica se a fase de autenticação do protocolo precisa ser criptografada.
[in] encryptCommPhase
Uma sinalização booleana que indica se a fase de comunicação do protocolo deve ser criptografada.
[in] timeLimitedIK
Uma sinalização booleana que indica se a chave de identificação (IK, na sigla em inglês) tem limite de tempo.
[in] sendChallengerId
Uma sinalização booleana que indica se a identificação de desafiante deve ser incluída na mensagem. Se não estiver incluído, o valor de ID do nó do Weave é usado como ID do desafiante.
[in] authDelegate
Um ponteiro para o objeto delegado de autenticação do desafio Take.
Valores de retorno
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)