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
Представляет протокол приложения TCAT.
Характеристики | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE | Сообщение, отправленное без активации агента TCAT. |
OT_TCAT_APPLICATION_PROTOCOL_STATUS | Сообщение направлено в службу UDP. |
OT_TCAT_APPLICATION_PROTOCOL_TCP | Сообщение направлено в службу TCP. |
отткаткоммандкласс
otTcatCommandClass
Представляет класс команд TCAT.
Характеристики | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION | Команды TCAT, относящиеся к прикладному уровню. |
OT_TCAT_COMMAND_CLASS_COMMISSIONING | Команды TCAT, связанные с вводом в эксплуатацию. |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING | Команды TCAT, связанные с выводом из эксплуатации. |
OT_TCAT_COMMAND_CLASS_EXTRACTION | Команды TCAT, связанные с извлечением ключей. |
OT_TCAT_COMMAND_CLASS_GENERAL | Команды TCAT, относящиеся к общим операциям. |
отТкатстатускоде
otTcatStatusCode
Представляет код состояния TCAT.
Характеристики | |
---|---|
OT_TCAT_STATUS_BUSY | Команду невозможно выполнить, поскольку ресурс занят. |
OT_TCAT_STATUS_GENERAL_ERROR | Произошла ошибка, не соответствующая ни одной другой категории. |
OT_TCAT_STATUS_HASH_ERROR | Хэш-значение, представленное комиссаром, было неверным. |
OT_TCAT_STATUS_PARSE_ERROR | Запрос/команду не удалось правильно разобрать. |
OT_TCAT_STATUS_SUCCESS | Команда или запрос успешно обработаны. |
OT_TCAT_STATUS_UNAUTHORIZED | Отправитель не имеет достаточных полномочий для данной команды. |
OT_TCAT_STATUS_UNDEFINED | Запрошенное значение, данные или услуга не определены (в настоящее время) или отсутствуют. |
OT_TCAT_STATUS_UNSUPPORTED | Запрошенная команда или полученный TLV не поддерживаются. |
OT_TCAT_STATUS_VALUE_ERROR | Значение переданного TLV содержит ошибку. |
Определения типов
отхандлеблесекуреконнект
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 . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .