[PATCH 28/34] PR: Update PR device mac address on mac randomization
Peddolla Harshavardhan Reddy
peddolla at qti.qualcomm.com
Thu Jun 19 08:37:21 PDT 2025
Changes to simulate mac randomization. To validate the working of
changes related to Device Identity Key.
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla at qti.qualcomm.com>
---
src/common/proximity_ranging.c | 7 +++++++
src/common/proximity_ranging.h | 1 +
wpa_supplicant/pr_supplicant.c | 6 ++++++
wpa_supplicant/pr_supplicant.h | 4 ++++
wpa_supplicant/wpa_supplicant.c | 1 +
5 files changed, 19 insertions(+)
diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c
index 6fd8e7003..544cb9dfb 100644
--- a/src/common/proximity_ranging.c
+++ b/src/common/proximity_ranging.c
@@ -138,6 +138,13 @@ void pr_deinit(struct pr_data *pr)
}
+void pr_set_dev_addr(struct pr_data *pr, const u8 *addr)
+{
+ if (pr && addr)
+ os_memcpy(pr->cfg->dev_addr, addr, ETH_ALEN);
+}
+
+
void pr_clear_dev_iks(struct pr_data *pr)
{
struct pr_device *dev;
diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h
index e6943355f..77ce4cd49 100644
--- a/src/common/proximity_ranging.h
+++ b/src/common/proximity_ranging.h
@@ -442,6 +442,7 @@ struct operation_mode {
struct pr_data * pr_init(const struct pr_config *cfg);
void pr_deinit(struct pr_data *pr);
+void pr_set_dev_addr(struct pr_data *pr, const u8 *addr);
void pr_clear_dev_iks(struct pr_data *pr);
void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password,
const u8 *pmk, bool own);
diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c
index 9385215b5..36cffcae6 100644
--- a/wpa_supplicant/pr_supplicant.c
+++ b/wpa_supplicant/pr_supplicant.c
@@ -245,6 +245,12 @@ void wpas_pr_deinit(struct wpa_supplicant *wpa_s)
}
+void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s)
+{
+ pr_set_dev_addr(wpa_s->global->pr, wpa_s->own_addr);
+}
+
+
void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s)
{
struct pr_data *pr = wpa_s->global->pr;
diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h
index 633de38b6..58b145788 100644
--- a/wpa_supplicant/pr_supplicant.h
+++ b/wpa_supplicant/pr_supplicant.h
@@ -15,6 +15,7 @@
int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s);
void wpas_pr_deinit(struct wpa_supplicant *wpa_s);
+void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s);
void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s);
void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik,
const char *password, const u8 *pmk, bool own);
@@ -42,6 +43,9 @@ static inline void wpas_pr_deinit(struct wpa_supplicant *wpa_s)
{
}
+static inline void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s)
+{
+}
static inline void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s)
{
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 1524794aa..57ada0a30 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -2635,6 +2635,7 @@ int wpas_update_random_addr(struct wpa_supplicant *wpa_s,
}
wpas_p2p_update_dev_addr(wpa_s);
+ wpas_pr_update_dev_addr(wpa_s);
wpa_msg(wpa_s, MSG_DEBUG, "Using random MAC address " MACSTR,
MAC2STR(addr));
--
2.34.1
More information about the Hostap
mailing list