diff options
-rw-r--r-- | asn1/x509sat/SelectedAttributeTypes.asn | 3 | ||||
-rw-r--r-- | asn1/x509sat/packet-x509sat-template.c | 24 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.c | 27 |
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 } }; |