aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/x509sat/SelectedAttributeTypes.asn3
-rw-r--r--asn1/x509sat/packet-x509sat-template.c24
-rw-r--r--epan/dissectors/packet-x509sat.c27
3 files changed, 34 insertions, 20 deletions
diff --git a/asn1/x509sat/SelectedAttributeTypes.asn b/asn1/x509sat/SelectedAttributeTypes.asn
index 9509a8180c..86d66d3b1d 100644
--- a/asn1/x509sat/SelectedAttributeTypes.asn
+++ b/asn1/x509sat/SelectedAttributeTypes.asn
@@ -39,8 +39,7 @@ IMPORTS
-- Directory string type
-- XXX DirectoryString is handimplemented inside the template
-- DirectoryString ::= CHOICE {
--- XXX not implemented yet
--- teletexString TeletexString(SIZE (1..maxSize)),
+-- teletexString TeletexString(SIZE (1..maxSize)),
-- printableString PrintableString(SIZE (1..maxSize)),
-- universalString UniversalString(SIZE (1..maxSize)),
-- bmpString BMPString(SIZE (1..maxSize)),
diff --git a/asn1/x509sat/packet-x509sat-template.c b/asn1/x509sat/packet-x509sat-template.c
index 350665b429..d06c24ddde 100644
--- a/asn1/x509sat/packet-x509sat-template.c
+++ b/asn1/x509sat/packet-x509sat-template.c
@@ -92,6 +92,11 @@ static gint ett_x509sat_DirectoryString = -1;
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);
@@ -113,19 +118,20 @@ dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offs
}
static const value_string DirectoryString_vals[] = {
- { 0, "printableString" },
- { 1, "universalString" },
- { 2, "bmpString" },
- { 3, "uTF8String" },
+ { 0, "teletextString" },
+ { 1, "printableString" },
+ { 2, "universalString" },
+ { 3, "bmpString" },
+ { 4, "uTF8String" },
{ 0, NULL }
};
static ber_choice DirectoryString_choice[] = {
-/*XXX needs to add TeletexString */
- { 0, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString },
- { 2, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString },
- { 3, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String },
+ { 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 }
};
diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c
index 14e4133302..4a0794e344 100644
--- a/epan/dissectors/packet-x509sat.c
+++ b/epan/dissectors/packet-x509sat.c
@@ -130,6 +130,8 @@ static gint ett_x509sat_TelexNumber = -1;
/* packet-x509sat-fn.c */
/* ../../tools/asn2eth.py -X -b -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */
+/*--- Fields for imported types ---*/
+
static int dissect_equality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_equality);
}
@@ -146,6 +148,7 @@ static int dissect_approximateMatch(packet_info *pinfo, proto_tree *tree, tvbuff
return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_approximateMatch);
}
+
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,
@@ -246,6 +249,11 @@ dissect_x509sat_TelexNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset
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);
@@ -267,19 +275,20 @@ dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offs
}
static const value_string DirectoryString_vals[] = {
- { 0, "printableString" },
- { 1, "universalString" },
- { 2, "bmpString" },
- { 3, "uTF8String" },
+ { 0, "teletextString" },
+ { 1, "printableString" },
+ { 2, "universalString" },
+ { 3, "bmpString" },
+ { 4, "uTF8String" },
{ 0, NULL }
};
static ber_choice DirectoryString_choice[] = {
-/*XXX needs to add TeletexString */
- { 0, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString },
- { 2, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString },
- { 3, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String },
+ { 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 }
};