From ed1c044cfe57e380f114e81f8d8dd31cf91b4f67 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Thu, 17 Dec 2020 10:24:47 -0800 Subject: [PATCH] bthost: Always use conn->prnd for Pairing Random Since it is now properly set with random bytes it shall be used when responding. --- emulator/smp.c | 9 ++++----- 1 file 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) -- 2.47.3