diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-11-05 10:02:07 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-11-05 10:02:07 +0000 |
commit | 45953625a5c9238300ef706aa8b816b935b4621f (patch) | |
tree | c9c12a3f1e31851aec3efdcc1cd92fff6c3c3fbe /epan/crypt | |
parent | 8366b455593c486e112188fb771b4554b9883a33 (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.c | 10 |
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 */ |