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 . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .