O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

CoAP seguro

Este módulo inclui funções que controlam a comunicação CoAP Secure (CoAP sobre DTLS).

Resumo

As funções deste módulo estão disponíveis quando o recurso de API segura do CoAP (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE) está ativado.

Typedefs

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) typedef
void(*
Esse ponteiro de função é chamado quando o estado da conexão DTLS muda.

Functions

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Essa função adiciona um recurso de bloqueio de blocos ao servidor CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Essa função adiciona um recurso ao servidor CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Esse método inicializa a sessão do DTLS com um peering.
otCoapSecureDisconnect(otInstance *aInstance)
void
Esse método interrompe a conexão DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Esse método retorna o certificado x509 de peering base64 codificado.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Esse método indica se a sessão DTLS está ou não conectada.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Esse método indica se a sessão DTLS está ativa ou não.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Essa função remove um recurso de bloqueio do servidor do CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Essa função remove um recurso do servidor CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Esse método envia uma solicitação CoAP por conexão DTLS segura.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Esse método envia uma solicitação CoAP em termos de bloco em uma conexão DTLS segura.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Essa função envia uma resposta CoAP do servidor CoAP seguro.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Essa função envia uma resposta CoAP em blocos do servidor CoAP seguro.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Esse método define as CAs de nível superior confiáveis.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Esse método define o certificado X509 do dispositivo local com a chave privada correspondente para a sessão DTLS com DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Esse método define o callback conectado para indicar quando um cliente se conecta ao servidor CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Essa função define o gerenciador padrão para solicitações CoAP Secure não processadas.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Esse método define a chave pré-compartilhada (PSK) e o pacote de criptografia DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Esse método define o modo de autenticação para a conexão segura remota.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Essa função inicia o serviço CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Essa função interrompe o servidor CoAP Secure.

Typedefs

OtHandleCoapSecureClientConnect

void(* otHandleCoapSecureClientConnect)(bool aConnected, void *aContext)

Esse ponteiro de função é chamado quando o estado da conexão DTLS muda.

Detalhes
Parâmetros
[in] aConnected
"true", se uma conexão tiver sido estabelecida. Caso contrário, será "false".
[in] aContext
Um ponteiro para informações de contexto arbitrárias.

Functions

OtCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Essa função adiciona um recurso de bloqueio de blocos ao servidor CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aResource
Um ponteiro para o recurso.

OtCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Essa função adiciona um recurso ao servidor CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aResource
Um ponteiro para o recurso.

OtCoapSecureConnect

otError otCoapSecureConnect(
  otInstance *aInstance,
  const otSockAddr *aSockAddr,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

Esse método inicializa a sessão do DTLS com um peering.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aSockAddr
Um ponteiro para o endereço de soquete remoto.
[in] aHandler
Um ponteiro para uma função que será chamada quando o estado da conexão DTLS mudar.
[in] aContext
Um ponteiro para informações de contexto arbitrárias.
Valores de retorno
OT_ERROR_NONE
A conexão DTLS foi iniciada.

OtCoapSecureDisconnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Esse método interrompe a conexão DTLS.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.

OtCoapSecureGetPeerCertificateBase64

otError otCoapSecureGetPeerCertificateBase64(
  otInstance *aInstance,
  unsigned char *aPeerCert,
  size_t *aCertLength,
  size_t aCertBufferSize
)

Esse método retorna o certificado x509 de peering base64 codificado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[out] aPeerCert
Um ponteiro para o buffer de certificado codificado em base64.
[out] aCertLength
O tamanho do certificado de peering codificado em base64.
[in] aCertBufferSize
O tamanho de buffer de aPeerCert.
Valores de retorno
OT_ERROR_INVALID_STATE
Ainda não está conectado.
OT_ERROR_NONE
O certificado de peering foi recebido.
OT_ERROR_NO_BUFS
Não é possível alocar memória para o certificado.

OtCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Esse método indica se a sessão DTLS está ou não conectada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Valores de retorno
TRUE
A sessão DTLS está conectada.
FALSE
A sessão DTLS não está conectada.

OtCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Esse método indica se a sessão DTLS está ativa ou não.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Valores de retorno
TRUE
Se a sessão DTLS estiver ativa.
FALSE
Se a sessão DTLS não estiver ativa.

OtCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Essa função remove um recurso de bloqueio do servidor do CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aResource
Um ponteiro para o recurso.

OtCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Essa função remove um recurso do servidor CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aResource
Um ponteiro para o recurso.

OtCoapSecureSendRequest

otError otCoapSecureSendRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext
)

Esse método envia uma solicitação CoAP por conexão DTLS segura.

Se uma resposta a uma solicitação for esperada, forneça as respectivas informações de função e contexto. Se nenhuma resposta for esperada, esses argumentos precisam ser ponteiros NULL. Se o ID da mensagem não tiver sido definido no cabeçalho (igual a 0), essa função atribuirá um ID exclusivo à mensagem.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMessage
Uma referência à mensagem a ser enviada.
[in] aHandler
Um ponteiro de função que será chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrárias.
Valores de retorno
OT_ERROR_NONE
Mensagem CoAP enviada.
OT_ERROR_NO_BUFS
Falha ao alocar dados de retransmissão.
OT_ERROR_INVALID_STATE
A conexão DTLS não foi inicializada.

OtCoapSecureSendRequestBlockWise

otError otCoapSecureSendRequestBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

Esse método envia uma solicitação CoAP em termos de bloco em uma conexão DTLS segura.

Esta função fica disponível quando a configuração OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE está ativada.

Se uma resposta a uma solicitação for esperada, forneça as respectivas informações de função e contexto. Se nenhuma resposta for esperada, esses argumentos precisam ser ponteiros NULL. Se o ID da mensagem não tiver sido definido no cabeçalho (igual a 0), essa função atribuirá um ID exclusivo à mensagem.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMessage
Uma referência à mensagem a ser enviada.
[in] aHandler
Um ponteiro de função que será chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrárias.
[in] aTransmitHook
Um ponteiro de função chamado na recepção de resposta Block1.
[in] aReceiveHook
Um ponteiro de função chamado na recepção de resposta do Block2.
Valores de retorno
OT_ERROR_NONE
Mensagem CoAP enviada.
OT_ERROR_NO_BUFS
Falha ao alocar dados de retransmissão.
OT_ERROR_INVALID_STATE
A conexão DTLS não foi inicializada.

OtCoapSecureSendResponse

otError otCoapSecureSendResponse(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

Essa função envia uma resposta CoAP do servidor CoAP seguro.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMessage
Um ponteiro para a resposta CoAP a ser enviada.
[in] aMessageInfo
Um ponteiro para as informações da mensagem associadas a aMessage.
Valores de retorno
OT_ERROR_NONE
A mensagem de resposta CoAP foi adicionada à fila.
OT_ERROR_NO_BUFS
Buffers insuficientes disponíveis para enviar a resposta CoAP.

OtCoapSecureSendResponseBlockWise

otError otCoapSecureSendResponseBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

Essa função envia uma resposta CoAP em blocos do servidor CoAP seguro.

Esta função fica disponível quando a configuração OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE está ativada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aMessage
Um ponteiro para a resposta CoAP a ser enviada.
[in] aMessageInfo
Um ponteiro para as informações da mensagem associadas a aMessage.
[in] aContext
Um ponteiro para informações de contexto arbitrárias. Poderá ser NULL se não for usado.
[in] aTransmitHook
Um ponteiro de função chamado na recepção de solicitação do Block1.
Valores de retorno
OT_ERROR_NONE
A mensagem de resposta CoAP foi adicionada à fila.
OT_ERROR_NO_BUFS
Buffers insuficientes disponíveis para enviar a resposta CoAP.

OtCoapSecureSetCaCertificateChain

void otCoapSecureSetCaCertificateChain(
  otInstance *aInstance,
  const uint8_t *aX509CaCertificateChain,
  uint32_t aX509CaCertChainLength
)

Esse método define as CAs de nível superior confiáveis.

Ela é necessária para validar o certificado do terminal.

Modo DTLS "ECDHE ECDSA com AES 128 CCM 8" para CoAPS de aplicativos.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aX509CaCertificateChain
Um ponteiro para a cadeia de CAs X509 formatada em PEM.
[in] aX509CaCertChainLength
O comprimento da cadeia.

OtCoapSecureSetCertificate

void otCoapSecureSetCertificate(
  otInstance *aInstance,
  const uint8_t *aX509Cert,
  uint32_t aX509Length,
  const uint8_t *aPrivateKey,
  uint32_t aPrivateKeyLength
)

Esse método define o certificado X509 do dispositivo local com a chave privada correspondente para a sessão DTLS com DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aX509Cert
Um ponteiro para o certificado X509 formatado em PEM.
[in] aX509Length
O comprimento do certificado.
[in] aPrivateKey
Um ponteiro para a chave privada formatada em PEM.
[in] aPrivateKeyLength
O comprimento da chave privada.

OtCoapSecureSetClientConnectedCallback

void otCoapSecureSetClientConnectedCallback(
  otInstance *aInstance,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

Esse método define o callback conectado para indicar quando um cliente se conecta ao servidor CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aHandler
Um ponteiro para uma função que será chamada quando a conexão DTLS for estabelecida.
[in] aContext
Um ponteiro para informações de contexto arbitrárias. Poderá ser NULL se não for usado.

OtCoapSecureSetDefaultHandler

void otCoapSecureSetDefaultHandler(
  otInstance *aInstance,
  otCoapRequestHandler aHandler,
  void *aContext
)

Essa função define o gerenciador padrão para solicitações CoAP Secure não processadas.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aHandler
Um ponteiro de função que será chamado quando uma solicitação não processada for recebida.
[in] aContext
Um ponteiro para informações de contexto arbitrárias. Poderá ser NULL se não for usado.

OtCoapSecureSetPsk

void otCoapSecureSetPsk(
  otInstance *aInstance,
  const uint8_t *aPsk,
  uint16_t aPskLength,
  const uint8_t *aPskIdentity,
  uint16_t aPskIdLength
)

Esse método define a chave pré-compartilhada (PSK) e o pacote de criptografia DTLS_PSK_WITH_AES_128_CCM_8.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aPsk
Um ponteiro para a PSK.
[in] aPskLength
É a duração da PSK.
[in] aPskIdentity
Nome de identidade da PSK.
[in] aPskIdLength
É o tamanho da identidade do PSK.

OtCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Esse método define o modo de autenticação para a conexão segura remota.

Desativar ou ativar a verificação do certificado de peering. Precisa ser chamado antes do início.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aVerifyPeerCertificate
"true" para verificar o certificado de peering.

OtCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Essa função inicia o serviço CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aPort
A porta UDP local a ser vinculada.
Valores de retorno
OT_ERROR_NONE
O servidor CoAP Secure foi iniciado.

OtCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Essa função interrompe o servidor CoAP Secure.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.

Macros

OT_PADRÃO_COPO_SECURE_OTIM

 OT_DEFAULT_COAP_SECURE_PORT 5684

Porta segura CoAP padrão, conforme especificado no RFC 7252.

Recursos

Os tópicos de referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para saber mais ou contribuir com nossa documentação, consulte Recursos.