Security manager constants and definitions from the Bluetooth specification. More...
Go to the source code of this file.
Macros | |
#define | SMP_HDR_LEN 1 |
PDU format. More... | |
#define | SMP_TIMEOUT 30 |
Protocol timeout. More... | |
#define | SMP_OOB_LEN 16 |
OOB Data length in bytes. More... | |
#define | SMP_PIN_LEN 3 |
Passkey Pin lenght in bytes. More... | |
SMP Encryption Key Size | |
#define | SMP_KEY_SIZE_MAX 16 |
Maximum encryption key size. More... | |
#define | SMP_KEY_SIZE_MIN 7 |
Minimum encryption key size. More... | |
SMP Error Codes | |
SMP PDU status codes | |
#define | SMP_ERR_PASSKEY_ENTRY 0x01 |
User input of passkey failed. More... | |
#define | SMP_ERR_OOB 0x02 |
OOB data is not available. More... | |
#define | SMP_ERR_AUTH_REQ 0x03 |
Authentication requirements cannot be met. More... | |
#define | SMP_ERR_CONFIRM_VALUE 0x04 |
Confirm value does not match. More... | |
#define | SMP_ERR_PAIRING_NOT_SUP 0x05 |
Pairing is not supported by the device. More... | |
#define | SMP_ERR_ENC_KEY_SIZE 0x06 |
Insufficient encryption key size. More... | |
#define | SMP_ERR_COMMAND_NOT_SUP 0x07 |
Command not supported. More... | |
#define | SMP_ERR_UNSPECIFIED 0x08 |
Unspecified reason. More... | |
#define | SMP_ERR_ATTEMPTS 0x09 |
Repeated attempts. More... | |
#define | SMP_ERR_INVALID_PARAM 0x0A |
Invalid parameter or command length. More... | |
#define | SMP_ERR_DH_KEY_CHECK 0x0B |
DH Key check did not match. More... | |
#define | SMP_ERR_NUMERIC_COMPARISON 0x0C |
Numeric comparison did not match. More... | |
#define | SMP_ERR_BR_EDR_IN_PROGRESS 0x0D |
BR/EDR in progress. More... | |
#define | SMP_ERR_CROSS_TRANSPORT 0x0E |
BR/EDR cross transport key generation not allowed. More... | |
Proprietary Error Codes | |
Internal error codes not sent in any SMP PDU. | |
#define | SMP_ERR_MEMORY 0xE0 |
Out of memory. More... | |
#define | SMP_ERR_TIMEOUT 0xE1 |
Transaction timeout. More... | |
SMP PDU Codes | |
SMP PDU Code describing command received or sent. | |
#define | SMP_CMD_PAIR_REQ 0x01 |
Pairing request. More... | |
#define | SMP_CMD_PAIR_RSP 0x02 |
Pairing response. More... | |
#define | SMP_CMD_PAIR_CNF 0x03 |
Pairing confirm. More... | |
#define | SMP_CMD_PAIR_RAND 0x04 |
Pairing random. More... | |
#define | SMP_CMD_PAIR_FAIL 0x05 |
Pairing failed. More... | |
#define | SMP_CMD_ENC_INFO 0x06 |
Encryption information. More... | |
#define | SMP_CMD_MASTER_ID 0x07 |
Master identification. More... | |
#define | SMP_CMD_ID_INFO 0x08 |
Identity information. More... | |
#define | SMP_CMD_ID_ADDR_INFO 0x09 |
Identity address information. More... | |
#define | SMP_CMD_SIGN_INFO 0x0A |
Signing information. More... | |
#define | SMP_CMD_SECURITY_REQ 0x0B |
Security fequest. More... | |
#define | SMP_CMD_PUBLIC_KEY 0x0C |
Public Kkey. More... | |
#define | SMP_CMD_DHKEY_CHECK 0x0D |
DH Key check. More... | |
#define | SMP_CMD_KEYPRESS 0x0E |
User key press. More... | |
#define | SMP_CMD_MAX 0x0F |
Command code maximum. More... | |
SMP PDU Packet Lengths | |
Fixed length of the PDU to be sent. | |
#define | SMP_PAIR_REQ_LEN 7 |
Pairing request message length. More... | |
#define | SMP_PAIR_RSP_LEN 7 |
Pairing response message length. More... | |
#define | SMP_PAIR_CNF_LEN 17 |
Pairing confirmation message length. More... | |
#define | SMP_PAIR_RAND_LEN 17 |
Pairing random message length. More... | |
#define | SMP_PAIR_FAIL_LEN 2 |
Pairing fail message length. More... | |
#define | SMP_ENC_INFO_LEN 17 |
Encryption information message length. More... | |
#define | SMP_MASTER_ID_LEN 11 |
Master identification messagelength. More... | |
#define | SMP_ID_INFO_LEN 17 |
Identity information message length. More... | |
#define | SMP_ID_ADDR_INFO_LEN 8 |
Identity address information message length. More... | |
#define | SMP_SIGN_INFO_LEN 17 |
Signing information message length. More... | |
#define | SMP_SECURITY_REQ_LEN 2 |
Security request message length. More... | |
#define | SMP_PUB_KEY_MSG_LEN (1 + 2*SMP_PUB_KEY_LEN) |
Public key message length. More... | |
#define | SMP_DHKEY_CHECK_MSG_LEN (1 + SMP_DHKEY_CHECK_LEN) |
Diffie-Hellman key check message length. More... | |
#define | SMP_KEYPRESS_MSG_LEN 2 |
Keypress message length. More... | |
SMP I/O Capabilities | |
I/O capabilities codes to be set for SMP_CMD_PAIR_REQ and SMP_CMD_PAIR_RSP | |
#define | SMP_IO_DISP_ONLY 0x00 |
Display only. More... | |
#define | SMP_IO_DISP_YES_NO 0x01 |
Display yes/no. More... | |
#define | SMP_IO_KEY_ONLY 0x02 |
Keyboard only. More... | |
#define | SMP_IO_NO_IN_NO_OUT 0x03 |
No input, no output. More... | |
#define | SMP_IO_KEY_DISP 0x04 |
Keyboard display. More... | |
SMP OOB Data Flag | |
Out-of-Band codes to be set for SMP_CMD_PAIR_REQ and SMP_CMD_PAIR_RSP | |
#define | SMP_OOB_DATA_NONE 0x00 |
No OOB data from the remote device is present. More... | |
#define | SMP_OOB_DATA_PRESENT 0x01 |
OOB data from the remote device is present. More... | |
SMP Authentication Requirements Flags | |
Authentication Requirements Flags to be set for SMP_CMD_PAIR_REQ and SMP_CMD_PAIR_RSP. | |
#define | SMP_AUTH_BOND_MASK 0x03 |
Mask for bonding bits. More... | |
#define | SMP_AUTH_BOND_FLAG 0x01 |
Bonding requested. More... | |
#define | SMP_AUTH_MITM_FLAG 0x04 |
MITM (authenticated pairing) requested. More... | |
#define | SMP_AUTH_SC_FLAG 0x08 |
LE Secure Connections requested. More... | |
#define | SMP_AUTH_KP_FLAG 0x10 |
Keypress notifications requested. More... | |
SMP Key Distribution Flags | |
Flags of security keys this device is requesting to be distribution once pairing completes. | |
#define | SMP_KEY_DIST_ENC 0x01 |
Distribute LTK. More... | |
#define | SMP_KEY_DIST_ID 0x02 |
Distribute IRK. More... | |
#define | SMP_KEY_DIST_SIGN 0x04 |
Distribute CSRK. More... | |
#define | SMP_KEY_DIST_MASK (SMP_KEY_DIST_ENC | SMP_KEY_DIST_ID | SMP_KEY_DIST_SIGN) |
Key distribution mask. More... | |
SMP LE Secure Connection Keypress Codes | |
Keypress codes found in SMP_CMD_KEYPRESS PDU to be sent on the respective action when the SMP_AUTH_KP_FLAG is set in both the SMP_CMD_PAIR_REQ and SMP_CMD_PAIR_RSP. | |
#define | SMP_PASSKEY_ENTRY_STARTED 0x00 |
Passkey entry started keypress type. More... | |
#define | SMP_PASSKEY_DIGIT_ENTERED 0x01 |
Passkey digit entered keypress type. More... | |
#define | SMP_PASSKEY_DIGIT_ERASED 0x02 |
Passkey digit erased keypress type. More... | |
#define | SMP_PASSKEY_CLEARED 0x03 |
Passkey cleared keypress type. More... | |
#define | SMP_PASSKEY_ENTRY_COMPLETED 0x04 |
Passkey entry complete keypress type. More... | |
SMP Value Length Constants | |
Lengths of various keys and values. | |
#define | SMP_RAND_LEN 16 |
Random number length. More... | |
#define | SMP_CONFIRM_LEN 16 |
Confirm number length. More... | |
#define | SMP_KEY_LEN 16 |
Key length. More... | |
#define | SMP_RAND8_LEN 8 |
Random 8-byte number length. More... | |
#define | SMP_PRIVATE_KEY_LEN 32 |
Secure connections private key length. More... | |
#define | SMP_PUB_KEY_LEN 32 |
Secure connecdtions public key length. More... | |
#define | SMP_DHKEY_LEN 32 |
Secure connection Diffie-Hellman key length. More... | |
#define | SMP_DHKEY_CHECK_LEN 16 |
Secure connection Diffie-Hellman key check length. More... | |
CMAC Input Lengths Constants | |
Input lengths of SMP cryptopgraphic toolbox functions. | |
#define | SMP_F4_TEXT_LEN (SMP_PUB_KEY_LEN * 2 + 1) |
F4 input length. More... | |
#define | SMP_G2_TEXT_LEN (SMP_PUB_KEY_LEN * 2 + SMP_RAND_LEN) |
G2 input length. More... | |
#define | SMP_F5_TKEY_TEXT_LEN (SMP_DHKEY_LEN) |
F5 Temporary key input length. More... | |
#define | SMP_F5_TEXT_LEN (9 + 2*BDA_ADDR_LEN + 2*SMP_RAND_LEN) |
F5 input length. More... | |
#define | SMP_F6_TEXT_LEN (2*BDA_ADDR_LEN + 3*SMP_RAND_LEN + 5) |
F6 input length. More... | |
Security manager constants and definitions from the Bluetooth specification.
Copyright (c) 2010-2018 Arm Ltd. All Rights Reserved.
Copyright (c) 2019 Packetcraft, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Definition in file smp_defs.h.