BLE - Cordio PAL SM: Select correct on_ltk_request overload.

pull/6188/head
Vincent Coubard 2018-03-01 14:56:30 +00:00
parent 628ffea6de
commit da6ede34a8
1 changed files with 14 additions and 5 deletions

View File

@ -552,12 +552,21 @@ bool CordioSecurityManager::sm_handler(const wsfMsgHdr_t* msg) {
}
case DM_SEC_LTK_REQ_IND: {
uint8_t null_rand[HCI_RAND_LEN] = { 0 };
hciLeLtkReqEvt_t* evt = (hciLeLtkReqEvt_t*) msg;
handler->on_ltk_request(
evt->hdr.param,
reinterpret_cast<uint8_t*>(&evt->encDiversifier),
evt->randNum
);
if (evt->encDiversifier == 0 &&
memcmp(evt->randNum, null_rand, sizeof(null_rand))) {
handler->on_ltk_request(
evt->hdr.param
);
} else {
handler->on_ltk_request(
evt->hdr.param,
reinterpret_cast<uint8_t*>(&evt->encDiversifier),
evt->randNum
);
}
return true;
}