]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
RSN: Split EAPOL-Key group msg 1/2 processing more completely for WPA(v1)
authorJouni Malinen <j@w1.fi>
Sun, 27 Nov 2022 08:15:57 +0000 (10:15 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 27 Nov 2022 12:18:53 +0000 (14:18 +0200)
Separate more of WPA(v1) functionality away from the RSN processing
code path.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/rsn_supp/wpa.c
tests/hwsim/test_ap_ft.py
tests/hwsim/test_ap_psk.py
tests/hwsim/test_fils.py
tests/hwsim/test_ibss.py
tests/hwsim/test_sigma_dut.py
tests/hwsim/test_wnm.py

index e3a64f171b6850d44769eb18a4854b296c608325..aba476a0cde5359af979a4482754c046a70e14ba 100644 (file)
@@ -2529,173 +2529,6 @@ failed:
 }
 
 
-static int wpa_supplicant_process_1_of_2_rsn(struct wpa_sm *sm,
-                                            const u8 *keydata,
-                                            size_t keydatalen,
-                                            u16 key_info,
-                                            struct wpa_gtk_data *gd)
-{
-       int maxkeylen;
-       struct wpa_eapol_ie_parse ie;
-       u16 gtk_len;
-
-       wpa_hexdump_key(MSG_DEBUG, "RSN: msg 1/2 key data",
-                       keydata, keydatalen);
-       if (wpa_supplicant_parse_ies(keydata, keydatalen, &ie) < 0)
-               return -1;
-       if (ie.gtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) {
-               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                       "WPA: GTK IE in unencrypted key data");
-               return -1;
-       }
-       if (ie.gtk == NULL) {
-               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
-                       "WPA: No GTK IE in Group Key msg 1/2");
-               return -1;
-       }
-       gtk_len = ie.gtk_len;
-       if (gtk_len < 2) {
-               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
-                       "RSN: Invalid GTK KDE length (%u) in Group Key msg 1/2",
-                       gtk_len);
-               return -1;
-       }
-       gtk_len -= 2;
-       if (gtk_len > sizeof(gd->gtk)) {
-               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
-                       "RSN: Too long GTK in GTK KDE (len=%u)", gtk_len);
-               return -1;
-       }
-       maxkeylen = gd->gtk_len = gtk_len;
-
-#ifdef CONFIG_OCV
-       if (wpa_sm_ocv_enabled(sm)) {
-               struct wpa_channel_info ci;
-
-               if (wpa_sm_channel_info(sm, &ci) != 0) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                               "Failed to get channel info to validate received OCI in EAPOL-Key group msg 1/2");
-                       return -1;
-               }
-
-               if (ocv_verify_tx_params(ie.oci, ie.oci_len, &ci,
-                                        channel_width_to_int(ci.chanwidth),
-                                        ci.seg1_idx) != OCI_SUCCESS) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
-                               "addr=" MACSTR " frame=eapol-key-g1 error=%s",
-                               MAC2STR(sm->bssid), ocv_errorstr);
-                       return -1;
-               }
-       }
-#endif /* CONFIG_OCV */
-
-       if (wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
-                                             gtk_len, maxkeylen,
-                                             &gd->key_rsc_len, &gd->alg))
-               return -1;
-
-       wpa_hexdump_key(MSG_DEBUG, "RSN: received GTK in group key handshake",
-                       ie.gtk, 2 + gtk_len);
-       gd->keyidx = ie.gtk[0] & 0x3;
-       gd->tx = wpa_supplicant_gtk_tx_bit_workaround(sm,
-                                                     !!(ie.gtk[0] & BIT(2)));
-       os_memcpy(gd->gtk, ie.gtk + 2, gtk_len);
-
-       if (ieee80211w_set_keys(sm, &ie) < 0)
-               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
-                       "RSN: Failed to configure IGTK");
-
-       return 0;
-}
-
-
-static int wpa_supplicant_process_1_of_2_wpa(struct wpa_sm *sm,
-                                            const struct wpa_eapol_key *key,
-                                            const u8 *key_data,
-                                            size_t key_data_len, u16 key_info,
-                                            u16 ver, struct wpa_gtk_data *gd)
-{
-       size_t maxkeylen;
-       u16 gtk_len;
-
-       gtk_len = WPA_GET_BE16(key->key_length);
-       maxkeylen = key_data_len;
-       if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) {
-               if (maxkeylen < 8) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
-                               "WPA: Too short maxkeylen (%lu)",
-                               (unsigned long) maxkeylen);
-                       return -1;
-               }
-               maxkeylen -= 8;
-       }
-
-       if (gtk_len > maxkeylen ||
-           wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
-                                             gtk_len, maxkeylen,
-                                             &gd->key_rsc_len, &gd->alg))
-               return -1;
-
-       gd->gtk_len = gtk_len;
-       gd->keyidx = (key_info & WPA_KEY_INFO_KEY_INDEX_MASK) >>
-               WPA_KEY_INFO_KEY_INDEX_SHIFT;
-       if (ver == WPA_KEY_INFO_TYPE_HMAC_MD5_RC4 && sm->ptk.kek_len == 16) {
-#if defined(CONFIG_NO_RC4) || defined(CONFIG_FIPS)
-               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                       "WPA: RC4 not supported in the build");
-               return -1;
-#else /* CONFIG_NO_RC4 || CONFIG_FIPS */
-               u8 ek[32];
-               if (key_data_len > sizeof(gd->gtk)) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                               "WPA: RC4 key data too long (%lu)",
-                               (unsigned long) key_data_len);
-                       return -1;
-               }
-               os_memcpy(ek, key->key_iv, 16);
-               os_memcpy(ek + 16, sm->ptk.kek, sm->ptk.kek_len);
-               os_memcpy(gd->gtk, key_data, key_data_len);
-               if (rc4_skip(ek, 32, 256, gd->gtk, key_data_len)) {
-                       forced_memzero(ek, sizeof(ek));
-                       wpa_msg(sm->ctx->msg_ctx, MSG_ERROR,
-                               "WPA: RC4 failed");
-                       return -1;
-               }
-               forced_memzero(ek, sizeof(ek));
-#endif /* CONFIG_NO_RC4 || CONFIG_FIPS */
-       } else if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) {
-               if (maxkeylen % 8) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                               "WPA: Unsupported AES-WRAP len %lu",
-                               (unsigned long) maxkeylen);
-                       return -1;
-               }
-               if (maxkeylen > sizeof(gd->gtk)) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                               "WPA: AES-WRAP key data "
-                               "too long (keydatalen=%lu maxkeylen=%lu)",
-                               (unsigned long) key_data_len,
-                               (unsigned long) maxkeylen);
-                       return -1;
-               }
-               if (aes_unwrap(sm->ptk.kek, sm->ptk.kek_len, maxkeylen / 8,
-                              key_data, gd->gtk)) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                               "WPA: AES unwrap failed - could not decrypt "
-                               "GTK");
-                       return -1;
-               }
-       } else {
-               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-                       "WPA: Unsupported key_info type %d", ver);
-               return -1;
-       }
-       gd->tx = wpa_supplicant_gtk_tx_bit_workaround(
-               sm, !!(key_info & WPA_KEY_INFO_TXRX));
-       return 0;
-}
-
-
 static int wpa_supplicant_send_2_of_2(struct wpa_sm *sm,
                                      const struct wpa_eapol_key *key,
                                      int ver, u16 key_info)
