wireshark/epan
Vadim Yanitskiy 05f59f0045 GSM A RR: dissect random bit stream in SI6 Rest Octets
Since version 10.2.0 (2011-03) of 3GPP TS 44.018, unused octets of the
SI6 Rest Octets IE (see 10.5.2.35a) may optionally contain random bits
instead of the standard repeating sequence of '00101011'.

This is a counter-measure making the known-plaintext attack on encrypted
channels slower (and thus harder).  For more details, see GP-110384 [1].

[1] http://portal.3gpp.org/ngppapp/DownloadTDoc.aspx?contributionUid=GP-110384

Without this patch Wireshark would warn about an unknown or potentially
malformed PDU if the network is using random padding bits:

  SI 6 Rest Octets
      L... .... = PCH and NCH Info: Not Present
      .L.. .... = VBS/VGCS options: Not Present
      ..L. .... = DTM: Not Supported in Serving cell
      ...L .... = Band Indicator: 1800
      .... L... = GPRS MS PWR MAX CCCH: Not Present
      .... .L.. = MBMS Procedures: Not supported
      .... ..L. = Additions in Rel-7: Not Present
      Padding Bits: Unknown extension detected or malformed PDU (Not decoded)

With this patch, value of the random bit stream indicator is used to
determine presence of random bit stream (padding):

  SI 6 Rest Octets
      L... .... = PCH and NCH Info: Not Present
      .L.. .... = VBS/VGCS options: Not Present
      ..L. .... = DTM: Not Supported in Serving cell
      ...L .... = Band Indicator: 1800
      .... L... = GPRS MS PWR MAX CCCH: Not Present
      .... .L.. = MBMS Procedures: Not supported
      .... ..L. = Additions in Rel-7: Not Present
      .... ...H = Random Bit Stream: Present
      Padding Bits: random bit stream
