The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_ARM_BEETLE_SOC/TOOLCHAIN_IAR/smp_defs.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 171:3a7713b1edbc | 1 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 2 | /*! |
AnnaBridge | 171:3a7713b1edbc | 3 | * \file smp_defs.h |
AnnaBridge | 171:3a7713b1edbc | 4 | * |
AnnaBridge | 171:3a7713b1edbc | 5 | * \brief Security manager constants and definitions from the Bluetooth specification. |
AnnaBridge | 171:3a7713b1edbc | 6 | * |
AnnaBridge | 171:3a7713b1edbc | 7 | * $Date: 2015-10-15 10:06:43 -0700 (Thu, 15 Oct 2015) $ |
AnnaBridge | 171:3a7713b1edbc | 8 | * $Revision: 4216 $ |
AnnaBridge | 171:3a7713b1edbc | 9 | * |
AnnaBridge | 171:3a7713b1edbc | 10 | * Copyright (c) 2010 Wicentric, Inc., all rights reserved. |
AnnaBridge | 171:3a7713b1edbc | 11 | * Wicentric confidential and proprietary. |
AnnaBridge | 171:3a7713b1edbc | 12 | * |
AnnaBridge | 171:3a7713b1edbc | 13 | * IMPORTANT. Your use of this file is governed by a Software License Agreement |
AnnaBridge | 171:3a7713b1edbc | 14 | * ("Agreement") that must be accepted in order to download or otherwise receive a |
AnnaBridge | 171:3a7713b1edbc | 15 | * copy of this file. You may not use or copy this file for any purpose other than |
AnnaBridge | 171:3a7713b1edbc | 16 | * as described in the Agreement. If you do not agree to all of the terms of the |
AnnaBridge | 171:3a7713b1edbc | 17 | * Agreement do not use this file and delete all copies in your possession or control; |
AnnaBridge | 171:3a7713b1edbc | 18 | * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior |
AnnaBridge | 171:3a7713b1edbc | 19 | * to any use, copying or further distribution of this software. |
AnnaBridge | 171:3a7713b1edbc | 20 | */ |
AnnaBridge | 171:3a7713b1edbc | 21 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 22 | #ifndef SMP_DEFS_H |
AnnaBridge | 171:3a7713b1edbc | 23 | #define SMP_DEFS_H |
AnnaBridge | 171:3a7713b1edbc | 24 | |
AnnaBridge | 171:3a7713b1edbc | 25 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 26 | extern "C" { |
AnnaBridge | 171:3a7713b1edbc | 27 | #endif |
AnnaBridge | 171:3a7713b1edbc | 28 | |
AnnaBridge | 171:3a7713b1edbc | 29 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 30 | Macros |
AnnaBridge | 171:3a7713b1edbc | 31 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 32 | |
AnnaBridge | 171:3a7713b1edbc | 33 | /*! PDU format */ |
AnnaBridge | 171:3a7713b1edbc | 34 | #define SMP_HDR_LEN 1 /*! Attribute PDU header length */ |
AnnaBridge | 171:3a7713b1edbc | 35 | |
AnnaBridge | 171:3a7713b1edbc | 36 | /*! Protocol timeout */ |
AnnaBridge | 171:3a7713b1edbc | 37 | #define SMP_TIMEOUT 30 /*! Protocol timeout in seconds */ |
AnnaBridge | 171:3a7713b1edbc | 38 | |
AnnaBridge | 171:3a7713b1edbc | 39 | /*! Encryption key size */ |
AnnaBridge | 171:3a7713b1edbc | 40 | #define SMP_KEY_SIZE_MAX 16 /*! Maximum encryption key size */ |
AnnaBridge | 171:3a7713b1edbc | 41 | #define SMP_KEY_SIZE_MIN 7 /*! Minimum encryption key size */ |
AnnaBridge | 171:3a7713b1edbc | 42 | |
AnnaBridge | 171:3a7713b1edbc | 43 | /*! OOB and PIN data lengths in bytes */ |
AnnaBridge | 171:3a7713b1edbc | 44 | #define SMP_OOB_LEN 16 |
AnnaBridge | 171:3a7713b1edbc | 45 | #define SMP_PIN_LEN 3 |
AnnaBridge | 171:3a7713b1edbc | 46 | |
AnnaBridge | 171:3a7713b1edbc | 47 | /*! Error codes */ |
AnnaBridge | 171:3a7713b1edbc | 48 | #define SMP_ERR_PASSKEY_ENTRY 0x01 /*! User input of passkey failed */ |
AnnaBridge | 171:3a7713b1edbc | 49 | #define SMP_ERR_OOB 0x02 /*! OOB data is not available */ |
AnnaBridge | 171:3a7713b1edbc | 50 | #define SMP_ERR_AUTH_REQ 0x03 /*! Authentication requirements cannot be met */ |
AnnaBridge | 171:3a7713b1edbc | 51 | #define SMP_ERR_CONFIRM_VALUE 0x04 /*! Confirm value does not match */ |
AnnaBridge | 171:3a7713b1edbc | 52 | #define SMP_ERR_PAIRING_NOT_SUP 0x05 /*! Pairing is not supported by the device */ |
AnnaBridge | 171:3a7713b1edbc | 53 | #define SMP_ERR_ENC_KEY_SIZE 0x06 /*! Insufficient encryption key size */ |
AnnaBridge | 171:3a7713b1edbc | 54 | #define SMP_ERR_COMMAND_NOT_SUP 0x07 /*! Command not supported */ |
AnnaBridge | 171:3a7713b1edbc | 55 | #define SMP_ERR_UNSPECIFIED 0x08 /*! Unspecified reason */ |
AnnaBridge | 171:3a7713b1edbc | 56 | #define SMP_ERR_ATTEMPTS 0x09 /*! Repeated attempts */ |
AnnaBridge | 171:3a7713b1edbc | 57 | #define SMP_ERR_INVALID_PARAM 0x0A /*! Invalid parameter or command length */ |
AnnaBridge | 171:3a7713b1edbc | 58 | #define SMP_ERR_DH_KEY_CHECK 0x0B /*! DH Key check did not match */ |
AnnaBridge | 171:3a7713b1edbc | 59 | #define SMP_ERR_NUMERIC_COMPARISON 0x0C /*! Numeric comparison did not match */ |
AnnaBridge | 171:3a7713b1edbc | 60 | #define SMP_ERR_BR_EDR_IN_PROGRESS 0x0D /*! BR/EDR in progress */ |
AnnaBridge | 171:3a7713b1edbc | 61 | #define SMP_ERR_CROSS_TRANSPORT 0x0E /*! BR/EDR Cross transport key generation not allowed */ |
AnnaBridge | 171:3a7713b1edbc | 62 | |
AnnaBridge | 171:3a7713b1edbc | 63 | /*! Proprietary internal error codes */ |
AnnaBridge | 171:3a7713b1edbc | 64 | #define SMP_ERR_MEMORY 0xE0 /*! Out of memory */ |
AnnaBridge | 171:3a7713b1edbc | 65 | #define SMP_ERR_TIMEOUT 0xE1 /*! Transaction timeout */ |
AnnaBridge | 171:3a7713b1edbc | 66 | |
AnnaBridge | 171:3a7713b1edbc | 67 | /*! Command codes */ |
AnnaBridge | 171:3a7713b1edbc | 68 | #define SMP_CMD_PAIR_REQ 0x01 /*! Pairing Request */ |
AnnaBridge | 171:3a7713b1edbc | 69 | #define SMP_CMD_PAIR_RSP 0x02 /*! Pairing Response */ |
AnnaBridge | 171:3a7713b1edbc | 70 | #define SMP_CMD_PAIR_CNF 0x03 /*! Pairing Confirm */ |
AnnaBridge | 171:3a7713b1edbc | 71 | #define SMP_CMD_PAIR_RAND 0x04 /*! Pairing Random */ |
AnnaBridge | 171:3a7713b1edbc | 72 | #define SMP_CMD_PAIR_FAIL 0x05 /*! Pairing Failed */ |
AnnaBridge | 171:3a7713b1edbc | 73 | #define SMP_CMD_ENC_INFO 0x06 /*! Encryption Information */ |
AnnaBridge | 171:3a7713b1edbc | 74 | #define SMP_CMD_MASTER_ID 0x07 /*! Master Identification */ |
AnnaBridge | 171:3a7713b1edbc | 75 | #define SMP_CMD_ID_INFO 0x08 /*! Identity Information */ |
AnnaBridge | 171:3a7713b1edbc | 76 | #define SMP_CMD_ID_ADDR_INFO 0x09 /*! Identity Address Information */ |
AnnaBridge | 171:3a7713b1edbc | 77 | #define SMP_CMD_SIGN_INFO 0x0A /*! Signing Information */ |
AnnaBridge | 171:3a7713b1edbc | 78 | #define SMP_CMD_SECURITY_REQ 0x0B /*! Security Request */ |
AnnaBridge | 171:3a7713b1edbc | 79 | #define SMP_CMD_PUBLIC_KEY 0x0C /*! Public Key */ |
AnnaBridge | 171:3a7713b1edbc | 80 | #define SMP_CMD_DHKEY_CHECK 0x0D /*! DH Key Check */ |
AnnaBridge | 171:3a7713b1edbc | 81 | #define SMP_CMD_KEYPRESS 0x0E /*! User Key Press */ |
AnnaBridge | 171:3a7713b1edbc | 82 | #define SMP_CMD_MAX 0x0F /*! Command code maximum */ |
AnnaBridge | 171:3a7713b1edbc | 83 | |
AnnaBridge | 171:3a7713b1edbc | 84 | /*! Command packet lengths */ |
AnnaBridge | 171:3a7713b1edbc | 85 | #define SMP_PAIR_REQ_LEN 7 |
AnnaBridge | 171:3a7713b1edbc | 86 | #define SMP_PAIR_RSP_LEN 7 |
AnnaBridge | 171:3a7713b1edbc | 87 | #define SMP_PAIR_CNF_LEN 17 |
AnnaBridge | 171:3a7713b1edbc | 88 | #define SMP_PAIR_RAND_LEN 17 |
AnnaBridge | 171:3a7713b1edbc | 89 | #define SMP_PAIR_FAIL_LEN 2 |
AnnaBridge | 171:3a7713b1edbc | 90 | #define SMP_ENC_INFO_LEN 17 |
AnnaBridge | 171:3a7713b1edbc | 91 | #define SMP_MASTER_ID_LEN 11 |
AnnaBridge | 171:3a7713b1edbc | 92 | #define SMP_ID_INFO_LEN 17 |
AnnaBridge | 171:3a7713b1edbc | 93 | #define SMP_ID_ADDR_INFO_LEN 8 |
AnnaBridge | 171:3a7713b1edbc | 94 | #define SMP_SIGN_INFO_LEN 17 |
AnnaBridge | 171:3a7713b1edbc | 95 | #define SMP_SECURITY_REQ_LEN 2 |
AnnaBridge | 171:3a7713b1edbc | 96 | #define SMP_PUB_KEY_MSG_LEN (1 + 2*SMP_PUB_KEY_LEN) |
AnnaBridge | 171:3a7713b1edbc | 97 | #define SMP_DHKEY_CHECK_MSG_LEN (1 + SMP_DHKEY_CHECK_LEN) |
AnnaBridge | 171:3a7713b1edbc | 98 | #define SMP_KEYPRESS_MSG_LEN 2 |
AnnaBridge | 171:3a7713b1edbc | 99 | |
AnnaBridge | 171:3a7713b1edbc | 100 | /*! I/O capabilities */ |
AnnaBridge | 171:3a7713b1edbc | 101 | #define SMP_IO_DISP_ONLY 0x00 /*! DisplayOnly */ |
AnnaBridge | 171:3a7713b1edbc | 102 | #define SMP_IO_DISP_YES_NO 0x01 /*! DisplayYesNo */ |
AnnaBridge | 171:3a7713b1edbc | 103 | #define SMP_IO_KEY_ONLY 0x02 /*! KeyboardOnly */ |
AnnaBridge | 171:3a7713b1edbc | 104 | #define SMP_IO_NO_IN_NO_OUT 0x03 /*! NoInputNoOutput */ |
AnnaBridge | 171:3a7713b1edbc | 105 | #define SMP_IO_KEY_DISP 0x04 /*! KeyboardDisplay */ |
AnnaBridge | 171:3a7713b1edbc | 106 | |
AnnaBridge | 171:3a7713b1edbc | 107 | /*! OOB data present */ |
AnnaBridge | 171:3a7713b1edbc | 108 | #define SMP_OOB_DATA_NONE 0x00 |
AnnaBridge | 171:3a7713b1edbc | 109 | #define SMP_OOB_DATA_PRESENT 0x01 |
AnnaBridge | 171:3a7713b1edbc | 110 | |
AnnaBridge | 171:3a7713b1edbc | 111 | /*! Authentication/security properties bit mask */ |
AnnaBridge | 171:3a7713b1edbc | 112 | #define SMP_AUTH_BOND_MASK 0x03 /*! Mask for bonding bits */ |
AnnaBridge | 171:3a7713b1edbc | 113 | #define SMP_AUTH_BOND_FLAG 0x01 /*! Bonding requested */ |
AnnaBridge | 171:3a7713b1edbc | 114 | #define SMP_AUTH_MITM_FLAG 0x04 /*! MITM (authenticated pairing) requested */ |
AnnaBridge | 171:3a7713b1edbc | 115 | #define SMP_AUTH_SC_FLAG 0x08 /*! LE Secure Connections requested */ |
AnnaBridge | 171:3a7713b1edbc | 116 | #define SMP_AUTH_KP_FLAG 0x10 /*! Keypress notifications requested */ |
AnnaBridge | 171:3a7713b1edbc | 117 | |
AnnaBridge | 171:3a7713b1edbc | 118 | /*! Key distribution bit mask */ |
AnnaBridge | 171:3a7713b1edbc | 119 | #define SMP_KEY_DIST_ENC 0x01 /*! Distribute LTK */ |
AnnaBridge | 171:3a7713b1edbc | 120 | #define SMP_KEY_DIST_ID 0x02 /*! Distribute IRK */ |
AnnaBridge | 171:3a7713b1edbc | 121 | #define SMP_KEY_DIST_SIGN 0x04 /*! Distribute CSRK */ |
AnnaBridge | 171:3a7713b1edbc | 122 | #define SMP_KEY_DIST_MASK (SMP_KEY_DIST_ENC | SMP_KEY_DIST_ID | SMP_KEY_DIST_SIGN) |
AnnaBridge | 171:3a7713b1edbc | 123 | |
AnnaBridge | 171:3a7713b1edbc | 124 | /*! LESC Passkey keypress types */ |
AnnaBridge | 171:3a7713b1edbc | 125 | #define SMP_PASSKEY_ENTRY_STARTED 0x00 /*! Passkey entry started keypress type */ |
AnnaBridge | 171:3a7713b1edbc | 126 | #define SMP_PASSKEY_DIGIT_ENTERED 0x01 /*! Passkey digit entered keypress type */ |
AnnaBridge | 171:3a7713b1edbc | 127 | #define SMP_PASSKEY_DIGIT_ERASED 0x02 /*! Passkey digit erased keypress type */ |
AnnaBridge | 171:3a7713b1edbc | 128 | #define SMP_PASSKEY_CLEARED 0x03 /*! Passkey cleared keypress type */ |
AnnaBridge | 171:3a7713b1edbc | 129 | #define SMP_PASSKEY_ENTRY_COMPLETED 0x04 /*! Passkey entry complete keypress type */ |
AnnaBridge | 171:3a7713b1edbc | 130 | |
AnnaBridge | 171:3a7713b1edbc | 131 | /*! Various parameter lengths */ |
AnnaBridge | 171:3a7713b1edbc | 132 | #define SMP_RAND_LEN 16 |
AnnaBridge | 171:3a7713b1edbc | 133 | #define SMP_CONFIRM_LEN 16 |
AnnaBridge | 171:3a7713b1edbc | 134 | #define SMP_KEY_LEN 16 |
AnnaBridge | 171:3a7713b1edbc | 135 | #define SMP_RAND8_LEN 8 |
AnnaBridge | 171:3a7713b1edbc | 136 | #define SMP_PRIVATE_KEY_LEN 32 |
AnnaBridge | 171:3a7713b1edbc | 137 | #define SMP_PUB_KEY_LEN 32 |
AnnaBridge | 171:3a7713b1edbc | 138 | #define SMP_DHKEY_LEN 32 |
AnnaBridge | 171:3a7713b1edbc | 139 | #define SMP_DHKEY_CHECK_LEN 16 |
AnnaBridge | 171:3a7713b1edbc | 140 | |
AnnaBridge | 171:3a7713b1edbc | 141 | /* CMAC Input Lengths */ |
AnnaBridge | 171:3a7713b1edbc | 142 | #define SMP_F4_TEXT_LEN (SMP_PUB_KEY_LEN * 2 + 1) |
AnnaBridge | 171:3a7713b1edbc | 143 | #define SMP_G2_TEXT_LEN (SMP_PUB_KEY_LEN * 2 + SMP_RAND_LEN) |
AnnaBridge | 171:3a7713b1edbc | 144 | #define SMP_F5_TKEY_TEXT_LEN (SMP_DHKEY_LEN) |
AnnaBridge | 171:3a7713b1edbc | 145 | #define SMP_F5_TEXT_LEN (9 + 2*BDA_ADDR_LEN + 2*SMP_RAND_LEN) |
AnnaBridge | 171:3a7713b1edbc | 146 | #define SMP_F6_TEXT_LEN (2*BDA_ADDR_LEN + 3*SMP_RAND_LEN + 5) |
AnnaBridge | 171:3a7713b1edbc | 147 | |
AnnaBridge | 171:3a7713b1edbc | 148 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 149 | }; |
AnnaBridge | 171:3a7713b1edbc | 150 | #endif |
AnnaBridge | 171:3a7713b1edbc | 151 | |
AnnaBridge | 171:3a7713b1edbc | 152 | #endif /* SMP_DEFS_H */ |