@@ -2879,18 +2712,20 @@ failed:
 }
 
 
-static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
-                                         const unsigned char *src_addr,
-                                         const struct wpa_eapol_key *key,
-                                         const u8 *key_data,
-                                         size_t key_data_len, u16 ver)
+static void wpa_supplicant_process_1_of_2_wpa(struct wpa_sm *sm,
+                                             const unsigned char *src_addr,
+                                             const struct wpa_eapol_key *key,
+                                             const u8 *key_data,
+                                             size_t key_data_len, u16 ver)
 {
        u16 key_info;
-       int rekey, ret;
+       int rekey;
        struct wpa_gtk_data gd;
        const u8 *key_rsc;
+       size_t maxkeylen;
+       u16 gtk_len;
 
-       if (!sm->msg_3_of_4_ok && !wpa_fils_is_completed(sm)) {
+       if (!sm->msg_3_of_4_ok) {
                wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
                        "WPA: Group Key Handshake started prior to completion of 4-way handshake");
                goto failed;
@@ -2899,25 +2734,88 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
        os_memset(&gd, 0, sizeof(gd));
 
        rekey = wpa_sm_get_state(sm) == WPA_COMPLETED;
-       wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: RX message 1 of Group Key "
-               "Handshake from " MACSTR " (ver=%d)", MAC2STR(src_addr), ver);
+       wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+               "WPA: RX message 1 of Group Key Handshake from " MACSTR
+               " (ver=%d)", MAC2STR(src_addr), ver);
 
        key_info = WPA_GET_BE16(key->key_info);
 
