device oob是什么
时间: 2023-09-12 21:08:25 浏览: 292
Device OOB(Out-Of-Band)是指在蓝牙设备之间进行无线通信配对时,使用除了蓝牙协议本身之外的其他通信手段进行安全认证的一种方式。这种方式需要在配对前,通过另一个信道(如NFC、双击按键等)来传输一些安全信息(如PIN码、加密密钥等),以确保通信双方的身份和安全性。
使用Device OOB可以提高蓝牙设备之间的安全性,因为即使攻击者截获了蓝牙通信数据,但由于缺乏配对设备的安全信息,攻击者无法解密和篡改数据,从而保证通信的机密性和完整性。
相关问题
安卓开发中,那么oob的完整流程是什么?代码如何写。
蓝牙 out-of-band(OoB)配对是一种更加安全的蓝牙配对方式,它使用外部通信通道(如 NFC、Wi-Fi Direct 或 BLE)来交换密钥和其他配对信息。OoB 配对需要支持 OoB 数据的两个设备,因此需要使用支持 OoB 配对的蓝牙芯片。
下面是使用 OoB 配对的完整流程:
1. 获取支持 OoB 配对的蓝牙设备的 MAC 地址。
```
String deviceAddress = "00:11:22:33:44:55";
```
2. 获取蓝牙适配器并启用蓝牙。
```
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
// 设备不支持蓝牙
return;
}
if (!bluetoothAdapter.isEnabled()) {
// 启用蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
```
3. 获取远程蓝牙设备实例。
```
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);
```
4. 创建 OoB 配对数据。
```
byte[] secureConnectionsData = new byte[16];
// 将 OoB 数据填充到 secureConnectionsData 数组中
```
5. 创建 OoB 配对。
```
device.createBondOutOfBand(secureConnectionsData);
```
6. 在蓝牙配对对话框中点击“配对”按钮。
7. 发送配对确认。
```
device.setPairingConfirmation(true);
```
8. 等待配对成功。
```
private final BroadcastReceiver pairingRequestReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
device.setPairingConfirmation(true);
}
}
};
IntentFilter pairingRequestIntent = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
registerReceiver(pairingRequestReceiver, pairingRequestIntent);
```
注意:这里的代码仅提供一个基本的 OoB 配对流程示例,实际使用时可能需要根据具体情况进行修改和补充。
static int wifi_plat_dev_drv_suspend(struct platform_device *pdev, pm_message_t state) { DHD_TRACE(("##> %s\n", __FUNCTION__)); #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 39)) && defined(OOB_INTR_ONLY) && \ defined(BCMSDIO) bcmsdh_oob_intr_set(0); #endif /* (OOB_INTR_ONLY) */ return 0; }
这段代码是一个函数,用于在平台设备驱动程序中挂起(suspend)Wi-Fi 适配器。在函数中,首先打印了一个跟踪信息,然后根据一些条件对代码进行了条件编译。
在条件编译的部分,首先判断当前的 Linux 内核版本是否小于等于 2.6.39,并且定义了 OOB_INTR_ONLY 和 BCMSDIO。如果满足这些条件,就会执行以下操作:
1. 调用 bcmsdh_oob_intr_set 函数,将 OOB(Out-of-Band)中断设置为 0。这个函数可能是用于设置 Wi-Fi 适配器的 OOB 中断的。
最后,函数返回 0,表示成功挂起驱动程序。
请注意,我是一个 AI 模型,并不能真正运行代码,只能提供一些简单的理解和解释。如果需要详细了解函数的具体实现和上下文,还需要查看其他相关代码。
阅读全文