This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

I don't know flow of EDIV, Rand.

I'm testing with ANCS example(SDK11.0.0), PCA10028 and Iphone, observing packet with sniffer.

at the first connection,

master sent EDIV(0x0), Rand(0x0), SKDm and IVm to slave. And slave sent SKDs and IVs. And then connection was encypted, slave distribute LTK, EDIV(not 0x0), Rand(not 0x0). And then slave stored EDIV, Rand it sent in m_bond_table[index] image description

Q1) Should not EVID, Rand master sent be stored in m_bond_table[index] of slave(PCA10028) ??

Q2) why slave sent 12 bytes Rand although BLE_GAP_SEC_RAND_LEN = 7 ?

at the reconnection,

master sent EVID(not 0x0), Rand(not 0x0), SKDm and IVm to slave.

Q3) why does master send non-zero EVID, RAND althouth master does not distribute LTK ??

Parents
  • Q1: The LL_ENC_REQUEST is sent from the master device, thus these are not relevant unless the devices switch roles in the future. Not supperted by device manager peripheral.
    Q2: Rand is a 64 bit number. Not to familiar with the TI sniffer...
    Q3. when reconnecting, the previous stored bond informatin is used. EDIV and RAND is used to identify the LTK that was exchanged in the first connection.

Reply
  • Q1: The LL_ENC_REQUEST is sent from the master device, thus these are not relevant unless the devices switch roles in the future. Not supperted by device manager peripheral.
    Q2: Rand is a 64 bit number. Not to familiar with the TI sniffer...
    Q3. when reconnecting, the previous stored bond informatin is used. EDIV and RAND is used to identify the LTK that was exchanged in the first connection.

Children
Related