-       if (sm->proto == WPA_PROTO_RSN || sm->proto == WPA_PROTO_OSEN) {
-               ret = wpa_supplicant_process_1_of_2_rsn(sm, key_data,
-                                                       key_data_len, key_info,
-                                                       &gd);
-       } else {
-               ret = wpa_supplicant_process_1_of_2_wpa(sm, key, key_data,
-                                                       key_data_len,
-                                                       key_info, ver, &gd);
+       gtk_len = WPA_GET_BE16(key->key_length);
+       maxkeylen = key_data_len;
+       if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) {
+               if (maxkeylen < 8) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                               "WPA: Too short maxkeylen (%lu)",
+                               (unsigned long) maxkeylen);
+                       goto failed;
+               }
+               maxkeylen -= 8;
        }
 
+       if (gtk_len > maxkeylen ||
+           wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
+                                             gtk_len, maxkeylen,
+                                             &gd.key_rsc_len, &gd.alg))
+               goto failed;
+
        wpa_sm_set_state(sm, WPA_GROUP_HANDSHAKE);
 
-       if (ret)
+       gd.gtk_len = gtk_len;
+       gd.keyidx = (key_info & WPA_KEY_INFO_KEY_INDEX_MASK) >>
+               WPA_KEY_INFO_KEY_INDEX_SHIFT;
+       if (ver == WPA_KEY_INFO_TYPE_HMAC_MD5_RC4 && sm->ptk.kek_len == 16) {
+#if defined(CONFIG_NO_RC4) || defined(CONFIG_FIPS)
+               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                       "WPA: RC4 not supported in the build");
+               goto failed;
+#else /* CONFIG_NO_RC4 || CONFIG_FIPS */
+               u8 ek[32];
+               if (key_data_len > sizeof(gd.gtk)) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                               "WPA: RC4 key data too long (%lu)",
+                               (unsigned long) key_data_len);
+                       goto failed;
+               }
+               os_memcpy(ek, key->key_iv, 16);
+               os_memcpy(ek + 16, sm->ptk.kek, sm->ptk.kek_len);
+               os_memcpy(gd.gtk, key_data, key_data_len);
+               if (rc4_skip(ek, 32, 256, gd.gtk, key_data_len)) {
+                       forced_memzero(ek, sizeof(ek));
+                       wpa_msg(sm->ctx->msg_ctx, MSG_ERROR,
+                               "WPA: RC4 failed");
+                       goto failed;
+               }
+               forced_memzero(ek, sizeof(ek));
+#endif /* CONFIG_NO_RC4 || CONFIG_FIPS */
+       } else if (ver == WPA_KEY_INFO_TYPE_HMAC_SHA1_AES) {
+               if (maxkeylen % 8) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                               "WPA: Unsupported AES-WRAP len %lu",
+                               (unsigned long) maxkeylen);
+                       goto failed;
+               }
+               if (maxkeylen > sizeof(gd.gtk)) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                               "WPA: AES-WRAP key data "
+                               "too long (keydatalen=%lu maxkeylen=%lu)",
+                               (unsigned long) key_data_len,
+                               (unsigned long) maxkeylen);
+                       goto failed;
+               }
+               if (aes_unwrap(sm->ptk.kek, sm->ptk.kek_len, maxkeylen / 8,
+                              key_data, gd.gtk)) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                               "WPA: AES unwrap failed - could not decrypt "
+                               "GTK");
+                       goto failed;
+               }
+       } else {
+               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                       "WPA: Unsupported key_info type %d", ver);
                goto failed;
