Hello everyone,
I am developing a project where I need to perform bluetooth OOB pairing using an NFC reader. I have a couple questions about this.
The first is, what options do I need to enable in proj.conf to enbale LE Secure Connections OOB pairing? I know for this method, according to Bluetooth Spec and NDEF forum the mandatory fields should be: Role, Address, Confirmation and Random values (16-byte). I have checked some options like: "BT_SMP_SC_ONLY", "BT_SMP_SC_PAIR_ONLY" and "BT_OOB_DATA_FIXED", but I am confused about which should I set.
Then, I am getting the Address, Random and Confirm values from this function:
bt_le_oob oob_data; rc = bt_le_oob_get_local(0, &oob_data);
Where, the oob_data structure has a structure with the address and type, as well as a bt_le_oob_sc_data structure with the 2 16-byte arrays (R and C). Is this correct or should I use some elyptic curve function to generate these values?
Finnaly, I have set the board to advertise and have set these connection and pairing callbacks:
conn_callbacks = { .connected = BluetoothConnected, .disconnected = BluetoothDisconnected, .security_changed = SecurityChanged }; bt_conn_auth_info = { .pairing_complete = BluetoothPairingCompleted, .pairing_failed = BluetoothPairingFailed }; auth_cb_display = { .passkey_display = AuthPasskeyDisplay, .passkey_confirm = AuthPasskeyConfirm, .cancel = AuthCancel };
Is this correct or do I need anything else?
Best regards.