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 da API CoAP Secure (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE) está ativado.

Typedefs

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

Funções

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Adiciona um recurso de bloqueio de blocos ao servidor CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Adiciona um recurso ao servidor CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Inicializa a sessão DTLS com um par.
otCoapSecureDisconnect(otInstance *aInstance)
void
Interrompe a conexão DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Retorna o certificado x509 de peering codificado em base64.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Indica se a sessão DTLS está ou não conectada.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Indica se a sessão DTLS está ativa ou não.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Remove um recurso em termos de bloqueio do servidor CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Remove um recurso do servidor CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Envia uma solicitação CoAP por conexão DTLS segura.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Envia uma solicitação CoAP em blocos por conexão DTLS segura.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Envia uma resposta CoAP do servidor CoAP seguro.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Envia uma resposta CoAP em blocos do servidor CoAP Secure.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
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
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
Define o retorno de chamada conectado para indicar quando um cliente se conecta ao servidor CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
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
Define a chave pré-compartilhada (PSK) e o conjunto de criptografia DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Define o modo de autenticação para a conexão segura coap.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Inicia o serviço CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Interrompe o servidor CoAP Secure.

Typedefs

OtHandleCoapSecureClientConnect

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

O ponteiro é chamado quando o estado da conexão DTLS muda.

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

Funções

Recurso otSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

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.

Recurso otSecureAddAdd

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

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
)

Inicializa a sessão DTLS com um par.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aSockAddr
Um ponteiro para o endereço do 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.

OcoCopSecureDisconnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Interrompe a conexão DTLS.

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

OpCoapSecureGetPeerCertificateBase64

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

Retorna o certificado x509 de peering codificado em base64.

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 do buffer de aPeerCert.
Valores de retorno
OT_ERROR_INVALID_STATE
Ainda não conectado.
OT_ERROR_NONE
O certificado de peering foi recebido.
OT_ERROR_NO_BUFS
Não é possível alocar memória para o certificado.

OcoCopSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

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.

OcoCopSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

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
)

Remove um recurso em termos de bloqueio do servidor CoAP Secure.

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

Recurso otSecureRemoveRemove

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

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.

Solicitação de segurança de conexão

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

Envia uma solicitação CoAP por conexão DTLS segura.

Se for esperada uma resposta de uma solicitação, forneça as respectivas informações de função e contexto. Se nenhuma resposta for esperada, esses argumentos devem ser ponteiros NULL. Se o ID da mensagem não tiver sido definido no cabeçalho (igual a 0), esta 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
A mensagem CoAP foi 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
)

Envia uma solicitação CoAP em blocos por conexão DTLS segura.

Disponível quando a configuração OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE está ativada.

Se for esperada uma resposta de uma solicitação, forneça as respectivas informações de função e contexto. Se nenhuma resposta for esperada, esses argumentos devem ser ponteiros NULL. Se o ID da mensagem não tiver sido definido no cabeçalho (igual a 0), esta 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 Block2.
Valores de retorno
OT_ERROR_NONE
A mensagem CoAP foi 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
)

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
)

Envia uma resposta CoAP em blocos do servidor CoAP Secure.

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 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
)

Define as CAs de nível superior confiáveis.

Ele é necessário 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
)

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 tamanho do certificado.
[in] aPrivateKey
Um ponteiro para a chave privada formatada em PEM.
[in] aPrivateKeyLength
O tamanho da chave privada.

OtCoapSecureSetClientConnectedCallback

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

Define o retorno de chamada 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
)

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 chegar.
[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
)

Define a chave pré-compartilhada (PSK) e o conjunto 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 PSK.
[in] aPskLength
O tamanho da PSK.
[in] aPskIdentity
O nome da identidade do PSK.
[in] aPskIdLength
O tamanho da identidade PSK.

Modo de segurança do conjunto de serviços

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Define o modo de autenticação para a conexão segura coap.

Desative ou ative 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 do terminal.

OtCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

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 para vinculação.
Valores de retorno
OT_ERROR_NONE
O servidor seguro CoAP foi iniciado.

OpCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Interrompe o servidor CoAP Secure.

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

Macros

PRO_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Porta segura CoAP padrão, conforme especificada 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 mais informações ou para contribuir com nossa documentação, consulte Recursos.