Work around AP misbehavior on EAPOL-Key descriptor version
It looks like some APs are incorrectly selecting descriptor version 3 (AES-128-CMAC) for EAPOL-Key frames when version 2 (HMAC-SHA1) was expected to be used. This is likely triggered by an attempt to negotiate PMF with SHA1-based AKM. Since AES-128-CMAC is considered stronger than HMAC-SHA1, allow the incorrect, but stronger, option to be used in these cases to avoid interoperability issues with deployed APs. This issue shows up with "WPA: CCMP is used, but EAPOL-Key descriptor version (3) is not 2" in debug log. With the new workaround, this issue is ignored and "WPA: Interoperability workaround: allow incorrect (should have been HMAC-SHA1), but stronger (is AES-128-CMAC), descriptor version to be used" is written to the log. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
9128f520c3
commit
9f6a7cddc4
1 changed files with 3 additions and 0 deletions
|
@ -1756,6 +1756,9 @@ int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr,
|
|||
wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
|
||||
"WPA: Backwards compatibility: allow invalid "
|
||||
"version for non-CCMP group keys");
|
||||
} else if (ver == WPA_KEY_INFO_TYPE_AES_128_CMAC) {
|
||||
wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
|
||||
"WPA: Interoperability workaround: allow incorrect (should have been HMAC-SHA1), but stronger (is AES-128-CMAC), descriptor version to be used");
|
||||
} else
|
||||
goto out;
|
||||
} else if (sm->pairwise_cipher == WPA_CIPHER_GCMP &&
|
||||
|
|
Loading…
Reference in a new issue