diff options
-rw-r--r-- | asn1/x509sat/SelectedAttributeTypes.asn | 21 | ||||
-rw-r--r-- | asn1/x509sat/packet-x509sat-template.c | 64 | ||||
-rw-r--r-- | asn1/x509sat/packet-x509sat-template.h | 2 | ||||
-rw-r--r-- | asn1/x509sat/x509sat.cnf | 2 | ||||
-rw-r--r-- | asn1/x509sat/x509sat_exp.cnf | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.c | 73 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.h | 3 |
7 files changed, 26 insertions, 141 deletions
diff --git a/asn1/x509sat/SelectedAttributeTypes.asn b/asn1/x509sat/SelectedAttributeTypes.asn index 86d66d3b1d..29b3306dad 100644 --- a/asn1/x509sat/SelectedAttributeTypes.asn +++ b/asn1/x509sat/SelectedAttributeTypes.asn @@ -37,15 +37,18 @@ IMPORTS FROM DirectoryAbstractService directoryAbstractService; -- Directory string type --- XXX DirectoryString is handimplemented inside the template --- DirectoryString ::= CHOICE { --- teletexString TeletexString(SIZE (1..maxSize)), --- printableString PrintableString(SIZE (1..maxSize)), --- universalString UniversalString(SIZE (1..maxSize)), --- bmpString BMPString(SIZE (1..maxSize)), --- uTF8String UTF8String(SIZE (1..maxSize)) --- } --- +--This one is much better declared as this, it is prettier at least +--the octet string dissector can handle all of them +DirectoryString ::= OCTET STRING +--DirectoryString ::= CHOICE { +-- teletexString TeletexString, +-- printableString PrintableString, +-- universalString UniversalString, +-- bmpString BMPString, +-- uTF8String UTF8String +--} + + -- Attribute types -- knowledgeInformation ATTRIBUTE ::= { -- WITH SYNTAX DirectoryString {ub-knowledge-information} diff --git a/asn1/x509sat/packet-x509sat-template.c b/asn1/x509sat/packet-x509sat-template.c index 1f983b5aba..b309797151 100644 --- a/asn1/x509sat/packet-x509sat-template.c +++ b/asn1/x509sat/packet-x509sat-template.c @@ -1,3 +1,4 @@ +#define BER_UNI_TAG_TeletexString 20 /* until we fix the bug in asn2eth */ /* packet-x509sat.c * Routines for X.509 Selected Attribute Types packet dissection * @@ -81,72 +82,10 @@ int hf_x509sat_id_at_collectiveTelephoneNumber = -1; #include "packet-x509sat-hf.c" /* Initialize the subtree pointers */ -static gint ett_x509sat_DirectoryString = -1; #include "packet-x509sat-ett.c" #include "packet-x509sat-fn.c" - - - -static int DirectoryString_hf_index; - -static int -dissect_teletextString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_TeletextString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_printableString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_PrintableString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_universalString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_UniversalString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_bmpString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_BMPString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_UTF8String, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} - -static const value_string DirectoryString_vals[] = { - { 0, "teletextString" }, - { 1, "printableString" }, - { 2, "universalString" }, - { 3, "bmpString" }, - { 4, "uTF8String" }, - { 0, NULL } -}; - -static ber_choice DirectoryString_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_TeletextString, BER_FLAGS_NOOWNTAG, dissect_teletextString }, - { 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, proto_tree *tree, int hf_index) { - DirectoryString_hf_index = hf_index; - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - DirectoryString_choice, -1, ett_x509sat_DirectoryString); - - return offset; -} - - - - static void dissect_x509sat_countryName_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -500,7 +439,6 @@ void proto_register_x509sat(void) { /* List of subtrees */ static gint *ett[] = { - &ett_x509sat_DirectoryString, #include "packet-x509sat-ettarr.c" }; diff --git a/asn1/x509sat/packet-x509sat-template.h b/asn1/x509sat/packet-x509sat-template.h index ecde979f63..4e936a0a59 100644 --- a/asn1/x509sat/packet-x509sat-template.h +++ b/asn1/x509sat/packet-x509sat-template.h @@ -27,7 +27,5 @@ #include "packet-x509sat-exp.h" -int dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); - #endif /* PACKET_X509SAT_H */ diff --git a/asn1/x509sat/x509sat.cnf b/asn1/x509sat/x509sat.cnf index d611ce1ada..ce15ffa67b 100644 --- a/asn1/x509sat/x509sat.cnf +++ b/asn1/x509sat/x509sat.cnf @@ -7,7 +7,7 @@ InformationFramework x509if #.EXPORTS - +DirectoryString UniqueIdentifier #.NO_EMIT diff --git a/asn1/x509sat/x509sat_exp.cnf b/asn1/x509sat/x509sat_exp.cnf index 426e88f57f..c404778617 100644 --- a/asn1/x509sat/x509sat_exp.cnf +++ b/asn1/x509sat/x509sat_exp.cnf @@ -1,4 +1,4 @@ #.IMPORT_TAG UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING -DirectoryString BER_CLASS_UNI BER_UNI_TAG_CHOICE +DirectoryString BER_CLASS_UNI BER_UNI_TAG_PrintableString diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c index 852278382c..1269050b25 100644 --- a/epan/dissectors/packet-x509sat.c +++ b/epan/dissectors/packet-x509sat.c @@ -5,6 +5,7 @@ /* Input file: packet-x509sat-template.c */ +#define BER_UNI_TAG_TeletexString 20 /* until we fix the bug in asn2eth */ /* packet-x509sat.c * Routines for X.509 Selected Attribute Types packet dissection * @@ -101,7 +102,6 @@ static int hf_x509sat_answerback = -1; /* PrintableString */ /* Initialize the subtree pointers */ -static gint ett_x509sat_DirectoryString = -1; /*--- Included file: packet-x509sat-ett.c ---*/ @@ -134,6 +134,15 @@ static int dissect_approximateMatch(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) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +int dissect_x509sat_UniqueIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, NULL, hf_index, -1, @@ -227,67 +236,6 @@ dissect_x509sat_TelexNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset /*--- End of included file: packet-x509sat-fn.c ---*/ - - - -static int DirectoryString_hf_index; - -static int -dissect_teletextString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_TeletextString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_printableString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_PrintableString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_universalString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_UniversalString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_bmpString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_BMPString, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} -static int -dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_UTF8String, - pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL); -} - -static const value_string DirectoryString_vals[] = { - { 0, "teletextString" }, - { 1, "printableString" }, - { 2, "universalString" }, - { 3, "bmpString" }, - { 4, "uTF8String" }, - { 0, NULL } -}; - -static ber_choice DirectoryString_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_TeletextString, BER_FLAGS_NOOWNTAG, dissect_teletextString }, - { 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, proto_tree *tree, int hf_index) { - DirectoryString_hf_index = hf_index; - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - DirectoryString_choice, -1, ett_x509sat_DirectoryString); - - return offset; -} - - - - static void dissect_x509sat_countryName_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -678,7 +626,6 @@ void proto_register_x509sat(void) { /* List of subtrees */ static gint *ett[] = { - &ett_x509sat_DirectoryString, /*--- Included file: packet-x509sat-ettarr.c ---*/ diff --git a/epan/dissectors/packet-x509sat.h b/epan/dissectors/packet-x509sat.h index fcea0d8112..670a28b777 100644 --- a/epan/dissectors/packet-x509sat.h +++ b/epan/dissectors/packet-x509sat.h @@ -35,12 +35,11 @@ /*--- Included file: packet-x509sat-exp.h ---*/ +int dissect_x509sat_DirectoryString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509sat_UniqueIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); /*--- End of included file: packet-x509sat-exp.h ---*/ -int dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); - #endif /* PACKET_X509SAT_H */ |