aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-03-10 02:38:42 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2014-03-10 08:57:33 -0400
commit53ac6ab612456a13bf0f6bad89c1503616e4de3b (patch)
tree708d42ebd070e008dbb579e8ca8f5194e6ba5006 /include/net
parent7ee4ea3692f20b87b0e0d3884d5b2d22ec1a2df0 (diff)
Bluetooth: Make LTK and CSRK only persisent when bonding
In case the pairable option has been disabled, the pairing procedure does not create keys for bonding. This means that these generated keys should not be stored persistently. For LTK and CSRK this is important to tell userspace to not store these new keys. They will be available for the lifetime of the device, but after the next power cycle they should not be used anymore. Inform userspace to actually store the keys persistently only if both sides request bonding. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/bluetooth/hci_core.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index e869884fbfa9..b8cc39a4a9a5 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -1270,9 +1270,10 @@ void mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
1270void mgmt_discovering(struct hci_dev *hdev, u8 discovering); 1270void mgmt_discovering(struct hci_dev *hdev, u8 discovering);
1271int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); 1271int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
1272int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); 1272int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
1273void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key); 1273void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent);
1274void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk); 1274void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk);
1275void mgmt_new_csrk(struct hci_dev *hdev, struct smp_csrk *csrk); 1275void mgmt_new_csrk(struct hci_dev *hdev, struct smp_csrk *csrk,
1276 bool persistent);
1276void mgmt_reenable_advertising(struct hci_dev *hdev); 1277void mgmt_reenable_advertising(struct hci_dev *hdev);
1277void mgmt_smp_complete(struct hci_conn *conn, bool complete); 1278void mgmt_smp_complete(struct hci_conn *conn, bool complete);
1278 1279