wireshark/epan
John Thacker dcbd3874d3 tls: add support for DESEGMENT_UNTIL_FIN, sequence numbers
Add a tlsinfo struct that is similar to tcpinfo, and carries
the sequence number (within the TLS stream) and the end of
stream notification (from the TCP FIN or close_notify alerts)
in addition to the session app handle pointer already used
by TLS heuristic dissectors.

Have HTTP use the end of stream notification in order to
handle DESEGMENT_UNTIL_FIN the same way it does when HTTP
is directly over TCP. Also have HTTP use the sequence number
in order to reduce chunked processing from O(N^2) to O(N)
similar to done over TCP.

Update all the TLS heuristic dissectors that set the app
handle to use the new structure.

Note the workaround for the issue #15159 - the TLS dissector
has to report to the TCP dissector that desegmentation at FIN
is required, so that the TCP dissector will know to call the
TLS dissector at FIN. However, the TLS dissector does not request
that the TCP dissector resend bytes belonging to records that
TLS has already desegmented (and decrypted, if possible), to
avoid decrypting twice (and upsetting the decoder state.)

This can mean the TCP dissector calling the TLS dissector to
desegment at FIN with a zero byte payload. In such as case, the
TLS dissector artificially returns "1" byte dissected to avoid
indicating rejecting the payload and having the TLS (and subdissector)
layers removed. (TCP ignores the value returned when desegmenting
at FIN.)