+       }
+       gd.tx = wpa_supplicant_gtk_tx_bit_workaround(
+               sm, !!(key_info & WPA_KEY_INFO_TXRX));
 
        key_rsc = key->key_rsc;
        if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
@@ -2929,16 +2827,137 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
        forced_memzero(&gd, sizeof(gd));
 
        if (rekey) {
-               wpa_msg(sm->ctx->msg_ctx, MSG_INFO, "WPA: Group rekeying "
-                       "completed with " MACSTR " [GTK=%s]",
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "WPA: Group rekeying completed with " MACSTR
+                       " [GTK=%s]",
                        MAC2STR(sm->bssid), wpa_cipher_txt(sm->group_cipher));
                wpa_sm_cancel_auth_timeout(sm);
                wpa_sm_set_state(sm, WPA_COMPLETED);
        } else {
                wpa_supplicant_key_neg_complete(sm, sm->bssid,
-                                               key_info &
-                                               WPA_KEY_INFO_SECURE);
+                                               key_info & WPA_KEY_INFO_SECURE);
+       }
+
+       wpa_sm_set_rekey_offload(sm);
+
+       return;
+
+failed:
+       forced_memzero(&gd, sizeof(gd));
+       wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED);
+}
+
+
+static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
+                                         const unsigned char *src_addr,
+                                         const struct wpa_eapol_key *key,
+                                         const u8 *key_data,
+                                         size_t key_data_len, u16 ver)
+{
+       u16 key_info;
+       struct wpa_gtk_data gd;
+       const u8 *key_rsc;
+       int maxkeylen;
+       struct wpa_eapol_ie_parse ie;
+       u16 gtk_len;
+
+       if (!sm->msg_3_of_4_ok && !wpa_fils_is_completed(sm)) {
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "RSN: Group Key Handshake started prior to completion of 4-way handshake");
+               goto failed;
+       }
+
+       os_memset(&gd, 0, sizeof(gd));
+
+       wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+               "RSN: RX message 1 of Group Key Handshake from " MACSTR
+               " (ver=%d)", MAC2STR(src_addr), ver);
+
+       key_info = WPA_GET_BE16(key->key_info);
+
+       wpa_hexdump_key(MSG_DEBUG, "RSN: msg 1/2 key data",
+                       key_data, key_data_len);
+       if (wpa_supplicant_parse_ies(key_data, key_data_len, &ie) < 0)
+               goto failed;
+
+       wpa_sm_set_state(sm, WPA_GROUP_HANDSHAKE);
+
+       if (ie.gtk && !(key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) {
+               wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                       "RSN: GTK KDE in unencrypted key data");
+               goto failed;
+       }
+       if (!ie.gtk) {
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "RSN: No GTK KDE in Group Key msg 1/2");
+               goto failed;
+       }
+       gtk_len = ie.gtk_len;
+       if (gtk_len < 2) {
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "RSN: Invalid GTK KDE length (%u) in Group Key msg 1/2",
+                       gtk_len);
+               goto failed;
+       }
+       gtk_len -= 2;
+       if (gtk_len > sizeof(gd.gtk)) {
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "RSN: Too long GTK in GTK KDE (len=%u)", gtk_len);
+               goto failed;
+       }
+       maxkeylen = gd.gtk_len = gtk_len;
+
+#ifdef CONFIG_OCV
+       if (wpa_sm_ocv_enabled(sm)) {
+               struct wpa_channel_info ci;
+
+               if (wpa_sm_channel_info(sm, &ci) != 0) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+                               "Failed to get channel info to validate received OCI in EAPOL-Key group msg 1/2");
+                       goto failed;
+               }
+
+               if (ocv_verify_tx_params(ie.oci, ie.oci_len, &ci,
+                                        channel_width_to_int(ci.chanwidth),
+                                        ci.seg1_idx) != OCI_SUCCESS) {
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
+                               "addr=" MACSTR " frame=eapol-key-g1 error=%s",
+                               MAC2STR(sm->bssid), ocv_errorstr);
+                       goto failed;
+               }
        }
