summaryrefslogtreecommitdiff
path: root/emulator/smp.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2020-12-17 10:24:47 -0800
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2020-12-17 10:26:21 -0800
commited1c044cfe57e380f114e81f8d8dd31cf91b4f67 (patch)
tree57ba56ecd956e5517534dc88d5ca91d389dac179 /emulator/smp.c
parent6c3c059c52ff36ae7e3eaaecc902ef358cccf221 (diff)
downloadbluez-ed1c044cfe57e380f114e81f8d8dd31cf91b4f67.tar.gz
bthost: Always use conn->prnd for Pairing Random
Since it is now properly set with random bytes it shall be used when responding.
Diffstat (limited to 'emulator/smp.c')
-rw-r--r--emulator/smp.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/emulator/smp.c b/emulator/smp.c
index f339e1512..db0065d7d 100644
--- a/emulator/smp.c
+++ b/emulator/smp.c
@@ -508,7 +508,8 @@ static void pairing_cfm(struct smp_conn *conn, const void *data, uint16_t len)
if (conn->out) {
memset(rsp, 0, sizeof(rsp));
- smp_send(conn, BT_L2CAP_SMP_PAIRING_RANDOM, rsp, sizeof(rsp));
+ smp_send(conn, BT_L2CAP_SMP_PAIRING_RANDOM, conn->prnd,
+ sizeof(conn->prnd));
} else {
bt_crypto_c1(conn->smp->crypto, conn->tk, conn->prnd,
conn->prsp, conn->preq, conn->ia_type,
@@ -545,8 +546,6 @@ static uint8_t sc_random(struct smp_conn *conn)
static void pairing_rnd(struct smp_conn *conn, const void *data, uint16_t len)
{
- uint8_t rsp[16];
-
memcpy(conn->rrnd, data + 1, 16);
if (conn->sc) {
@@ -563,8 +562,8 @@ static void pairing_rnd(struct smp_conn *conn, const void *data, uint16_t len)
if (conn->out)
return;
- memset(rsp, 0, sizeof(rsp));
- smp_send(conn, BT_L2CAP_SMP_PAIRING_RANDOM, rsp, sizeof(rsp));
+ smp_send(conn, BT_L2CAP_SMP_PAIRING_RANDOM, conn->prnd,
+ sizeof(conn->prnd));
}
static void encrypt_info(struct smp_conn *conn, const void *data, uint16_t len)