SMP timeout caused by encryption request during SMP session

ID: LPCBARESDK-688

Status: Open

First reported: 6.0.14.1114

Fixed in: TBD

Description

During SMP (Security Manager Protocol) session , the master(phone) issues a request to an encryption protected attribute. The DA14531 replies with Insufficient Encryption and this causes the phone to refresh encryption (pause and restart) right after Slave’s key transfer and before master key transfer during Bonding.

The DA14531 controller state machine stalls and does not forward the new encryption request to its host in time. The phone remains waiting in the new Encryption procedure and unavoidably a SMP timeout occurs in DA14531. After the SMP timeout, the encryption request is forwarded to the DA14531 Host. The encryption maybe successful afterwards but the SMP session is lost. (despite the master transmitting its pending keys).

Workaround

Write CCCD (Client Characteristic Configuration Descriptor) after key distribution from the master’s app. the central device should then wait for Pairing Complete before initiating an access to the peripheral services which may trigger Insufficient Encryption response and thus cause the central controller to refresh the encryption during the pairing.