Bluetooth: Add SMP command structures
authorVille Tervo <ville.tervo@nokia.com>
Fri, 11 Feb 2011 01:38:54 +0000 (22:38 -0300)
committerGustavo F. Padovan <padovan@profusion.mobi>
Wed, 16 Feb 2011 19:33:19 +0000 (16:33 -0300)
Add command structures for security manager protocol.

Signed-off-by: Ville Tervo <ville.tervo@nokia.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
include/net/bluetooth/smp.h [new file with mode: 0644]

diff --git a/include/net/bluetooth/smp.h b/include/net/bluetooth/smp.h
new file mode 100644 (file)
index 0000000..8f2edbf
--- /dev/null
@@ -0,0 +1,76 @@
+#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 */