Functions

Security Manager API Functions

Functions

bStatus_t SM_InitiatorInit (void)
 Initialize SM Initiator on a master device.
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.
bStatus_t SM_StartEncryption (uint16 connHandle, uint8 *pLTK, uint16 div, uint8 *pRandNum, uint8 keyLen)
 Send Start Encrypt through HCI.
bStatus_t SM_ResponderInit (void)
 Initialize SM Responder on a slave device.
bStatus_t SM_NewRandKey (uint8 taskID)
 Generate a key with a random value.
bStatus_t SM_CalcRandomAddr (uint8 *pIRK, uint8 *pNewAddr)
 Calculate a new Private Resolvable address.
bStatus_t SM_ResolveRandomAddrs (uint8 *pIRK, uint8 *pAddr)
 Resolve a Private Resolveable Address.
bStatus_t SM_Encrypt (uint8 *pKey, uint8 *pPlainText, uint8 *pResult)
 Encrypt the plain text data with the key..
bStatus_t SM_GenerateAuthenSig (uint8 *pData, uint8 len, uint8 *pAuthenSig)
 Generate an outgoing Authentication Signature.
bStatus_t SM_VerifyAuthenSig (uint16 connHandle, uint8 authentication, uint8 *pData, uint8 len, uint8 *pAuthenSig)
 Verify an Authentication Signature.
bStatus_t SM_PasskeyUpdate (uint8 *pPasskey, uint16 connectionHandle)
 Update the passkey for the pairing process.

Function Documentation

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
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
bStatus_t SM_GenerateAuthenSig ( uint8 pData,
uint8  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
bStatus_t SM_InitiatorInit ( void   ) 

Initialize SM Initiator on a master device.

Returns:
SUCCESS
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
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
bStatus_t SM_ResolveRandomAddrs ( uint8 pIRK,
uint8 pAddr 
)

Resolve a Private Resolveable Address.

Parameters:
pIRK - pointer to the IRK
pAddr - pointer to the random address
Returns:
SUCCESS - match,
FAILURE - don't match,
INVALIDPARAMETER - parameters invalid
bStatus_t SM_ResponderInit ( void   ) 

Initialize SM Responder on a slave device.

Returns:
SUCCESS
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
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
bStatus_t SM_VerifyAuthenSig ( uint16  connHandle,
uint8  authentication,
uint8 pData,
uint8  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