Commit graph

155 commits

Author SHA1 Message Date
Bill Meier
103bf29730 Continuing the tradition: squelch some compiler warnings ....
svn path=/trunk/; revision=20866
2007-02-19 22:29:23 +00:00
Graeme Lunt
38515fbf22 From X.690 8.6.2.3
"If the bitstring is empty, there shall be no subsequent octets, and the initial octet shall be zero." 

The BER dissector marked empty bitstrings as "Padding", but they are now marked as "Empty". 

http://www.wireshark.org/lists/wireshark-dev/200702/msg00574.html


svn path=/trunk/; revision=20834
2007-02-17 14:23:09 +00:00
Graeme Lunt
c09afc2db6 This patch adds some new features to the BER dissector:
- Added option to decode OCTET STRINGs as BER encoded data
- Added decoding of unknown VisibleString and GeneralString
- Some code cleanup

http://www.wireshark.org/lists/wireshark-dev/200702/msg00482.html


svn path=/trunk/; revision=20831
2007-02-17 11:10:02 +00:00
Graeme Lunt
74fa87ddb2 Small fix for incorrect column use when dissecting a BER file.
svn path=/trunk/; revision=20709
2007-02-04 12:00:25 +00:00
Anders Broman
c16c8a9bee From Graeme Lunt:
The problem was that when dissecting the set, if a sub-dissector didn't consume any bytes it was assumed that the correct field hadn't been matched.
This fix matches the field if the sub-dissector consumes no bytes and we know that the length of the field is zero. This is only allowed on the first pass when we are not matching ANYs.
I think this is a fairly safe fix - I've tried it with some other ASN.1

I've also changed dissect_ber_octet_string() to show the zero length fields in the dissection. This shows the fields as "<MISSING>" which is not quite the right explanation as the field is definitely present. Something like "<EMPTY>" or "<ZERO LENGTH>" may be better - but I'm not sure of the reasoning behind "<MISSING>".

svn path=/trunk/; revision=20429
2007-01-14 20:54:39 +00:00
Graeme Lunt
7d3a4e9264 New protocol dissector for PKCS#12 - Personal Information Exchange Syntax.
Generally found within a file (.p12 or .pfx) or as a directory attribute (userPKCS12 from iNetOrgPerson).

Wiki page and sample file to follow.


svn path=/trunk/; revision=20416
2007-01-13 15:26:13 +00:00
Graeme Lunt
2fd7d2c620 New "decode as ..." feature for BER-encoded files (WTAP_FILE_BER).
A BER-encoded file can be dissected as one of a number of registered syntaxes (registered using register_ber_syntax_dissector()). 
Syntaxes may also be associated with OIDs (or other strings) using register_ber_oid_syntax(). 

A default syntax with which to dissect a BER-encoded file is determined from its filename (extension). For example, ".cer" and ".crt" files will be dissected as "Certificate".


svn path=/trunk/; revision=20414
2007-01-13 12:59:27 +00:00
Anders Broman
c9bbf1b510 Packet-ber:
Handle the following type of construct
CDMATargetMAHOInformation ::= SEQUENCE {
	targetCellID			[3] IMPLICIT TargetCellID,
	cdmaPilotStrength		[65] IMPLICIT CDMAPilotStrength,
	cdmaTargetOneWayDelay	[61] IMPLICIT CDMATargetOneWayDelay
	}

CDMATargetMAHOList ::= SEQUENCE OF [135] IMPLICIT CDMATargetMAHOInformation

ansi_map:
- Correct an Enummeration
- add Missing OPTIONAL to Tags
- Handle parameter if it's one or two octets long.

svn path=/trunk/; revision=20386
2007-01-10 22:59:40 +00:00
Anders Broman
fda137ce6a Fix tag > 0x1f
svn path=/trunk/; revision=20333
2007-01-06 20:21:30 +00:00
Anders Broman
cf919a1adb Remove an unused variable.
svn path=/trunk/; revision=20173
2006-12-19 22:28:20 +00:00
Anders Broman
ea86134eaf From Florent Drouin:
Introduce the support for "expert info" in the BER decoding module.
It is usefull if you have to analyze long capture files, containing few malformed messages.

