Compare only X component of public key to avoid impersonation attack.

This commit is contained in:
Chinmay Chhajed
2021-09-23 18:29:42 +05:30
parent e21844be70
commit c5be342b23
+3 -3
View File
@@ -611,9 +611,9 @@ ble_sm_sc_public_key_rx(uint16_t conn_handle, struct os_mbuf **om,
}
cmd = (struct ble_sm_public_key *)(*om)->om_data;
/* Check if the peer public key is same as our generated public key.
* Return fail if the public keys match. */
if (memcmp(cmd, ble_sm_sc_pub_key, 64) == 0) {
/* Check if the X component of peer public key is same as X
* component of our generated public key. Return fail if they match. */
if (memcmp(cmd->x, ble_sm_sc_pub_key, 32) == 0) {
res->enc_cb = 1;
res->sm_err = BLE_SM_ERR_AUTHREQ;
return;