Mistake on this page?
Report an issue in GitHub or email us
Data Structures | Macros
STACK_SMP_API

Data Structures

struct  smpCfg_t
 Configurable parameters. More...
 
struct  smpDmPair_t
 Data type for SMP_MSG_API_PAIR_REQ and SMP_MSG_API_PAIR_RSP. More...
 
struct  smpDmAuthRsp_t
 Data type for SMP_MSG_API_AUTH_RSP. More...
 
struct  smpDmKeypress_t
 Data type for SMP_MSG_API_USER_KEYPRESS. More...
 
struct  smpDmSecurityReq_t
 Data type for SMP_MSG_API_SECURITY_REQ. More...
 
union  smpDmMsg_t
 Union SMP DM message data types. More...
 

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 Events

Events recognized and handled by the SMP state machine.

SMP Initialization Functions

Legacy and Secure Connections initialization for Initiator and Responder roles.

void SmpiInit (void)
 Initialize SMP initiator role. More...
 
void SmprInit (void)
 Initialize SMP responder role. More...
 
void SmpiScInit (void)
 Initialize SMP initiator role utilizing BTLE Secure Connections. More...
 
void SmprScInit (void)
 Initialize SMP responder role utilizing BTLE Secure Connections. More...
 
void SmpNonInit (void)
 Use this SMP init function when SMP is not supported. More...
 

SMP DM Interface Functions

Functions that allow the DM to send messages to SMP.

void SmpDmMsgSend (smpDmMsg_t *pMsg)
 This function is called by DM to send a message to SMP. More...
 
void SmpDmEncryptInd (wsfMsgHdr_t *pMsg)
 This function is called by DM to notify SMP of encrypted link status. More...
 
bool_t SmpDmLescEnabled (dmConnId_t connId)
 Check if LE Secure Connections is enabled on the connection. More...
 
uint8_t * SmpDmGetStk (dmConnId_t connId, uint8_t *pSecLevel)
 Return the STK for the given connection. More...
 
void SmpScGetCancelMsgWithReattempt (dmConnId_t connId, wsfMsgHdr_t *pHdr, uint8_t status)
 Format a cancel message with consideration for the attempts counter. More...
 
void SmpDbInit (void)
 Initialize the SMP Database. More...
 
void SmpScEnableZeroDhKey (bool_t enable)
 Called to force the DhKey to zero for qualification test purposes. 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...
 

Detailed Description

Macro Definition Documentation

#define SMP_AUTH_BOND_FLAG   0x01

Bonding requested.

Definition at line 148 of file smp_defs.h.

#define SMP_AUTH_BOND_MASK   0x03

Mask for bonding bits.

Definition at line 147 of file smp_defs.h.

#define SMP_AUTH_KP_FLAG   0x10

Keypress notifications requested.

Definition at line 151 of file smp_defs.h.

#define SMP_AUTH_MITM_FLAG   0x04

MITM (authenticated pairing) requested.

Definition at line 149 of file smp_defs.h.

#define SMP_AUTH_SC_FLAG   0x08

LE Secure Connections requested.

Definition at line 150 of file smp_defs.h.

#define SMP_CMD_DHKEY_CHECK   0x0D

DH Key check.

Definition at line 99 of file smp_defs.h.

#define SMP_CMD_ENC_INFO   0x06

Encryption information.

Definition at line 92 of file smp_defs.h.

#define SMP_CMD_ID_ADDR_INFO   0x09

Identity address information.

Definition at line 95 of file smp_defs.h.

#define SMP_CMD_ID_INFO   0x08

Identity information.

Definition at line 94 of file smp_defs.h.

#define SMP_CMD_KEYPRESS   0x0E

User key press.

Definition at line 100 of file smp_defs.h.

#define SMP_CMD_MASTER_ID   0x07

Master identification.

Definition at line 93 of file smp_defs.h.

#define SMP_CMD_MAX   0x0F

Command code maximum.

Definition at line 101 of file smp_defs.h.

#define SMP_CMD_PAIR_CNF   0x03

Pairing confirm.

Definition at line 89 of file smp_defs.h.

#define SMP_CMD_PAIR_FAIL   0x05

Pairing failed.

Definition at line 91 of file smp_defs.h.

#define SMP_CMD_PAIR_RAND   0x04

Pairing random.

Definition at line 90 of file smp_defs.h.

#define SMP_CMD_PAIR_REQ   0x01

Pairing request.

Definition at line 87 of file smp_defs.h.

#define SMP_CMD_PAIR_RSP   0x02

Pairing response.

Definition at line 88 of file smp_defs.h.

#define SMP_CMD_PUBLIC_KEY   0x0C

Public Kkey.

Definition at line 98 of file smp_defs.h.

#define SMP_CMD_SECURITY_REQ   0x0B

