diff options
-rw-r--r-- | asn1/dap/packet-dap-template.c | 1 | ||||
-rw-r--r-- | asn1/dop/dop.asn | 8 | ||||
-rw-r--r-- | asn1/h225/Makefile.nmake | 4 | ||||
-rw-r--r-- | asn1/tcap/Makefile.nmake | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-dap.c | 284 | ||||
-rw-r--r-- | epan/dissectors/packet-dap.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-disp.c | 33 | ||||
-rw-r--r-- | epan/dissectors/packet-disp.h | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-dop.c | 128 | ||||
-rw-r--r-- | epan/dissectors/packet-dop.h | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-ros.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-ros.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-rtse.c | 8 | ||||
-rw-r--r-- | epan/dissectors/packet-rtse.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-x411.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-x411.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-x509if.c | 119 | ||||
-rw-r--r-- | epan/dissectors/packet-x509if.h | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.c | 599 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.h | 3 |
20 files changed, 839 insertions, 382 deletions
diff --git a/asn1/dap/packet-dap-template.c b/asn1/dap/packet-dap-template.c index 9d5a0e24f9..70a3ce74ac 100644 --- a/asn1/dap/packet-dap-template.c +++ b/asn1/dap/packet-dap-template.c @@ -45,6 +45,7 @@ #include "packet-crmf.h" #include "packet-dsp.h" +#include "packet-disp.h" #include "packet-dap.h" #include <epan/strutil.h> diff --git a/asn1/dop/dop.asn b/asn1/dop/dop.asn index cea41dc89e..f7ddeb0180 100644 --- a/asn1/dop/dop.asn +++ b/asn1/dop/dop.asn @@ -278,8 +278,6 @@ dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind EstablishOperationalBindingArgumentData ::= -- OPTIONALLY-PROTECTED-SEQ -- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet}) -- OBJECT IDENTIFIER, --- The following line, whilst wrong, helps with Thales DOP dissection --- bindingID [1] IMPLICIT OperationalBindingID OPTIONAL, bindingID [1] OperationalBindingID OPTIONAL, accessPoint [2] AccessPoint, -- symmetric, Role A initiates, or Role B initiates @@ -329,8 +327,6 @@ Time ::= CHOICE {utcTime UTCTime, EstablishOperationalBindingResult ::= -- OPTIONALLY-PROTECTED-SEQ -- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet}) -- OBJECT IDENTIFIER, --- The following line, whilst wrong, helps with Thales DOP dissection --- bindingID [1] IMPLICIT OperationalBindingID OPTIONAL, bindingID [1] OperationalBindingID OPTIONAL, accessPoint [2] AccessPoint, -- symmetric, Role A replies , or Role B replies @@ -361,8 +357,6 @@ EstablishOperationalBindingResult ::= ModifyOperationalBindingArgumentData ::= -- OPTIONALLY-PROTECTED-SEQ -- {--SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER, --- The following line, whilst wrong, helps with Thales DOP dissection --- bindingID [1] IMPLICIT OperationalBindingID, bindingID [1] OperationalBindingID, accessPoint [2] AccessPoint OPTIONAL, -- symmetric, Role A initiates, or Role B initiates @@ -429,8 +423,6 @@ ModifyOperationalBindingResultData ::= SEQUENCE { TerminateOperationalBindingArgumentData ::= -- OPTIONALLY-PROTECTED-SEQ -- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER, --- The following line, whilst wrong, helps with Thales DOP dissection --- bindingID [1] IMPLICIT OperationalBindingID, bindingID [1] OperationalBindingID, -- symmetric, Role A initiates, or Role B initiates initiator diff --git a/asn1/h225/Makefile.nmake b/asn1/h225/Makefile.nmake index 7d0f5b4f55..1e114438da 100644 --- a/asn1/h225/Makefile.nmake +++ b/asn1/h225/Makefile.nmake @@ -37,6 +37,6 @@ fix_eol: generate_dissector del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp copy_files: generate_dissector fix_eol - xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d - xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d + xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y + xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y diff --git a/asn1/tcap/Makefile.nmake b/asn1/tcap/Makefile.nmake index 1c5839b240..a465d7b81d 100644 --- a/asn1/tcap/Makefile.nmake +++ b/asn1/tcap/Makefile.nmake @@ -37,5 +37,5 @@ fix_eol: generate_dissector del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp copy_files: generate_dissector fix_eol - xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d - xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d + xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y + xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c index f08af813c1..66277f7ff5 100644 --- a/epan/dissectors/packet-dap.c +++ b/epan/dissectors/packet-dap.c @@ -53,6 +53,7 @@ #include "packet-crmf.h" #include "packet-dsp.h" +#include "packet-disp.h" #include "packet-dap.h" #include <epan/strutil.h> @@ -389,13 +390,6 @@ static int hf_dap_attributeInfo_item = -1; /* T_attributeInfo_item */ static int hf_dap_unsignedUpdateError = -1; /* UpdateErrorData */ static int hf_dap_signedUpdateError = -1; /* T_signedUpdateError */ static int hf_dap_updateError = -1; /* UpdateErrorData */ -static int hf_dap_identifier = -1; /* INTEGER */ -static int hf_dap_version = -1; /* INTEGER */ -static int hf_dap_teletexString = -1; /* TeletexString */ -static int hf_dap_printableString = -1; /* PrintableString */ -static int hf_dap_universalString = -1; /* UniversalString */ -static int hf_dap_bmpString = -1; /* BMPString */ -static int hf_dap_uTF8String = -1; /* UTF8String */ /* named bits */ static int hf_dap_ServiceControlOptions_preferChaining = -1; static int hf_dap_ServiceControlOptions_chainingProhibited = -1; @@ -439,7 +433,7 @@ static int hf_dap_SearchControlOptions_separateFamilyMembers = -1; static int hf_dap_SearchControlOptions_searchFamily = -1; /*--- End of included file: packet-dap-hf.c ---*/ -#line 69 "packet-dap-template.c" +#line 70 "packet-dap-template.c" /* Initialize the subtree pointers */ static gint ett_dap = -1; @@ -612,11 +606,9 @@ static gint ett_dap_T_attributeInfo = -1; static gint ett_dap_T_attributeInfo_item = -1; static gint ett_dap_UpdateError = -1; static gint ett_dap_T_signedUpdateError = -1; -static gint ett_dap_OperationalBindingID = -1; -static gint ett_dap_DirectoryString = -1; /*--- End of included file: packet-dap-ett.c ---*/ -#line 73 "packet-dap-template.c" +#line 74 "packet-dap-template.c" /*--- Included file: packet-dap-fn.c ---*/ @@ -684,6 +676,9 @@ static int dissect_performer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb static int dissect_notification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_notification_item); } +static int dissect_agreementID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_disp_AgreementID(FALSE, tvb, offset, pinfo, tree, hf_dap_agreementID); +} static int dissect_select_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_select_item); } @@ -1159,22 +1154,8 @@ static int dissect_priority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, static int dissect_dap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 168 "dap.cnf" - guint32 value; - - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - &value); - - - if (check_col(pinfo->cinfo, COL_INFO)) { - if(hf_index == hf_dap_identifier) { - col_append_fstr(pinfo->cinfo, COL_INFO, " id=%d", value); - } else if (hf_index == hf_dap_version) { - col_append_fstr(pinfo->cinfo, COL_INFO, ",%d", value); - } - } - - + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } @@ -1205,12 +1186,6 @@ static int dissect_lowEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *t static int dissect_extendedArea(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_extendedArea); } -static int dissect_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_identifier); -} -static int dissect_version(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_version); -} static const value_string dap_T_scopeOfReferral_vals[] = { @@ -1244,7 +1219,7 @@ static const ber_choice_t Name_choice[] = { static int dissect_dap_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 269 "dap.cnf" +#line 257 "dap.cnf" const char *dn; offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -1281,33 +1256,6 @@ static int dissect_matched_name(packet_info *pinfo, proto_tree *tree, tvbuff_t * } -static const ber_sequence_t OperationalBindingID_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_identifier }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_version }, - { 0, 0, 0, NULL } -}; - -int -dissect_dap_OperationalBindingID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - OperationalBindingID_sequence, hf_index, ett_dap_OperationalBindingID); - - return offset; -} - - - -static int -dissect_dap_AgreementID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_dap_OperationalBindingID(implicit_tag, tvb, offset, pinfo, tree, hf_index); - - return offset; -} -static int dissect_agreementID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_AgreementID(FALSE, tvb, offset, pinfo, tree, hf_dap_agreementID); -} - - static const ber_sequence_t T_manageDSAITPlaneRef_sequence[] = { { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dsaName }, { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_agreementID }, @@ -1864,7 +1812,7 @@ dissect_dap_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, static int dissect_dap_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 113 "dap.cnf" +#line 117 "dap.cnf" proto_item *it; it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE); proto_item_append_text(it," XXX: Not yet implemented!"); @@ -1881,7 +1829,7 @@ static int dissect_initial(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, static int dissect_dap_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 118 "dap.cnf" +#line 122 "dap.cnf" /* XXX: not yet implemented */ @@ -1896,7 +1844,7 @@ static int dissect_any(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int static int dissect_dap_T_final(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 121 "dap.cnf" +#line 125 "dap.cnf" /* XXX: not yet implemented */ @@ -1990,7 +1938,7 @@ static int dissect_matchingRule(packet_info *pinfo, proto_tree *tree, tvbuff_t * static int dissect_dap_T_matchValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 124 "dap.cnf" +#line 128 "dap.cnf" /* XXX: not yet implemented */ @@ -2161,7 +2109,7 @@ static int dissect_newRequest(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv static int dissect_dap_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 184 "dap.cnf" +#line 172 "dap.cnf" tvbuff_t *out_tvb; int i; int len; @@ -2350,7 +2298,7 @@ static const ber_sequence_t SimpleCredentials_sequence[] = { static int dissect_dap_SimpleCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 158 "dap.cnf" +#line 162 "dap.cnf" offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, SimpleCredentials_sequence, hf_index, ett_dap_SimpleCredentials); @@ -2371,7 +2319,7 @@ static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, i static int dissect_dap_T_bind_token(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 127 "dap.cnf" +#line 131 "dap.cnf" /* XXX: not yet implemented */ @@ -2406,7 +2354,7 @@ static int dissect_strong(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, i static int dissect_dap_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 130 "dap.cnf" +#line 134 "dap.cnf" /* XXX: not yet implemented */ @@ -2421,7 +2369,7 @@ static int dissect_req(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int static int dissect_dap_T_rep(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 133 "dap.cnf" +#line 137 "dap.cnf" /* XXX: not yet implemented */ @@ -2514,7 +2462,7 @@ static const ber_sequence_t DirectoryBindArgument_set[] = { int dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 139 "dap.cnf" +#line 143 "dap.cnf" guint32 len; @@ -2573,7 +2521,7 @@ static const value_string dap_ServiceProblem_vals[] = { static int dissect_dap_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 223 "dap.cnf" +#line 211 "dap.cnf" guint32 problem; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -2612,7 +2560,7 @@ static const value_string dap_SecurityProblem_vals[] = { static int dissect_dap_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 211 "dap.cnf" +#line 199 "dap.cnf" guint32 problem; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -3319,9 +3267,20 @@ static const ber_sequence_t T_subordinates_item_sequence[] = { static int dissect_dap_T_subordinates_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, +#line 267 "dap.cnf" + proto_item *sub_item; + + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, T_subordinates_item_sequence, hf_index, ett_dap_T_subordinates_item); + + if((sub_item = get_ber_last_created_item())) { + + proto_item_append_text(sub_item," (%s)", x509if_get_last_dn()); + } + + + return offset; } static int dissect_subordinates_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -3355,7 +3314,7 @@ static const value_string dap_LimitProblem_vals[] = { static int dissect_dap_LimitProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 247 "dap.cnf" +#line 235 "dap.cnf" guint32 problem; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -3571,7 +3530,7 @@ static const value_string dap_T_subset_vals[] = { static int dissect_dap_T_subset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 259 "dap.cnf" +#line 247 "dap.cnf" guint32 subset; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -3650,106 +3609,8 @@ static int dissect_searchControlOptions(packet_info *pinfo, proto_tree *tree, tv static int -dissect_dap_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_teletexString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_dap_teletexString); -} - - - -static int -dissect_dap_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_printableString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_dap_printableString); -} - - - -static int -dissect_dap_UniversalString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_universalString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_UniversalString(FALSE, tvb, offset, pinfo, tree, hf_dap_universalString); -} - - - -static int -dissect_dap_BMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_bmpString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_BMPString(FALSE, tvb, offset, pinfo, tree, hf_dap_bmpString); -} - - - -static int -dissect_dap_UTF8String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_dap_UTF8String(FALSE, tvb, offset, pinfo, tree, hf_dap_uTF8String); -} - - -static const value_string dap_DirectoryString_vals[] = { - { 0, "teletexString" }, - { 1, "printableString" }, - { 2, "universalString" }, - { 3, "bmpString" }, - { 4, "uTF8String" }, - { 0, NULL } -}; - -static const ber_choice_t DirectoryString_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_teletexString }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString }, - { 2, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString }, - { 3, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString }, - { 4, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_dap_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - DirectoryString_choice, hf_index, ett_dap_DirectoryString, - NULL); - - return offset; -} - - - -static int dissect_dap_DomainLocalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_dap_DirectoryString(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -3843,7 +3704,7 @@ static int dissect_joinAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t static const ber_sequence_t JoinArgument_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_joinBaseObject }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_domainLocalID }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_domainLocalID }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_joinSubset }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_joinFilter }, { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_joinAttributes }, @@ -5209,7 +5070,7 @@ dissect_dap_Referral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packe static int dissect_dap_T_spkmInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 136 "dap.cnf" +#line 140 "dap.cnf" /* XXX: not yet implemented */ @@ -5371,7 +5232,7 @@ static const value_string dap_UpdateProblem_vals[] = { static int dissect_dap_UpdateProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 235 "dap.cnf" +#line 223 "dap.cnf" guint32 problem; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -5499,7 +5360,7 @@ dissect_dap_UpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa /*--- End of included file: packet-dap-fn.c ---*/ -#line 75 "packet-dap-template.c" +#line 76 "packet-dap-template.c" /* * Dissect DAP PDUs inside a ROS PDUs @@ -5782,7 +5643,7 @@ void proto_register_dap(void) { "", HFILL }}, { &hf_dap_select_item, { "Item", "dap.select_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_dap_infoTypes, { "infoTypes", "dap.infoTypes", @@ -5822,7 +5683,7 @@ void proto_register_dap(void) { "ContextSelection/selectedContexts/_item", HFILL }}, { &hf_dap_type, { "type", "dap.type", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_dap_contextAssertions, { "contextAssertions", "dap.contextAssertions", @@ -5874,7 +5735,7 @@ void proto_register_dap(void) { "EntryInformation/information/_item", HFILL }}, { &hf_dap_attributeType, { "attributeType", "dap.attributeType", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_dap_attribute, { "attribute", "dap.attribute", @@ -5990,7 +5851,7 @@ void proto_register_dap(void) { "FilterItem/lessOrEqual", HFILL }}, { &hf_dap_present, { "present", "dap.present", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "FilterItem/present", HFILL }}, { &hf_dap_approximateMatch, { "approximateMatch", "dap.approximateMatch", @@ -6314,7 +6175,7 @@ void proto_register_dap(void) { "ModifyRights/_item/item/entry", HFILL }}, { &hf_dap_attribute_type, { "attribute", "dap.attribute", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "ModifyRights/_item/item/attribute", HFILL }}, { &hf_dap_value_assertion, { "value", "dap.value", @@ -6346,7 +6207,7 @@ void proto_register_dap(void) { "CompareResultData/matched", HFILL }}, { &hf_dap_matchedSubtype, { "matchedSubtype", "dap.matchedSubtype", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "CompareResultData/matchedSubtype", HFILL }}, { &hf_dap_unsignedCompareResult, { "unsignedCompareResult", "dap.unsignedCompareResult", @@ -6570,7 +6431,7 @@ void proto_register_dap(void) { "JoinArgument/joinBaseObject", HFILL }}, { &hf_dap_domainLocalID, { "domainLocalID", "dap.domainLocalID", - FT_UINT32, BASE_DEC, VALS(dap_DirectoryString_vals), 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "JoinArgument/domainLocalID", HFILL }}, { &hf_dap_joinSubset, { "joinSubset", "dap.joinSubset", @@ -6594,11 +6455,11 @@ void proto_register_dap(void) { "JoinArgument/joinSelection", HFILL }}, { &hf_dap_baseAtt, { "baseAtt", "dap.baseAtt", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "JoinAttPair/baseAtt", HFILL }}, { &hf_dap_joinAtt, { "joinAtt", "dap.joinAtt", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "JoinAttPair/joinAtt", HFILL }}, { &hf_dap_joinContext, { "joinContext", "dap.joinContext", @@ -6754,7 +6615,7 @@ void proto_register_dap(void) { "EntryModification/addAttribute", HFILL }}, { &hf_dap_removeAttribute, { "removeAttribute", "dap.removeAttribute", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "EntryModification/removeAttribute", HFILL }}, { &hf_dap_addValues, { "addValues", "dap.addValues", @@ -6770,7 +6631,7 @@ void proto_register_dap(void) { "EntryModification/alterValues", HFILL }}, { &hf_dap_resetValue, { "resetValue", "dap.resetValue", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "EntryModification/resetValue", HFILL }}, { &hf_dap_newRDN, { "newRDN", "dap.newRDN", @@ -6956,34 +6817,6 @@ void proto_register_dap(void) { { "updateError", "dap.updateError", FT_NONE, BASE_NONE, NULL, 0, "UpdateError/signedUpdateError/updateError", HFILL }}, - { &hf_dap_identifier, - { "identifier", "dap.identifier", - FT_INT32, BASE_DEC, NULL, 0, - "OperationalBindingID/identifier", HFILL }}, - { &hf_dap_version, - { "version", "dap.version", - FT_INT32, BASE_DEC, NULL, 0, - "OperationalBindingID/version", HFILL }}, - { &hf_dap_teletexString, - { "teletexString", "dap.teletexString", - FT_STRING, BASE_NONE, NULL, 0, - "DirectoryString/teletexString", HFILL }}, - { &hf_dap_printableString, - { "printableString", "dap.printableString", - FT_STRING, BASE_NONE, NULL, 0, - "DirectoryString/printableString", HFILL }}, - { &hf_dap_universalString, - { "universalString", "dap.universalString", - FT_STRING, BASE_NONE, NULL, 0, - "DirectoryString/universalString", HFILL }}, - { &hf_dap_bmpString, - { "bmpString", "dap.bmpString", - FT_STRING, BASE_NONE, NULL, 0, - "DirectoryString/bmpString", HFILL }}, - { &hf_dap_uTF8String, - { "uTF8String", "dap.uTF8String", - FT_STRING, BASE_NONE, NULL, 0, - "DirectoryString/uTF8String", HFILL }}, { &hf_dap_ServiceControlOptions_preferChaining, { "preferChaining", "dap.preferChaining", FT_BOOLEAN, 8, NULL, 0x80, @@ -7146,7 +6979,7 @@ void proto_register_dap(void) { "", HFILL }}, /*--- End of included file: packet-dap-hfarr.c ---*/ -#line 277 "packet-dap-template.c" +#line 278 "packet-dap-template.c" }; /* List of subtrees */ @@ -7321,11 +7154,9 @@ void proto_register_dap(void) { &ett_dap_T_attributeInfo_item, &ett_dap_UpdateError, &ett_dap_T_signedUpdateError, - &ett_dap_OperationalBindingID, - &ett_dap_DirectoryString, /*--- End of included file: packet-dap-ettarr.c ---*/ -#line 283 "packet-dap-template.c" +#line 284 "packet-dap-template.c" }; module_t *dap_module; @@ -7373,6 +7204,15 @@ void proto_reg_handoff_dap(void) { /* remember the tpkt handler for change in preferences */ tpkt_handle = find_dissector("tpkt"); + /* AttributeValueAssertions */ + x509if_register_fmt(hf_dap_equality, "="); + x509if_register_fmt(hf_dap_greaterOrEqual, ">="); + x509if_register_fmt(hf_dap_lessOrEqual, "<="); + x509if_register_fmt(hf_dap_approximateMatch, "=~"); + /* AttributeTypes */ + x509if_register_fmt(hf_dap_present, "= *"); + + } diff --git a/epan/dissectors/packet-dap.h b/epan/dissectors/packet-dap.h index d9d5b59dad..667ffe097a 100644 --- a/epan/dissectors/packet-dap.h +++ b/epan/dissectors/packet-dap.h @@ -97,7 +97,6 @@ int dissect_dap_Referral(gboolean implicit_tag, tvbuff_t *tvb, int offset, packe int dissect_dap_SecurityError(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_dap_ServiceError(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_dap_UpdateError(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); -int dissect_dap_OperationalBindingID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); /*--- End of included file: packet-dap-exp.h ---*/ #line 30 "packet-dap-template.h" diff --git a/epan/dissectors/packet-disp.c b/epan/dissectors/packet-disp.c index 4f55192ceb..1332e05d81 100644 --- a/epan/dissectors/packet-disp.c +++ b/epan/dissectors/packet-disp.c @@ -411,9 +411,9 @@ dissect_disp_ModificationParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int -static int +int dissect_disp_AgreementID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_dap_OperationalBindingID(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_dop_OperationalBindingID(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -527,7 +527,7 @@ static int dissect_classAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_ static const ber_sequence_t ClassAttributeSelection_sequence[] = { { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_class }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_classAttributes }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_classAttributes }, { 0, 0, 0, NULL } }; @@ -859,7 +859,7 @@ static const value_string disp_StandardUpdate_vals[] = { static int dissect_disp_StandardUpdate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 73 "disp.cnf" +#line 69 "disp.cnf" guint32 update; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -1081,7 +1081,7 @@ static const ber_choice_t CoordinateShadowUpdateResult_choice[] = { static int dissect_disp_CoordinateShadowUpdateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 85 "disp.cnf" +#line 81 "disp.cnf" guint32 update; offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -1108,7 +1108,7 @@ static const value_string disp_T_standard_vals[] = { static int dissect_disp_T_standard(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 49 "disp.cnf" +#line 45 "disp.cnf" guint32 update; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -1231,7 +1231,7 @@ static const ber_choice_t RequestShadowUpdateResult_choice[] = { static int dissect_disp_RequestShadowUpdateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 97 "disp.cnf" +#line 93 "disp.cnf" guint32 update; offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -1586,7 +1586,7 @@ static const ber_choice_t RefreshInformation_choice[] = { static int dissect_disp_RefreshInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 61 "disp.cnf" +#line 57 "disp.cnf" guint32 update; offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -1686,7 +1686,7 @@ static const ber_choice_t UpdateShadowResult_choice[] = { static int dissect_disp_UpdateShadowResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 109 "disp.cnf" +#line 105 "disp.cnf" guint32 update; offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -1722,7 +1722,7 @@ static const value_string disp_ShadowProblem_vals[] = { static int dissect_disp_ShadowProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 121 "disp.cnf" +#line 117 "disp.cnf" guint32 problem; offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, @@ -1734,7 +1734,6 @@ dissect_disp_ShadowProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, } - return offset; } static int dissect_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -2065,7 +2064,7 @@ void proto_register_disp(void) { "ClassAttributes/exclude", HFILL }}, { &hf_disp_AttributeTypes_item, { "Item", "disp.AttributeTypes_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "AttributeTypes/_item", HFILL }}, { &hf_disp_supplierInitiated, { "supplierInitiated", "disp.supplierInitiated", @@ -2289,7 +2288,7 @@ void proto_register_disp(void) { "", HFILL }}, { &hf_disp_attValIncomplete_item, { "Item", "disp.attValIncomplete_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_OID, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_disp_rdn, { "rdn", "disp.rdn", @@ -2486,11 +2485,6 @@ void proto_reg_handoff_disp(void) { register_ber_oid_dissector("dop.establish.roleb.2.5.19.1", dissect_EstablishParameter_PDU, proto_disp, "shadow-establish-roleb"); register_ber_oid_dissector("dop.modify.rolea.2.5.19.1", dissect_ModificationParameter_PDU, proto_disp, "shadow-modify-rolea"); register_ber_oid_dissector("dop.modify.roleb.2.5.19.1", dissect_ModificationParameter_PDU, proto_disp, "shadow-modify-roleb"); - register_ber_oid_dissector("dop.agreement.2.5.1.0.2.1", dissect_ShadowingAgreementInfo_PDU, proto_disp, "shadow-agreement"); - register_ber_oid_dissector("dop.establish.rolea.2.5.1.0.2.1", dissect_EstablishParameter_PDU, proto_disp, "shadow-establish-rolea"); - register_ber_oid_dissector("dop.establish.roleb.2.5.1.0.2.1", dissect_EstablishParameter_PDU, proto_disp, "shadow-establish-roleb"); - register_ber_oid_dissector("dop.modify.rolea.2.5.1.0.2.1", dissect_ModificationParameter_PDU, proto_disp, "shadow-modify-rolea"); - register_ber_oid_dissector("dop.modify.roleb.2.5.1.0.2.1", dissect_ModificationParameter_PDU, proto_disp, "shadow-modify-roleb"); /*--- End of included file: packet-disp-dis-tab.c ---*/ @@ -2518,6 +2512,9 @@ void proto_reg_handoff_disp(void) { tpkt_handle = find_dissector("tpkt"); + /* DNs */ + x509if_register_fmt(hf_disp_contextPrefix, "cp="); + } diff --git a/epan/dissectors/packet-disp.h b/epan/dissectors/packet-disp.h index 29a0d65476..d61b252d3f 100644 --- a/epan/dissectors/packet-disp.h +++ b/epan/dissectors/packet-disp.h @@ -35,4 +35,11 @@ #define PACKET_DISP_H +/*--- Included file: packet-disp-exp.h ---*/ +#line 1 "packet-disp-exp.h" +int dissect_disp_AgreementID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); + +/*--- End of included file: packet-disp-exp.h ---*/ +#line 30 "packet-disp-template.h" + #endif /* PACKET_DISP_H */ diff --git a/epan/dissectors/packet-dop.c b/epan/dissectors/packet-dop.c index fe0814d6d2..0f0b037225 100644 --- a/epan/dissectors/packet-dop.c +++ b/epan/dissectors/packet-dop.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-dop.c */ +/* .\packet-dop.c */ /* ../../tools/asn2eth.py -X -b -e -p dop -c dop.cnf -s packet-dop-template dop.asn */ /* Input file: packet-dop-template.c */ @@ -71,7 +71,7 @@ int proto_dop = -1; static struct SESSION_DATA_STRUCTURE* session = NULL; static const char *binding_type = NULL; /* binding_type */ -static int call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree); +static int call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info); /*--- Included file: packet-dop-hf.c ---*/ @@ -355,8 +355,22 @@ static int dissect_protocolInformation(packet_info *pinfo, proto_tree *tree, tvb static int dissect_dop_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +#line 170 "dop.cnf" + guint32 value; + + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + &value); + + + if (check_col(pinfo->cinfo, COL_INFO)) { + if(hf_index == hf_dop_identifier) { + col_append_fstr(pinfo->cinfo, COL_INFO, " id=%d", value); + } else if (hf_index == hf_dop_version) { + col_append_fstr(pinfo->cinfo, COL_INFO, ",%d", value); + } + } + + return offset; } @@ -374,7 +388,7 @@ static const ber_sequence_t OperationalBindingID_sequence[] = { { 0, 0, 0, NULL } }; -static int +int dissect_dop_OperationalBindingID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, OperationalBindingID_sequence, hf_index, ett_dop_OperationalBindingID); @@ -518,7 +532,18 @@ dissect_dop_DSAOperationalManagementBindError(gboolean implicit_tag _U_, tvbuff_ static int dissect_dop_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &binding_type); +#line 92 "dop.cnf" + const char *name; + + offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &binding_type); + + + if(check_col(pinfo->cinfo, COL_INFO)) { + name = get_ber_oid_name(binding_type); + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name ? name : binding_type); + } + + return offset; } @@ -530,9 +555,9 @@ static int dissect_bindingType(packet_info *pinfo, proto_tree *tree, tvbuff_t *t static int dissect_dop_EstablishSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 91 "dop.cnf" +#line 102 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree, "symmetric"); @@ -546,9 +571,9 @@ static int dissect_establishSymmetric(packet_info *pinfo, proto_tree *tree, tvbu static int dissect_dop_EstablishRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 95 "dop.cnf" +#line 106 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree, "roleA"); @@ -562,9 +587,9 @@ static int dissect_establishRoleAInitiates(packet_info *pinfo, proto_tree *tree, static int dissect_dop_EstablishRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 99 "dop.cnf" +#line 110 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree, "roleB"); @@ -605,9 +630,9 @@ static int dissect_establishInitiator(packet_info *pinfo, proto_tree *tree, tvbu static int dissect_dop_T_agreement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 127 "dop.cnf" +#line 138 "dop.cnf" - offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree, NULL); @@ -848,9 +873,9 @@ dissect_dop_EstablishOperationalBindingArgument(gboolean implicit_tag _U_, tvbuf static int dissect_dop_T_symmetric(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 131 "dop.cnf" +#line 142 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree, "symmetric"); @@ -864,9 +889,9 @@ static int dissect_symmetric(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb static int dissect_dop_T_roleA_replies(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 135 "dop.cnf" +#line 146 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree, "roleA"); @@ -880,9 +905,9 @@ static int dissect_roleA_replies(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_dop_T_roleB_replies(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 139 "dop.cnf" +#line 150 "dop.cnf" - offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree, "roleB"); @@ -960,9 +985,9 @@ dissect_dop_EstablishOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_ static int dissect_dop_ModifySymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 103 "dop.cnf" +#line 114 "dop.cnf" - offset = call_dop_oid_callback("dop.modify.symmetric", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.modify.symmetric", tvb, offset, pinfo, tree, "symmetric"); @@ -976,9 +1001,9 @@ static int dissect_modifySymmetric(packet_info *pinfo, proto_tree *tree, tvbuff_ static int dissect_dop_ModifyRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 107 "dop.cnf" +#line 118 "dop.cnf" - offset = call_dop_oid_callback("dop.modify.rolea", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.modify.rolea", tvb, offset, pinfo, tree, "roleA"); @@ -992,9 +1017,9 @@ static int dissect_modifyRoleAInitiates(packet_info *pinfo, proto_tree *tree, tv static int dissect_dop_ModifyRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 111 "dop.cnf" +#line 122 "dop.cnf" - offset = call_dop_oid_callback("dop.modify.roleb", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.modify.roleb", tvb, offset, pinfo, tree, "roleB"); @@ -1035,9 +1060,11 @@ static int dissect_modifyInitiator(packet_info *pinfo, proto_tree *tree, tvbuff_ static int dissect_dop_ArgumentNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 151 "dop.cnf" +#line 162 "dop.cnf" + + offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree, NULL); + - offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree); return offset; @@ -1118,9 +1145,9 @@ dissect_dop_ModifyOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t static int dissect_dop_ResultNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 147 "dop.cnf" +#line 158 "dop.cnf" - offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree, NULL); @@ -1199,9 +1226,9 @@ dissect_dop_ModifyOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_t * static int dissect_dop_TerminateSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 115 "dop.cnf" +#line 126 "dop.cnf" - offset = call_dop_oid_callback("dop.terminate.symmetric", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.terminate.symmetric", tvb, offset, pinfo, tree, "symmetric"); @@ -1215,9 +1242,9 @@ static int dissect_terminateSymmetric(packet_info *pinfo, proto_tree *tree, tvbu static int dissect_dop_TerminateRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 119 "dop.cnf" +#line 130 "dop.cnf" - offset = call_dop_oid_callback("dop.terminate.rolea", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.terminate.rolea", tvb, offset, pinfo, tree, "roleA"); @@ -1231,9 +1258,9 @@ static int dissect_terminateRoleAInitiates(packet_info *pinfo, proto_tree *tree, static int dissect_dop_TerminateRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 123 "dop.cnf" +#line 134 "dop.cnf" - offset = call_dop_oid_callback("dop.terminate.roleb", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.terminate.roleb", tvb, offset, pinfo, tree, "roleB"); @@ -1431,9 +1458,9 @@ static int dissect_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, static int dissect_dop_T_agreementProposal(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 143 "dop.cnf" +#line 154 "dop.cnf" - offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree); + offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree, NULL); @@ -1707,18 +1734,16 @@ static void dissect_NHOBSubordinateToSuperior_PDU(tvbuff_t *tvb, packet_info *pi #line 75 "packet-dop-template.c" static int -call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) +call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info) { - const char *name = NULL; char binding_param[BER_MAX_OID_STR_LEN]; - sprintf(binding_param, "%s.%s", base_oid, binding_type ? binding_type : ""); + g_snprintf(binding_param, BER_MAX_OID_STR_LEN, "%s.%s", base_oid, binding_type ? binding_type : ""); - name = get_ber_oid_name(binding_param); - proto_item_append_text(tree, " (%s)", name ? name : binding_param); + if (col_info && (check_col(pinfo->cinfo, COL_INFO))) + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", col_info); return call_ber_oid_callback(binding_param, tvb, offset, pinfo, tree); - } @@ -2302,7 +2327,7 @@ void proto_register_dop(void) { "", HFILL }}, /*--- End of included file: packet-dop-hfarr.c ---*/ -#line 220 "packet-dop-template.c" +#line 218 "packet-dop-template.c" }; /* List of subtrees */ @@ -2358,7 +2383,7 @@ void proto_register_dop(void) { &ett_dop_NHOBSubordinateToSuperior, /*--- End of included file: packet-dop-ettarr.c ---*/ -#line 226 "packet-dop-template.c" +#line 224 "packet-dop-template.c" }; module_t *dop_module; @@ -2366,9 +2391,6 @@ void proto_register_dop(void) { /* Register protocol */ proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME); - /* initially disable the protocol */ - proto_set_decoding(proto_dop, FALSE); - register_dissector("dop", dissect_dop, proto_dop); /* Register fields and subtrees */ @@ -2416,7 +2438,7 @@ void proto_reg_handoff_dop(void) { /*--- End of included file: packet-dop-dis-tab.c ---*/ -#line 264 "packet-dop-template.c" +#line 259 "packet-dop-template.c" /* APPLICATION CONTEXT */ register_ber_oid_name("2.5.3.3", "id-ac-directory-operational-binding-management"); @@ -2428,6 +2450,12 @@ void proto_reg_handoff_dop(void) { register_ros_oid_dissector_handle("2.5.9.4", handle, 0, "id-as-directory-operational-binding-management", FALSE); } + /* BINDING TYPES */ + + register_ber_oid_name("2.5.19.1", "shadow-agreement"); + register_ber_oid_name("2.5.19.2", "hierarchical-agreement"); + register_ber_oid_name("2.5.19.3", "non-specific-hierarchical-agreement"); + /* remember the tpkt handler for change in preferences */ tpkt_handle = find_dissector("tpkt"); diff --git a/epan/dissectors/packet-dop.h b/epan/dissectors/packet-dop.h index e403b1f00f..b5077a6d5c 100644 --- a/epan/dissectors/packet-dop.h +++ b/epan/dissectors/packet-dop.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-dop.h */ +/* .\packet-dop.h */ /* ../../tools/asn2eth.py -X -b -e -p dop -c dop.cnf -s packet-dop-template dop.asn */ /* Input file: packet-dop-template.h */ @@ -39,6 +39,7 @@ #line 1 "packet-dop-exp.h" int dissect_dop_DSEType(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_dop_SupplierAndConsumers(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_dop_OperationalBindingID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); /*--- End of included file: packet-dop-exp.h ---*/ #line 30 "packet-dop-template.h" diff --git a/epan/dissectors/packet-ros.c b/epan/dissectors/packet-ros.c index 69eb36b463..59688faf15 100644 --- a/epan/dissectors/packet-ros.c +++ b/epan/dissectors/packet-ros.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-ros.c */ +/* .\packet-ros.c */ /* ../../tools/asn2eth.py -X -b -e -p ros -c ros.cnf -s packet-ros-template ros.asn */ /* Input file: packet-ros-template.c */ @@ -992,12 +992,14 @@ void proto_register_ros(void) { ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", FT_STRING, BASE_NONE); oid_table=g_hash_table_new(g_str_hash, g_str_equal); + + ros_handle = find_dissector("ros"); + } /*--- proto_reg_handoff_ros --- */ void proto_reg_handoff_ros(void) { - ros_handle = find_dissector("ros"); } diff --git a/epan/dissectors/packet-ros.h b/epan/dissectors/packet-ros.h index 1e725b9e49..78193bb254 100644 --- a/epan/dissectors/packet-ros.h +++ b/epan/dissectors/packet-ros.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-ros.h */ +/* .\packet-ros.h */ /* ../../tools/asn2eth.py -X -b -e -p ros -c ros.cnf -s packet-ros-template ros.asn */ /* Input file: packet-ros-template.h */ diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c index 3ccdc6d5d9..a4eaf6d273 100644 --- a/epan/dissectors/packet-rtse.c +++ b/epan/dissectors/packet-rtse.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-rtse.c */ +/* .\packet-rtse.c */ /* ../../tools/asn2eth.py -X -b -e -p rtse -c rtse.cnf -s packet-rtse-template rtse.asn */ /* Input file: packet-rtse-template.c */ @@ -1072,12 +1072,14 @@ void proto_register_rtse(void) { rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", FT_STRING, BASE_NONE); oid_table=g_hash_table_new(g_str_hash, g_str_equal); + rtse_handle = find_dissector("rtse"); + ros_handle = find_dissector("ros"); + } /*--- proto_reg_handoff_rtse --- */ void proto_reg_handoff_rtse(void) { - rtse_handle = find_dissector("rtse"); - ros_handle = find_dissector("ros"); + } diff --git a/epan/dissectors/packet-rtse.h b/epan/dissectors/packet-rtse.h index 721cb0eff2..d759141462 100644 --- a/epan/dissectors/packet-rtse.h +++ b/epan/dissectors/packet-rtse.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-rtse.h */ +/* .\packet-rtse.h */ /* ../../tools/asn2eth.py -X -b -e -p rtse -c rtse.cnf -s packet-rtse-template rtse.asn */ /* Input file: packet-rtse-template.h */ diff --git a/epan/dissectors/packet-x411.c b/epan/dissectors/packet-x411.c index 55829cbd5d..9a344f54cd 100644 --- a/epan/dissectors/packet-x411.c +++ b/epan/dissectors/packet-x411.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x411.c */ +/* .\packet-x411.c */ /* ../../tools/asn2eth.py -X -b -e -p x411 -c x411.cnf -s packet-x411-template x411.asn */ /* Input file: packet-x411-template.c */ diff --git a/epan/dissectors/packet-x411.h b/epan/dissectors/packet-x411.h index 0f25ef2d16..632a6358e4 100644 --- a/epan/dissectors/packet-x411.h +++ b/epan/dissectors/packet-x411.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x411.h */ +/* .\packet-x411.h */ /* ../../tools/asn2eth.py -X -b -e -p x411 -c x411.cnf -s packet-x411-template x411.asn */ /* Input file: packet-x411-template.h */ diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c index a3376457cb..f62bb11766 100644 --- a/epan/dissectors/packet-x509if.c +++ b/epan/dissectors/packet-x509if.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x509if.c */ +/* .\packet-x509if.c */ /* ../../tools/asn2eth.py -X -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn */ /* Input file: packet-x509if-template.c */ @@ -296,6 +296,12 @@ static gboolean doing_dn = TRUE; static char *last_dn = NULL; static char *last_rdn = NULL; +static int ava_hf_index; +#define MAX_FMT_VALS 32 +static value_string fmt_vals[MAX_FMT_VALS]; +#define MAX_AVA_STR_LEN 64 +static char *last_ava = NULL; + /*--- Included file: packet-x509if-fn.c ---*/ #line 1 "packet-x509if-fn.c" @@ -366,7 +372,8 @@ static int dissect_description(packet_info *pinfo, proto_tree *tree, tvbuff_t *t static int dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 102 "x509if.cnf" +#line 112 "x509if.cnf" + const char *fmt; const char *name; offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id); @@ -384,6 +391,16 @@ dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, /* append it to the tree */ proto_item_append_text(tree, " (%s=", name); } + + if((fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) { + /* we have a format */ + last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0'; + + g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s", name, fmt); + + proto_item_append_text(tree, " %s", last_ava); + + } } @@ -416,16 +433,21 @@ static int dissect_restrictionType(packet_info *pinfo, proto_tree *tree, tvbuff_ int dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 121 "x509if.cnf" +#line 142 "x509if.cnf" int old_offset = offset; tvbuff_t *out_tvb; - char *value = NULL; - + char *value = NULL; + const char *fmt; + const char *name = NULL; + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); /* try and dissect as a string */ dissect_ber_octet_string(FALSE, pinfo, NULL, tvb, old_offset, hf_x509if_any_string, &out_tvb); + /* should also try and dissect as an OID and integer */ + /* of course, if I can look up the syntax .... */ + if(out_tvb) { /* it was a string - format it */ value = tvb_format_text(out_tvb, 0, tvb_length(out_tvb)); @@ -437,6 +459,16 @@ dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs proto_item_append_text(tree, "%s)", value); } + if((fmt = val_to_str(ava_hf_index, fmt_vals, "")) && *fmt) { + /* we have a format */ + + if(!(name = get_ber_oid_name(object_identifier_id))) + name = object_identifier_id; + g_snprintf(last_ava, MAX_AVA_STR_LEN, "%s %s %s", name, fmt, value); + + proto_item_append_text(tree, " %s", last_ava); + + } } @@ -469,7 +501,7 @@ static int dissect_selectedValues_item(packet_info *pinfo, proto_tree *tree, tvb static int dissect_x509if_ValuesWithContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 153 "x509if.cnf" +#line 189 "x509if.cnf" offset=call_ber_oid_callback("unknown", tvb, offset, pinfo, tree); @@ -654,7 +686,7 @@ static int dissect_ca_contextType(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_x509if_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 96 "x509if.cnf" +#line 106 "x509if.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); @@ -753,9 +785,19 @@ static const ber_sequence_t AttributeValueAssertion_sequence[] = { int dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, +#line 262 "x509if.cnf" + + ava_hf_index = hf_index; + last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0'; + + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, AttributeValueAssertion_sequence, hf_index, ett_x509if_AttributeValueAssertion); + + ava_hf_index=-1; + + + return offset; } @@ -845,7 +887,7 @@ dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag _U_, tvb static int dissect_x509if_RelativeDistinguishedName_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 181 "x509if.cnf" +#line 217 "x509if.cnf" if(!rdn_one_value) { top_of_rdn = tree; @@ -876,7 +918,7 @@ static const ber_sequence_t RelativeDistinguishedName_set_of[1] = { int dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 156 "x509if.cnf" +#line 192 "x509if.cnf" char *temp_dn; rdn_one_value = FALSE; @@ -912,7 +954,7 @@ dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tv static int dissect_x509if_RDNSequence_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 208 "x509if.cnf" +#line 251 "x509if.cnf" if(!dn_one_rdn) { /* this is the first element - record the top */ @@ -939,7 +981,8 @@ static const ber_sequence_t RDNSequence_sequence_of[1] = { int dissect_x509if_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 196 "x509if.cnf" +#line 232 "x509if.cnf" + const char *fmt; dn_one_rdn = FALSE; /* reset */ last_dn = ep_alloc(MAX_RDN_STR_LEN); *last_dn = '\0'; @@ -952,6 +995,12 @@ dissect_x509if_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, /* we've finished - append the dn */ proto_item_append_text(top_of_dn, " (%s)", last_dn); + /* see if we should append this to the col info */ + if(check_col(pinfo->cinfo, COL_INFO) && + (fmt = val_to_str(hf_index, fmt_vals, "")) && *fmt) { + /* we have a format */ + col_append_fstr(pinfo->cinfo, COL_INFO, " %s%s", fmt, last_dn); + } @@ -1452,7 +1501,7 @@ static int dissect_level(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, in static int dissect_x509if_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 144 "x509if.cnf" +#line 180 "x509if.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); @@ -1495,7 +1544,7 @@ static int dissect_entryType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb static int dissect_x509if_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 150 "x509if.cnf" +#line 186 "x509if.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); @@ -2063,7 +2112,7 @@ static int dissect_entryLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv static const ber_sequence_t SET_OF_DirectoryString_set_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_name_item }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_name_item }, }; static int @@ -2184,13 +2233,39 @@ static void dissect_DistinguishedName_PDU(tvbuff_t *tvb, packet_info *pinfo, pro /*--- End of included file: packet-x509if-fn.c ---*/ -#line 71 "packet-x509if-template.c" +#line 77 "packet-x509if-template.c" const char * x509if_get_last_dn(void) { return last_dn; } +gboolean x509if_register_fmt(int hf_index, const gchar *fmt) +{ + static int idx = 0; + + if(idx < (MAX_FMT_VALS - 1)) { + + fmt_vals[idx].value = hf_index; + fmt_vals[idx].strptr = fmt; + + idx++; + + fmt_vals[idx].value = 0; + fmt_vals[idx].strptr = NULL; + + return TRUE; + + } else + return FALSE; /* couldn't register it */ + +} + +const char * x509if_get_last_ava(void) +{ + return last_ava; +} + /*--- proto_register_x509if ----------------------------------------------*/ void proto_register_x509if(void) { @@ -2548,11 +2623,11 @@ void proto_register_x509if(void) { "SearchRuleDescription/name", HFILL }}, { &hf_x509if_name_item, { "Item", "x509if.name_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "SearchRuleDescription/name/_item", HFILL }}, { &hf_x509if_description, { "description", "x509if.description", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "SearchRuleDescription/description", HFILL }}, { &hf_x509if_obsolete, { "obsolete", "x509if.obsolete", @@ -2772,7 +2847,7 @@ void proto_register_x509if(void) { "", HFILL }}, /*--- End of included file: packet-x509if-hfarr.c ---*/ -#line 90 "packet-x509if-template.c" +#line 122 "packet-x509if-template.c" }; /* List of subtrees */ @@ -2851,7 +2926,7 @@ void proto_register_x509if(void) { &ett_x509if_MRSubstitution, /*--- End of included file: packet-x509if-ettarr.c ---*/ -#line 95 "packet-x509if-template.c" +#line 127 "packet-x509if-template.c" }; /* Register protocol */ @@ -2861,6 +2936,10 @@ void proto_register_x509if(void) { proto_register_field_array(proto_x509if, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); + /* initialise array */ + fmt_vals[0].value = 0; + fmt_vals[0].strptr = NULL; + } diff --git a/epan/dissectors/packet-x509if.h b/epan/dissectors/packet-x509if.h index ca42efb57f..5f58e581fc 100644 --- a/epan/dissectors/packet-x509if.h +++ b/epan/dissectors/packet-x509if.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x509if.h */ +/* .\packet-x509if.h */ /* ../../tools/asn2eth.py -X -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn */ /* Input file: packet-x509if-template.h */ @@ -90,5 +90,8 @@ int dissect_x509if_MRSubstitution(gboolean implicit_tag, tvbuff_t *tvb, int offs extern const char * x509if_get_last_dn(void); +extern gboolean x509if_register_fmt(int hf_index, const gchar *fmt); +extern const char * x509if_get_last_ava(void); + #endif /* PACKET_X509IF_H */ diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c index 807b4e2543..f82af0a62b 100644 --- a/epan/dissectors/packet-x509sat.c +++ b/epan/dissectors/packet-x509sat.c @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x509sat.c */ +/* .\packet-x509sat.c */ /* ../../tools/asn2eth.py -X -b -e -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ /* Input file: packet-x509sat-template.c */ @@ -70,10 +70,36 @@ static int hf_x509sat_InternationalISDNNumber_PDU = -1; /* InternationalISDNNum static int hf_x509sat_DestinationIndicator_PDU = -1; /* DestinationIndicator */ static int hf_x509sat_PreferredDeliveryMethod_PDU = -1; /* PreferredDeliveryMethod */ static int hf_x509sat_PresentationAddress_PDU = -1; /* PresentationAddress */ +static int hf_x509sat_ProtocolInformation_PDU = -1; /* ProtocolInformation */ static int hf_x509sat_NameAndOptionalUID_PDU = -1; /* NameAndOptionalUID */ static int hf_x509sat_CaseIgnoreListMatch_PDU = -1; /* CaseIgnoreListMatch */ static int hf_x509sat_DayTimeBand_PDU = -1; /* DayTimeBand */ static int hf_x509sat_DayTime_PDU = -1; /* DayTime */ +static int hf_x509sat_ObjectIdentifier_PDU = -1; /* ObjectIdentifier */ +static int hf_x509sat_OctetString_PDU = -1; /* OctetString */ +static int hf_x509sat_BitString_PDU = -1; /* BitString */ +static int hf_x509sat_Integer_PDU = -1; /* Integer */ +static int hf_x509sat_Boolean_PDU = -1; /* Boolean */ +static int hf_x509sat_SyntaxGeneralizedTime_PDU = -1; /* SyntaxGeneralizedTime */ +static int hf_x509sat_SyntaxUTCTime_PDU = -1; /* SyntaxUTCTime */ +static int hf_x509sat_SyntaxNumericString_PDU = -1; /* SyntaxNumericString */ +static int hf_x509sat_SyntaxPrintableString_PDU = -1; /* SyntaxPrintableString */ +static int hf_x509sat_SyntaxIA5String_PDU = -1; /* SyntaxIA5String */ +static int hf_x509sat_SyntaxBMPString_PDU = -1; /* SyntaxBMPString */ +static int hf_x509sat_SyntaxUniversalString_PDU = -1; /* SyntaxUniversalString */ +static int hf_x509sat_SyntaxUTF8String_PDU = -1; /* SyntaxUTF8String */ +static int hf_x509sat_SyntaxTeletexString_PDU = -1; /* SyntaxTeletexString */ +static int hf_x509sat_SyntaxT61String_PDU = -1; /* SyntaxT61String */ +static int hf_x509sat_SyntaxVideotexString_PDU = -1; /* SyntaxVideotexString */ +static int hf_x509sat_SyntaxGraphicString_PDU = -1; /* SyntaxGraphicString */ +static int hf_x509sat_SyntaxISO646String_PDU = -1; /* SyntaxISO646String */ +static int hf_x509sat_SyntaxVisibleString_PDU = -1; /* SyntaxVisibleString */ +static int hf_x509sat_SyntaxGeneralString_PDU = -1; /* SyntaxGeneralString */ +static int hf_x509sat_teletexString = -1; /* TeletexString */ +static int hf_x509sat_printableString = -1; /* PrintableString */ +static int hf_x509sat_universalString = -1; /* UniversalString */ +static int hf_x509sat_bmpString = -1; /* BMPString */ +static int hf_x509sat_uTF8String = -1; /* UTF8String */ static int hf_x509sat_objectClass = -1; /* OBJECT_IDENTIFIER */ static int hf_x509sat_criteria = -1; /* Criteria */ static int hf_x509sat_type = -1; /* CriteriaItem */ @@ -203,6 +229,7 @@ static int hf_x509sat_T_bitNamedDays_saturday = -1; /*--- Included file: packet-x509sat-ett.c ---*/ #line 1 "packet-x509sat-ett.c" +static gint ett_x509sat_DirectoryString = -1; static gint ett_x509sat_Guide = -1; static gint ett_x509sat_Criteria = -1; static gint ett_x509sat_SET_OF_Criteria = -1; @@ -308,13 +335,108 @@ static int dissect_ZonalSelect_item(packet_info *pinfo, proto_tree *tree, tvbuff -int -dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 115 "x509sat.cnf" - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); +static int +dissect_x509sat_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_teletexString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_teletexString); +} + + + +static int +dissect_x509sat_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_printableString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_printableString); +} +static int dissect_telexNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_telexNumber); +} +static int dissect_countryCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_countryCode); +} +static int dissect_answerback(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_answerback); +} + + + +static int +dissect_x509sat_UniversalString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString, + pinfo, tree, tvb, offset, hf_index, + NULL); + return offset; +} +static int dissect_universalString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_UniversalString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_universalString); +} + +static int +dissect_x509sat_BMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_bmpString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_BMPString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_bmpString); +} + + + +static int +dissect_x509sat_UTF8String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_UTF8String(FALSE, tvb, offset, pinfo, tree, hf_x509sat_uTF8String); +} + + +const value_string x509sat_DirectoryString_vals[] = { + { 0, "teletexString" }, + { 1, "printableString" }, + { 2, "universalString" }, + { 3, "bmpString" }, + { 4, "uTF8String" }, + { 0, NULL } +}; + +static const ber_choice_t DirectoryString_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_teletexString }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString }, + { 2, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString }, + { 3, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString }, + { 4, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + DirectoryString_choice, hf_index, ett_x509sat_DirectoryString, + NULL); + return offset; } static int dissect_PostalAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -511,7 +633,7 @@ dissect_x509sat_EnhancedGuide(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs static const ber_sequence_t PostalAddress_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_PostalAddress_item }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_PostalAddress_item }, }; int @@ -537,26 +659,6 @@ static int dissect_telephoneNumber(packet_info *pinfo, proto_tree *tree, tvbuff_ } - -static int -dissect_x509sat_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, - pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_telexNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_telexNumber); -} -static int dissect_countryCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_countryCode); -} -static int dissect_answerback(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_x509sat_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_answerback); -} - - static const ber_sequence_t TelexNumber_sequence[] = { { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_telexNumber }, { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_countryCode }, @@ -847,7 +949,7 @@ dissect_x509sat_SubstringAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int static const ber_sequence_t CaseIgnoreListMatch_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_CaseIgnoreListMatch_item }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_CaseIgnoreListMatch_item }, }; int @@ -1574,7 +1676,7 @@ const value_string x509sat_LocaleContextSyntax_vals[] = { static const ber_choice_t LocaleContextSyntax_choice[] = { { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_localeID1 }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_localeID2 }, + { 1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_localeID2 }, { 0, 0, 0, 0, NULL } }; @@ -1587,6 +1689,218 @@ dissect_x509sat_LocaleContextSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, in return offset; } + + +static int +dissect_x509sat_ObjectIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + return offset; +} + + + +static int +dissect_x509sat_OctetString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_BitString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, + NULL, hf_index, -1, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_Integer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_Boolean(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxGeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxUTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxNumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxPrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxIA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxBMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxUniversalString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxUTF8String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxTeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxT61String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxVideotexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VideotexString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxGraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxISO646String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxVisibleString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_x509sat_SyntaxGeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + /*--- PDUs ---*/ static void dissect_DirectoryString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -1634,6 +1948,9 @@ static void dissect_PreferredDeliveryMethod_PDU(tvbuff_t *tvb, packet_info *pinf static void dissect_PresentationAddress_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { dissect_x509sat_PresentationAddress(FALSE, tvb, 0, pinfo, tree, hf_x509sat_PresentationAddress_PDU); } +static void dissect_ProtocolInformation_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_ProtocolInformation(FALSE, tvb, 0, pinfo, tree, hf_x509sat_ProtocolInformation_PDU); +} static void dissect_NameAndOptionalUID_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { dissect_x509sat_NameAndOptionalUID(FALSE, tvb, 0, pinfo, tree, hf_x509sat_NameAndOptionalUID_PDU); } @@ -1646,6 +1963,66 @@ static void dissect_DayTimeBand_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tre static void dissect_DayTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { dissect_x509sat_DayTime(FALSE, tvb, 0, pinfo, tree, hf_x509sat_DayTime_PDU); } +static void dissect_ObjectIdentifier_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_ObjectIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x509sat_ObjectIdentifier_PDU); +} +static void dissect_OctetString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_OctetString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_OctetString_PDU); +} +static void dissect_BitString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_BitString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_BitString_PDU); +} +static void dissect_Integer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_Integer(FALSE, tvb, 0, pinfo, tree, hf_x509sat_Integer_PDU); +} +static void dissect_Boolean_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_Boolean(FALSE, tvb, 0, pinfo, tree, hf_x509sat_Boolean_PDU); +} +static void dissect_SyntaxGeneralizedTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxGeneralizedTime(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxGeneralizedTime_PDU); +} +static void dissect_SyntaxUTCTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxUTCTime(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxUTCTime_PDU); +} +static void dissect_SyntaxNumericString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxNumericString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxNumericString_PDU); +} +static void dissect_SyntaxPrintableString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxPrintableString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxPrintableString_PDU); +} +static void dissect_SyntaxIA5String_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxIA5String(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxIA5String_PDU); +} +static void dissect_SyntaxBMPString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxBMPString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxBMPString_PDU); +} +static void dissect_SyntaxUniversalString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxUniversalString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxUniversalString_PDU); +} +static void dissect_SyntaxUTF8String_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxUTF8String(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxUTF8String_PDU); +} +static void dissect_SyntaxTeletexString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxTeletexString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxTeletexString_PDU); +} +static void dissect_SyntaxT61String_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxT61String(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxT61String_PDU); +} +static void dissect_SyntaxVideotexString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxVideotexString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxVideotexString_PDU); +} +static void dissect_SyntaxGraphicString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxGraphicString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxGraphicString_PDU); +} +static void dissect_SyntaxISO646String_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxISO646String(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxISO646String_PDU); +} +static void dissect_SyntaxVisibleString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxVisibleString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxVisibleString_PDU); +} +static void dissect_SyntaxGeneralString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { + dissect_x509sat_SyntaxGeneralString(FALSE, tvb, 0, pinfo, tree, hf_x509sat_SyntaxGeneralString_PDU); +} /*--- End of included file: packet-x509sat-fn.c ---*/ @@ -1662,7 +2039,7 @@ void proto_register_x509sat(void) { #line 1 "packet-x509sat-hfarr.c" { &hf_x509sat_DirectoryString_PDU, { "DirectoryString", "x509sat.DirectoryString", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "DirectoryString", HFILL }}, { &hf_x509sat_UniqueIdentifier_PDU, { "UniqueIdentifier", "x509sat.UniqueIdentifier", @@ -1720,6 +2097,10 @@ void proto_register_x509sat(void) { { "PresentationAddress", "x509sat.PresentationAddress", FT_NONE, BASE_NONE, NULL, 0, "PresentationAddress", HFILL }}, + { &hf_x509sat_ProtocolInformation_PDU, + { "ProtocolInformation", "x509sat.ProtocolInformation", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolInformation", HFILL }}, { &hf_x509sat_NameAndOptionalUID_PDU, { "NameAndOptionalUID", "x509sat.NameAndOptionalUID", FT_NONE, BASE_NONE, NULL, 0, @@ -1736,6 +2117,106 @@ void proto_register_x509sat(void) { { "DayTime", "x509sat.DayTime", FT_NONE, BASE_NONE, NULL, 0, "DayTime", HFILL }}, + { &hf_x509sat_ObjectIdentifier_PDU, + { "ObjectIdentifier", "x509sat.ObjectIdentifier", + FT_OID, BASE_NONE, NULL, 0, + "ObjectIdentifier", HFILL }}, + { &hf_x509sat_OctetString_PDU, + { "OctetString", "x509sat.OctetString", + FT_BYTES, BASE_HEX, NULL, 0, + "OctetString", HFILL }}, + { &hf_x509sat_BitString_PDU, + { "BitString", "x509sat.BitString", + FT_BYTES, BASE_HEX, NULL, 0, + "BitString", HFILL }}, + { &hf_x509sat_Integer_PDU, + { "Integer", "x509sat.Integer", + FT_INT32, BASE_DEC, NULL, 0, + "Integer", HFILL }}, + { &hf_x509sat_Boolean_PDU, + { "Boolean", "x509sat.Boolean", + FT_BOOLEAN, 8, NULL, 0, + "Boolean", HFILL }}, + { &hf_x509sat_SyntaxGeneralizedTime_PDU, + { "GeneralizedTime", "x509sat.GeneralizedTime", + FT_STRING, BASE_NONE, NULL, 0, + "GeneralizedTime", HFILL }}, + { &hf_x509sat_SyntaxUTCTime_PDU, + { "UTCTime", "x509sat.UTCTime", + FT_STRING, BASE_NONE, NULL, 0, + "UTCTime", HFILL }}, + { &hf_x509sat_SyntaxNumericString_PDU, + { "NumericString", "x509sat.NumericString", + FT_STRING, BASE_NONE, NULL, 0, + "NumericString", HFILL }}, + { &hf_x509sat_SyntaxPrintableString_PDU, + { "PrintableString", "x509sat.PrintableString", + FT_STRING, BASE_NONE, NULL, 0, + "PrintableString", HFILL }}, + { &hf_x509sat_SyntaxIA5String_PDU, + { "IA5String", "x509sat.IA5String", + FT_STRING, BASE_NONE, NULL, 0, + "IA5String", HFILL }}, + { &hf_x509sat_SyntaxBMPString_PDU, + { "BMPString", "x509sat.BMPString", + FT_STRING, BASE_NONE, NULL, 0, + "BMPString", HFILL }}, + { &hf_x509sat_SyntaxUniversalString_PDU, + { "UniversalString", "x509sat.UniversalString", + FT_STRING, BASE_NONE, NULL, 0, + "UniversalString", HFILL }}, + { &hf_x509sat_SyntaxUTF8String_PDU, + { "UTF8String", "x509sat.UTF8String", + FT_STRING, BASE_NONE, NULL, 0, + "UTF8String", HFILL }}, + { &hf_x509sat_SyntaxTeletexString_PDU, + { "TeletexString", "x509sat.TeletexString", + FT_STRING, BASE_NONE, NULL, 0, + "TeletexString", HFILL }}, + { &hf_x509sat_SyntaxT61String_PDU, + { "T61String", "x509sat.T61String", + FT_STRING, BASE_NONE, NULL, 0, + "T61String", HFILL }}, + { &hf_x509sat_SyntaxVideotexString_PDU, + { "VideotexString", "x509sat.VideotexString", + FT_STRING, BASE_NONE, NULL, 0, + "VideotexString", HFILL }}, + { &hf_x509sat_SyntaxGraphicString_PDU, + { "GraphicString", "x509sat.GraphicString", + FT_STRING, BASE_NONE, NULL, 0, + "GraphicString", HFILL }}, + { &hf_x509sat_SyntaxISO646String_PDU, + { "ISO646String", "x509sat.ISO646String", + FT_STRING, BASE_NONE, NULL, 0, + "ISO646String", HFILL }}, + { &hf_x509sat_SyntaxVisibleString_PDU, + { "VisibleString", "x509sat.VisibleString", + FT_STRING, BASE_NONE, NULL, 0, + "VisibleString", HFILL }}, + { &hf_x509sat_SyntaxGeneralString_PDU, + { "GeneralString", "x509sat.GeneralString", + FT_STRING, BASE_NONE, NULL, 0, + "GeneralString", HFILL }}, + { &hf_x509sat_teletexString, + { "teletexString", "x509sat.teletexString", + FT_STRING, BASE_NONE, NULL, 0, + "DirectoryString/teletexString", HFILL }}, + { &hf_x509sat_printableString, + { "printableString", "x509sat.printableString", + FT_STRING, BASE_NONE, NULL, 0, + "DirectoryString/printableString", HFILL }}, + { &hf_x509sat_universalString, + { "universalString", "x509sat.universalString", + FT_STRING, BASE_NONE, NULL, 0, + "DirectoryString/universalString", HFILL }}, + { &hf_x509sat_bmpString, + { "bmpString", "x509sat.bmpString", + FT_STRING, BASE_NONE, NULL, 0, + "DirectoryString/bmpString", HFILL }}, + { &hf_x509sat_uTF8String, + { "uTF8String", "x509sat.uTF8String", + FT_STRING, BASE_NONE, NULL, 0, + "DirectoryString/uTF8String", HFILL }}, { &hf_x509sat_objectClass, { "objectClass", "x509sat.objectClass", FT_OID, BASE_NONE, NULL, 0, @@ -1794,7 +2275,7 @@ void proto_register_x509sat(void) { "EnhancedGuide/subset", HFILL }}, { &hf_x509sat_PostalAddress_item, { "Item", "x509sat.PostalAddress_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "PostalAddress/_item", HFILL }}, { &hf_x509sat_telexNumber, { "telexNumber", "x509sat.telexNumber", @@ -1874,15 +2355,15 @@ void proto_register_x509sat(void) { "SubstringAssertion/_item", HFILL }}, { &hf_x509sat_initial, { "initial", "x509sat.initial", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "SubstringAssertion/_item/initial", HFILL }}, { &hf_x509sat_any, { "any", "x509sat.any", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "SubstringAssertion/_item/any", HFILL }}, { &hf_x509sat_final, { "final", "x509sat.final", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "SubstringAssertion/_item/final", HFILL }}, { &hf_x509sat_control, { "control", "x509sat.control", @@ -1890,7 +2371,7 @@ void proto_register_x509sat(void) { "SubstringAssertion/_item/control", HFILL }}, { &hf_x509sat_CaseIgnoreListMatch_item, { "Item", "x509sat.CaseIgnoreListMatch_item", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "CaseIgnoreListMatch/_item", HFILL }}, { &hf_x509sat_OctetSubstringAssertion_item, { "Item", "x509sat.OctetSubstringAssertion_item", @@ -2090,7 +2571,7 @@ void proto_register_x509sat(void) { "LocaleContextSyntax/localeID1", HFILL }}, { &hf_x509sat_localeID2, { "localeID2", "x509sat.localeID2", - FT_STRING, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0, "LocaleContextSyntax/localeID2", HFILL }}, { &hf_x509sat_T_bitDay_sunday, { "sunday", "x509sat.sunday", @@ -2226,6 +2707,7 @@ void proto_register_x509sat(void) { /*--- Included file: packet-x509sat-ettarr.c ---*/ #line 1 "packet-x509sat-ettarr.c" + &ett_x509sat_DirectoryString, &ett_x509sat_Guide, &ett_x509sat_Criteria, &ett_x509sat_SET_OF_Criteria, @@ -2292,30 +2774,27 @@ void proto_reg_handoff_x509sat(void) { /*--- Included file: packet-x509sat-dis-tab.c ---*/ #line 1 "packet-x509sat-dis-tab.c" - register_ber_oid_dissector("2.5.4.6", dissect_CountryName_PDU, proto_x509sat, "id-at-countryName"); + register_ber_oid_dissector("2.5.4.0", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-objectClass"); register_ber_oid_dissector("2.5.4.2", dissect_DirectoryString_PDU, proto_x509sat, "id-at-knowledgeInformation"); - register_ber_oid_dissector("2.5.4.10", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationName"); - register_ber_oid_dissector("2.5.4.7.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveLocalityName"); register_ber_oid_dissector("2.5.4.3", dissect_DirectoryString_PDU, proto_x509sat, "id-at-commonName"); register_ber_oid_dissector("2.5.4.4", dissect_DirectoryString_PDU, proto_x509sat, "id-at-surname"); - register_ber_oid_dissector("2.5.4.42", dissect_DirectoryString_PDU, proto_x509sat, "id-at-givenName"); - register_ber_oid_dissector("2.5.4.43", dissect_DirectoryString_PDU, proto_x509sat, "id-at-initials"); - register_ber_oid_dissector("2.5.4.44", dissect_DirectoryString_PDU, proto_x509sat, "id-at-generationQualifier"); - register_ber_oid_dissector("2.5.4.51", dissect_DirectoryString_PDU, proto_x509sat, "id-at-houseIdentifier"); - register_ber_oid_dissector("2.5.4.54", dissect_DirectoryString_PDU, proto_x509sat, "id-at-dmdName"); - register_ber_oid_dissector("2.5.4.65", dissect_DirectoryString_PDU, proto_x509sat, "id-at-pseudonym"); - register_ber_oid_dissector("2.5.4.41", dissect_DirectoryString_PDU, proto_x509sat, "id-at-name"); - register_ber_oid_dissector("2.5.4.8.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveStateOrProvinceName"); + register_ber_oid_dissector("2.5.4.5", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-serialNumber"); + register_ber_oid_dissector("2.5.4.6", dissect_CountryName_PDU, proto_x509sat, "id-at-countryName"); + register_ber_oid_dissector("2.5.4.7", dissect_DirectoryString_PDU, proto_x509sat, "id-at-localityName"); + register_ber_oid_dissector("2.5.4.7.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveLocalityName"); register_ber_oid_dissector("2.5.4.8", dissect_DirectoryString_PDU, proto_x509sat, "id-at-stateOrProvinceName"); + register_ber_oid_dissector("2.5.4.8.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveStateOrProvinceName"); register_ber_oid_dissector("2.5.4.9", dissect_DirectoryString_PDU, proto_x509sat, "id-at-streetAddress"); register_ber_oid_dissector("2.5.4.9.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveStreetAddress"); register_ber_oid_dissector("2.5.4.10.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveOrganizationName"); - register_ber_oid_dissector("2.5.4.7", dissect_DirectoryString_PDU, proto_x509sat, "id-at-localityName"); + register_ber_oid_dissector("2.5.4.10", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationName"); register_ber_oid_dissector("2.5.4.11", dissect_DirectoryString_PDU, proto_x509sat, "id-at-organizationalUnitName"); register_ber_oid_dissector("2.5.4.11.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectiveOrganizationalUnitName"); register_ber_oid_dissector("2.5.4.12", dissect_DirectoryString_PDU, proto_x509sat, "id-at-title"); register_ber_oid_dissector("2.5.4.13", dissect_DirectoryString_PDU, proto_x509sat, "id-at-description"); + register_ber_oid_dissector("2.5.4.14", dissect_EnhancedGuide_PDU, proto_x509sat, "id-at-searchGuide"); register_ber_oid_dissector("2.5.4.15", dissect_DirectoryString_PDU, proto_x509sat, "id-at-businessCategory"); + register_ber_oid_dissector("2.5.4.16", dissect_PostalAddress_PDU, proto_x509sat, "id-at-postalAddress"); register_ber_oid_dissector("2.5.4.17", dissect_DirectoryString_PDU, proto_x509sat, "id-at-postalCode"); register_ber_oid_dissector("2.5.4.17.1", dissect_DirectoryString_PDU, proto_x509sat, "id-at-collectivePostalCode"); register_ber_oid_dissector("2.5.4.18", dissect_DirectoryString_PDU, proto_x509sat, "id-at-postOfficeBox"); @@ -2326,6 +2805,32 @@ void proto_reg_handoff_x509sat(void) { register_ber_oid_dissector("2.5.4.20.1", dissect_TelephoneNumber_PDU, proto_x509sat, "id-at-collectiveTelephoneNumber"); register_ber_oid_dissector("2.5.4.21", dissect_TelexNumber_PDU, proto_x509sat, "id-at-telexNumber"); register_ber_oid_dissector("2.5.4.21.1", dissect_TelexNumber_PDU, proto_x509sat, "id-at-collectiveTelexNumber"); + register_ber_oid_dissector("2.5.4.23", dissect_FacsimileTelephoneNumber_PDU, proto_x509sat, "id-at-facsimileTelephoneNumber"); + register_ber_oid_dissector("2.5.4.23.1", dissect_FacsimileTelephoneNumber_PDU, proto_x509sat, "id-at-collectiveFacsimileTelephoneNumber"); + register_ber_oid_dissector("2.5.4.24", dissect_X121Address_PDU, proto_x509sat, "id-at-x121Address"); + register_ber_oid_dissector("2.5.4.25", dissect_InternationalISDNNumber_PDU, proto_x509sat, "id-at-internationalISDNNumber"); + register_ber_oid_dissector("2.5.4.25.1", dissect_InternationalISDNNumber_PDU, proto_x509sat, "id-at-collectiveInternationalISDNNumber"); + register_ber_oid_dissector("2.5.4.26", dissect_PostalAddress_PDU, proto_x509sat, "id-at-registeredAddress"); + register_ber_oid_dissector("2.5.4.27", dissect_DestinationIndicator_PDU, proto_x509sat, "id-at-destinationIndicator"); + register_ber_oid_dissector("2.5.4.28", dissect_PreferredDeliveryMethod_PDU, proto_x509sat, "id-at-preferredDeliveryMethod"); + register_ber_oid_dissector("2.5.4.29", dissect_PresentationAddress_PDU, proto_x509sat, "id-at-presentationAddress"); + register_ber_oid_dissector("2.5.4.30", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-supportedApplicationContext"); + register_ber_oid_dissector("2.5.4.35", dissect_OctetString_PDU, proto_x509sat, "id-at-userPassword"); + register_ber_oid_dissector("2.5.4.41", dissect_DirectoryString_PDU, proto_x509sat, "id-at-name"); + register_ber_oid_dissector("2.5.4.42", dissect_DirectoryString_PDU, proto_x509sat, "id-at-givenName"); + register_ber_oid_dissector("2.5.4.43", dissect_DirectoryString_PDU, proto_x509sat, "id-at-initials"); + register_ber_oid_dissector("2.5.4.44", dissect_DirectoryString_PDU, proto_x509sat, "id-at-generationQualifier"); + register_ber_oid_dissector("2.5.4.45", dissect_UniqueIdentifier_PDU, proto_x509sat, "id-at-uniqueIdedntifier"); + register_ber_oid_dissector("2.5.4.46", dissect_SyntaxPrintableString_PDU, proto_x509sat, "id-at-dnQualifier"); + register_ber_oid_dissector("2.5.4.47", dissect_EnhancedGuide_PDU, proto_x509sat, "id-at-enhancedSearchGuide"); + register_ber_oid_dissector("2.5.4.48", dissect_ProtocolInformation_PDU, proto_x509sat, "id-at-protocolInformation"); + register_ber_oid_dissector("2.5.4.50", dissect_NameAndOptionalUID_PDU, proto_x509sat, "id-at-uniqueMember"); + register_ber_oid_dissector("2.5.4.51", dissect_DirectoryString_PDU, proto_x509sat, "id-at-houseIdentifier"); + register_ber_oid_dissector("2.5.4.52", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-supportedAlgorithms"); + register_ber_oid_dissector("2.5.4.54", dissect_DirectoryString_PDU, proto_x509sat, "id-at-dmdName"); + register_ber_oid_dissector("2.5.4.65", dissect_DirectoryString_PDU, proto_x509sat, "id-at-pseudonym"); + register_ber_oid_dissector("2.5.4.66", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-communuicationsService"); + register_ber_oid_dissector("2.5.4.67", dissect_ObjectIdentifier_PDU, proto_x509sat, "id-at-communuicationsNetwork"); /*--- End of included file: packet-x509sat-dis-tab.c ---*/ diff --git a/epan/dissectors/packet-x509sat.h b/epan/dissectors/packet-x509sat.h index 8fcae6c92a..63811c08b9 100644 --- a/epan/dissectors/packet-x509sat.h +++ b/epan/dissectors/packet-x509sat.h @@ -1,6 +1,6 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ -/* ./packet-x509sat.h */ +/* .\packet-x509sat.h */ /* ../../tools/asn2eth.py -X -b -e -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ /* Input file: packet-x509sat-template.h */ @@ -37,6 +37,7 @@ /*--- Included file: packet-x509sat-exp.h ---*/ #line 1 "packet-x509sat-exp.h" +extern const value_string x509sat_DirectoryString_vals[]; extern const value_string x509sat_Criteria_vals[]; extern const value_string x509sat_ZonalResult_vals[]; extern const value_string x509sat_XDayOf_vals[]; |