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_sae_tx_associate,
netdev);
else
else {
netdev->ap =
sae_sm_new(hs, netdev_external_auth_sae_tx_authenticate,
netdev_external_auth_sae_tx_associate,
netdev);
sae_sm_force_default_group(netdev->ap);
sae_sm_force_hunt_and_peck(netdev->ap);
}
if (sae_sm_is_h2e(netdev->ap)) {
uint8_t own_rsnxe[20];

View File

@ -1550,6 +1550,26 @@ struct auth_proto *sae_sm_new(struct handshake_state *hs,
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)
{
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_associate_func_t tx_assoc,
void *user_data);
bool sae_sm_force_hunt_and_peck(struct auth_proto *ap);
bool sae_sm_force_default_group(struct auth_proto *ap);