diff -ru /tmp/kismet-2010-07-R1/dumpfile_nettxt.cc ./dumpfile_nettxt.cc --- /tmp/kismet-2010-07-R1/dumpfile_nettxt.cc 2010-05-17 23:01:31.000000000 -0300 +++ ./dumpfile_nettxt.cc 2010-07-16 11:45:24.000000000 -0300 @@ -207,6 +207,8 @@ fprintf(txtfile, " Encryption : WEP\n"); if (m->second->cryptset & crypt_layer3) fprintf(txtfile, " Encryption : Layer3\n"); + if (m->second->cryptset & crypt_wpa_migmode) + fprintf(txtfile, " Encryption : WPA Migration Mode\n"); if (m->second->cryptset & crypt_wep40) fprintf(txtfile, " Encryption : WEP40\n"); if (m->second->cryptset & crypt_wep104) diff -ru /tmp/kismet-2010-07-R1/dumpfile_netxml.cc ./dumpfile_netxml.cc --- /tmp/kismet-2010-07-R1/dumpfile_netxml.cc 2010-05-17 23:01:31.000000000 -0300 +++ ./dumpfile_netxml.cc 2010-07-16 11:46:26.000000000 -0300 @@ -234,6 +234,8 @@ fprintf(xmlfile, " WEP\n"); if (m->second->cryptset & crypt_layer3) fprintf(xmlfile, " Layer3\n"); + if (m->second->cryptset & crypt_wpa_migmode) + fprintf(xmlfile, " WPA Migration Mode\n"); if (m->second->cryptset & crypt_wep40) fprintf(xmlfile, " WEP40\n"); if (m->second->cryptset & crypt_wep104) diff -ru /tmp/kismet-2010-07-R1/kis_panel_details.cc ./kis_panel_details.cc --- /tmp/kismet-2010-07-R1/kis_panel_details.cc 2009-08-12 18:22:04.000000000 -0300 +++ ./kis_panel_details.cc 2010-07-15 19:22:56.000000000 -0300 @@ -229,6 +229,8 @@ osstr << "WEP (Privacy bit set)"; if (cryptset & crypt_layer3) osstr << " Layer3"; + if (cryptset & crypt_wpa_migmode) + osstr << " WPA Migration Mode"; if (cryptset & crypt_wep40) osstr << " WEP (40bit)"; if (cryptset & crypt_wep104) diff -ru /tmp/kismet-2010-07-R1/kis_panel_network.cc ./kis_panel_network.cc --- /tmp/kismet-2010-07-R1/kis_panel_network.cc 2010-06-20 18:05:19.000000000 -0300 +++ ./kis_panel_network.cc 2010-07-15 19:26:19.000000000 -0300 @@ -2437,7 +2437,7 @@ if (net->lastssid == NULL) { d = '?'; } else { - if (net->lastssid->cryptset == crypt_wep) + if (net->lastssid->cryptset == crypt_wep || net->lastssid->cryptset & crypt_wpa_migmode) d = 'W'; else if (net->lastssid->cryptset) d = 'O'; @@ -2820,7 +2820,7 @@ } if (color < 0 && meta->lastssid != NULL) { - if (meta->lastssid->cryptset == crypt_wep) { + if (meta->lastssid->cryptset == crypt_wep || meta->lastssid->cryptset & crypt_wpa_migmode) { color = kis_netlist_color_wep; } else if (meta->lastssid->cryptset != 0) { color = kis_netlist_color_crypt; @@ -2920,6 +2920,10 @@ snprintf(rline + rofft, 1024 - rofft, " L3"); rofft += 3; } + if (meta->lastssid->cryptset & crypt_wpa_migmode) { + snprintf(rline + rofft, 1024 - rofft, " WPA Migration Mode"); + rofft += 19; + } if ((meta->lastssid->cryptset & crypt_wep40)) { snprintf(rline + rofft, 1024 - rofft, " WEP40"); rofft += 6; @@ -4290,6 +4294,10 @@ snprintf(rline + rofft, 1024 - rofft, " L3"); rofft += 3; } + if ((display_vec[x].cli->cryptset & crypt_wpa_migmode)) { + snprintf(rline + rofft, 1024 - rofft, " WPA Migration Mode"); + rofft += 19; + } if ((display_vec[x].cli->cryptset & crypt_wep40)) { snprintf(rline + rofft, 1024 - rofft, " WEP40"); rofft += 6; diff -ru /tmp/kismet-2010-07-R1/packetdissectors.cc ./packetdissectors.cc --- /tmp/kismet-2010-07-R1/packetdissectors.cc 2010-06-16 14:53:44.000000000 -0300 +++ ./packetdissectors.cc 2010-07-15 19:31:23.000000000 -0300 @@ -1148,6 +1148,10 @@ } } + // WPA Migration Mode + if ( (packinfo->cryptset & crypt_tkip) && ((packinfo->cryptset & crypt_wep40) || (packinfo->cryptset & crypt_wep104)) ) + packinfo->cryptset |= crypt_wpa_migmode; + // Match auth key components offt += 2; while (offt + 4 <= taglen) { diff -ru /tmp/kismet-2010-07-R1/packet_ieee80211.h ./packet_ieee80211.h --- /tmp/kismet-2010-07-R1/packet_ieee80211.h 2009-08-12 18:22:04.000000000 -0300 +++ ./packet_ieee80211.h 2010-07-15 19:03:08.000000000 -0300 @@ -215,6 +215,8 @@ crypt_psk = (1 << 7), crypt_aes_ocb = (1 << 8), crypt_aes_ccm = (1 << 9), + //WPA Migration Mode + crypt_wpa_migmode = (1 << 19), // Derived from data traffic crypt_leap = (1 << 10), crypt_ttls = (1 << 11),