With changes to make it compile with MSVC6.

svn path=/trunk/; revision=20152
2006-12-19 22:04:22 +00:00
Graeme Lunt
e15d91a592 General updates to:
*) Remove maximum LDAP PDU size check - they can get large with either large attributes (e.g. CRLs, SPIFs) or with lots of results (see http://www.wireshark.org/lists/wireshark-users/200610/msg00197.html). The max size preference is also removed.
*) Support for dissecting LDAP controls including server side sorting and paged results. A new BER function is introduced to see if there is a dissector for a given OID.
*) Remove reference to removed BER preference in the LDAP reassembly preference.
*) Mark a LDAPURL as a URL


svn path=/trunk/; revision=19792
2006-11-04 09:14:54 +00:00
Guy Harris
e9a7c32e2d Squelch a compiler warning.
svn path=/trunk/; revision=19474
2006-10-10 08:12:04 +00:00
Anders Broman
299469d48d Handle Zero length SEQUENCE and SEQUENCE OF.
svn path=/trunk/; revision=19318
2006-09-24 21:04:53 +00:00
Graeme Lunt
914d48e098 Fix to show all the internal tokens. when configured, when dissecting an unknown piece of BER.
svn path=/trunk/; revision=19289
2006-09-22 17:39:02 +00:00
Gerald Combs
8b315480f1 In new_format_oid(), handle a zero-length OID.
Fix a bug introduced recently in packet-rpc.c.

Replace DISSECTOR_ASSERT() with THROW(ReportedBoundsError) in my recent 
checkins, since fuzz-test.sh sets WIRESHARK_ABORT_ON_DISSECTOR_BUG.

svn path=/trunk/; revision=18693
2006-07-09 22:12:02 +00:00
Gerald Combs
974c67ec86 Catch another infinite loop. Fixes bug 985.
svn path=/trunk/; revision=18686
2006-07-08 01:40:53 +00:00
Gerald Combs
ec75c41241 Fix our loop checks.
svn path=/trunk/; revision=18683
2006-07-07 20:11:06 +00:00
Gerald Combs
58e634a3ef Fix another infinite loop. Remove redundant code.
svn path=/trunk/; revision=18681
2006-07-07 15:13:11 +00:00
Gerald Combs
f2d83a530e Catch an infinite loop.
svn path=/trunk/; revision=18672
2006-07-06 16:47:50 +00:00
Gerald Combs
a4c816cfc3 Fix an infinite loop in dissect_ber_tagged_type(). Fix up whitespace.
svn path=/trunk/; revision=18668
2006-07-05 21:33:01 +00:00
Guy Harris
a3099ba15c Get rid of an unused variable.
svn path=/trunk/; revision=18626
2006-07-01 00:10:03 +00:00
Ronnie Sahlberg
d0aae6dd3e from metze
prettify dissection of filters containing substring and extensiblematch



svn path=/trunk/; revision=18617
2006-06-29 21:04:37 +00:00
Tomas Kukosa
56d7db0c08 remove functions register_ber_oid_name() and get_ber_oid_name() from packet-ber.c, they were only OID but not BER related
use add_oid_str_name() and get_oid_str_name() instead of them

svn path=/trunk/; revision=18595
2006-06-28 14:19:08 +00:00
Tomas Kukosa
f0f319acf1 - BER_MAX_OID_STR_LEN removed and replaced with MAX_OID_STR_LEN
- x411 and dop regenerated
- dissect_ber_tagged_type() prepared (support in asn2wrs will follow)

svn path=/trunk/; revision=18468
2006-06-15 07:46:07 +00:00
Ronnie Sahlberg
2f95f76a1e fix tcp reassembly to work again for
ldap   and ldap+sasl


