Bluez: как включить шифрование hci - PullRequest
0 голосов
/ 31 января 2019

Привет, я пишу о поведении hcitool enc <bdaddr>.Как описано в теме , я имею дело с Bluetooth.Я использую Bluez 5.4x C API.На данный момент я могу сканировать и открывать соединение с устройством BLE либо с помощью командной строки, либо с помощью моего кода C.

Для этого я работаю с HCI API, поэтому после:

id = hci_get_route(NULL);
dd = hci_open_dev(id);
hci_le_set_scan_enable();
hci_le_create_conn();

Я получил дескриптор соединения = 71. На этом этапе я бы хотел зашифровать ссылку, используя эквивалент C для функциональности hcitool enc в C. Однако я не могу этого сделать.

Как только соединение установлено, я проверяю доступное соединение, используя:

hcitool con

, что возвращает:

< LE <bdaddr> handle 71 state 7 lm MASTER

, поэтому я предполагаю, что мой код на C работает,хотя бы до этого момента.Если я пытаюсь зашифровать ссылку, вызывая функцию hci_encrypt_link(), система выходит из строя и возвращает:

Ошибка получения информации о соединении: нет такого файла или каталога

Чтобы проверить правильность поведения, я попытался выполнить тот же рабочий поток из командной строки, выполнив:

sudo hcitool lescan
sudo hcitool lecc --random <bdaddr> - return: connection handle 71
sudo hcitool enc <bdaddr> - return: Not connected

Может ли кто-нибудь помочь мне определить решение?

...