Allow SHA256-based key handshake to be used without 802.11r
authorJouni Malinen <j@w1.fi>
Thu, 19 Feb 2009 17:49:34 +0000 (19:49 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 19 Feb 2009 17:49:34 +0000 (19:49 +0200)
Previously, both CONFIG_IEEE80211W=y and CONFIG_IEEE80211R=y were needed
to enable SHA256-based key handshake (WPA-PSK-SHA256 and
WPA-EAP-SHA256). This can now be done with just CONFIG_IEEE80211W=y.

src/common/wpa_common.c
src/rsn_supp/wpa.c

index 0e3984f..dd860d8 100644 (file)
@@ -56,10 +56,10 @@ int wpa_eapol_key_mic(const u8 *key, int ver, const u8 *buf, size_t len,
                hmac_sha1(key, 16, buf, len, hash);
                os_memcpy(mic, hash, MD5_MAC_LEN);
                break;
-#ifdef CONFIG_IEEE80211R
+#if defined(CONFIG_IEEE80211R) || defined(CONFIG_IEEE80211W)
        case WPA_KEY_INFO_TYPE_AES_128_CMAC:
                return omac1_aes_128(key, buf, len, mic);
-#endif /* CONFIG_IEEE80211R */
+#endif /* CONFIG_IEEE80211R || CONFIG_IEEE80211W */
        default:
                return -1;
        }
index 5270858..3bcb6ab 100644 (file)
@@ -1471,9 +1471,9 @@ int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr,
        key_info = WPA_GET_BE16(key->key_info);
        ver = key_info & WPA_KEY_INFO_TYPE_MASK;
        if (ver != WPA_KEY_INFO_TYPE_HMAC_MD5_RC4 &&
-#ifdef CONFIG_IEEE80211R
+#if defined(CONFIG_IEEE80211R) || defined(CONFIG_IEEE80211W)
            ver != WPA_KEY_INFO_TYPE_AES_128_CMAC &&
-#endif /* CONFIG_IEEE80211R */
+#endif /* CONFIG_IEEE80211R || CONFIG_IEEE80211W */
            ver != WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) {
                wpa_printf(MSG_INFO, "WPA: Unsupported EAPOL-Key descriptor "
                           "version %d.", ver);