Protegido por BLE
Este módulo inclui funções que controlam a comunicação BLE Secure (TLS via BLE).
Resumo
Este módulo inclui funções que implementam a comunicação TCAT.
As funções neste módulo estão disponíveis quando o recurso da API BLE Secure (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
) está ativado.
As funções neste módulo ficam disponíveis quando o recurso TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
) está ativado.
Enumerações |
|
---|---|
otTcatApplicationProtocol{
|
enum Representa o protocolo de aplicativo TCAT. |
otTcatCommandClass{
|
enum Representa uma classe de comando TCAT. |
otTcatStatusCode{
|
enum Representa o código de status TCAT. |
Typedefs |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
Ponteiro a ser chamado quando o estado da conexão segura e segura mudar. |
otHandleBleSecureReceive
|
typedef Ponteiro para chamada quando os dados foram recebidos por uma conexão TLS segura BLE. |
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
|
typedefvoid(*
Ponteiro a ser chamado quando os dados do aplicativo forem recebidos por uma conexão TLS TCAT. |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
Ponteiro a ser chamado para notificar a conclusão de uma operação de agrupamento. |
otTcatApplicationProtocol
|
typedef Representa o protocolo de aplicativo TCAT. |
otTcatCommandClass
|
typedefenum otTcatCommandClass
Representa uma classe de comando TCAT. |
otTcatStatusCode
|
typedefenum otTcatStatusCode
Representa o código de status TCAT. |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
Essa estrutura representa as informações de um fornecedor de TCAT. |
Funções |
|
---|---|
otBleSecureConnect(otInstance *aInstance)
|
Inicializa a sessão TLS com um peering usando uma conexão BLE já aberta.
|
otBleSecureDisconnect(otInstance *aInstance)
|
void
Interrompe a conexão BLE e TLS.
|
otBleSecureFlush(otInstance *aInstance)
|
Limpa o buffer de envio.
|
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
|
Retorna o certificado x509 de peering codificado em base64.
|
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
|
Retorna um valor de atributo identificado pelo OID do assunto do certificado x509 de peering.
|
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Retorna um valor de atributo para o OID 1.3.6.1.4.1.44970.x das extensões da v3 do próprio certificado x509, em que o último dígito x é definido como umThreadOidDescriptor.
|
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Retorna um valor de atributo para o OID 1.3.6.1.4.1.44970.x das extensões da v3 do certificado x509 de peering, em que o último dígito x é definido como umThreadOidDescriptor.
|
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
|
bool
Indica se uma classe de comando TCAT está autorizada ou não.
|
otBleSecureIsConnected(otInstance *aInstance)
|
bool
Indica se a sessão TLS está ou não conectada.
|
otBleSecureIsConnectionActive(otInstance *aInstance)
|
bool
Indica se a sessão TLS está ativa (conectada ou conectada).
|
otBleSecureIsTcatEnabled(otInstance *aInstance)
|
bool
Indica se o agente TCAT está ativado ou não.
|
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Envia um pacote de dados BLE seguro.
|
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Envia um pacote de dados BLE seguro contendo um TLV de dados do aplicativo de envio do TCAT.
|
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
|
Envia uma mensagem BLE segura.
|
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
|
void
Define as CAs de nível superior confiáveis.
|
otBleSecureSetCertificate(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 TLS com TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
|
otBleSecureSetPsk(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 pacote de criptografia TLS_PSK_WITH_AES_128_CCM_8.
|
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
|
void
Define o modo de autenticação para a conexão segura BLE.
|
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
|
Inicia o serviço BLE Secure.
|
otBleSecureStop(otInstance *aInstance)
|
void
Interrompe o servidor seguro de BLE.
|
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
|
Ativa o protocolo TCAT por BLE Secure.
|
Estruturas |
|
---|---|
otTcatVendorInfo |
Essa estrutura representa as informações de um fornecedor de TCAT. |
Enumerações
otTcatApplicationProtocol
otTcatApplicationProtocol
Representa o protocolo de aplicativo TCAT.
Propriedades | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE
|
Mensagem que foi enviada sem ativar o agente TCAT. |
OT_TCAT_APPLICATION_PROTOCOL_STATUS
|
Mensagem direcionada para um serviço UDP. |
OT_TCAT_APPLICATION_PROTOCOL_TCP
|
Mensagem direcionada para um serviço TCP. |
otTcatCommandClass
otTcatCommandClass
Representa uma classe de comando TCAT.
Propriedades | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION
|
Comandos TCAT relacionados à camada do aplicativo. |
OT_TCAT_COMMAND_CLASS_COMMISSIONING
|
Comandos TCAT relacionados ao comissionamento. |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING
|
Comandos TCAT relacionados à desativação. |
OT_TCAT_COMMAND_CLASS_EXTRACTION
|
Comandos TCAT relacionados à extração de chaves. |
OT_TCAT_COMMAND_CLASS_GENERAL
|
Comandos TCAT relacionados a operações gerais. |
otTcatStatusCode
otTcatStatusCode
Representa o código de status TCAT.
Propriedades | |
---|---|
OT_TCAT_STATUS_BUSY
|
Não é possível executar o comando porque o recurso está ocupado. |
OT_TCAT_STATUS_GENERAL_ERROR
|
Ocorreu um erro que não corresponde a nenhuma outra categoria. |
OT_TCAT_STATUS_HASH_ERROR
|
O valor de hash apresentado pelo comissário estava incorreto. |
OT_TCAT_STATUS_PARSE_ERROR
|
A solicitação / comando não pôde ser analisado corretamente. |
OT_TCAT_STATUS_SUCCESS
|
O comando ou a solicitação foi processado. |
OT_TCAT_STATUS_UNAUTHORIZED
|
O remetente não tem autorização suficiente para executar o comando. |
OT_TCAT_STATUS_UNDEFINED
|
O valor, os dados ou o serviço solicitado não está definido (no momento) ou não está presente. |
OT_TCAT_STATUS_UNSUPPORTED
|
O comando solicitado ou o TLV recebido não é compatível. |
OT_TCAT_STATUS_VALUE_ERROR
|
O valor do TLV transmitido tem um erro. |
Typedefs
otHandleBleSecureConnect
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
Ponteiro a ser chamado quando o estado da conexão segura e segura mudar.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
Ponteiro para chamada quando os dados foram recebidos por uma conexão TLS segura BLE.
otHandleTcatApplicationDataReceive
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
Ponteiro a ser chamado quando os dados do aplicativo forem recebidos por uma conexão TLS TCAT.
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
Ponteiro a ser chamado para notificar a conclusão de uma operação de agrupamento.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
Representa o protocolo de aplicativo TCAT.
otTcatCommandClass
enum otTcatCommandClass otTcatCommandClass
Representa uma classe de comando TCAT.
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
Essa estrutura representa as informações de um fornecedor de TCAT.
O conteúdo dessa estrutura PRECISA persistir e permanecer inalterado enquanto uma sessão de TCAT estiver em execução.
Funções
otBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
Inicializa a sessão TLS com um peering usando uma conexão BLE já aberta.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Valores de retorno |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
Interrompe a conexão BLE e TLS.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
Limpa o buffer de envio.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
Retorna o certificado x509 de peering codificado em base64.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
Retorna um valor de atributo identificado pelo OID do assunto do certificado x509 de peering.
O OID do peering é fornecido no formato binário. O comprimento do atributo é definido se a leitura do atributo é realizada, ou zero em caso de falha. O tipo ASN.1 conforme definido no padrão ITU-T X.690 se o atributo foi lido com êxito.
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||
Valores de retorno |
|
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Retorna um valor de atributo para o OID 1.3.6.1.4.1.44970.x das extensões da v3 do próprio certificado x509, em que o último dígito x é definido como umThreadOidDescriptor.
O comprimento do atributo é definido se a leitura do atributo é realizada, ou zero em caso de falha. É necessária uma conexão para ser ativado.
Detalhes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||||
Valores de retorno |
|
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Retorna um valor de atributo para o OID 1.3.6.1.4.1.44970.x das extensões da v3 do certificado x509 de peering, em que o último dígito x é definido como umThreadOidDescriptor.
O comprimento do atributo é definido se a leitura do atributo é realizada, ou zero em caso de falha. É necessária uma conexão para ser ativado.
Detalhes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||||
Valores de retorno |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
Indica se uma classe de comando TCAT está autorizada ou não.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
Indica se a sessão TLS está ou não conectada.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
Indica se a sessão TLS está ativa (conectada ou conectada).
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
Indica se o agente TCAT está ativado ou não.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Envia um pacote de dados BLE seguro.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Envia um pacote de dados BLE seguro contendo um TLV de dados do aplicativo de envio do TCAT.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
Envia uma mensagem BLE segura.
Se o valor de retorno for OT_ERROR_NONE, o OpenThread assumirá a propriedade de aMessage
, e o autor da chamada não deverá mais referenciar aMessage
. Se o valor de retorno não for OT_ERROR_NONE, o autor da chamada manterá a propriedade de aMessage
, incluindo liberar aMessage
se o buffer de mensagem não for mais necessário.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores de retorno |
|
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( 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 peering.
Modo TLS "ECDHE ECDSA com AES 128 CCM 8" para BLE seguro.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otBleSecureSetCertificate
void otBleSecureSetCertificate( 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 TLS com TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
otBleSecureSetPsk
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
Define a chave pré-compartilhada (PSK) e o pacote de criptografia TLS_PSK_WITH_AES_128_CCM_8.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
otBleSecureSetSslAuthMode
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
Define o modo de autenticação para a conexão segura BLE.
Desativar ou ativar a verificação de certificado de peering. Precisa ser chamado antes do início.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
Inicia o serviço BLE Secure.
Quando o modo TLV estiver ativo, a função aReceiveHandler
será chamada quando um TLV completo for recebido, e o deslocamento da mensagem apontará para o valor do TLV.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
Interrompe o servidor seguro de BLE.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
Ativa o protocolo TCAT por BLE Secure.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
Macros
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
Comprimento máximo da string de um nome de serviço UDP ou TCP (não inclui caracteres nulos).
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.