remove a recent ber length validation in packet-ber.c that cant work and breaks reassembly  and also makes all ber pacvket sspanning multiple segments show up as malformed packets.



svn path=/trunk/; revision=18465
2006-06-14 11:51:25 +00:00
Ronnie Sahlberg
ecdde88d46 from tim endean
handle the "broken" case when someone sends an indefinite length that is 0.



svn path=/trunk/; revision=18407
2006-06-09 21:09:57 +00:00
Ronnie Sahlberg
feab79e328 change a whole bunch of ethereal into wireshark
svn path=/trunk/; revision=18196
2006-05-21 04:49:01 +00:00
Graeme Lunt
ab19b927c8 "Field Information" context menu item that will bring up a web page reference to a field type of FT_OID
svn path=/trunk/; revision=18125
2006-05-10 19:50:54 +00:00
Graeme Lunt
abefaf32bf Basic Encoding Rules (BER) encoded file reading. Not really a packet trace format but still useful for dissecting arbitrary BER/DER ASN.1.
svn path=/trunk/; revision=18110
2006-05-08 19:56:36 +00:00
Graeme Lunt
759203ed61 Preference to disable BER length sanity check (needed for asn2eth LDAP dissector).
svn path=/trunk/; revision=18056
2006-05-01 09:26:40 +00:00
Graeme Lunt
011ced394c Support for Session Extended User Data and IMPLICIT APPLICATION tagged bitstrings
svn path=/trunk/; revision=17726
2006-03-25 16:32:46 +00:00
Jaap Keuter
09f2ccdca3 Fix bug 819: make sure to always return a tvb pointer.
svn path=/trunk/; revision=17656
2006-03-17 11:46:07 +00:00
Ronnie Sahlberg
6ea1f1a77c coverity bug 68
prevent a very very long loop


svn path=/trunk/; revision=17625
2006-03-14 07:47:19 +00:00
Gerald Combs
172556500d Remove MIN and MAX defines, which GLib provides.
svn path=/trunk/; revision=17551
2006-03-09 16:00:33 +00:00
Jaap Keuter
3b2760d2df Catch negative return value, leading to near infinite loop.
Filed as coverity bug 136.

svn path=/trunk/; revision=17498
2006-03-07 15:22:57 +00:00
Ronnie Sahlberg
590d27a8c0 add new dissect_ber_integer64() that can handle 8,16,24,32 and 64bit integers.
use proto_tree_add_[u]int[8,16,24,32,64]() instread of proto_tree_add_item()
since BER integers may well be encoded in less bytes than the type requires.
(i do not think the old code with proto_tree_add_item() could have handleded negative values very well    or at all.)




svn path=/trunk/; revision=17425
2006-02-28 09:39:53 +00:00
Ronnie Sahlberg
b63bc8410a fix bug 400
the choice dissector didnt sometimes use the correct next_tvb.
based on a bogus variable    'first_pass'   that was added as a qad solution to some weird CMIP problem.





svn path=/trunk/; revision=17142
2006-02-02 08:34:59 +00:00
Jörg Mayer
1900bf87fc done:
packet-ntp.c: Rather confused and incorrect use of g_snprintf return value
packet-pim.c: whitespace change
packet-icmpv6.c: g_snprintf takes trailing \0 into account, fix off by 1 error
packet-clnp.c: Fix incorrect use of g_snprintf return value
packet-isakmp.c: g_snprintf takes trailing \0 into account
packet-tr.c: Fix incorrect use of g_snprintf return value
packet-radius.c: Fix incorrect use of g_snprintf return value
packet-radius.h: constify a string variable
packet-ldap.c: The return value isn't needed, so don't use it incorrectly
packet-tcp.c: Fix incorrect use of g_snprintf return value
packet-windows-common.c: Remove unneeded DISSECTOR_ASSERT
packet-smb-sidsnooping.c: g_snprintf takes trailing \0 into account
packet-pvfs2.c: g_snprintf takes trailing \0 into account
packet-ptp.c: Remove #include snprintf
packet-ppp.c: Fix incorrect use of g_snprintf return value
packet-ospf.c: Fix incorrect use of g_snprintf return value
packet-mip6.c: snprintf -> g_snprintf
packet-bootp.c: Remove a commented out bad use of g_snprintf
packet-ber.c: snprintf -> g_snprintf, g_snprintf takes trailing \0 into account

