diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2011-02-19 10:05:57 -0500 |
---|---|---|
committer | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-02-21 15:22:44 -0500 |
commit | a5c296832b4fde7d32c01cff9cdd27d9c7c1c4f5 (patch) | |
tree | 895ae41944ca568f6eca3c7c4855211bd7db8540 /include | |
parent | e9a416b5ce0c0f93819f55d34cf6882196e9c3b2 (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.h | 17 | ||||
-rw-r--r-- | include/net/bluetooth/hci_core.h | 4 | ||||
-rw-r--r-- | include/net/bluetooth/mgmt.h | 20 |
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 | ||
419 | struct hci_cp_user_confirm_reply { | ||
420 | bdaddr_t bdaddr; | ||
421 | } __packed; | ||
422 | struct 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 |
419 | struct hci_cp_io_capability_neg_reply { | 430 | struct 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 | ||
951 | struct 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 |
940 | struct hci_ev_simple_pair_complete { | 957 | struct 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); | |||
762 | int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr); | 762 | int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr); |
763 | int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | 763 | int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); |
764 | int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | 764 | int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); |
765 | int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value); | ||
766 | int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | ||
767 | int 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 | ||
176 | struct mgmt_cp_user_confirm_reply { | ||
177 | __le16 index; | ||
178 | bdaddr_t bdaddr; | ||
179 | } __packed; | ||
180 | struct 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 |
176 | struct mgmt_ev_cmd_complete { | 189 | struct 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 | ||
257 | struct mgmt_ev_user_confirm_request { | ||
258 | __le16 index; | ||
259 | bdaddr_t bdaddr; | ||
260 | __le32 value; | ||
261 | } __packed; | ||