+#endif /* CONFIG_OCV */
+
+       if (wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
+                                             gtk_len, maxkeylen,
+                                             &gd.key_rsc_len, &gd.alg))
+               goto failed;
+
+       wpa_hexdump_key(MSG_DEBUG, "RSN: received GTK in group key handshake",
+                       ie.gtk, 2 + gtk_len);
+       gd.keyidx = ie.gtk[0] & 0x3;
+       gd.tx = wpa_supplicant_gtk_tx_bit_workaround(sm,
+                                                     !!(ie.gtk[0] & BIT(2)));
+       os_memcpy(gd.gtk, ie.gtk + 2, gtk_len);
+
+       if (ieee80211w_set_keys(sm, &ie) < 0)
+               wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+                       "RSN: Failed to configure IGTK");
+
+       key_rsc = key->key_rsc;
+       if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
+               key_rsc = null_rsc;
+
+       if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) ||
+           wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0)
+               goto failed;
+       forced_memzero(&gd, sizeof(gd));
+
+       wpa_msg(sm->ctx->msg_ctx, MSG_INFO,
+               "RSN: Group rekeying completed with " MACSTR " [GTK=%s]",
+               MAC2STR(sm->bssid), wpa_cipher_txt(sm->group_cipher));
+       wpa_sm_cancel_auth_timeout(sm);
+       wpa_sm_set_state(sm, WPA_COMPLETED);
 
        wpa_sm_set_rekey_offload(sm);
 
@@ -3318,10 +3337,10 @@ static int wpa_sm_rx_eapol_wpa(struct wpa_sm *sm, const u8 *src_addr,
        } else {
                if (key_info & WPA_KEY_INFO_MIC) {
                        /* 1/2 Group Key Handshake */
-                       wpa_supplicant_process_1_of_2(sm, src_addr, key,
-                                                     key_data,
-                                                     key_data_len,
-                                                     ver);
+                       wpa_supplicant_process_1_of_2_wpa(sm, src_addr, key,
+                                                         key_data,
+                                                         key_data_len,
+                                                         ver);
                } else {
                        wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
                                "WPA: EAPOL-Key (Group) without Mic/Encr bit - dropped");
index 4eb8385009582ba90deb456f1d8d3cc2d9ef2329..48c5b522eb6979da530a4f02e4becca5b81bbedb 100644 (file)
@@ -1999,7 +1999,7 @@ def test_ap_ft_gtk_rekey(dev, apdev):
     dev[0].connect(ssid, psk=passphrase, key_mgmt="FT-PSK", proto="WPA2",
                    ieee80211w="1", scan_freq="2412")
 
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out after initial association")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -2014,7 +2014,7 @@ def test_ap_ft_gtk_rekey(dev, apdev):
         raise Exception("Did not connect to correct AP")
     hwsim_utils.test_connectivity(dev[0], hapd1)
 
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out after FT protocol")
     hwsim_utils.test_connectivity(dev[0], hapd1)
index fc9f894c2c1c444e420710f6fe91bdaf86f4c8bf..6df2662d6ae1491057619730eb41d654e7a3830c 100644 (file)
@@ -484,7 +484,7 @@ def test_ap_wpa2_gtk_rekey(dev, apdev):
     params['wpa_group_rekey'] = '1'
     hapd = hostapd.add_ap(apdev[0], params)
     dev[0].connect(ssid, psk=passphrase, scan_freq="2412")
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -498,7 +498,7 @@ def test_ap_wpa2_gtk_rekey_request(dev, apdev):
     dev[0].connect(ssid, psk=passphrase, scan_freq="2412")
     if "OK" not in hapd.request("REKEY_GTK"):
         raise Exception("REKEY_GTK failed")
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -514,7 +514,7 @@ def test_ap_wpa2_gtk_rekey_failure(dev, apdev):
         if "OK" not in hapd.request("REKEY_GTK"):
             raise Exception("REKEY_GTK failed")
         wait_fail_trigger(hapd, "GET_FAIL")
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     dev[0].wait_disconnected()
@@ -532,7 +532,7 @@ def test_ap_wpa2_gtk_rekey_request(dev, apdev):
         if "OK" not in dev[i].request("KEY_REQUEST 0 0"):
             raise Exception("KEY_REQUEST failed")
     for i in range(3):
-        ev = dev[i].wait_event(["WPA: Group rekeying completed"], timeout=2)
+        ev = dev[i].wait_event(["RSN: Group rekeying completed"], timeout=2)
         if ev is None:
             raise Exception("GTK rekey timed out")
     time.sleep(1)
@@ -552,16 +552,16 @@ def test_ap_wpa2_gtk_rekey_fail_1_sta(dev, apdev):
     dev[1].connect(ssid, psk=passphrase, scan_freq="2412")
     dev[2].connect(ssid, psk=passphrase, scan_freq="2412")
 
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=7)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=7)
     if ev is None:
         raise Exception("GTK rekey timed out [0]")
