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}
+#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
*
#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)
{
/* List of subtrees */
static gint *ett[] = {
- &ett_x509sat_DirectoryString,
#include "packet-x509sat-ettarr.c"
};
#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 */
InformationFramework x509if
#.EXPORTS
-
+DirectoryString
UniqueIdentifier
#.NO_EMIT
#.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
/* 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
*
/* Initialize the subtree pointers */
-static gint ett_x509sat_DirectoryString = -1;
/*--- Included file: packet-x509sat-ett.c ---*/
}
+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,
/*--- 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)
{
/* List of subtrees */
static gint *ett[] = {
- &ett_x509sat_DirectoryString,
/*--- Included file: packet-x509sat-ettarr.c ---*/
/*--- 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 */