BLE Secure
Este módulo incluye funciones que controlan la comunicación de BLE Secure (TLS sobre BLE).
Resumen
Este módulo incluye funciones que implementan la comunicación de TCAT.
Las funciones de este módulo están disponibles cuando está habilitada la función de la API de BLE Secure (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
).
Las funciones de este módulo están disponibles cuando la función de TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
) está habilitada.
Enumeraciones |
|
---|---|
otTcatApplicationProtocol{
|
enum Representa el protocolo de la aplicación TCAT. |
otTcatCommandClass{
|
enum Representa una clase de comando TCAT. |
otTcatStatusCode{
|
enum Representa el código de estado TCAT. |
Typedefs |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
Puntero para llamar cuando cambia el estado de conexión segura. |
otHandleBleSecureReceive
|
typedef Puntero para llamar cuando se reciben datos a través de una conexión TLS segura BLE. |
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
|
typedefvoid(*
Puntero para llamar cuando se recibieron los datos de la aplicación a través de una conexión TLS TCAT. |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
Es el puntero al que se debe llamar para notificar que se completó una operación de unión. |
otTcatApplicationProtocol
|
typedef Representa el protocolo de la aplicación TCAT. |
otTcatCommandClass
|
typedefenum otTcatCommandClass
Representa una clase de comando TCAT. |
otTcatStatusCode
|
typedefenum otTcatStatusCode
Representa el código de estado TCAT. |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
Esta estructura representa la información de un proveedor de TCAT. |
remotas |
|
---|---|
otBleSecureConnect(otInstance *aInstance)
|
Inicializa la sesión de TLS con un par mediante una conexión BLE ya abierta.
|
otBleSecureDisconnect(otInstance *aInstance)
|
void
Detiene la conexión BLE y TLS.
|
otBleSecureFlush(otInstance *aInstance)
|
Vacía el búfer de envío.
|
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
|
Muestra el certificado base64 del par x509 codificado.
|
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
|
Muestra un valor de atributo identificado por su OID del asunto del certificado x509 del mismo nivel.
|
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Muestra un valor de atributo para el OID 1.3.6.1.4.1.44970.x de las extensiones v3 del certificado x509 propio, donde el último dígito x se establece en aThreadOidDescriptor.
|
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
Muestra un valor de atributo para el OID 1.3.6.1.4.1.44970.x de las extensiones v3 del certificado x509 del par, donde el último dígito x se establece en aThreadOidDescriptor.
|
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
|
bool
Indica si una clase de comando TCAT está autorizada o no.
|
otBleSecureIsConnected(otInstance *aInstance)
|
bool
Indica si la sesión de TLS está conectada o no.
|
otBleSecureIsConnectionActive(otInstance *aInstance)
|
bool
Indica si la sesión de TLS está activa o no (conectada o con conexión).
|
otBleSecureIsTcatEnabled(otInstance *aInstance)
|
bool
Indica si el agente de TCAT está habilitado o no.
|
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Envía un paquete de datos BLE seguro.
|
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
Envía un paquete de datos BLE seguro que contiene un TLV de envío de datos de aplicación de TCAT.
|
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
|
Envía un mensaje BLE seguro.
|
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
|
void
Configura las CA de nivel superior de confianza.
|
otBleSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
|
void
Configura el certificado X509 del dispositivo local con la clave privada correspondiente para la sesión TLS con 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
Establece la clave previamente compartida (PSK) y el conjunto de algoritmos de cifrado TLS_PSK_WITH_AES_128_CCM_8.
|
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
|
void
Establece el modo de autenticación para la conexión segura BLE.
|
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
|
Inicia el servicio BLE Secure.
|
otBleSecureStop(otInstance *aInstance)
|
void
Detiene el servidor BLE Secure.
|
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
|
Habilita el protocolo TCAT en BLE Secure.
|
Structs |
|
---|---|
otTcatVendorInfo |
Esta estructura representa la información de un proveedor de TCAT. |
Enumeraciones
otTcatApplicationProtocol
otTcatApplicationProtocol
Representa el protocolo de la aplicación TCAT.
Propiedades | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE
|
Mensaje que se envió sin activar el agente de TCAT. |
OT_TCAT_APPLICATION_PROTOCOL_STATUS
|
Mensaje dirigido a un servicio UDP. |
OT_TCAT_APPLICATION_PROTOCOL_TCP
|
Mensaje dirigido a un servicio TCP. |
otTcatCommandClass
otTcatCommandClass
Representa una clase de comando TCAT.
Propiedades | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION
|
Comandos de TCAT relacionados con la capa de aplicación. |
OT_TCAT_COMMAND_CLASS_COMMISSIONING
|
Comandos de TCAT relacionados con la puesta en marcha. |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING
|
Comandos de TCAT relacionados con el retiro de servicio. |
OT_TCAT_COMMAND_CLASS_EXTRACTION
|
Comandos de TCAT relacionados con la extracción de claves. |
OT_TCAT_COMMAND_CLASS_GENERAL
|
Comandos de TCAT relacionados con operaciones generales. |
otTcatStatusCode
otTcatStatusCode
Representa el código de estado TCAT.
Propiedades | |
---|---|
OT_TCAT_STATUS_BUSY
|
No se puede ejecutar el comando porque el recurso está ocupado. |
OT_TCAT_STATUS_GENERAL_ERROR
|
Se produjo un error que no coincide con ninguna otra categoría. |
OT_TCAT_STATUS_HASH_ERROR
|
El valor de hash que presentó el comisionado era incorrecto. |
OT_TCAT_STATUS_PARSE_ERROR
|
No se pudo analizar correctamente la solicitud o el comando. |
OT_TCAT_STATUS_SUCCESS
|
Se procesó correctamente el comando o la solicitud. |
OT_TCAT_STATUS_UNAUTHORIZED
|
El remitente no tiene autorización suficiente para el comando correspondiente. |
OT_TCAT_STATUS_UNDEFINED
|
El valor, los datos o el servicio solicitados no están definidos (actualmente) o no están presentes. |
OT_TCAT_STATUS_UNSUPPORTED
|
No se admite el comando solicitado ni el TLV recibido. |
OT_TCAT_STATUS_VALUE_ERROR
|
El valor del TLV transmitido tiene un error. |
Typedefs
otHandleBleSecureConnect
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
Puntero para llamar cuando cambia el estado de conexión segura.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
Puntero para llamar cuando se reciben datos a través de una conexión TLS segura BLE.
otHandleTcatApplicationDataReceive
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
Puntero para llamar cuando se recibieron los datos de la aplicación a través de una conexión TLS TCAT.
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
Es el puntero al que se debe llamar para notificar que se completó una operación de unión.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
Representa el protocolo de la aplicación TCAT.
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
Esta estructura representa la información de un proveedor de TCAT.
El contenido de esta estructura DEBE persistir y permanecer sin cambios mientras se ejecuta una sesión de TCAT.
remotas
otBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
Inicializa la sesión de TLS con un par mediante una conexión BLE ya abierta.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Valores que se muestran |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
Detiene la conexión BLE y TLS.
Detalles | |||
---|---|---|---|
Parámetros |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
Vacía el búfer de envío.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
Muestra el certificado base64 del par x509 codificado.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
Muestra un valor de atributo identificado por su OID del asunto del certificado x509 del mismo nivel.
El OID del par se proporciona en formato binario. La longitud del atributo se establece si el atributo se leyó correctamente o cero si no se completó correctamente. El tipo ASN.1, tal como se define en el estándar ITU-T X.690, si el atributo se leyó correctamente.
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||
Valores que se muestran |
|
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Muestra un valor de atributo para el OID 1.3.6.1.4.1.44970.x de las extensiones v3 del certificado x509 propio, donde el último dígito x se establece en aThreadOidDescriptor.
La longitud del atributo se establece si el atributo se leyó correctamente o cero si no se completó correctamente. Se requiere una conexión para estar activa.
Detalles | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||||
Valores que se muestran |
|
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Muestra un valor de atributo para el OID 1.3.6.1.4.1.44970.x de las extensiones v3 del certificado x509 del par, donde el último dígito x se establece en aThreadOidDescriptor.
La longitud del atributo se establece si el atributo se leyó correctamente o cero si no se completó correctamente. Se requiere una conexión para estar activa.
Detalles | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||||
Valores que se muestran |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
Indica si una clase de comando TCAT está autorizada o no.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
Indica si la sesión de TLS está conectada o no.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
Indica si la sesión de TLS está activa o no (conectada o con conexión).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
Indica si el agente de TCAT está habilitado o no.
Detalles | |||||
---|---|---|---|---|---|
Valores que se muestran |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Envía un paquete de datos BLE seguro.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Envía un paquete de datos BLE seguro que contiene un TLV de envío de datos de aplicación de TCAT.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
Envía un mensaje BLE seguro.
Si el valor que se muestra es OT_ERROR_NONE, OpenThread asume la propiedad de aMessage
, y el llamador ya no debe hacer referencia a aMessage
. Si el valor que se muestra no es OT_ERROR_NONE, el llamador conservará la propiedad de aMessage
, lo que incluye liberar aMessage
si ya no se necesita el búfer de mensajes.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores que se muestran |
|
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength )
Configura las CA de nivel superior de confianza.
Es necesario para validar el certificado del par.
Modo TLS "ECDHE ECDSA con AES 128 CCM 8" para BLE seguro.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otBleSecureSetCertificate
void otBleSecureSetCertificate( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength )
Configura el certificado X509 del dispositivo local con la clave privada correspondiente para la sesión TLS con TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otBleSecureSetPsk
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
Establece la clave previamente compartida (PSK) y el conjunto de algoritmos de cifrado TLS_PSK_WITH_AES_128_CCM_8.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otBleSecureSetSslAuthMode
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
Establece el modo de autenticación para la conexión segura BLE.
Inhabilita o habilita la verificación del certificado de intercambio de tráfico. Se debe llamar antes de comenzar.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
Inicia el servicio BLE Secure.
Cuando el modo de TLV esté activo, se llamará a la función aReceiveHandler
una vez que se reciba un TLV completo y el desplazamiento del mensaje apunte al valor de TLV.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
Detiene el servidor BLE Secure.
Detalles | |||
---|---|---|---|
Parámetros |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
Habilita el protocolo TCAT en BLE Secure.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
Macros
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
Longitud máxima de las strings de un nombre de servicio UDP o TCP (no incluye caracteres nulos).
Recursos
Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.