-    ev = dev[2].wait_event(["WPA: Group rekeying completed"], timeout=1)
+    ev = dev[2].wait_event(["RSN: Group rekeying completed"], timeout=1)
     if ev is None:
         raise Exception("GTK rekey timed out [2]")
 
     disconnected = False
     for i in range(10):
-        ev = dev[1].wait_event(["WPA: Group rekeying completed",
+        ev = dev[1].wait_event(["RSN: Group rekeying completed",
                                 "CTRL-EVENT-DISCONNECTED"], timeout=10)
         if ev is None:
             raise Exception("GTK rekey timed out [1]")
@@ -609,7 +609,7 @@ def test_ap_wpa2_gmk_rekey(dev, apdev):
     hapd = hostapd.add_ap(apdev[0], params)
     dev[0].connect(ssid, psk=passphrase, scan_freq="2412")
     for i in range(0, 3):
-        ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+        ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
         if ev is None:
             raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -625,7 +625,7 @@ def test_ap_wpa2_strict_rekey(dev, apdev):
     dev[0].connect(ssid, psk=passphrase, scan_freq="2412")
     dev[1].connect(ssid, psk=passphrase, scan_freq="2412")
     dev[1].request("DISCONNECT")
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -2150,7 +2150,7 @@ def test_ap_wpa2_psk_supp_proto_unexpected_group_msg(dev, apdev):
                               key_info=0x13c2)
     counter += 1
     send_eapol(dev[0], bssid, build_eapol(msg))
-    ev = dev[0].wait_event(["WPA: Group Key Handshake started prior to completion of 4-way handshake"])
+    ev = dev[0].wait_event(["RSN: Group Key Handshake started prior to completion of 4-way handshake"])
     if ev is None:
         raise Exception("Unexpected group key message not reported")
     dev[0].wait_disconnected(timeout=1)
@@ -2304,7 +2304,7 @@ def test_ap_wpa2_psk_supp_proto_gtk_keyidx_0_and_3(dev, apdev):
     counter += 1
     send_eapol(dev[0], bssid, build_eapol(msg))
     msg = recv_eapol(dev[0])
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"])
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"])
     if ev is None:
         raise Exception("GTK rekeing not reported")
 
@@ -2315,7 +2315,7 @@ def test_ap_wpa2_psk_supp_proto_gtk_keyidx_0_and_3(dev, apdev):
                               key_info=0x03c2)
     counter += 1
     send_eapol(dev[0], bssid, build_eapol(msg))
-    ev = dev[0].wait_event(["WPA: GTK IE in unencrypted key data"])
+    ev = dev[0].wait_event(["RSN: GTK KDE in unencrypted key data"])
     if ev is None:
         raise Exception("Unencrypted GTK KDE not reported")
     dev[0].wait_disconnected(timeout=1)
@@ -2356,7 +2356,7 @@ def test_ap_wpa2_psk_supp_proto_no_gtk_in_group_msg(dev, apdev):
                               key_info=0x13c2)
     counter += 1
     send_eapol(dev[0], bssid, build_eapol(msg))
-    ev = dev[0].wait_event(["WPA: No GTK IE in Group Key msg 1/2"])
+    ev = dev[0].wait_event(["RSN: No GTK KDE in Group Key msg 1/2"])
     if ev is None:
         raise Exception("Missing GTK KDE not reported")
     dev[0].wait_disconnected(timeout=1)
