Thread (18 messages) flat view 18 messages, 3 authors, 2011-06-09

Re: [bluetooth-next 00/13] SMP Key Exchange Support

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2011-06-09 13:02:36

Hi Vinicius,

On Wed, Jun 8, 2011 at 7:50 AM, Vinicius Costa Gomes
[off-list ref] wrote:
Hi,

This will introduce support for Exchanging Keys with remote devices.

The keys will be generated by the kernel and will be notified to
userspace so they can be stored. The management interface will
be used for this communication.

The "new key" event and the "load keys" command had to be changed, so
more information could be added to each key, for example, the long term
key has a 16bit number and a 64bit random value associated with it. But,
userpace isn't aware of the format of those keys, it just knows that they
are present or not.

Another thing that should be noted is that the link_keys list (already
present) is used to store these keys, including the Short Term Key, as
it makes the handling of this type of key more transparent.

The related userspace changes should appear a little after this series.


Cheers,
--

Anderson Lizardo (1):
 Bluetooth: Add support for random destination address

Vinicius Costa Gomes (12):
 Bluetooth: Add support for SMP phase 3 (key distribution)
 Bluetooth: Fix sending wrong IO Capabilities value
 Bluetooth: Add new structures for supporting SM key distribution
 Bluetooth: Add functions to manipulate the link key list for SMP
 Bluetooth: Reject an encryption request when the key isn't found
 Bluetooth: Add support for providing parameters to LE Start
   Encryption
 Bluetooth: Fix SM pairing parameters negotiation
 Bluetooth: Add support for storing the LTK
 Bluetooth: Use the link key list to temporarily store the STK
 Bluetooth: Use the stored LTK for restabilishing security
 Bluetooth: Remove unused field in hci_conn
 Bluetooth: Add support for communicating keys with userspace

 include/net/bluetooth/hci.h      |    4 +
 include/net/bluetooth/hci_core.h |   25 ++++-
 include/net/bluetooth/mgmt.h     |    2 +
 include/net/bluetooth/smp.h      |    1 +
 net/bluetooth/hci_conn.c         |    5 +-
 net/bluetooth/hci_core.c         |   81 ++++++++++++++
 net/bluetooth/hci_event.c        |   18 +++-
 net/bluetooth/l2cap_core.c       |    1 +
 net/bluetooth/mgmt.c             |   60 ++++++++---
 net/bluetooth/smp.c              |  214 ++++++++++++++++++++++++++++++++++----
 10 files changed, 368 insertions(+), 43 deletions(-)
This patches seems to be working fine, tried with pts and some other
stacks without problem, the only inconvenients for testing are the
hardcoded io capabilitity, hardcoded distribution keys (it seems we
distribute only LTK) and not being able to remove keys other than
remove the adapter (didn't try reset).

-- 
Luiz Augusto von Dentz
Computer Engineer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help