BLE безопасный
Этот модуль включает в себя функции, которые управляют связью BLE Secure (TLS поверх BLE).
Краткое содержание
Этот модуль включает функции, реализующие связь TCAT.
 Функции в этом модуле доступны, когда включена функция BLE Secure API ( OPENTHREAD_CONFIG_BLE_TCAT_ENABLE ).
 Функции этого модуля доступны, когда включена функция TCAT ( OPENTHREAD_CONFIG_BLE_TCAT_ENABLE ). 
| Перечисления | |
|---|---|
| otTcatApplicationProtocol { | перечисление  Представляет протокол приложения TCAT. | 
| otTcatCommandClass { | перечисление  Представляет класс команд TCAT. | 
| otTcatStatusCode { | перечисление  Представляет код состояния TCAT.  | 
| Определения типов | |
|---|---|
| otHandleBleSecureConnect )(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext) | определение типа void(* Указатель для вызова при изменении состояния безопасного соединения. | 
| otHandleBleSecureReceive | определение типа  Указатель для вызова, когда данные были получены через соединение BLE Secure TLS. | 
| otHandleTcatApplicationDataReceive )(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) | определение типа void(* Указатель на вызов, когда данные приложения были получены через соединение TCAT TLS. | 
| otHandleTcatJoin )(otError aError, void *aContext) | определение типа void(* Указатель на вызов для уведомления о завершении операции соединения. | 
| otTcatApplicationProtocol | определение типа  Представляет протокол приложения TCAT. | 
| otTcatCommandClass | определение типа enum otTcatCommandClass Представляет класс команд TCAT. | 
| otTcatStatusCode | определение типа enum otTcatStatusCode Представляет код состояния TCAT. | 
| otTcatVendorInfo | определение типа struct otTcatVendorInfo Эта структура представляет информацию о поставщике TCAT.  | 
| Функции | |
|---|---|
| otBleSecureConnect ( otInstance *aInstance) |  Инициализирует сеанс TLS с одноранговым узлом, используя уже открытое соединение BLE. | 
| otBleSecureDisconnect ( otInstance *aInstance) | void Останавливает соединение BLE и TLS. | 
| otBleSecureFlush ( otInstance *aInstance) |  Очищает буфер отправки. | 
| otBleSecureGetPeerCertificateBase64 ( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength) |  Возвращает сертификат узла x509 в кодировке Base64. | 
| otBleSecureGetPeerSubjectAttributeByOid ( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type) |  Возвращает значение атрибута, идентифицированное его OID из субъекта сертификата x509 узла. | 
| otBleSecureGetThreadAttributeFromOwnCertificate ( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength) |  Возвращает значение атрибута для OID 1.3.6.1.4.1.44970.x из расширений v3 собственного сертификата x509, где последней цифре x присвоено значение aThreadOidDescriptor. | 
| otBleSecureGetThreadAttributeFromPeerCertificate ( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength) |  Возвращает значение атрибута для OID 1.3.6.1.4.1.44970.x из расширений версии 3 однорангового сертификата x509, где последней цифре x присвоено значение aThreadOidDescriptor. | 
| otBleSecureIsCommandClassAuthorized ( otInstance *aInstance, otTcatCommandClass aCommandClass) | bool Указывает, авторизован ли класс команд TCAT. | 
| otBleSecureIsConnected ( otInstance *aInstance) | bool Указывает, подключен ли сеанс TLS. | 
| otBleSecureIsConnectionActive ( otInstance *aInstance) | bool Указывает, активен ли сеанс TLS (подключен или подключен). | 
| otBleSecureIsTcatEnabled ( otInstance *aInstance) | bool Указывает, включен ли агент TCAT. | 
| otBleSecureSend ( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength) |  Отправляет защищенный пакет данных BLE. | 
| otBleSecureSendApplicationTlv ( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength) |  Отправляет безопасный пакет данных BLE, содержащий TLV данных приложения отправки TCAT. | 
| otBleSecureSendMessage ( otInstance *aInstance, otMessage *aMessage) |  Отправляет защищенное сообщение BLE. | 
| otBleSecureSetCaCertificateChain ( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength) | void Устанавливает доверенные центры сертификации верхнего уровня. | 
| otBleSecureSetCertificate ( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength) | void Устанавливает сертификат X509 локального устройства с соответствующим закрытым ключом для сеанса TLS с 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 Устанавливает предварительный общий ключ (PSK) и набор шифров TLS_PSK_WITH_AES_128_CCM_8. | 
| otBleSecureSetSslAuthMode ( otInstance *aInstance, bool aVerifyPeerCertificate) | void Устанавливает режим аутентификации для безопасного соединения BLE. | 
| otBleSecureStart ( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext) |  Запускает службу BLE Secure. | 
| otBleSecureStop ( otInstance *aInstance) | void Останавливает сервер BLE Secure. | 
| otBleSecureTcatStart ( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler) |  Включает протокол TCAT через BLE Secure.  | 
| Структуры | |
|---|---|
| otTcatVendorInfo | Эта структура представляет информацию о поставщике TCAT. | 
Перечисления
otTcatApplicationProtocol
otTcatApplicationProtocol
отткаткоммандкласс
otTcatCommandClass
Представляет класс команд TCAT.
отТкатстатускоде
otTcatStatusCode
Представляет код состояния TCAT.
Определения типов
отхандлеблесекуреконнект
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
Указатель для вызова при изменении состояния безопасного соединения.
| Подробности | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | 
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
Указатель для вызова, когда данные были получены через соединение BLE Secure TLS.
отхандлеткатаппликатиондатарецеиве
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
Указатель на вызов, когда данные приложения были получены через соединение TCAT TLS.
| Подробности | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | 
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
Указатель на вызов для уведомления о завершении операции соединения.
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | 
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
Представляет протокол приложения TCAT.
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
Эта структура представляет информацию о поставщике TCAT.
Содержимое этой структуры ДОЛЖНО сохраняться и оставаться неизменным во время сеанса TCAT.
Функции
отBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
Инициализирует сеанс TLS с одноранговым узлом, используя уже открытое соединение BLE.
| Подробности | |||
|---|---|---|---|
| Параметры | 
 | ||
| Возвращаемые значения | 
 | 
отBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
Останавливает соединение BLE и TLS.
| Подробности | |||
|---|---|---|---|
| Параметры | 
 | 
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
Очищает буфер отправки.
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||
| Возвращаемые значения | 
 | 
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
Возвращает сертификат узла x509 в кодировке Base64.
| Подробности | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||
| Возвращаемые значения | 
 | 
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
Возвращает значение атрибута, идентифицированное его OID из субъекта сертификата x509 узла.
Одноранговый OID предоставляется в двоичном формате. Длина атрибута устанавливается, если атрибут был успешно прочитан, или равна нулю в случае неудачного чтения. Тип ASN.1 устанавливается в соответствии со стандартом ITU-T X.690, если атрибут был успешно прочитан.
| Подробности | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||||||
| Возвращаемые значения | 
 | 
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Возвращает значение атрибута для OID 1.3.6.1.4.1.44970.x из расширений v3 собственного сертификата x509, где последней цифре x присвоено значение aThreadOidDescriptor.
Длина атрибута устанавливается, если атрибут был успешно прочитан, или равна нулю в случае неудачного чтения. Требуется подключение для активности.
| Подробности | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||||||||
| Возвращаемые значения | 
 | 
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
Возвращает значение атрибута для OID 1.3.6.1.4.1.44970.x из расширений версии 3 однорангового сертификата x509, где последней цифре x присвоено значение aThreadOidDescriptor.
Длина атрибута устанавливается, если атрибут был успешно прочитан, или равна нулю в случае неудачного чтения. Требуется подключение для активности.
| Подробности | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||||||||
| Возвращаемые значения | 
 | 
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
Указывает, авторизован ли класс команд TCAT.
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | ||||
| Возвращаемые значения | 
 | 
отБлесекуреисконнектед
bool otBleSecureIsConnected( otInstance *aInstance )
Указывает, подключен ли сеанс TLS.
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | ||||
| Возвращаемые значения | 
 | 
отБлесекуреисконнектионактиве
bool otBleSecureIsConnectionActive( otInstance *aInstance )
Указывает, активен ли сеанс TLS (подключен или подключен).
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | ||||
| Возвращаемые значения | 
 | 
отблесекуреисткатенаблед
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
Указывает, включен ли агент TCAT.
| Подробности | |||||
|---|---|---|---|---|---|
| Возвращаемые значения | 
 | 
отBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Отправляет защищенный пакет данных BLE.
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||
| Возвращаемые значения | 
 | 
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Отправляет безопасный пакет данных BLE, содержащий TLV данных приложения отправки TCAT.
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||
| Возвращаемые значения | 
 | 
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
Отправляет защищенное сообщение BLE.
 Если возвращаемое значение — OT_ERROR_NONE, OpenThread становится владельцем aMessage , и вызывающая сторона больше не должна ссылаться на aMessage . Если возвращаемое значение не OT_ERROR_NONE, вызывающая сторона сохраняет право собственности на aMessage , включая освобождение aMessage если буфер сообщений больше не нужен.
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | 
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Возвращаемые значения | 
 | 
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength )
Устанавливает доверенные центры сертификации верхнего уровня.
Это необходимо для проверки сертификата узла.
Режим TLS «ECDHE ECDSA с AES 128 CCM 8» для безопасного BLE.
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Параметры | 
 | 
отБлесекуресетсертификате
void otBleSecureSetCertificate( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength )
Устанавливает сертификат X509 локального устройства с соответствующим закрытым ключом для сеанса TLS с TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
| Подробности | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | 
отБлеСекуресетПск
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
Устанавливает предварительный общий ключ (PSK) и набор шифров TLS_PSK_WITH_AES_128_CCM_8.
| Подробности | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | 
отБлесекуресетсслааутмоде
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
Устанавливает режим аутентификации для безопасного соединения BLE.
Отключите или включите проверку сертификата узла. Перед началом необходимо позвонить.
| Подробности | |||||
|---|---|---|---|---|---|
| Параметры | 
 | 
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
Запускает службу BLE Secure.
 Когда режим TLV активен, функция aReceiveHandler будет вызываться после получения полного TLV и смещение сообщения указывает на значение TLV.
| Подробности | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||||
| Возвращаемые значения | 
 | 
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
Останавливает сервер BLE Secure.
| Подробности | |||
|---|---|---|---|
| Параметры | 
 | 
отБлеСекуреТкатСтарт
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
Включает протокол TCAT через BLE Secure.
| Подробности | |||||||
|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||
| Возвращаемые значения | 
 | 
Макросы
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
Максимальная длина строки имени службы UDP или TCP (не включает нулевые символы).
Ресурсы
Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .