mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-27 19:22:34 +01:00
netdev: simplify netdev_choose_key_address
The key address can be chosen regardless of iftype. The deciding factor is the authenticator bit in the handshake.
This commit is contained in:
parent
fb85b1d1a7
commit
395acc8203
24
src/netdev.c
24
src/netdev.c
@ -1187,6 +1187,12 @@ static bool netdev_copy_tk(uint8_t *tk_buf, const uint8_t *tk,
|
||||
return true;
|
||||
}
|
||||
|
||||
static const uint8_t *netdev_choose_key_address(
|
||||
struct netdev_handshake_state *nhs)
|
||||
{
|
||||
return (nhs->super.authenticator) ? nhs->super.spa : nhs->super.aa;
|
||||
}
|
||||
|
||||
static void netdev_set_gtk(struct handshake_state *hs, uint8_t key_index,
|
||||
const uint8_t *gtk, uint8_t gtk_len,
|
||||
const uint8_t *rsc, uint8_t rsc_len,
|
||||
@ -1273,24 +1279,6 @@ static void netdev_set_igtk(struct handshake_state *hs, uint8_t key_index,
|
||||
netdev_setting_keys_failed(nhs, MMPDU_REASON_CODE_UNSPECIFIED);
|
||||
}
|
||||
|
||||
static const uint8_t *netdev_choose_key_address(
|
||||
struct netdev_handshake_state *nhs)
|
||||
{
|
||||
switch (nhs->netdev->type) {
|
||||
case NL80211_IFTYPE_STATION:
|
||||
return nhs->super.aa;
|
||||
case NL80211_IFTYPE_AP:
|
||||
return nhs->super.spa;
|
||||
case NL80211_IFTYPE_ADHOC:
|
||||
if (nhs->super.authenticator)
|
||||
return nhs->super.spa;
|
||||
else
|
||||
return nhs->super.aa;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void netdev_new_pairwise_key_cb(struct l_genl_msg *msg, void *data)
|
||||
{
|
||||
struct netdev_handshake_state *nhs = data;
|
||||
|
Loading…
Reference in New Issue
Block a user