3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-16 17:09:24 +01:00

sae: Allow ability to force Group 19 / Hunt and Peck

This commit is contained in:
Denis Kenzior 2024-08-11 22:49:17 -05:00
parent 354200f9da
commit 14b9291490
3 changed files with 27 additions and 1 deletions

View File

@ -4033,11 +4033,14 @@ static void netdev_connect_common(struct netdev *netdev,
netdev->ap = sae_sm_new(hs, netdev_sae_tx_authenticate, netdev->ap = sae_sm_new(hs, netdev_sae_tx_authenticate,
netdev_sae_tx_associate, netdev_sae_tx_associate,
netdev); netdev);
else else {
netdev->ap = netdev->ap =
sae_sm_new(hs, netdev_external_auth_sae_tx_authenticate, sae_sm_new(hs, netdev_external_auth_sae_tx_authenticate,
netdev_external_auth_sae_tx_associate, netdev_external_auth_sae_tx_associate,
netdev); netdev);
sae_sm_force_default_group(netdev->ap);
sae_sm_force_hunt_and_peck(netdev->ap);
}
if (sae_sm_is_h2e(netdev->ap)) { if (sae_sm_is_h2e(netdev->ap)) {
uint8_t own_rsnxe[20]; uint8_t own_rsnxe[20];

View File

@ -1550,6 +1550,26 @@ struct auth_proto *sae_sm_new(struct handshake_state *hs,
return &sm->ap; return &sm->ap;
} }
bool sae_sm_force_hunt_and_peck(struct auth_proto *ap)
{
struct sae_sm *sm = l_container_of(ap, struct sae_sm, ap);
sae_debug("Forcing SAE Hunting and Pecking");
sm->sae_type = CRYPTO_SAE_LOOPING;
return true;
}
bool sae_sm_force_default_group(struct auth_proto *ap)
{
struct sae_sm *sm = l_container_of(ap, struct sae_sm, ap);
sae_debug("Forcing Default Group");
sm->force_default_group = true;
return true;
}
static int sae_init(void) static int sae_init(void)
{ {
if (getenv("IWD_SAE_DEBUG")) if (getenv("IWD_SAE_DEBUG"))

View File

@ -34,3 +34,6 @@ struct auth_proto *sae_sm_new(struct handshake_state *hs,
sae_tx_authenticate_func_t tx_auth, sae_tx_authenticate_func_t tx_auth,
sae_tx_associate_func_t tx_assoc, sae_tx_associate_func_t tx_assoc,
void *user_data); void *user_data);
bool sae_sm_force_hunt_and_peck(struct auth_proto *ap);
bool sae_sm_force_default_group(struct auth_proto *ap);