wireshark/epan
Mikael Kanstrup 3fdabc62d4 dot11decrypt: Let dissector parse eapol frames
To be able to support authentication key management suites that use
different MIC, PMK, PTK lengths the engine would need to be extended
to support parsing EAPOL Key frames with variable field lengts. Though
as the IEEE 802.11 dissector already support this the alternative
(implemented in this patch) is to remove the EAPOL frame parsing inside
the engine and have the dissector feed it with a struct of parsed
fields instead.

For this a new type DOT11DECRYPT_EAPOL_PARSED is exported and
dot11decrypt now expects dissector to fill this struct with parsed
EAPOL fields before calling Dot11DecryptScanEapolForKeys.

Dissection of EAPOL fields is scattered over several functions in the
dissector code so parsed fields are temporarily stored in proto data
and then gathered before fed into dot11decrypt engine.

Change-Id: Ic6aeb4900f373dcde1ea3f1f0f24df2ae827576e
Reviewed-on: https://code.wireshark.org/review/35020
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-11-14 08:25:13 +00:00
..
crypt dot11decrypt: Let dissector parse eapol frames 2019-11-14 08:25:13 +00:00
dfilter HTTPS In Even More Places, update some links. 2019-07-28 04:21:18 +00:00
dissectors dot11decrypt: Let dissector parse eapol frames 2019-11-14 08:25: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 Clean up description of the "DNS Servers" preference. 2019-11-10 01:13:16 +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_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 diam_dict.l,wimaxasncp_dict.l: fix -Werror=stringop-truncation 2019-01-19 07:08:43 +00:00
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 epan: Rename dissector_filters.c to conversation_filter.c 2019-11-04 10:17:16 +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
export_object.c HTTPS In Still More Places, update more URLs. 2019-07-27 22:56:35 +00:00
export_object.h Limit the maximum *file* name length for exported objects. 2019-01-01 21:36:58 +00:00
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 Load environment vars to globals for efficency. 2019-09-04 12:31:53 +00:00
packet.h helper function to get a payload dissector table's current handle 2019-07-22 15:44:08 +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 ek: fix raw hex prints. 2019-11-07 15:55:50 +00:00
print.h epan: use json_dumper for json outputs. 2019-01-03 14:33:48 +00:00
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 Add a "failed" return for tap packet routines. 2019-01-01 05:03:42 +00:00
stream.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
stream.h
strutil.c HTTPS (almost) everywhere. 2019-07-26 18:44:40 +00:00
strutil.h
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 Add a "failed" return for tap packet routines. 2019-01-01 05:03:42 +00:00
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 epan: remove redundant casts. 2019-01-03 23:39:43 +00:00
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