Security fequest.

Definition at line 97 of file smp_defs.h.

#define SMP_CMD_SIGN_INFO   0x0A

Signing information.

Definition at line 96 of file smp_defs.h.

#define SMP_CONFIRM_LEN   16

Confirm number length.

Definition at line 182 of file smp_defs.h.

#define SMP_DHKEY_CHECK_LEN   16

Secure connection Diffie-Hellman key check length.

Definition at line 188 of file smp_defs.h.

#define SMP_DHKEY_CHECK_MSG_LEN   (1 + SMP_DHKEY_CHECK_LEN)

Diffie-Hellman key check message length.

Definition at line 120 of file smp_defs.h.

#define SMP_DHKEY_LEN   32

Secure connection Diffie-Hellman key length.

Definition at line 187 of file smp_defs.h.

#define SMP_ENC_INFO_LEN   17

Encryption information message length.

Definition at line 113 of file smp_defs.h.

#define SMP_ERR_ATTEMPTS   0x09

Repeated attempts.

Definition at line 67 of file smp_defs.h.

#define SMP_ERR_AUTH_REQ   0x03

Authentication requirements cannot be met.

Definition at line 61 of file smp_defs.h.

#define SMP_ERR_BR_EDR_IN_PROGRESS   0x0D

BR/EDR in progress.

Definition at line 71 of file smp_defs.h.

#define SMP_ERR_COMMAND_NOT_SUP   0x07

Command not supported.

Definition at line 65 of file smp_defs.h.

#define SMP_ERR_CONFIRM_VALUE   0x04

Confirm value does not match.

Definition at line 62 of file smp_defs.h.

#define SMP_ERR_CROSS_TRANSPORT   0x0E

BR/EDR cross transport key generation not allowed.

Definition at line 72 of file smp_defs.h.

#define SMP_ERR_DH_KEY_CHECK   0x0B

DH Key check did not match.

Definition at line 69 of file smp_defs.h.

#define SMP_ERR_ENC_KEY_SIZE   0x06

Insufficient encryption key size.

Definition at line 64 of file smp_defs.h.

#define SMP_ERR_INVALID_PARAM   0x0A

Invalid parameter or command length.

Definition at line 68 of file smp_defs.h.

#define SMP_ERR_MEMORY   0xE0

Out of memory.

Definition at line 79 of file smp_defs.h.

#define SMP_ERR_NUMERIC_COMPARISON   0x0C

Numeric comparison did not match.

Definition at line 70 of file smp_defs.h.

#define SMP_ERR_OOB   0x02

OOB data is not available.

Definition at line 60 of file smp_defs.h.

#define SMP_ERR_PAIRING_NOT_SUP   0x05

Pairing is not supported by the device.

Definition at line 63 of file smp_defs.h.

#define SMP_ERR_PASSKEY_ENTRY   0x01

User input of passkey failed.

Definition at line 59 of file smp_defs.h.

#define SMP_ERR_TIMEOUT   0xE1

Transaction timeout.

Definition at line 80 of file smp_defs.h.

#define SMP_ERR_UNSPECIFIED   0x08

Unspecified reason.

Definition at line 66 of file smp_defs.h.

#define SMP_F4_TEXT_LEN   (SMP_PUB_KEY_LEN * 2 + 1)

F4 input length.

Definition at line 195 of file smp_defs.h.

#define SMP_F5_TEXT_LEN   (9 + 2*BDA_ADDR_LEN + 2*SMP_RAND_LEN)

F5 input length.

Definition at line 198 of file smp_defs.h.

#define SMP_F5_TKEY_TEXT_LEN   (SMP_DHKEY_LEN)

F5 Temporary key input length.

Definition at line 197 of file smp_defs.h.

#define SMP_F6_TEXT_LEN   (2*BDA_ADDR_LEN + 3*SMP_RAND_LEN + 5)

F6 input length.

Definition at line 199 of file smp_defs.h.

#define SMP_G2_TEXT_LEN   (SMP_PUB_KEY_LEN * 2 + SMP_RAND_LEN)

G2 input length.

Definition at line 196 of file smp_defs.h.

#define SMP_HDR_LEN   1

PDU format.

Attribute PDU header length.

Definition at line 39 of file smp_defs.h.

#define SMP_ID_ADDR_INFO_LEN   8

Identity address information message length.

Definition at line 116 of file smp_defs.h.

#define SMP_ID_INFO_LEN   17

Identity information message length.

Definition at line 115 of file smp_defs.h.

#define SMP_IO_DISP_ONLY   0x00

Display only.

Definition at line 128 of file smp_defs.h.

#define SMP_IO_DISP_YES_NO   0x01

Display yes/no.

Definition at line 129 of file smp_defs.h.

