mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
wpa_supplicant: Get WPS credential in passphrase format
Closes https://github.com/espressif/esp-idf/issues/10339
This commit is contained in:
parent
ef4b1b7704
commit
c4941e2e75
@ -400,4 +400,15 @@ menu "Wi-Fi"
|
||||
When using ESP mesh, this value should be set to a maximum of 6.
|
||||
|
||||
|
||||
endmenu # Wi-Fi
|
||||
config ESP_WIFI_WPS_PASSPHRASE
|
||||
bool "Get WPA2 passphrase in WPS config"
|
||||
default n
|
||||
help
|
||||
Select this option to get passphrase during WPS configuration.
|
||||
This option fakes the virtual display capabilites to get the
|
||||
configuration in passphrase mode.
|
||||
Not recommanded to be used since WPS credentials should not
|
||||
be shared to other devices, making it in readable format increases
|
||||
that risk, also passphrase requires pbkdf2 to convert in psk.
|
||||
|
||||
endmenu # Wi-Fi
|
||||
|
@ -805,11 +805,12 @@ int wps_finish(void)
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
esp_wifi_get_config(WIFI_IF_STA, config);
|
||||
os_memcpy(config->sta.ssid, sm->ssid[0], sm->ssid_len[0]);
|
||||
os_memcpy(config->sta.password, sm->key[0], sm->key_len[0]);
|
||||
os_memcpy(config->sta.bssid, sm->bssid, ETH_ALEN);
|
||||
config->sta.bssid_set = 0;
|
||||
esp_wifi_set_config(0, config);
|
||||
esp_wifi_set_config(WIFI_IF_STA, config);
|
||||
|
||||
os_free(config);
|
||||
}
|
||||
@ -1151,7 +1152,10 @@ int wps_dev_init(void)
|
||||
ret = ESP_FAIL;
|
||||
goto _out;
|
||||
}
|
||||
dev->config_methods = WPS_CONFIG_VIRT_PUSHBUTTON | WPS_CONFIG_PHY_DISPLAY;
|
||||
dev->config_methods = WPS_CONFIG_VIRT_PUSHBUTTON;
|
||||
#ifdef CONFIG_ESP_WIFI_WPS_PASSPHRASE
|
||||
dev->config_methods |= WPS_CONFIG_DISPLAY | WPS_CONFIG_VIRT_DISPLAY;
|
||||
#endif
|
||||
dev->rf_bands = WPS_RF_24GHZ;
|
||||
|
||||
WPA_PUT_BE16(dev->pri_dev_type, WPS_DEV_PHONE);
|
||||
@ -1433,6 +1437,7 @@ static int wifi_station_wps_init(const esp_wps_config_t *config)
|
||||
}
|
||||
|
||||
os_memcpy(cfg.wps->uuid, sm->uuid, WPS_UUID_LEN);
|
||||
cfg.wps->config_methods = sm->wps_ctx->dev.config_methods;
|
||||
if ((sm->wps = wps_init(&cfg)) == NULL) { /* alloc wps_data */
|
||||
goto _err;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user