switch (key_type)
{
case BTM_LE_KEY_PENC:
- memcpy(p_rec->ble.keys.ltk, p_keys->penc_key.ltk, BT_OCTET16_LEN);
+ memcpy(p_rec->ble.keys.pltk, p_keys->penc_key.ltk, BT_OCTET16_LEN);
memcpy(p_rec->ble.keys.rand, p_keys->penc_key.rand, BT_OCTET8_LEN);
p_rec->ble.keys.sec_level = p_keys->penc_key.sec_level;
p_rec->ble.keys.ediv = p_keys->penc_key.ediv;
break;
case BTM_LE_KEY_PCSRK:
- memcpy(p_rec->ble.keys.csrk, p_keys->pcsrk_key.csrk, BT_OCTET16_LEN);
+ memcpy(p_rec->ble.keys.pcsrk, p_keys->pcsrk_key.csrk, BT_OCTET16_LEN);
p_rec->ble.keys.srk_sec_level = p_keys->pcsrk_key.sec_level;
p_rec->ble.keys.counter = p_keys->pcsrk_key.counter;
p_rec->ble.key_type |= BTM_LE_KEY_PCSRK;
else if (p_rec->ble.key_type & BTM_LE_KEY_PENC)
{
if (btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, p_rec->ble.keys.rand,
- p_rec->ble.keys.ediv, p_rec->ble.keys.ltk))
+ p_rec->ble.keys.ediv, p_rec->ble.keys.pltk))
rt = BTM_CMD_STARTED;
}
else
BTM_TRACE_DEBUG ("%s rcv_cnt=%d >= expected_cnt=%d", __func__, counter,
p_rec->ble.keys.counter);
- if (aes_cipher_msg_auth_code(p_rec->ble.keys.csrk, p_orig, len, BTM_CMAC_TLEN_SIZE, p_mac))
+ if (aes_cipher_msg_auth_code(p_rec->ble.keys.pcsrk, p_orig, len, BTM_CMAC_TLEN_SIZE, p_mac))
{
if (memcmp(p_mac, p_comp, BTM_CMAC_TLEN_SIZE) == 0)
{
typedef struct
{
BT_OCTET16 irk; /* peer diverified identity root */
+ BT_OCTET16 pltk; /* peer long term key */
+ BT_OCTET16 pcsrk; /* peer SRK peer device used to secured sign local data */
BT_OCTET16 lltk; /* local long term key */
BT_OCTET16 lcsrk; /* local SRK peer device used to secured sign local data */
- BT_OCTET16 ltk; /* peer long term key */
- BT_OCTET16 csrk; /* peer SRK peer device used to secured sign local data */
BT_OCTET8 rand; /* random vector for LTK generation */
UINT16 ediv; /* LTK diversifier of this slave device */