diff options
-rw-r--r-- | asn1/ftam/ftam.cnf | 2 | ||||
-rw-r--r-- | asn1/ftam/packet-ftam-template.c | 16 | ||||
-rw-r--r-- | asn1/pres/pres.cnf | 13 | ||||
-rw-r--r-- | epan/dissectors/packet-ftam.c | 34 | ||||
-rw-r--r-- | epan/dissectors/packet-pres.c | 24 |
5 files changed, 76 insertions, 13 deletions
diff --git a/asn1/ftam/ftam.cnf b/asn1/ftam/ftam.cnf index 2092f2e3bc..bffe6f327a 100644 --- a/asn1/ftam/ftam.cnf +++ b/asn1/ftam/ftam.cnf @@ -69,7 +69,7 @@ Legal-Qualification-Attribute/actual-values actual_values9 #.FN_BODY Extension-Attribute/extension-attribute offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); -#.FN_PARS Attribute-Extensions-Pattern/extension-set-attribute-Patterns/extension-attribute-identifier +#.FN_PARS Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-identifier VAL_PTR = object_identifier_id #.FN_BODY Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-Pattern diff --git a/asn1/ftam/packet-ftam-template.c b/asn1/ftam/packet-ftam-template.c index c737a6a297..ceffa589b8 100644 --- a/asn1/ftam/packet-ftam-template.c +++ b/asn1/ftam/packet-ftam-template.c @@ -123,8 +123,22 @@ void proto_register_ftam(void) { void proto_reg_handoff_ftam(void) { register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,"iso-ftam(1)"); register_ber_oid_dissector("1.0.8571.2.1", dissect_ftam, proto_ftam,"ftam-pci(1)"); - register_ber_oid_name("1.3.14.5.5.9","NBS-9 FTAM file directory file"); + register_ber_oid_dissector("1.3.14.5.2.2", dissect_ftam, proto_ftam,"NIST file directory entry abstract syntax"); + + /* Unstructured text file document type FTAM-1 */ + register_ber_oid_name("1.0.8571.5.1","ISO FTAM unstructured text"); + register_ber_oid_name("1.0.8571.2.3","FTAM unstructured text abstract syntax"); register_ber_oid_name("1.0.8571.3.1","FTAM hierarchical file model"); register_ber_oid_name("1.0.8571.4.1","FTAM unstructured constraint set"); + /* Unstructured text file document type FTAM-3 */ + register_ber_oid_name("1.0.8571.5.3","ISO FTAM unstructured binary"); + register_ber_oid_name("1.0.8571.2.4","FTAM unstructured binary abstract syntax"); + + /* Filedirectory file document type NBS-9 */ + register_ber_oid_name("1.3.14.5.5.9","NBS-9 FTAM file directory file"); + + /* Filedirectory file document type NBS-9 (WITH OLD NIST OIDs)*/ + register_ber_oid_name("1.3.9999.1.5.9","NBS-9-OLD FTAM file directory file"); + register_ber_oid_name("1.3.9999.1.2.2","NIST file directory entry abstract syntax"); } diff --git a/asn1/pres/pres.cnf b/asn1/pres/pres.cnf index 851b892c83..27117ba2ad 100644 --- a/asn1/pres/pres.cnf +++ b/asn1/pres/pres.cnf @@ -47,6 +47,19 @@ CPR-PPDU/normal-mode-parameters/provider-reason cPR_PPDU__provider-reason proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available"); %(DEFAULT_BODY)s } +#.FN_BODY PDV-list/presentation-data-values/octet-aligned + + tvbuff_t *next_tvb; + char *oid; + + oid=find_oid_by_pres_ctx_id(pinfo, presentation_context_identifier); + if(oid){ + next_tvb = tvb_new_subset(tvb, offset, -1, -1); + call_ber_oid_callback(oid, next_tvb, offset, pinfo, global_tree); + } else { + proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available"); + %(DEFAULT_BODY)s + } #.FN_PARS Abstract_syntax_name diff --git a/epan/dissectors/packet-ftam.c b/epan/dissectors/packet-ftam.c index 35684ee62e..41525b9658 100644 --- a/epan/dissectors/packet-ftam.c +++ b/epan/dissectors/packet-ftam.c @@ -384,7 +384,7 @@ static int hf_ftam_abstract_Syntax_Pattern = -1; /* Object_Identifier_Pattern * static int hf_ftam_Attribute_Extensions_Pattern_item = -1; /* Attribute_Extensions_Pattern_item */ static int hf_ftam_extension_set_attribute_Patterns = -1; /* T_extension_set_attribute_Patterns */ static int hf_ftam_extension_set_attribute_Patterns_item = -1; /* T_extension_set_attribute_Patterns_item */ -static int hf_ftam_attribute_extension_attribute_identifier = -1; /* OBJECT_IDENTIFIER */ +static int hf_ftam_attribute_extension_attribute_identifier = -1; /* T_extension_attribute_identifier1 */ static int hf_ftam_extension_attribute_Pattern = -1; /* T_extension_attribute_Pattern */ static int hf_ftam_Objects_Attributes_List_item = -1; /* Read_Attributes */ static int hf_ftam_success_Object_count = -1; /* INTEGER */ @@ -4682,9 +4682,6 @@ dissect_ftam_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int off static int dissect_object_identifier_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_ftam_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_ftam_object_identifier_value); } -static int dissect_attribute_extension_attribute_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_ftam_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_ftam_attribute_extension_attribute_identifier); -} static const ber_sequence_t Object_Identifier_Pattern_sequence[] = { @@ -4822,6 +4819,19 @@ static int dissect_object_availabiiity_Pattern_impl(packet_info *pinfo, proto_tr static int +dissect_ftam_T_extension_attribute_identifier1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, + object_identifier_id); + + return offset; +} +static int dissect_attribute_extension_attribute_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_ftam_T_extension_attribute_identifier1(FALSE, tvb, offset, pinfo, tree, hf_ftam_attribute_extension_attribute_identifier); +} + + + +static int dissect_ftam_T_extension_attribute_Pattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); @@ -7905,8 +7915,22 @@ void proto_register_ftam(void) { void proto_reg_handoff_ftam(void) { register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,"iso-ftam(1)"); register_ber_oid_dissector("1.0.8571.2.1", dissect_ftam, proto_ftam,"ftam-pci(1)"); - register_ber_oid_name("1.3.14.5.5.9","NBS-9 FTAM file directory file"); + register_ber_oid_dissector("1.3.14.5.2.2", dissect_ftam, proto_ftam,"NIST file directory entry abstract syntax"); + + /* Unstructured text file document type FTAM-1 */ + register_ber_oid_name("1.0.8571.5.1","ISO FTAM unstructured text"); + register_ber_oid_name("1.0.8571.2.3","FTAM unstructured text abstract syntax"); register_ber_oid_name("1.0.8571.3.1","FTAM hierarchical file model"); register_ber_oid_name("1.0.8571.4.1","FTAM unstructured constraint set"); + /* Unstructured text file document type FTAM-3 */ + register_ber_oid_name("1.0.8571.5.3","ISO FTAM unstructured binary"); + register_ber_oid_name("1.0.8571.2.4","FTAM unstructured binary abstract syntax"); + + /* Filedirectory file document type NBS-9 */ + register_ber_oid_name("1.3.14.5.5.9","NBS-9 FTAM file directory file"); + + /* Filedirectory file document type NBS-9 (WITH OLD NIST OIDs)*/ + register_ber_oid_name("1.3.9999.1.5.9","NBS-9-OLD FTAM file directory file"); + register_ber_oid_name("1.3.9999.1.2.2","NIST file directory entry abstract syntax"); } diff --git a/epan/dissectors/packet-pres.c b/epan/dissectors/packet-pres.c index f8a9cec938..b6b34be6a1 100644 --- a/epan/dissectors/packet-pres.c +++ b/epan/dissectors/packet-pres.c @@ -140,7 +140,7 @@ static int hf_pres_fully_encoded_data = -1; /* Fully_encoded_data */ static int hf_pres_Fully_encoded_data_item = -1; /* PDV_list */ static int hf_pres_presentation_data_values = -1; /* T_presentation_data_values */ static int hf_pres_single_ASN1_type = -1; /* T_single_ASN1_type */ -static int hf_pres_octet_aligned = -1; /* OCTET_STRING */ +static int hf_pres_octet_aligned = -1; /* T_octet_aligned */ static int hf_pres_arbitrary = -1; /* BIT_STRING */ /* named bits */ static int hf_pres_Presentation_requirements_context_management = -1; @@ -627,8 +627,6 @@ dissect_pres_T_single_ASN1_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int of } - - return offset; } static int dissect_single_ASN1_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -638,14 +636,28 @@ static int dissect_single_ASN1_type_impl(packet_info *pinfo, proto_tree *tree, t static int -dissect_pres_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, +dissect_pres_T_octet_aligned(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *next_tvb; + char *oid; + + oid=find_oid_by_pres_ctx_id(pinfo, presentation_context_identifier); + if(oid){ + next_tvb = tvb_new_subset(tvb, offset, -1, -1); + call_ber_oid_callback(oid, next_tvb, offset, pinfo, global_tree); + } else { + proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available"); + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + } + + return offset; } static int dissect_octet_aligned_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_pres_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_pres_octet_aligned); + return dissect_pres_T_octet_aligned(TRUE, tvb, offset, pinfo, tree, hf_pres_octet_aligned); } |