作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Bluez 上启动与低功耗蓝牙设备的配对。虽然有一些关于如何使用 GATT 触发 SMP 过程的帖子,但如果您不想使用 GATT,则没有太多可用的帖子。
我的用例是我想为 bluetooth-6lowpan 使用加密链接,它通过基于 L2CAP 信用的模式而不是 ATT/GATT 交换数据。
此外,我想使用 OOB 模式进行 SMP 配对。
感谢有关如何使用命令行或编写 C 程序触发 SMP 配对的指示。
谢谢!
最佳答案
我认为不使用 GATT 命令(仅从命令行)就不可能执行 BLE 配对。这样做的原因是 LE 中的安全性是基于 GATT 操作的。换句话说,特征/服务权限决定了你是否需要与设备配对(即读取心率特征,设备可能决定你需要先配对)。为此,操作类似于:
gatttool --sec-level=high --device=00:11:22:33:44:55:66 --char-read --uuid=0x2A37
此命令会在读取特征前先建立配对。
至于如何使用 C 程序执行此操作,您可以下载 BlueZ 源代码并查看传递此“sec-level”选项的作用。我快速浏览了代码并在 utils.c 中找到了这个:-
chan = bt_io_connect(connect_cb, NULL, NULL, &tmp_err,
BT_IO_OPT_SOURCE_BDADDR, &sba,
BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
BT_IO_OPT_DEST_BDADDR, &dba,
BT_IO_OPT_DEST_TYPE, dest_type,
BT_IO_OPT_CID, ATT_CID,
BT_IO_OPT_SEC_LEVEL, sec,
BT_IO_OPT_INVALID);
其中 sec 设置为 sec = BT_IO_SEC_HIGH;
希望对您有所帮助。
关于security - 如何在 BlueZ 上启动 BLE 配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004646/
我是一名优秀的程序员,十分优秀!