TI BLE Stack API Documentation  2.03.09
Functions
Security Manager API Functions

Functions

void SM_RegisterTask (uint8 taskID)
 
bStatus_t SM_GetEccKeys (void)
 
bStatus_t SM_GetDHKey (uint8 *secretKey, uint8 *publicKeyX, uint8 *publicKeyY)
 
bStatus_t SM_GetScConfirmOob (uint8 *publicKey, uint8 *oob, uint8 *pOut)
 
bStatus_t SM_InitiatorInit (void)
 Initialize SM Initiator on a master device. More...
 
bStatus_t SM_StartPairing (uint8 initiator, uint8 taskID, uint16 connectionHandle, smLinkSecurityReq_t *pSecReqs)
 Start the pairing process. This function is also called if the device is already bound. More...
 
bStatus_t SM_StartEncryption (uint16 connHandle, uint8 *pLTK, uint16 div, uint8 *pRandNum, uint8 keyLen)
 Send Start Encrypt through HCI. More...
 
bStatus_t SM_ResponderInit (void)
 Initialize SM Responder on a slave device. More...
 
bStatus_t SM_NewRandKey (uint8 taskID)
 Generate a key with a random value. More...
 
bStatus_t SM_CalcRandomAddr (uint8 *pIRK, uint8 *pNewAddr)
 Calculate a new Private Resolvable address. More...
 
bStatus_t SM_ResolveRandomAddrs (uint8 *pIRK, uint8 *pAddr)
 Resolve a Private Resolvable Address. More...
 
bStatus_t SM_Encrypt (uint8 *pKey, uint8 *pPlainText, uint8 *pResult)
 Encrypt the plain text data with the key.. More...
 
bStatus_t SM_GenerateAuthenSig (uint8 *pData, uint16 len, uint8 *pAuthenSig)
 Generate an outgoing Authentication Signature. More...
 
bStatus_t SM_VerifyAuthenSig (uint16 connHandle, uint8 authentication, uint8 *pData, uint16 len, uint8 *pAuthenSig)
 Verify an Authentication Signature. More...
 
bStatus_t SM_PasskeyUpdate (uint8 *pPasskey, uint16 connectionHandle)
 Update the passkey for the pairing process. More...
 
void SM_SetECCRegenerationCount (uint8 count)
 Update the regeneration count for ECC key re-usage. More...
 

Detailed Description

Function Documentation

§ SM_CalcRandomAddr()

bStatus_t SM_CalcRandomAddr ( uint8 *  pIRK,
uint8 *  pNewAddr 
)

Calculate a new Private Resolvable address.

Parameters
pIRK- Identity Root Key.
pNewAddr- pointer to place to put new calc'd address
Returns
SUCCESS - if started,
INVALIDPARAMETER

§ SM_Encrypt()

bStatus_t SM_Encrypt ( uint8 *  pKey,
uint8 *  pPlainText,
uint8 *  pResult 
)

Encrypt the plain text data with the key..

Parameters
pKey- key data
pPlainText- Plain text data
pResult- place to put the encrypted result
Returns
SUCCESS - if started,
INVALIDPARAMETER - one of the parameters are NULL,
bleAlreadyInRequestedMode,
bleMemAllocError

§ SM_GenerateAuthenSig()

bStatus_t SM_GenerateAuthenSig ( uint8 *  pData,
uint16  len,
uint8 *  pAuthenSig 
)

Generate an outgoing Authentication Signature.

Parameters
pData- message data
len- length of pData
pAuthenSig- place to put new signature
Returns
SUCCESS - signature authentication generated,
INVALIDPARAMETER - pData or pAuthenSig is NULL,
bleMemAllocError

§ SM_InitiatorInit()

bStatus_t SM_InitiatorInit ( void  )

Initialize SM Initiator on a master device.

Returns
SUCCESS

§ SM_NewRandKey()

bStatus_t SM_NewRandKey ( uint8  taskID)

Generate a key with a random value.

Parameters
taskID- task ID to send results.
Returns
SUCCESS,
bleNotReady,
bleMemAllocError,
FAILURE

§ SM_PasskeyUpdate()

bStatus_t SM_PasskeyUpdate ( uint8 *  pPasskey,
uint16  connectionHandle 
)

Update the passkey for the pairing process.

Parameters
pPasskey- pointer to the 6 digit passkey
connectionHandle- connection handle to link.
Returns
SUCCESS,
bleIncorrectMode - Not pairing,
INVALIDPARAMETER - link is incorrect

§ SM_ResolveRandomAddrs()

bStatus_t SM_ResolveRandomAddrs ( uint8 *  pIRK,
uint8 *  pAddr 
)

Resolve a Private Resolvable Address.

Parameters
pIRK- pointer to the IRK
pAddr- pointer to the random address
Returns
SUCCESS - match,
FAILURE - don't match,
INVALIDPARAMETER - parameters invalid

§ SM_ResponderInit()

bStatus_t SM_ResponderInit ( void  )

Initialize SM Responder on a slave device.

Returns
SUCCESS

§ SM_SetECCRegenerationCount()

void SM_SetECCRegenerationCount ( uint8  count)

Update the regeneration count for ECC key re-usage.

Parameters
count- number of times a keypair can be reused before regeneration.
Returns
None

§ SM_StartEncryption()

bStatus_t SM_StartEncryption ( uint16  connHandle,
uint8 *  pLTK,
uint16  div,
uint8 *  pRandNum,
uint8  keyLen 
)

Send Start Encrypt through HCI.

Parameters
connHandle- Connection Handle
pLTK- pointer to 16 byte lkt
div- div or ediv
pRandNum- pointer to 8 byte random number
keyLen- length of LTK (bytes)
Returns
SUCCESS,
INVALIDPARAMETER,
other from HCI/LL

§ SM_StartPairing()

bStatus_t SM_StartPairing ( uint8  initiator,
uint8  taskID,
uint16  connectionHandle,
smLinkSecurityReq_t pSecReqs 
)

Start the pairing process. This function is also called if the device is already bound.

NOTE: Only one pairing process at a time per device.

Parameters
initiator- TRUE to start pairing as Initiator.
taskID- task ID to send results.
connectionHandle- Link's connection handle
pSecReqs- Security parameters for pairing
Returns
SUCCESS,
INVALIDPARAMETER,
bleAlreadyInRequestedMode

§ SM_VerifyAuthenSig()

bStatus_t SM_VerifyAuthenSig ( uint16  connHandle,
uint8  authentication,
uint8 *  pData,
uint16  len,
uint8 *  pAuthenSig 
)

Verify an Authentication Signature.

Parameters
connHandle- connection to verify against.
authentication- TRUE if requires an authenticated CSRK, FALSE if not
pData- message data
len- length of pData
pAuthenSig- message signature to verify
Returns
SUCCESS - signature authentication verified,
FAILURE - if not verified,
bleNotConnected - Connection not found,
INVALIDPARAMETER - pData or pAuthenSig is NULL, or signCounter is invalid,
bleMemAllocError