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),