#define SMP_IO_KEY_DISP   0x04

Keyboard display.

Definition at line 132 of file smp_defs.h.

#define SMP_IO_KEY_ONLY   0x02

Keyboard only.

Definition at line 130 of file smp_defs.h.

#define SMP_IO_NO_IN_NO_OUT   0x03

No input, no output.

Definition at line 131 of file smp_defs.h.

#define SMP_KEY_DIST_ENC   0x01

Distribute LTK.

Definition at line 158 of file smp_defs.h.

#define SMP_KEY_DIST_ID   0x02

Distribute IRK.

Definition at line 159 of file smp_defs.h.

#define SMP_KEY_DIST_MASK   (SMP_KEY_DIST_ENC | SMP_KEY_DIST_ID | SMP_KEY_DIST_SIGN)

Key distribution mask.

Definition at line 162 of file smp_defs.h.

#define SMP_KEY_DIST_SIGN   0x04

Distribute CSRK.

Definition at line 160 of file smp_defs.h.

#define SMP_KEY_LEN   16

Key length.

Definition at line 183 of file smp_defs.h.

#define SMP_KEY_SIZE_MAX   16

Maximum encryption key size.

Definition at line 48 of file smp_defs.h.

#define SMP_KEY_SIZE_MIN   7

Minimum encryption key size.

Definition at line 49 of file smp_defs.h.

#define SMP_KEYPRESS_MSG_LEN   2

Keypress message length.

Definition at line 121 of file smp_defs.h.

#define SMP_MASTER_ID_LEN   11

Master identification messagelength.

Definition at line 114 of file smp_defs.h.

#define SMP_OOB_DATA_NONE   0x00

No OOB data from the remote device is present.

Definition at line 139 of file smp_defs.h.

#define SMP_OOB_DATA_PRESENT   0x01

OOB data from the remote device is present.

Definition at line 140 of file smp_defs.h.

#define SMP_OOB_LEN   16

OOB Data length in bytes.

Definition at line 52 of file smp_defs.h.

#define SMP_PAIR_CNF_LEN   17

Pairing confirmation message length.

Definition at line 110 of file smp_defs.h.

#define SMP_PAIR_FAIL_LEN   2

Pairing fail message length.

Definition at line 112 of file smp_defs.h.

#define SMP_PAIR_RAND_LEN   17

Pairing random message length.

Definition at line 111 of file smp_defs.h.

#define SMP_PAIR_REQ_LEN   7

Pairing request message length.

Definition at line 108 of file smp_defs.h.

#define SMP_PAIR_RSP_LEN   7

Pairing response message length.

Definition at line 109 of file smp_defs.h.

#define SMP_PASSKEY_CLEARED   0x03

Passkey cleared keypress type.

Definition at line 173 of file smp_defs.h.

#define SMP_PASSKEY_DIGIT_ENTERED   0x01

Passkey digit entered keypress type.

Definition at line 171 of file smp_defs.h.

#define SMP_PASSKEY_DIGIT_ERASED   0x02

Passkey digit erased keypress type.

Definition at line 172 of file smp_defs.h.

#define SMP_PASSKEY_ENTRY_COMPLETED   0x04

Passkey entry complete keypress type.

Definition at line 174 of file smp_defs.h.

#define SMP_PASSKEY_ENTRY_STARTED   0x00

Passkey entry started keypress type.

Definition at line 170 of file smp_defs.h.

#define SMP_PIN_LEN   3

Passkey Pin lenght in bytes.

Definition at line 53 of file smp_defs.h.

#define SMP_PRIVATE_KEY_LEN   32

Secure connections private key length.

Definition at line 185 of file smp_defs.h.

#define SMP_PUB_KEY_LEN   32

Secure connecdtions public key length.

Definition at line 186 of file smp_defs.h.

#define SMP_PUB_KEY_MSG_LEN   (1 + 2*SMP_PUB_KEY_LEN)

Public key message length.

Definition at line 119 of file smp_defs.h.

#define SMP_RAND8_LEN   8

Random 8-byte number length.

Definition at line 184 of file smp_defs.h.

#define SMP_RAND_LEN   16

Random number length.

Definition at line 181 of file smp_defs.h.

#define SMP_SECURITY_REQ_LEN   2

Security request message length.

Definition at line 118 of file smp_defs.h.

#define SMP_SIGN_INFO_LEN   17

Signing information message length.

Definition at line 117 of file smp_defs.h.

#define SMP_TIMEOUT   30

Protocol timeout.

Protocol timeout in seconds.

Definition at line 42 of file smp_defs.h.

Enumeration Type Documentation

anonymous enum

Event handler messages for SMP state machines.

Enumerator
SMP_MSG_API_PAIR_REQ 

API pairing request.

SMP_MSG_API_PAIR_RSP 

