| #ifndef __SMP_H |
| #define __SMP_H |
| |
| struct smp_command_hdr { |
| __u8 code; |
| } __packed; |
| |
| #define SMP_CMD_PAIRING_REQ 0x01 |
| #define SMP_CMD_PAIRING_RSP 0x02 |
| struct smp_cmd_pairing { |
| __u8 io_capability; |
| __u8 oob_flag; |
| __u8 auth_req; |
| __u8 max_key_size; |
| __u8 init_key_dist; |
| __u8 resp_key_dist; |
| } __packed; |
| |
| #define SMP_CMD_PAIRING_CONFIRM 0x03 |
| struct smp_cmd_pairing_confirm { |
| __u8 confirm_val[16]; |
| } __packed; |
| |
| #define SMP_CMD_PAIRING_RANDOM 0x04 |
| struct smp_cmd_pairing_random { |
| __u8 rand_val[16]; |
| } __packed; |
| |
| #define SMP_CMD_PAIRING_FAIL 0x05 |
| struct smp_cmd_pairing_fail { |
| __u8 reason; |
| } __packed; |
| |
| #define SMP_CMD_ENCRYPT_INFO 0x06 |
| struct smp_cmd_encrypt_info { |
| __u8 ltk[16]; |
| } __packed; |
| |
| #define SMP_CMD_MASTER_IDENT 0x07 |
| struct smp_cmd_master_ident { |
| __u16 ediv; |
| __u8 rand[8]; |
| } __packed; |
| |
| #define SMP_CMD_IDENT_INFO 0x08 |
| struct smp_cmd_ident_info { |
| __u8 irk[16]; |
| } __packed; |
| |
| #define SMP_CMD_IDENT_ADDR_INFO 0x09 |
| struct smp_cmd_ident_addr_info { |
| __u8 addr_type; |
| bdaddr_t bdaddr; |
| } __packed; |
| |
| #define SMP_CMD_SIGN_INFO 0x0a |
| struct smp_cmd_sign_info { |
| __u8 csrk[16]; |
| } __packed; |
| |
| #define SMP_CMD_SECURITY_REQ 0x0b |
| struct smp_cmd_security_req { |
| __u8 auth_req; |
| } __packed; |
| |
| #define SMP_PASSKEY_ENTRY_FAILED 0x01 |
| #define SMP_OOB_NOT_AVAIL 0x02 |
| #define SMP_AUTH_REQUIREMENTS 0x03 |
| #define SMP_CONFIRM_FAILED 0x04 |
| #define SMP_PAIRING_NOTSUPP 0x05 |
| #define SMP_ENC_KEY_SIZE 0x06 |
| #define SMP_CMD_NOTSUPP 0x07 |
| #define SMP_UNSPECIFIED 0x08 |
| #define SMP_REPEATED_ATTEMPTS 0x09 |
| |
| #endif /* __SMP_H */ |