]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wlantest: Do not report decryption keys when checking only zero TK
authorJouni Malinen <jouni@codeaurora.org>
Wed, 1 Apr 2020 15:30:33 +0000 (18:30 +0300)
committerJouni Malinen <j@w1.fi>
Wed, 1 Apr 2020 15:30:33 +0000 (18:30 +0300)
All the "Failed to decrypt frame" debug prints were confusing since
those were not supposed to be shown unless there were one or more real
TKs available. The recently added check for zero TK added these notes
for that case which is not really correct, so get rid of them.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
wlantest/rx_data.c

index 91c0144f8a8d56c8e2e22ca1cb7b3e07099cd5ca..58c986d8358c42a225bd6fc6a37d6a26c81b7bdd 100644 (file)
@@ -325,7 +325,7 @@ skip_replay_det:
                write_pcap_decrypted(wt, (const u8 *) hdr, hdrlen,
                                     decrypted, dlen);
        } else
-               add_note(wt, MSG_DEBUG, "Failed to decrypt frame");
+               add_note(wt, MSG_DEBUG, "Failed to decrypt frame (group)");
        os_free(decrypted);
 }
 
@@ -348,6 +348,7 @@ static void rx_data_bss_prot(struct wlantest *wt,
        int ptk_iter_done = 0;
        int try_ptk_iter = 0;
        int replay = 0;
+       int only_zero_tk = 0;
 
        if (hdr->addr1[0] & 0x01) {
                rx_data_bss_prot_group(wt, hdr, hdrlen, qos, dst, src,
@@ -427,6 +428,7 @@ static void rx_data_bss_prot(struct wlantest *wt,
                if (dl_list_empty(&wt->ptk)) {
                        if (len >= 4 && sta) {
                                keyid = data[3] >> 6;
+                               only_zero_tk = 1;
                                goto check_zero_tk;
                        }
                        return;
@@ -619,7 +621,7 @@ check_zero_tk:
                write_pcap_decrypted(wt, (const u8 *) hdr, hdrlen,
                                     decrypted, dlen);
        } else {
-               if (!try_ptk_iter)
+               if (!try_ptk_iter && !only_zero_tk)
                        add_note(wt, MSG_DEBUG, "Failed to decrypt frame");
 
                /* Assume the frame was corrupted and there was no FCS to check.