API pairing response.

SMP_MSG_API_CANCEL_REQ 

API cancel request.

SMP_MSG_API_AUTH_RSP 

API pin response.

SMP_MSG_API_SECURITY_REQ 

API security request.

SMP_MSG_CMD_PKT 

SMP command packet received.

SMP_MSG_CMD_PAIRING_FAILED 

SMP pairing failed packet received.

SMP_MSG_DM_ENCRYPT_CMPL 

Link encrypted.

SMP_MSG_DM_ENCRYPT_FAILED 

Link encryption failed.

SMP_MSG_DM_CONN_CLOSE 

Connection closed.

SMP_MSG_WSF_AES_CMPL 

AES calculation complete.

SMP_MSG_INT_SEND_NEXT_KEY 

Send next key to be distributed.

SMP_MSG_INT_MAX_ATTEMPTS 

Maximum pairing attempts reached.

SMP_MSG_INT_PAIRING_CMPL 

Pairing complete.

SMP_MSG_INT_RSP_TIMEOUT 

Pairing protocol response timeout.

SMP_MSG_INT_WI_TIMEOUT 

Pairing protocol wait interval timeout.

SMP_MSG_INT_LESC 

Pair with Secure Connections.

SMP_MSG_INT_LEGACY 

Pair with Legacy Security.

SMP_MSG_INT_JW_NC 

LESC Just-Works/Numeric Comparison pairing.

SMP_MSG_INT_PASSKEY 

LESC Passkey pairing.

SMP_MSG_INT_OOB 

LESC Out-of-Band Pairing.

SMP_MSG_API_USER_CONFIRM 

User confirms valid numeric comparison.

SMP_MSG_API_USER_KEYPRESS 

User keypress in passkey pairing.

SMP_MSG_API_KEYPRESS_CMPL 

User keypress complete in passkey pairing.

SMP_MSG_WSF_ECC_CMPL 

WSF ECC operation complete.

SMP_MSG_INT_PK_NEXT 

Continue to next passkey bit.

SMP_MSG_INT_PK_CMPL 

Passkey operation complete.

SMP_MSG_WSF_CMAC_CMPL 

WSF CMAC operation complete.

SMP_MSG_DH_CHECK_FAILURE 

DHKey check failure.

SMP_MSG_EARLY_CNF 

An early Confirm from the initiator in passkey pairing.

SMP_MSG_INT_CLEANUP 

Cleanup control information and return to IDLE state.

SMP_NUM_MSGS 

Number of SMP message types.

Definition at line 47 of file smp_api.h.

anonymous enum

Additional SMP messages.

Enumerator
SMP_DB_SERVICE_IND 

SMP DB Service timer indication.

Definition at line 86 of file smp_api.h.

Function Documentation

void SmpDbInit ( void  )

Initialize the SMP Database.

Returns
None.
void SmpDmEncryptInd ( wsfMsgHdr_t pMsg)

This function is called by DM to notify SMP of encrypted link status.

Parameters
pMsgPointer to HCI message structure.
Returns
None.
uint8_t* SmpDmGetStk ( dmConnId_t  connId,
uint8_t *  pSecLevel 
)

Return the STK for the given connection.

Parameters
connIdConnection identifier.
pSecLevelReturns the security level of pairing when STK was created.
Returns
Pointer to STK or NULL if not available.
bool_t SmpDmLescEnabled ( dmConnId_t  connId)

Check if LE Secure Connections is enabled on the connection.

Parameters
connIdConnection identifier.
Returns
TRUE is Secure Connections is enabled, else FALSE
void SmpDmMsgSend ( smpDmMsg_t pMsg)

This function is called by DM to send a message to SMP.

Parameters
pMsgPointer to message structure.
Returns
None.
void SmpiInit ( void  )

Initialize SMP initiator role.

Returns
None.
void SmpiScInit ( void  )

Initialize SMP initiator role utilizing BTLE Secure Connections.

Returns
None.
void SmpNonInit ( void  )

Use this SMP init function when SMP is not supported.

Returns
None.
void SmprInit ( void  )

Initialize SMP responder role.

Returns
None.
void SmprScInit ( void  )

Initialize SMP responder role utilizing BTLE Secure Connections.

Returns
None.
void SmpScEnableZeroDhKey ( bool_t  enable)

Called to force the DhKey to zero for qualification test purposes.

Parameters
enableTRUE - Force DhKey to zero. FALSE - Use calculated key
Returns
None.
void SmpScGetCancelMsgWithReattempt ( dmConnId_t  connId,
wsfMsgHdr_t pHdr,
uint8_t  status 
)

Format a cancel message with consideration for the attempts counter.

Parameters
connIdConnection Id.
pHdrPointer to header of message to fill.
statusStatus to include.
Returns
none.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.