aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2011-02-19 10:05:57 -0500
committerGustavo F. Padovan <padovan@profusion.mobi>2011-02-21 15:22:44 -0500
commita5c296832b4fde7d32c01cff9cdd27d9c7c1c4f5 (patch)
tree895ae41944ca568f6eca3c7c4855211bd7db8540 /include
parente9a416b5ce0c0f93819f55d34cf6882196e9c3b2 (diff)
Bluetooth: Add management support for user confirmation request
This patch adds support for the user confirmation (numeric comparison) Secure Simple Pairing authentication method. Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'include')
-rw-r--r--include/net/bluetooth/hci.h17
-rw-r--r--include/net/bluetooth/hci_core.h4
-rw-r--r--include/net/bluetooth/mgmt.h20
3 files changed, 41 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index a5f8c4684a32..ec6acf2f1c0b 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -415,6 +415,17 @@ struct hci_cp_io_capability_reply {
415 __u8 authentication; 415 __u8 authentication;
416} __packed; 416} __packed;
417 417
418#define HCI_OP_USER_CONFIRM_REPLY 0x042c
419struct hci_cp_user_confirm_reply {
420 bdaddr_t bdaddr;
421} __packed;
422struct hci_rp_user_confirm_reply {
423 __u8 status;
424 bdaddr_t bdaddr;
425} __packed;
426
427#define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d
428
418#define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434 429#define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434
419struct hci_cp_io_capability_neg_reply { 430struct hci_cp_io_capability_neg_reply {
420 bdaddr_t bdaddr; 431 bdaddr_t bdaddr;
@@ -936,6 +947,12 @@ struct hci_ev_io_capa_reply {
936 __u8 authentication; 947 __u8 authentication;
937} __packed; 948} __packed;
938 949
950#define HCI_EV_USER_CONFIRM_REQUEST 0x33
951struct hci_ev_user_confirm_req {
952 bdaddr_t bdaddr;
953 __le32 passkey;
954} __packed;
955
939#define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 956#define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36
940struct hci_ev_simple_pair_complete { 957struct hci_ev_simple_pair_complete {
941 __u8 status; 958 __u8 status;
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 506f25089207..05f4706e6c34 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -762,6 +762,10 @@ int mgmt_connect_failed(u16 index, bdaddr_t *bdaddr, u8 status);
762int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr); 762int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr);
763int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); 763int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
764int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); 764int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
765int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value);
766int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
767int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr,
768 u8 status);
765 769
766/* HCI info for socket */ 770/* HCI info for socket */
767#define hci_pi(sk) ((struct hci_pinfo *) sk) 771#define hci_pi(sk) ((struct hci_pinfo *) sk)
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index 1d25c59be2e3..52376a3295ca 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -172,6 +172,19 @@ struct mgmt_rp_pair_device {
172 __u8 status; 172 __u8 status;
173} __packed; 173} __packed;
174 174
175#define MGMT_OP_USER_CONFIRM_REPLY 0x0015
176struct mgmt_cp_user_confirm_reply {
177 __le16 index;
178 bdaddr_t bdaddr;
179} __packed;
180struct mgmt_rp_user_confirm_reply {
181 __le16 index;
182 bdaddr_t bdaddr;
183 __u8 status;
184} __packed;
185
186#define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x0016
187
175#define MGMT_EV_CMD_COMPLETE 0x0001 188#define MGMT_EV_CMD_COMPLETE 0x0001
176struct mgmt_ev_cmd_complete { 189struct mgmt_ev_cmd_complete {
177 __le16 opcode; 190 __le16 opcode;
@@ -239,3 +252,10 @@ struct mgmt_ev_pin_code_request {
239 __le16 index; 252 __le16 index;
240 bdaddr_t bdaddr; 253 bdaddr_t bdaddr;
241} __packed; 254} __packed;
255
256#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F
257struct mgmt_ev_user_confirm_request {
258 __le16 index;
259 bdaddr_t bdaddr;
260 __le32 value;
261} __packed;