Skip to content

Commit

Permalink
wirless: Fix bss->rsn->management-group
Browse files Browse the repository at this point in the history
wpa_supplicant send the Management-Group for a bss (scan-result) in
a different format then in capabilities, thus we need to have the
cipher name also without `-` bettween (e.g. `AES-128-CMAC` was given
as `AES128CMAC`)
  • Loading branch information
cfconrad committed Jun 28, 2022
1 parent 0c40b92 commit 3f832be
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/wireless.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,13 @@ static const ni_intmap_t ni_wireless_wpa_group_map[] = {
static const ni_intmap_t ni_wireless_wpa_group_mgmt_map[] = {
/* as required for networks and also used in capabilities */
{ "AES-128-CMAC", NI_WIRELESS_CIPHER_AES128_CMAC },
{ "AES128CMAC", NI_WIRELESS_CIPHER_AES128_CMAC },
{ "BIP-GMAC-128", NI_WIRELESS_CIPHER_BIP_GMAC128 },
{ "BIPGMAC128", NI_WIRELESS_CIPHER_BIP_GMAC128 },
{ "BIP-GMAC-256", NI_WIRELESS_CIPHER_BIP_GMAC256 },
{ "BIPGMAC256", NI_WIRELESS_CIPHER_BIP_GMAC256 },
{ "BIP-CMAC-256", NI_WIRELESS_CIPHER_BIP_CMAC256 },
{ "BIPCMAC256", NI_WIRELESS_CIPHER_BIP_CMAC256 },

{ NULL }
};
Expand Down Expand Up @@ -152,6 +156,14 @@ static const ni_intmap_t ni_wireless_wpa_eap_method_map[] = {
{ NULL }
};

static ni_bool_t
ni_wireless_wpa_group_mgmt_type(const char *name, ni_wireless_cipher_t *type)
{
if (!type || ni_parse_uint_mapped(name, ni_wireless_wpa_group_mgmt_map, type) < 0)
return FALSE;
return TRUE;
}

static ni_bool_t
ni_wireless_wpa_pairwise_type(const char *name, ni_wireless_cipher_t *type)
{
Expand Down Expand Up @@ -1688,7 +1700,7 @@ ni_wireless_bss_set(ni_wireless_bss_t *wireless_bss, const ni_wpa_bss_t *bss)
ni_wireless_wpa_key_mgmt_mask(&props->rsn.key_mgmt, &wireless_bss->rsn.key_mgmt);
ni_wireless_wpa_pairwise_mask(&props->rsn.pairwise, &wireless_bss->rsn.pairwise_cipher);
ni_wireless_wpa_pairwise_type(props->rsn.group, &wireless_bss->rsn.group_cipher);
ni_wireless_wpa_pairwise_type(props->rsn.mgmt_group, &wireless_bss->rsn.mgmt_group_cipher);
ni_wireless_wpa_group_mgmt_type(props->rsn.mgmt_group, &wireless_bss->rsn.mgmt_group_cipher);

wireless_bss->privacy = props->privacy;

Expand Down

0 comments on commit 3f832be

Please sign in to comment.