DPP: Add DPP_BOOTSTRAP_SET command
"DPP_BOOTSTRAP_SET <ID> <configurator parameters..>" can now be used to set peer specific configurator parameters which will override any global parameters from dpp_configurator_params. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
804fc268af
commit
547dc7eaa3
4 changed files with 30 additions and 0 deletions
|
@ -3463,6 +3463,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
|
|||
reply_len = dpp_bootstrap_info(hapd->iface->interfaces->dpp,
|
||||
atoi(buf + 19),
|
||||
reply, reply_size);
|
||||
} else if (os_strncmp(buf, "DPP_BOOTSTRAP_SET ", 18) == 0) {
|
||||
if (dpp_bootstrap_set(hapd->iface->interfaces->dpp,
|
||||
atoi(buf + 18),
|
||||
os_strchr(buf + 18, ' ')) < 0)
|
||||
reply_len = -1;
|
||||
} else if (os_strncmp(buf, "DPP_AUTH_INIT ", 14) == 0) {
|
||||
if (hostapd_dpp_auth_init(hapd, buf + 13) < 0)
|
||||
reply_len = -1;
|
||||
|
|
|
@ -10532,6 +10532,26 @@ int dpp_bootstrap_info(struct dpp_global *dpp, int id,
|
|||
}
|
||||
|
||||
|
||||
int dpp_bootstrap_set(struct dpp_global *dpp, int id, const char *params)
|
||||
{
|
||||
struct dpp_bootstrap_info *bi;
|
||||
|
||||
bi = dpp_bootstrap_get_id(dpp, id);
|
||||
if (!bi)
|
||||
return -1;
|
||||
|
||||
str_clear_free(bi->configurator_params);
|
||||
|
||||
if (params) {
|
||||
bi->configurator_params = os_strdup(params);
|
||||
return bi->configurator_params ? 0 : -1;
|
||||
}
|
||||
|
||||
bi->configurator_params = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void dpp_bootstrap_find_pair(struct dpp_global *dpp, const u8 *i_bootstrap,
|
||||
const u8 *r_bootstrap,
|
||||
struct dpp_bootstrap_info **own_bi,
|
||||
|
|
|
@ -562,6 +562,7 @@ dpp_pkex_finish(struct dpp_global *dpp, struct dpp_pkex *pkex, const u8 *peer,
|
|||
const char * dpp_bootstrap_get_uri(struct dpp_global *dpp, unsigned int id);
|
||||
int dpp_bootstrap_info(struct dpp_global *dpp, int id,
|
||||
char *reply, int reply_size);
|
||||
int dpp_bootstrap_set(struct dpp_global *dpp, int id, const char *params);
|
||||
void dpp_bootstrap_find_pair(struct dpp_global *dpp, const u8 *i_bootstrap,
|
||||
const u8 *r_bootstrap,
|
||||
struct dpp_bootstrap_info **own_bi,
|
||||
|
|
|
@ -10890,6 +10890,10 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
|
|||
} else if (os_strncmp(buf, "DPP_BOOTSTRAP_INFO ", 19) == 0) {
|
||||
reply_len = dpp_bootstrap_info(wpa_s->dpp, atoi(buf + 19),
|
||||
reply, reply_size);
|
||||
} else if (os_strncmp(buf, "DPP_BOOTSTRAP_SET ", 18) == 0) {
|
||||
if (dpp_bootstrap_set(wpa_s->dpp, atoi(buf + 18),
|
||||
os_strchr(buf + 18, ' ')) < 0)
|
||||
reply_len = -1;
|
||||
} else if (os_strncmp(buf, "DPP_AUTH_INIT ", 14) == 0) {
|
||||
if (wpas_dpp_auth_init(wpa_s, buf + 13) < 0)
|
||||
reply_len = -1;
|
||||
|
|
Loading…
Reference in a new issue