Fix #9154. Fix #14382.
2022-11-01 10:03:35 +00:00
..
crypt dot11decrypt: explicitly cast *pmk_len and msk_len 2022-06-03 23:13:34 +00:00
dfilter dfilter: Improve representation of raw field references 2022-10-31 21:02:39 +00:00
dissectors tls: add support for DESEGMENT_UNTIL_FIN, sequence numbers 2022-11-01 10:03:35 +00:00
ftypes ftypes: Do not sanitize strings for UTF-8 errors 2022-10-26 16:23:55 +01:00
wslua addr_resolv: add support for static hostname entries 2022-10-31 14:45:56 +00:00
.editorconfig epan: Normalize conversation code indentation. 2022-05-09 10:50:17 -07:00
CMakeLists.txt epan/proto: Replace format text() 2022-10-20 20:05:15 +01:00
addr_and_mask.c
addr_and_mask.h
addr_resolv.c addr_resolv: add support for static hostname entries 2022-10-31 14:45:56 +00:00
addr_resolv.h addr_resolv: add support for static hostname entries 2022-10-31 14:45:56 +00:00
address.h epan: Use host byte order with AT_NUMERIC 2022-06-23 16:58:07 +01:00
address_types.c epan: Prevent buffer overflows in some built-in addr_to_str types 2022-07-05 21:56:54 +00:00
address_types.h
afn.c
afn.h
aftypes.c
aftypes.h
app_mem_usage.c
app_mem_usage.h
arcnet_pids.h
arptypes.h
asn1.c
asn1.h
ax25_pids.h
bridged_pids.h
capture_dissectors.c
capture_dissectors.h
charsets.c charsets: Don't add illegal Unicode codepoints for UTF-16, UTF-32 2022-10-19 07:53:02 -04:00
charsets.h charsets: Don't add illegal Unicode codepoints for UTF-16, UTF-32 2022-10-19 07:53:02 -04:00
chdlctypes.h
cisco_pid.h
color_filters.c Fix "generated by" comments in configuration files. 2022-04-29 18:00:21 +00:00
color_filters.h
column-info.h epan: Rearrange column includes 2022-08-13 19:37:28 +00:00
column-utils.c column-utils: Check for UTF-8 truncation 2022-10-29 07:59:13 -04:00
column-utils.h epan: Format column string input for display. 2022-10-26 13:28:19 +01:00
column.c epan: Rearrange column includes 2022-08-13 19:37:28 +00:00
column.h epan: Rearrange column includes 2022-08-13 19:37:28 +00:00
conv_id.h
conversation.c conversation: bring back conversation_pt_to_endpoint_type(). 2022-09-02 00:07:53 -07:00
conversation.h LTP: Enhance with generated items, sequence analysis, and statistics 2022-10-13 09:30:55 +00:00
conversation_debug.h epan: Normalize conversation code indentation. 2022-05-09 10:50:17 -07:00
conversation_filter.c
conversation_filter.h Fix a documentation warning. 2022-04-26 19:12:11 +00:00
conversation_table.c Rename a bunch of things with "conversation". 2022-08-25 20:02:20 -07:00
conversation_table.h Rename a bunch of things with "conversation". 2022-08-25 20:02:20 -07:00
crc6-tvb.c
crc6-tvb.h
crc8-tvb.c
crc8-tvb.h
crc10-tvb.c
crc10-tvb.h
crc16-tvb.c
crc16-tvb.h
crc32-tvb.c
crc32-tvb.h
dccpservicecodes.h
decode_as.c Clarify dissector description, protocol short name, and protocol ong name. 2022-09-13 00:47:24 -07:00
decode_as.h
diam_dict.h
diam_dict.l
disabled_protos.c
disabled_protos.h
dtd.h
dtd_grammar.lemon
dtd_parse.h
dtd_parse.l
dtd_preparse.l
dvb_chartbl.c
dvb_chartbl.h
eap.h EAP: add PEAP decoder 2022-04-30 13:30:20 +00:00
eapol_keydes_types.h
epan.c epan: Rearrange column includes 2022-08-13 19:37:28 +00:00
epan.h epan: Add a post_init() plugin routine 2022-06-02 14:11:17 +00:00
epan_dissect.h
etypes.h
ex-opt.c
ex-opt.h
except.c
except.h
exceptions.h
exntest.c
expert.c expert UAT: display field name on load error 2022-10-20 19:02:34 +00:00
expert.h
export_object.c
export_object.h
exported_pdu.c Dissector names are not protocol names. 2022-09-10 22:37:11 -07:00
exported_pdu.h Dissector names are not protocol names. 2022-09-10 22:37:11 -07:00
filter_expressions.c
filter_expressions.h
follow.c follow: Have followers register their stream count function 2022-09-14 00:03:07 +00:00
follow.h follow: Have followers register their stream count function 2022-09-14 00:03:07 +00:00
frame_data.c TCP: Overriding of the automatic SEQ Analysis 2022-11-01 10:01:35 +00:00
frame_data.h TCP: Overriding of the automatic SEQ Analysis 2022-11-01 10:01:35 +00:00
frame_data_sequence.c
frame_data_sequence.h
funnel.c
funnel.h
golay.c
golay.h
guid-utils.c
guid-utils.h
iana_charsets.c
iana_charsets.h
iax2_codec_type.h
in_cksum.c
in_cksum.h
introspection-enums.c [Automatic update for 2022-10-23] 2022-10-23 16:46:15 +00:00
introspection.c wiretap: Add enum generation 2022-10-07 10:28:47 +01:00
introspection.h wiretap: Add enum generation 2022-10-07 10:28:47 +01:00
ip_opts.h
ipproto.c
ipproto.h
ipv4.h
ipv6.h
lapd_sapi.h
llcsaps.h
maxmind_db.c win32-utils: Explicitly list inherited handles 2022-08-16 20:53:22 +02:00
maxmind_db.h
media_params.c
media_params.h
next_tvb.c
next_tvb.h
nlpid.h
oids.c
oids.h
oids_test.c
osi-utils.c
osi-utils.h
oui.h Add Wi-SUN OUI 2022-09-30 18:37:13 +00:00
packet.c COSE: Cleanup custom dissector keys with new API 2022-10-07 06:36:21 +00:00
packet.h COSE: Cleanup custom dissector keys with new API 2022-10-07 06:36:21 +00:00
packet_info.h conversation: speak of the "conversation key" as just address/port endpoints. 2022-08-29 19:19:59 -07:00
params.h
pci-ids.c [Automatic update for 2022-10-30] 2022-10-31 10:05:45 +00:00
pci-ids.h
plugin_if.c
plugin_if.h
ppptypes.h
prefs-int.h TCP: Overriding of the automatic SEQ Analysis 2022-11-01 10:01:35 +00:00
prefs.c TCP: Overriding of the automatic SEQ Analysis 2022-11-01 10:01:35 +00:00
prefs.h TCP: Overriding of the automatic SEQ Analysis 2022-11-01 10:01:35 +00:00
print.c Move print_hex_data_buffer() to wsutil 2022-10-08 12:39:04 +01:00
print.h Move print_hex_data_buffer() to wsutil 2022-10-08 12:39:04 +01:00
print.ps
print_stream.c
print_stream.h Move print_hex_data_buffer() to wsutil 2022-10-08 12:39:04 +01:00
proto.c ftypes: Do not sanitize strings for UTF-8 errors 2022-10-26 16:23:55 +01:00
proto.h epan: Allow FT_UINT_STRING for proto_tree_add_string() 2022-10-31 14:54:39 +00:00
proto_data.c
proto_data.h
protobuf-helper.c
protobuf-helper.h
protobuf_lang_parser.lemon
protobuf_lang_scanner.l
protobuf_lang_tree.c
protobuf_lang_tree.h
ps.h
ptvcursor.h
radius_dict.l
range.c epan: Constify a few range functions 2022-08-06 08:26:40 -04:00
range.h epan: Constify a few range functions 2022-08-06 08:26:40 -04:00
reassemble.c epan: Remove fragment_get_reassembled() 2022-06-14 00:59:34 +00:00
reassemble.h epan: Remove fragment_get_reassembled() 2022-06-14 00:59:34 +00:00
reassemble_test.c
reedsolomon.c
reedsolomon.h
register-int.h
register.c register.c: Avoid potential race condition (Coverity 1477510) 2022-06-29 11:21:25 -04:00
register.h
req_resp_hdrs.c HTTP: Speed up chunked Transfer-Encoding on TCP 2022-08-10 05:31:36 +00:00
req_resp_hdrs.h HTTP: Speed up chunked Transfer-Encoding on TCP 2022-08-10 05:31:36 +00:00
rtd_table.c
rtd_table.h
rtp_pt.h
sctpppids.c
sctpppids.h
secrets.c Windows: Upgrade libgcrypt to 1.10.1. 2022-08-19 18:30:16 -07:00
secrets.h
sequence_analysis.c epan: Rearrange column includes 2022-08-13 19:37:28 +00:00
sequence_analysis.h
show_exception.c
show_exception.h
slow_protocol_subtypes.h
sminmpec.h
srt_table.c
srt_table.h
stat_groups.h wslua: Use introspection API to generate constants 2022-10-07 10:28:47 +01:00
stat_tap_ui.c
stat_tap_ui.h
stats_tree.c tap: Adding flags for tap_packet 2022-06-10 05:46:15 +00:00
stats_tree.h tap: Adding flags for tap_packet 2022-06-10 05:46:15 +00:00
stats_tree_priv.h tap: Adding flags for tap_packet 2022-06-10 05:46:15 +00:00
stream.c
stream.h
strutil.c epan: ensure that the result of ws_label_strcpy is terminated 2022-10-27 18:37:17 -04:00
strutil.h epan: Format column string input for display. 2022-10-26 13:28:19 +01:00
t35.c
t35.h
tap-voip.h
tap.c tap: Mark filtered packets instead of dropping them 2022-06-10 09:17:52 +02:00
tap.h tap: Mark filtered packets instead of dropping them 2022-06-10 09:17:52 +02:00
test_epan.c Rename ws_label_strcat() to ws_label_strcpy() 2022-10-26 13:12:35 +01:00
tfs.c TFS: Add a note how to fully handle additions to this file 2022-09-29 11:05:22 +00:00
tfs.h NAS EPS: upgrade dissector to v17.7.0 2022-09-23 19:41:07 +02:00
timestamp.c
timestamp.h
timestats.c
timestats.h
to_str.c epan: eliminate timezone buffer. 2022-10-28 14:15:47 -07:00
to_str.h
tvbparse.c
tvbparse.h
tvbtest.c epan: Fix build errors about try/catch block on some compilers 2022-10-24 15:29:15 +00:00
tvbuff-int.h
tvbuff.c epan: Fix build errors about try/catch block on some compilers 2022-10-24 15:29:15 +00:00
tvbuff.h epan: centralize SDNV processing along other similar varint types 2022-10-19 15:27:42 +00:00
tvbuff_base64.c
tvbuff_brotli.c
tvbuff_composite.c
tvbuff_lz77.c
tvbuff_lz77huff.c
tvbuff_lznt1.c
tvbuff_rdp.c Fix -Wmissing-prototypes found by Clang 2022-07-15 13:45:52 +00:00
tvbuff_rdp.h
tvbuff_real.c
tvbuff_subset.c epan: Handle subset tvbuffs with non-zero offets and length -1 2022-08-21 15:21:24 +00:00
tvbuff_zlib.c
uat-int.h
uat.c
uat.h Update uat.h 2022-09-07 13:47:09 +00:00
uat_load.l
unit_strings.c
unit_strings.h
value_string.c S7Comm: Fix invalid UTF-8 value string chars 2022-10-26 01:42:43 +01:00
value_string.h S7Comm: Fix invalid UTF-8 value string chars 2022-10-26 01:42:43 +01:00
wmem_scopes.c
wmem_scopes.h epan: Document the epan, file, and packet scopes. 2022-05-18 21:08:05 +00:00
ws_printf.h
wscbor.c BPv7: Enhance block data and payload data handling 2022-10-03 20:02:43 +00:00
wscbor.h BPv7: Enhance block data and payload data handling 2022-10-03 20:02:43 +00:00
wscbor_test.c Squelch some narrowing warnings. 2022-10-20 17:11:56 +00:00
x264_prt_id.h
xdlc.c
xdlc.h