DPP2: Parse AKM suite selector version of akm node
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
68fea96038
commit
b719a1568a
1 changed files with 35 additions and 0 deletions
|
@ -6063,6 +6063,9 @@ const char * dpp_akm_selector_str(enum dpp_akm akm)
|
||||||
|
|
||||||
static enum dpp_akm dpp_akm_from_str(const char *akm)
|
static enum dpp_akm dpp_akm_from_str(const char *akm)
|
||||||
{
|
{
|
||||||
|
const char *pos;
|
||||||
|
int dpp = 0, psk = 0, sae = 0;
|
||||||
|
|
||||||
if (os_strcmp(akm, "psk") == 0)
|
if (os_strcmp(akm, "psk") == 0)
|
||||||
return DPP_AKM_PSK;
|
return DPP_AKM_PSK;
|
||||||
if (os_strcmp(akm, "sae") == 0)
|
if (os_strcmp(akm, "sae") == 0)
|
||||||
|
@ -6075,6 +6078,38 @@ static enum dpp_akm dpp_akm_from_str(const char *akm)
|
||||||
return DPP_AKM_SAE_DPP;
|
return DPP_AKM_SAE_DPP;
|
||||||
if (os_strcmp(akm, "dpp+psk+sae") == 0)
|
if (os_strcmp(akm, "dpp+psk+sae") == 0)
|
||||||
return DPP_AKM_PSK_SAE_DPP;
|
return DPP_AKM_PSK_SAE_DPP;
|
||||||
|
|
||||||
|
pos = akm;
|
||||||
|
while (*pos) {
|
||||||
|
if (os_strlen(pos) < 8)
|
||||||
|
break;
|
||||||
|
if (os_strncasecmp(pos, "506F9A02", 8) == 0)
|
||||||
|
dpp = 1;
|
||||||
|
else if (os_strncasecmp(pos, "000FAC02", 8) == 0)
|
||||||
|
psk = 1;
|
||||||
|
else if (os_strncasecmp(pos, "000FAC06", 8) == 0)
|
||||||
|
psk = 1;
|
||||||
|
else if (os_strncasecmp(pos, "000FAC08", 8) == 0)
|
||||||
|
sae = 1;
|
||||||
|
pos += 8;
|
||||||
|
if (*pos != '+')
|
||||||
|
break;
|
||||||
|
pos++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dpp && psk && sae)
|
||||||
|
return DPP_AKM_PSK_SAE_DPP;
|
||||||
|
if (dpp && sae)
|
||||||
|
return DPP_AKM_SAE_DPP;
|
||||||
|
if (dpp)
|
||||||
|
return DPP_AKM_DPP;
|
||||||
|
if (psk && sae)
|
||||||
|
return DPP_AKM_PSK_SAE;
|
||||||
|
if (sae)
|
||||||
|
return DPP_AKM_SAE;
|
||||||
|
if (psk)
|
||||||
|
return DPP_AKM_PSK;
|
||||||
|
|
||||||
return DPP_AKM_UNKNOWN;
|
return DPP_AKM_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue