2012-11-28 21:27:35

by Ajay

[permalink] [raw]
Subject: BLE : SMP pairing + LE_Start_encryption


Hi,
how do i do smp pairing and ltk key distribution using l2cap socket
connection? does bluez provide any tools for LE pairing . my ultimate
result should be enabling LE_start_encryption , which requires ltk key
distribution (which is a part of LE_pairing).

spec 4.0 says we can use l2cap cid 0x06 , defined for this purpose
(smp pairing) . But when i used cid =0x06 , l2cap connect creates an
normal acl connection with cid = 40 , which doesnt trigger any smp
modules at remote side.

please look into this issue.
--
Thanks & regards

AJAY KV
GlobalEdge software Ltd
8892753703


2012-11-30 12:53:15

by Anderson Lizardo

[permalink] [raw]
Subject: Re: BLE : SMP pairing + LE_Start_encryption

Hi Ajay,

On Wed, Nov 28, 2012 at 8:35 PM, Ajay <[email protected]> wrote:
> is it possible to create an l2cap connection with cid 0x06 and psm 0
> ? , so that i can make use of dedicated smp-l2cap channel for data transfer
> . I wanted to try how the remote device is handling on receiving an
> smp_pairing_request . i have seen in l2cap_core.c , it is getting handled
> inside a switch case (case cid == L2CAP_CID_SMP).

On Linux, all communication over the LE SMP CID is done on the kernel.
So you need to use either increase socket seclevel using setsockopt()
or using "Pair Device" from mgmt API to send the SMP Pairing Request
from userspace.

I don't know how you can send "raw" SMP requests from userspace.

Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

2012-11-29 00:35:51

by Ajay

[permalink] [raw]
Subject: Re: BLE : SMP pairing + LE_Start_encryption

On Friday 30 November 2012 05:38 PM, Anderson Lizardo wrote:
> Hi Ajay,
>
> On Wed, Nov 28, 2012 at 5:27 PM, Ajay <[email protected]> wrote:
>>
>> Hi,
>> how do i do smp pairing and ltk key distribution using l2cap socket
>> connection? does bluez provide any tools for LE pairing . my ultimate
>> result should be enabling LE_start_encryption , which requires ltk key
>> distribution (which is a part of LE_pairing).
>
> Either using mgmt API to do pairing (see mgmt_create_bonding() in
> src/mgmt.c from bluez sources and doc/mgmt-api.txt for how to do this)
> or increase socket security level to at least medium using
> setsockopt() (see set_sec_level() in btio/btio.c for how to do this).
>
> In summary, you will need to use BlueZ code as reference if you want
> to do these things on your own. The easier route is to use BlueZ D-Bus
> API to do pairing.
>
> Regards,
>
thanks Anderson ,
sorry if im confusing you .
is it possible to create an l2cap connection with cid 0x06 and psm 0 ?
, so that i can make use of dedicated smp-l2cap channel for data
transfer . I wanted to try how the remote device is handling on
receiving an smp_pairing_request . i have seen in l2cap_core.c , it is
getting handled inside a switch case (case cid == L2CAP_CID_SMP).

--
Thanks & regards

AJAY KV
GlobalEdge software Ltd
8892753703

2012-11-30 12:08:04

by Anderson Lizardo

[permalink] [raw]
Subject: Re: BLE : SMP pairing + LE_Start_encryption

Hi Ajay,

On Wed, Nov 28, 2012 at 5:27 PM, Ajay <[email protected]> wrote:
>
> Hi,
> how do i do smp pairing and ltk key distribution using l2cap socket
> connection? does bluez provide any tools for LE pairing . my ultimate
> result should be enabling LE_start_encryption , which requires ltk key
> distribution (which is a part of LE_pairing).

Either using mgmt API to do pairing (see mgmt_create_bonding() in
src/mgmt.c from bluez sources and doc/mgmt-api.txt for how to do this)
or increase socket security level to at least medium using
setsockopt() (see set_sec_level() in btio/btio.c for how to do this).

In summary, you will need to use BlueZ code as reference if you want
to do these things on your own. The easier route is to use BlueZ D-Bus
API to do pairing.

Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil