nl::Weave::WeaveSecurityManager

Resumo

Construtores e destrutores

WeaveSecurityManager(void)

Tipos públicos

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
Tipo da função de tratamento de mensagens de erro importantes.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
Tipo de função de processamento completo do protocolo de exportação de chave.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
Tipo da função de tratamento de erros do protocolo de exportação de chaves.
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 do erro de chave.
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 chaves.
mStartKeyExport_OnError
A função de callback de erro de 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 do Weave especificado é 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 encontrar uma que já existe.
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 Takeout segura.

Tipos públicos

KeyErrorMsgRcvdFunct

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

Tipo da função de tratamento de mensagens de erro importantes.

Detalhes
Parâmetros
[in] keyId
A chave de criptografia causou a resposta da mensagem de erro da chave do peering.
[in] encType
Tipo de criptografia associado ao keyId.
[in] messageId
O identificador da mensagem Weave resultou na principal resposta de erro do peering.
[in] peerNodeId
O identificador do nó do Weave que enviou a mensagem de erro de 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 processamento 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 de exportação da chave.
[in] keyId
ID da chave exportado.
[in] exportedKey
Um ponteiro para a chave secreta exportada.
[in] exportedKeyLen
Uma referência ao tamanho da chave secreta exportada.

KeyExportErrorFunct

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

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

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 de exportação da chave.
[in] localErr
WEAVE_ERROR encontrado durante o protocolo de exportação de chave.
[in] statusReport
Um ponteiro para o objeto StatusReport caso o status de erro seja recebido do semelhante.

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

chave CASEUse KnowECDHKey

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 do erro de chave.

Essa função é chamada quando uma mensagem de erro principal é 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 chaves.

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 de protocolo de exportação de chave.

Essa função é chamada quando ocorre um erro durante o processo de exportação da 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 foi encontrado e cancelado.
WEAVE_ERROR_INCORRECT_STATE
Se não houver estabelecimento de sessão em andamento ou se 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 do Weave especificado é um dos principais códigos de erro.

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

Detalhes
Parâmetros
[in] err
Um código de erro do Weave.
Valores de retorno
true
Se especificado, o código de erro do Weave é um erro principal.
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 reservas que foram feitas anteriormente em uma chave de criptografia de mensagem.

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

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

Detalhes
Parâmetros
[in] peerNodeId
O ID do nó do Weave do ponto 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 chaves são usadas para sinalizar que uma chave específica está ativamente em uso e precisa ser retida. Colocar uma reserva em uma chave não garante que ela não será removida por uma ação explícita, como a recepção de uma mensagem KeyError.

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

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

Detalhes
Parâmetros
[in] peerNodeId
O ID do nó do Weave do ponto 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.

Essa função é chamada quando há uma falha na decodificação de mensagens Weave recebidas devido a um erro de tecla.

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

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

Desligamento

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 encontrar uma que já existe.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] peerNodeId
É o identificador do 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 pelo qual o ponto deve ser autenticado. 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á chamada quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de retorno de chamada, que será chamada se o estabelecimento da sessão solicitada falhar.
[in] authDelegate
Um ponteiro para o objeto delegado de autenticação CASE.
[in] terminatingNodeId
O identificador do nó de encerramento da sessão. Quando essa entrada é diferente de kNodeIdNotspecified, que indica que a sessão segura compartilhada foi solicitada.
Valores de retorno
WEAVE_NO_ERROR
Se der certo.

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 pelo qual o ponto deve ser autenticado. 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á chamada quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de retorno de chamada, que será chamada se o estabelecimento da sessão solicitada falhar.
[in] pw
Um ponteiro para a senha secreta do PASE.
[in] pwLen
Tamanho da senha secreta do PASE.
Valores de retorno
WEAVE_NO_ERROR
Se der certo.

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 Takeout segura.

Detalhes
Parâmetros
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] requestedAuthMode
O meio desejado pelo qual o ponto deve ser autenticado. 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á chamada quando a sessão segura solicitada for estabelecida.
[in] onError
Um ponteiro para a função de retorno de chamada, que será chamada se o estabelecimento da sessão solicitada falhar.
[in] encryptAuthPhase
Uma sinalização booleana que indica se a fase de autenticação do protocolo deve ser criptografada.
[in] encryptCommPhase
Uma sinalização booleana que indica se a fase de comunicação do protocolo precisa ser criptografada.
[in] timeLimitedIK
Uma flag 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 do desafiador deve ser incluída na mensagem. Se não estiver incluído, o valor do ID de nó do Weave será usado como um ID do desafiante.
[in] authDelegate
Um ponteiro para o objeto de delegação de autenticação do desafio Takeer.
Valores de retorno
WEAVE_NO_ERROR
Se der certo.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)