@@ -3212,7 +3212,7 @@ def test_ap_wpa2_disable_eapol_retry_group(dev, apdev):
 
     dev[1].request("DISCONNECT")
     dev[1].wait_disconnected()
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     dev[1].request("RECONNECT")
index e03b813262b6c9ef7d99421a314371d4b6897452..f7daf1907670c24bd97a30c7c755d2dd37670673 100644 (file)
@@ -61,7 +61,7 @@ def test_fils_sk_full_auth(dev, apdev, params):
                    erp="1", scan_freq="2412")
     hwsim_utils.test_connectivity(dev[0], hapd)
 
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -110,7 +110,7 @@ def test_fils_sk_sha384_full_auth(dev, apdev, params):
                    erp="1", scan_freq="2412")
     hwsim_utils.test_connectivity(dev[0], hapd)
 
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -1697,7 +1697,7 @@ def setup_fils_rekey(dev, apdev, params, wpa_ptk_rekey=0, wpa_group_rekey=0,
 def test_fils_auth_gtk_rekey(dev, apdev, params):
     """GTK rekeying after FILS authentication"""
     hapd = setup_fils_rekey(dev, apdev, params, wpa_group_rekey=1)
-    ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2)
+    ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=2)
     if ev is None:
         raise Exception("GTK rekey timed out")
     hwsim_utils.test_connectivity(dev[0], hapd)
index 29ebd8129ff135a9054a77af092508762679acbd..f2b3e700666f4c1545d043d845e24eb99069848b 100644 (file)
@@ -182,7 +182,7 @@ def test_ibss_rsn_group_rekey(dev):
     dev[1].dump_monitor()
 
     hwsim_utils.test_connectivity(dev[0], dev[1])
-    ev = dev[1].wait_event(["WPA: Group rekeying completed"], timeout=10)
+    ev = dev[1].wait_event(["RSN: Group rekeying completed"], timeout=10)
     if ev is None:
         raise Exception("No group rekeying reported")
     hwsim_utils.test_connectivity(dev[0], dev[1])
index d2b6fb99bc77c27986c50c3d1f78297516823e18..100993cf660cd3bbd2837cb66a78d47279ebfb2d 100644 (file)
@@ -6054,7 +6054,7 @@ def test_sigma_dut_gtk_rekey(dev, apdev):
 
         dev[0].dump_monitor()
         sigma_dut_cmd_check("dev_exec_action,interface,%s,program,WPA3,KeyRotation,1" % ifname)
-        ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=5)
+        ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=5)
         if ev is None:
             raise Exception("GTK rekeying not seen")
 
@@ -6081,7 +6081,7 @@ def test_sigma_dut_ap_gtk_rekey(dev, apdev, params):
 
             sigma_dut_cmd_check("dev_exec_action,name,AP,interface,%s,program,WPA3,KeyRotation,1" % iface)
 
-            ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=5)
+            ev = dev[0].wait_event(["RSN: Group rekeying completed"], timeout=5)
             if ev is None:
                 raise Exception("GTK rekeying not seen")
 
index 5e28c683f5c5b782e82780a8bd76bf2513377c35..54e7354e90906ef1b568a2456cf15ca7d7d0a7b4 100644 (file)
@@ -227,7 +227,7 @@ def check_wnm_sleep_mode_enter_exit(hapd, dev, interval=None, tfs_req=None,
         time.sleep(0.1)
         if "OK" not in hapd.request("REKEY_GTK"):
             raise Exception("REKEY_GTK failed")
-        ev = dev.wait_event(["WPA: Group rekeying completed"], timeout=0.1)
+        ev = dev.wait_event(["RSN: Group rekeying completed"], timeout=0.1)
         if ev is not None:
                 raise Exception("Unexpected report of GTK rekey during WNM-Sleep Mode")
 
@@ -247,7 +247,7 @@ def check_wnm_sleep_mode_enter_exit(hapd, dev, interval=None, tfs_req=None,
         time.sleep(0.1)
         if "OK" not in hapd.request("REKEY_GTK"):
             raise Exception("REKEY_GTK failed")
-        ev = dev.wait_event(["WPA: Group rekeying completed"], timeout=2)
+        ev = dev.wait_event(["RSN: Group rekeying completed"], timeout=2)
         if ev is None:
                 raise Exception("GTK rekey timed out")