Bluetooth: Add support for handling signature resolving keys
[pandora-kernel.git] / include / net / bluetooth / mgmt.h
index e19049f..d4b571c 100644 (file)
@@ -95,6 +95,8 @@ struct mgmt_rp_read_index_list {
 #define MGMT_SETTING_LE                        0x00000200
 #define MGMT_SETTING_ADVERTISING       0x00000400
 #define MGMT_SETTING_SECURE_CONN       0x00000800
+#define MGMT_SETTING_DEBUG_KEYS                0x00001000
+#define MGMT_SETTING_PRIVACY           0x00002000
 
 #define MGMT_OP_READ_INFO              0x0004
 #define MGMT_READ_INFO_SIZE            0
@@ -181,11 +183,11 @@ struct mgmt_cp_load_link_keys {
 
 struct mgmt_ltk_info {
        struct mgmt_addr_info addr;
-       __u8    authenticated;
+       __u8    type;
        __u8    master;
        __u8    enc_size;
        __le16  ediv;
-       __u8    rand[8];
+       __le64  rand;
        __u8    val[16];
 } __packed;
 
@@ -386,6 +388,27 @@ struct mgmt_cp_set_scan_params {
 
 #define MGMT_OP_SET_SECURE_CONN                0x002D
 
+#define MGMT_OP_SET_DEBUG_KEYS         0x002E
+
+#define MGMT_OP_SET_PRIVACY            0x002F
+struct mgmt_cp_set_privacy {
+       __u8 privacy;
+       __u8 irk[16];
+} __packed;
+#define MGMT_SET_PRIVACY_SIZE          17
+
+struct mgmt_irk_info {
+       struct mgmt_addr_info addr;
+       __u8 val[16];
+} __packed;
+
+#define MGMT_OP_LOAD_IRKS              0x0030
+struct mgmt_cp_load_irks {
+       __le16 irk_count;
+       struct mgmt_irk_info irks[0];
+} __packed;
+#define MGMT_LOAD_IRKS_SIZE            2
+
 #define MGMT_EV_CMD_COMPLETE           0x0001
 struct mgmt_ev_cmd_complete {
        __le16  opcode;
@@ -521,3 +544,22 @@ struct mgmt_ev_passkey_notify {
        __le32  passkey;
        __u8    entered;
 } __packed;
+
+#define MGMT_EV_NEW_IRK                        0x0018
+struct mgmt_ev_new_irk {
+       __u8     store_hint;
+       bdaddr_t rpa;
+       struct mgmt_irk_info irk;
+} __packed;
+
+struct mgmt_csrk_info {
+       struct mgmt_addr_info addr;
+       __u8 master;
+       __u8 val[16];
+} __packed;
+
+#define MGMT_EV_NEW_CSRK               0x0019
+struct mgmt_ev_new_csrk {
+       __u8 store_hint;
+       struct mgmt_csrk_info key;
+} __packed;