DPP: Do not restrict SAE password length on Configurator

The restriction of the passphrase length to 8..63 characters is only
applicable for WPA2-Personal (PSK). Remove this constraint when
provisioning a configuration object that includes SAE without PSK.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2024-08-22 11:20:20 +03:00 committed by Jouni Malinen
parent 064a46b478
commit 503e22025b

View file

@ -1139,6 +1139,12 @@ int dpp_configuration_valid(const struct dpp_configuration *conf)
return 0; return 0;
if (dpp_akm_psk(conf->akm) && !conf->passphrase && !conf->psk_set) if (dpp_akm_psk(conf->akm) && !conf->passphrase && !conf->psk_set)
return 0; return 0;
if (dpp_akm_psk(conf->akm) && conf->passphrase) {
size_t len = os_strlen(conf->passphrase);
if (len > 63 || len < 8)
return 0;
}
if (dpp_akm_sae(conf->akm) && !conf->passphrase) if (dpp_akm_sae(conf->akm) && !conf->passphrase)
return 0; return 0;
return 1; return 1;
@ -1228,8 +1234,6 @@ static int dpp_configuration_parse_helper(struct dpp_authentication *auth,
end = os_strchr(pos, ' '); end = os_strchr(pos, ' ');
pass_len = end ? (size_t) (end - pos) : os_strlen(pos); pass_len = end ? (size_t) (end - pos) : os_strlen(pos);
pass_len /= 2; pass_len /= 2;
if (pass_len > 63 || pass_len < 8)
goto fail;
conf->passphrase = os_zalloc(pass_len + 1); conf->passphrase = os_zalloc(pass_len + 1);
if (!conf->passphrase || if (!conf->passphrase ||
hexstr2bin(pos, (u8 *) conf->passphrase, pass_len) < 0) hexstr2bin(pos, (u8 *) conf->passphrase, pass_len) < 0)