2do:

     52 packet-ieee80211.c: 2DO
      2 packet-nfs.c: 2DO - too many side effects
     33 packet-bgp.c: 2DO
     18 packet-dns.c: 2DO
     14 packet-dcm.c: 2DO
     13 packet-x11.c: 2DO
     11 packet-kerberos.c: 2DO
     10 packet-diameter.c: 2DO
      9 packet-snmp.c: 2DO
      9 packet-pgm.c: 2DO
      7 packet-nbns.c: 2DO
      6 packet-fcswils.c: 2DO
      5 packet-wccp.c: 2DO
      5 packet-cops.c: 2DO
      4 packet-wtp.c: 2DO


svn path=/trunk/; revision=17038
2006-01-16 07:59:44 +00:00
Anders Broman
7980c9295e From Graeme Lunt:
Here is a patch for packet-ber.c that only includes the upgraded dissect_unknown_ber()

svn path=/trunk/; revision=16798
2005-12-14 20:45:15 +00:00
Guy Harris
a770b7b647 "get_oid_name()" can return a null pointer; don't try to add the name if
it does.

svn path=/trunk/; revision=16735
2005-12-08 23:21:26 +00:00
Guy Harris
aaf8a3060d Clean up indentation.
For OID fields of type FT_STRING, put back the code to append the OID
name.  (Ultimately, we should probably convert them all to type FT_OID.)

svn path=/trunk/; revision=16734
2005-12-08 11:27:14 +00:00
Tomas Kukosa
a5bfb48c2f OBJECT IDENTIFIER name resolution moved to oid_resolv.c
svn path=/trunk/; revision=16699
2005-12-06 11:45:55 +00:00
Anders Broman
e74a09cd01 If we don't have the OID name let the SNMP dissector try to get it from the MIB:s
svn path=/trunk/; revision=16680
2005-12-05 17:24:19 +00:00
Tomas Kukosa
dcae7d303f new field type FT_OID for OBJECT IDENTIFIERs
svn path=/trunk/; revision=16652
2005-12-02 13:16:58 +00:00
Guy Harris
d25e4c8e0f Fix typoes in comments.
Update a comment, and get rid of a commented-out unused variable.

Use "get_ber_identifier()" and "get_ber_length()", rather than
"dissect_ber_identifier()" and "dissect_ber_length()", if we're just
fetching the values, rather than dissecting them.  As we're just
fetching the values, if we get an error, put the identifer and length
into the protocol tree (if we've enabled that) with
"dissect_ber_identifier()" and "dissect_ber_length()".

Properly declare class and tag variables as signed.

svn path=/trunk/; revision=16602
2005-11-26 04:16:40 +00:00
Guy Harris
12ae3bba4d Don't crash if a null OID pointer is passed to
"call_ber_oid_callback()".  (Arguably, the caller of
"call_ber_oid_callback()" should check for that, and report that a
presumably-required field is missing.)

svn path=/trunk/; revision=16544
2005-11-18 10:06:47 +00:00
Tomas Kukosa
3b770d5c7c - dissect_ber_object_identifier() returns value as tvb
- new dissect_ber_object_identifier_str() function
 - BER dissectors adapted and regenerated

svn path=/trunk/; revision=16501
2005-11-14 10:02:31 +00:00
Ronnie Sahlberg
ce341ab40f add decoding of some more universal types for the opportunistic decode of unknown ber blobs.
svn path=/trunk/; revision=16343
2005-10-27 11:27:40 +00:00
Ronnie Sahlberg
3824015b82 remove a strcpy call
svn path=/trunk/; revision=16237
2005-10-16 00:36:43 +00:00