2022-08-11 19:18:17 +00:00
..
crypt dot11decrypt: explicitly cast *pmk_len and msk_len 2022-06-03 23:13:34 +00:00
dfilter dfilter: Fix crash with FT_NONE and arithmetic expressions 2022-07-28 16:50:09 +00:00
dissectors GSM A RR: dissect random bit stream in SI6 Rest Octets 2022-08-11 19:18:17 +00:00
ftypes dfilter: Fix crash with FT_NONE and arithmetic expressions 2022-07-28 16:50:09 +00:00
wslua wslua: Rename wslua_util.c to wslua_utility.c. 2022-07-24 17:11:57 +00:00
.editorconfig epan: Normalize conversation code indentation. 2022-05-09 10:50:17 -07:00
CMakeLists.txt Make it easier to call tools/make-enums.py from the source dir 2022-06-07 14:31:08 +01:00
addr_and_mask.c
addr_and_mask.h epan/addr_and_mask.h: Document functions 2021-12-13 12:42:04 +00:00
addr_resolv.c epan: Update our name resolution preference names. 2022-08-04 06:00:34 +00:00
addr_resolv.h Corrects repeated words throughout the code. 2021-12-22 11:01:11 +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 epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
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.h
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 Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
column-info.h
column-utils.c column-utils: Add missing check for frame_data::has_ts 2022-03-04 12:03:36 +00:00
column-utils.h
column.c epan: Respect custom column resolved/unresolved status everywhere 2022-07-12 00:22:11 +00:00
column.h epan: Respect custom column resolved/unresolved status everywhere 2022-07-12 00:22:11 +00:00
conv_id.h
conversation.c epan: Make find_or_create_conversation create what it finds and vice versa 2022-07-25 20:35:56 +00:00
conversation.h Qt: Adapt sorting for traffic tables 2022-06-12 14:53:23 +02:00
conversation_debug.h epan: Normalize conversation code indentation. 2022-05-09 10:50:17 -07:00
conversation_filter.c epan: Add the ability to add conversation filter protocols. 2022-04-19 22:25:32 +00:00
conversation_filter.h Fix a documentation warning. 2022-04-26 19:12:11 +00:00
conversation_table.c dccp: allow port resolution in conversation table 2022-08-05 00:52:56 +00:00
conversation_table.h Qt: Implement total columns for traffic tables 2022-06-10 12:38:56 +02: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 Fix "generated by" comments in configuration files. 2022-04-29 18:00:21 +00:00
decode_as.h
diam_dict.h
diam_dict.l epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
disabled_protos.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
disabled_protos.h
dtd.h
dtd_grammar.lemon
dtd_parse.h
dtd_parse.l
dtd_preparse.l epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
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: Add a post_init() plugin routine 2022-06-02 14:11:17 +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: update some coments. 2022-01-11 21:05:35 -08:00
except.h epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
exceptions.h
exntest.c
expert.c Expert info: "Ok" is not valid severity level 2022-02-25 02:35:17 +00:00
expert.h
export_object.c
export_object.h
exported_pdu.c Export PDU: Allow native encapsulations / strip headers 2022-02-25 20:29:16 -05:00
exported_pdu.h Export PDU: Allow native encapsulations / strip headers 2022-02-25 20:29:16 -05:00
filter_expressions.c
filter_expressions.h
follow.c tap: Adding flags for tap_packet 2022-06-10 05:46:15 +00:00
follow.h tap: Adding flags for tap_packet 2022-06-10 05:46:15 +00:00
frame_data.c Revert "epan: Allow nested dependent packets" 2022-03-28 12:40:21 +00:00
frame_data.h Revert "epan: Allow nested dependent packets" 2022-03-28 12:40:21 +00:00
frame_data_sequence.c Revert "epan: Allow nested dependent packets" 2022-03-28 12:40:21 +00:00
frame_data_sequence.h
funnel.c
funnel.h
golay.c
golay.h
guid-utils.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
guid-utils.h
iana_charsets.c
iana_charsets.h
iax2_codec_type.h
in_cksum.c
in_cksum.h
introspection-enums.c epan: Refactor floating point display types 2022-08-02 13:16:46 +00:00
introspection.c
introspection.h
ip_opts.h
ipproto.c
ipproto.h
ipv4.h
ipv6.h
lapd_sapi.h
llcsaps.h
maxmind_db.c wsutil: Use GIOChannel for standard pipes 2022-08-10 06:18:25 +02:00
maxmind_db.h
media_params.c
media_params.h
next_tvb.c
next_tvb.h Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
nlpid.h
oids.c Move wmem string utility functions to wsutil 2021-12-19 10:47:50 +00:00
oids.h Fix more repeated words throughout 2021-12-31 22:50:40 +00:00
oids_test.c
osi-utils.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
osi-utils.h
oui.h LLDP: Add CIP TLVs 2022-06-11 00:18:11 +00:00
packet.c prefs: Make all auto port preferences ranges 2022-08-04 05:43:47 +00:00
packet.h decode as: Add data dissector to all tables that support Decode As 2022-07-16 16:02:36 -04:00
packet_info.h packet_info: Fix a comment 2022-07-28 20:47:21 -04:00
params.h Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
pci-ids.c [Automatic update for 2022-08-07] 2022-08-07 16:38:23 +00:00
pci-ids.h
plugin_if.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
plugin_if.h
ppptypes.h
prefs-int.h Prefs/Extcap: Added support for password which is never stored on the disk 2021-12-30 16:03:15 +00:00
prefs.c prefs: More cleanup, auto prefs 2022-08-09 06:21:05 +00:00
prefs.h prefs: Remove prefs_register_decode_as_preference 2022-08-04 07:16:16 -04:00
print.c epan: Respect custom column resolved/unresolved status everywhere 2022-07-12 00:22:11 +00:00
print.h tshark: Add new long option --hexdump <hexoption> 2022-01-13 01:18:38 +00:00
print.ps
print_stream.c
print_stream.h
proto.c Streamline hfinfo retrieval in proto_tree_add_* functions 2022-08-08 17:05:50 +00:00
proto.h epan: Refactor floating point display types 2022-08-02 13:16:46 +00:00
proto_data.c epan: Add p_set_proto_data. 2022-01-03 22:19:14 +00:00
proto_data.h epan: Add p_set_proto_data. 2022-01-03 22:19:14 +00:00
protobuf-helper.c
protobuf-helper.h
protobuf_lang_parser.lemon epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
protobuf_lang_scanner.l
protobuf_lang_tree.c Fix stdio.h conversions to use the scanf macros 2021-12-19 23:49:55 +00:00
protobuf_lang_tree.h epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
ps.h
ptvcursor.h
radius_dict.l epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
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 Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
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 GDT: add dissector for SCTP PPID 49 protocol 2022-02-07 20:20:43 +00:00
sctpppids.h GDT: add dissector for SCTP PPID 49 protocol 2022-02-07 20:20:43 +00:00
secrets.c MSYS2: Fix compilation error 2022-05-25 23:45:32 +01:00
secrets.h
sequence_analysis.c Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
sequence_analysis.h epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
show_exception.c exceptions: Add an expert warning for FragmentBoundsError 2022-04-06 07:17:14 -04:00
show_exception.h
slow_protocol_subtypes.h
sminmpec.h
srt_table.c
srt_table.h
stat_groups.h wslua: Port make-init-lua to Python3 2022-06-27 16:28:36 +00: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 Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
strutil.h
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
tfs.c
tfs.h
timestamp.c
timestamp.h
timestats.c
timestats.h
to_str.c dfilter: Add support for entering time in UTC 2021-12-30 17:53:09 +00:00
to_str.h dfilter: Add support for entering time in UTC 2021-12-30 17:53:09 +00:00
tvbparse.c
tvbparse.h Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
tvbtest.c
tvbuff-int.h
tvbuff.c epan: Add BASE_SHOW_UTF_8_PRINTABLE 2022-02-06 00:32:13 +00:00
tvbuff.h epan: Add BASE_SHOW_UTF_8_PRINTABLE 2022-02-06 00:32:13 +00:00
tvbuff_base64.c
tvbuff_brotli.c
tvbuff_composite.c TVB composite: allow to append/prepend a NULL tvb 2022-02-25 08:55:54 +00:00
tvbuff_lz77.c TVB: Don't uncompress zero sized buffers 2022-01-19 05:19:45 +00:00
tvbuff_lz77huff.c TVB: Don't uncompress zero sized buffers 2022-01-19 05:19:45 +00:00
tvbuff_lznt1.c TVB: Don't uncompress zero sized buffers 2022-01-19 05:19:45 +00:00
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
tvbuff_zlib.c
uat-int.h
uat.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
uat.h epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
uat_load.l UAT: Fix Wireshark crash on missing UAT columns 2022-01-03 08:45:17 +00:00
unit_strings.c
unit_strings.h
value_string.c Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
value_string.h Extended range_string to 64 bit 2022-01-05 09:14:46 +00: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 WSCBOR: Add checks for length and NULL 2022-02-08 10:12:56 +00:00
wscbor.h Corrects repeated words throughout the code. 2021-12-22 11:01:11 +00:00
wscbor_test.c
x264_prt_id.h
xdlc.c epan: Convert to use stdio.h from GLib 2021-12-19 19:29:53 +00:00
xdlc.h