wireshark/epan
Richard Sharpe 082ad65a0d ieee80211: Improve EAPOL Key MIC Len handling in some cases.
If the capture does not contain any indication of the Key MIC Len or we
are making only one pass (such as with tshark) we can actually figure
out the Key MIC Len if we see the first frame of the four-way handshake.

We only use this approach if we used the default value for the Key MIC Len
and defer to other information if it is available. We also save the value
once we have figured it out and only try to figure it out on the first
frame of the four-way handshake.

If we cannot determine the Key MIC length from the first frame in the
four-way handshake we can use the second frame in the four-way handshake.
However, we also need to keep some extra state, specifically, whether or not
we have actually set the last AKM suite seen.

Bug: 16210
Change-Id: I28bc7dacbd34d03b24e66371f66b22853fa608d1
Reviewed-on: https://code.wireshark.org/review/35119
Petri-Dish: Richard Sharpe <realrichardsharpe@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Mikael Kanstrup <mikael.kanstrup@sony.com>
Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
2019-12-04 17:17:13 +00:00
..
crypt dot11decrypt: Fix MIC calc for HMAC-SHA384 2019-11-14 08:27:54 +00:00
dfilter HTTPS In Even More Places, update some links. 2019-07-28 04:21:18 +00:00
dissectors ieee80211: Improve EAPOL Key MIC Len handling in some cases. 2019-12-04 17:17:13 +00:00
ftypes Get rid of some unnecessary string operations 2019-10-08 22:10:25 +00:00
wmem Protobuf: Add show_details preferences. Fix two bugs. 2019-10-14 06:47:30 +00:00
wslua funnel: Free callback data 2019-11-05 17:15:42 +00:00
.editorconfig HTTPS In Even More Places, update some links. 2019-07-28 04:21:18 +00:00
CMakeLists.txt epan: Rename dissector_filters.c to conversation_filter.c 2019-11-04 10:17:16 +00:00
addr_and_mask.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
addr_and_mask.h
addr_resolv.c Add c-ares to the required library list. 2019-11-23 22:45:59 +00:00
addr_resolv.h Add support for "custom" DNS servers to be used in address resolution 2019-09-15 14:10:38 +00:00
address.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
address_types.c ax25: Fix addresses with non-zero SSIDs 2019-11-03 13:15:49 +00:00
address_types.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
afn.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
afn.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
aftypes.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
aftypes.h
app_mem_usage.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
app_mem_usage.h
arcnet_pids.h
arptypes.h
asn1.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
asn1.h
ax25_pids.h
bridged_pids.h
capture_dissectors.c Load environment vars to globals for efficency. 2019-09-04 12:31:53 +00:00
capture_dissectors.h
charsets.c HTTPS In Still More Places, update more URLs. 2019-07-27 22:56:35 +00:00
charsets.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
chdlctypes.h
color_filters.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
color_filters.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
column-info.h
column-utils.c column: set G_REGEX_RAW for the custom column filter 2019-02-10 16:12:59 +00:00
column-utils.h column-utils: replace TAB with SPACE in prototypes. 2019-01-29 21:49:02 +00:00
column.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
column.h
conv_id.h
conversation.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
conversation.h conversation.h: Whitespace fixes 2019-11-24 21:33:18 +00:00
conversation_debug.h conversation.c: do not use wmem packet scope for debug strings 2019-06-05 10:29:13 +00:00
conversation_filter.c epan: Rename dissector_filters.c to conversation_filter.c 2019-11-04 10:17:16 +00:00
conversation_filter.h epan: Rename dissector_filters.c to conversation_filter.c 2019-11-04 10:17:16 +00:00
conversation_table.c
conversation_table.h
crc6-tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
crc6-tvb.h
crc8-tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
crc8-tvb.h
crc10-tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
crc10-tvb.h
crc16-tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
crc16-tvb.h USBLL: Verify DATA packets CRC-16 2019-07-25 08:58:13 +00:00
crc32-tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
crc32-tvb.h
decode_as.c register_decode_as_next_proto: remove the "title" parameter 2019-06-13 05:38:22 +00:00
decode_as.h doxygen: Try to fix warnings. 2019-07-10 16:49:37 +00:00
diam_dict.h
diam_dict.l
disabled_protos.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
disabled_protos.h
dtd.h
dtd_grammar.lemon
dtd_parse.h
dtd_parse.l
dtd_preparse.l
dvb_chartbl.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
dvb_chartbl.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
eap.h EAP: Passing additional context to allow for reassembly in vendor parser 2019-04-23 23:57:25 +00:00
eapol_keydes_types.h
epan.c Add c-ares to the required library list. 2019-11-23 22:45:59 +00:00
epan.h Load environment vars to globals for efficency. 2019-09-04 12:31:53 +00:00
epan_dissect.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
etypes.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
ex-opt.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
ex-opt.h
except.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
except.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
exceptions.h
exntest.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
expert.c Load environment vars to globals for efficency. 2019-09-04 12:31:53 +00:00
expert.h expert.h: Reorder includes 2019-12-01 07:34:03 +00:00
export_object.c HTTPS In Still More Places, update more URLs. 2019-07-27 22:56:35 +00:00
export_object.h
exported_pdu.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
exported_pdu.h
filter_expressions.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
filter_expressions.h Doxygen: Fix some warnings. 2019-07-11 11:03:00 +00:00
follow.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
follow.h QUIC: Add Follow QUIC Stream support to Qt and tshark 2019-10-04 04:36:09 +00:00
frame_data.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
frame_data.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
frame_data_sequence.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
frame_data_sequence.h
funnel.c funnel: Free callback data 2019-11-05 15:21:30 +00:00
funnel.h funnel: Free callback data 2019-11-05 15:21:30 +00:00
garrayfix.h
golay.c
golay.h
guid-utils.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
guid-utils.h
iana_charsets.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
iana_charsets.h
iax2_codec_type.h
in_cksum.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
in_cksum.h
ip_opts.h
ipproto.c
ipproto.h
ipv4.h
ipv6.h
lapd_sapi.h
llcsaps.h
maxmind_db.c HTTPS In Still More Places, update more URLs. 2019-07-27 22:56:35 +00:00
maxmind_db.h Re-implement "Map" feature for Endpoints 2019-02-16 21:11:12 +00:00
media_params.c
media_params.h
next_tvb.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
next_tvb.h
nlpid.h
oids.c epan,packaging: convert http URLs to https 2019-07-20 20:50:59 +00:00
oids.h
oids_test.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
osi-utils.c
osi-utils.h
oui.h Add support decode extremeNetworks-avaya access point TLVs 2019-05-24 06:49:59 +00:00
packet.c Restrict allowed characters in "short name" of heuristic_protos 2019-12-01 17:07:42 +00:00
packet.h Restrict allowed characters in "short name" of heuristic_protos 2019-12-01 17:07:42 +00:00
packet_info.h
params.h
plugin_if.c
plugin_if.h
ppptypes.h
prefs-int.h Doxygen: Fix some warnings. 2019-07-11 11:03:00 +00:00
prefs.c QT/CLI: Remove limit for object export files 2019-11-05 22:40:27 +00:00
prefs.h QT/CLI: Remove limit for object export files 2019-11-05 22:40:27 +00:00
print.c print: remove assert in get_field_data(). 2019-11-21 08:03:46 +00:00
print.h
print.ps
print_stream.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
print_stream.h Only put generic values into the print_stream_t structure. 2019-04-01 01:41:56 +00:00
proto.c Fix display of pino protocols in display filter dropdown 2019-11-12 06:20:38 +00:00
proto.h epan: Make proto_tree_add_oid* usable from DLLs. 2019-11-07 16:43:43 +00:00
proto_data.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
proto_data.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
protobuf-helper.c protobuf: add support for Protocol Buffers Language (*.proto) files 2019-10-07 10:35:52 +00:00
protobuf-helper.h protobuf: add support for Protocol Buffers Language (*.proto) files 2019-10-07 10:35:52 +00:00
protobuf_lang.y Protobuf: Enhancements about error message during loading .proto files 2019-11-10 10:19:16 +00:00
protobuf_lang_scanner.l Protobuf: Add show_details preferences. Fix two bugs. 2019-10-14 06:47:30 +00:00
protobuf_lang_tree.c Protobuf: Enhancements about error message during loading .proto files 2019-11-10 10:19:16 +00:00
protobuf_lang_tree.h Protobuf: Enhancements about error message during loading .proto files 2019-11-10 10:19:16 +00:00
ps.h
ptvcursor.h
radius_dict.l HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
range.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
range.h
reassemble.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
reassemble.h Reassemble: Fix typo 2019-11-12 13:43:16 +00:00
reassemble_test.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
reedsolomon.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
reedsolomon.h
register-int.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
register.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
register.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
req_resp_hdrs.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
req_resp_hdrs.h HTTP: fix bad reassembly with Content-Type and no Content-Length 2019-05-08 01:54:41 +00:00
rtd_table.c
rtd_table.h
rtp_pt.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
sctpppids.h SCTP PPID Update 2019-03-19 20:52:10 +00:00
secrets.c epan: Work around a p11-kit bug on Windows. 2019-08-01 16:24:14 +00:00
secrets.h Fix build without GnuTLS 2019-01-31 13:14:22 +00:00
sequence_analysis.c
sequence_analysis.h
show_exception.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
show_exception.h
slow_protocol_subtypes.h
sminmpec.h Netflow: Add decodes for Niagara Networks IPFIX information elements. 2019-07-08 11:40:44 +00:00
srt_table.c
srt_table.h
stat_groups.h
stat_tap_ui.c
stat_tap_ui.h
stats_tree.c Use g_hash_table_replace() when key depends on data 2019-08-28 03:51:32 +00:00
stats_tree.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
stats_tree_priv.h
stream.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
stream.h
strutil.c Add format_size_wmem 2019-12-02 05:01:16 +00:00
strutil.h Add format_size_wmem 2019-12-02 05:01:16 +00:00
t35.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
t35.h
tap-voip.h
tap.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tap.h
tfs.c NAS-5GS: Dissect more IEs 2019-01-31 14:39:49 +00:00
tfs.h NAS-5GS: Dissect more IEs 2019-01-31 14:39:49 +00:00
time_fmt.h Add proto_tree_add_item_ret_time_string 2019-08-29 13:31:48 +00:00
timestamp.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
timestamp.h
timestats.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
timestats.h
to_str-int.h
to_str.c Add proto_tree_add_item_ret_time_string 2019-08-29 13:31:48 +00:00
to_str.h
tvbparse.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbparse.h
tvbtest.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbuff-int.h
tvbuff.c kafka: Cleanup to use "native" APIs. 2019-09-05 03:25:39 +00:00
tvbuff.h kafka: Cleanup to use "native" APIs. 2019-09-05 03:25:39 +00:00
tvbuff_base64.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbuff_brotli.c Add brotli decompression support for HTTP and HTTP2 dissectors. 2019-04-22 15:24:46 +00:00
tvbuff_composite.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbuff_lz77.c Note the Microsoft standard, fix the LZNT1 comment. 2019-08-04 01:09:47 +00:00
tvbuff_lz77huff.c TVB(LZ77+Huffman): return proper value on error (CID1451652) 2019-10-21 07:11:40 +00:00
tvbuff_lznt1.c Note the Microsoft standard, fix the LZNT1 comment. 2019-08-04 01:09:47 +00:00
tvbuff_real.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbuff_subset.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
tvbuff_zlib.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
uat-int.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
uat.c
uat.h
uat_load.l
unit_strings.c IEEE80211: handle symbol proprietary tag seperately 2019-07-21 13:11:20 +00:00
unit_strings.h IEEE80211: handle symbol proprietary tag seperately 2019-07-21 13:11:20 +00:00
value_string.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
value_string.h HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
x264_prt_id.h
xdlc.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
xdlc.h Fix whitespace. 2019-07-15 08:02:20 +00:00