aboutsummaryrefslogtreecommitdiffstats
path: root/epan/crypt
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-11-05 10:02:07 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-11-05 10:02:07 +0000
commit45953625a5c9238300ef706aa8b816b935b4621f (patch)
treec9c12a3f1e31851aec3efdcc1cd92fff6c3c3fbe /epan/crypt
parent8366b455593c486e112188fb771b4554b9883a33 (diff)
From Andrei Emeltchenko:
Add 802.11 AMP LLC/SNAP header Add LLC/SNAP header specified in BLUETOOTH SPECIFICATION Version 4.0 [Vol 5] 802.11 Protocol Adaptation Layer Functional Specification. The SNAP header composed of the OUI of the Bluetooth SIG and the protocol identifier given in spec mentioned shall be used to distinguish AMP 4-way handshake messages from external security traffic. Decode this traffic as 802.1X authentication. Part of https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7633 svn path=/trunk/; revision=45920
Diffstat (limited to 'epan/crypt')
-rw-r--r--epan/crypt/airpdcap.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/epan/crypt/airpdcap.c b/epan/crypt/airpdcap.c
index b42f36d7a9..3f8c138964 100644
--- a/epan/crypt/airpdcap.c
+++ b/epan/crypt/airpdcap.c
@@ -618,6 +618,14 @@ INT AirPDcapPacketProcess(
0x88, 0x8E /* Type: 802.1X authentication */
};
+ const guint8 bt_dot1x_header[] = {
+ 0xAA, /* DSAP=SNAP */
+ 0xAA, /* SSAP=SNAP */
+ 0x03, /* Control field=Unnumbered frame */
+ 0x00, 0x19, 0x58, /* Org. code=Bluetooth SIG */
+ 0x00, 0x03 /* Type: Bluetooth Security */
+ };
+
#ifdef _DEBUG
CHAR msgbuf[255];
#endif
@@ -688,7 +696,7 @@ INT AirPDcapPacketProcess(
AIRPDCAP_DEBUG_PRINT_LINE("AirPDcapPacketProcess", "Unencrypted data", AIRPDCAP_DEBUG_LEVEL_3);
/* check if the packet as an LLC header and the packet is 802.1X authentication (IEEE 802.1X-2004, pg. 24) */
- if (memcmp(data+offset, dot1x_header, 8) == 0) {
+ if (memcmp(data+offset, dot1x_header, 8) == 0 || memcmp(data+offset, bt_dot1x_header, 8) == 0) {
AIRPDCAP_DEBUG_PRINT_LINE("AirPDcapPacketProcess", "Authentication: EAPOL packet", AIRPDCAP_DEBUG_LEVEL_3);
/* skip LLC header */