aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/x509sat/SelectedAttributeTypes.asn21
-rw-r--r--asn1/x509sat/packet-x509sat-template.c64
-rw-r--r--asn1/x509sat/packet-x509sat-template.h2
-rw-r--r--asn1/x509sat/x509sat.cnf2
-rw-r--r--asn1/x509sat/x509sat_exp.cnf2
-rw-r--r--epan/dissectors/packet-x509sat.c73
-rw-r--r--epan/dissectors/packet-x509sat.h3
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 */