Dissect "nbs-9".
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 9 Sep 2005 19:46:57 +0000 (19:46 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 9 Sep 2005 19:46:57 +0000 (19:46 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15742 f5534014-38df-0310-8fa8-9805f1628bb7

asn1/ftam/ftam.cnf
asn1/ftam/packet-ftam-template.c
asn1/pres/pres.cnf
epan/dissectors/packet-ftam.c
epan/dissectors/packet-pres.c

index 2092f2e3bc9b06d53aa3f57d10bf5ebfce686ab8..bffe6f327a1582fa65ee172bdb23e32c9d0856ba 100644 (file)
@@ -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
index c737a6a297f9fac0e00459e0f308f9e7f058105f..ceffa589b81c855b6d16e3478a069aba7be2027f 100644 (file)
@@ -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");
 }
index 851b892c8359c3be0c67214abbe284142516c1fe..27117ba2ad96173d8cabe94114eab1be4834f56a 100644 (file)
@@ -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
index 35684ee62e86f7e151096c4aefca4cf115a708bf..41525b96582be7d72618c5076f4dcf25734f2af2 100644 (file)
@@ -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[] = {
@@ -4821,6 +4818,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");
 }
index f8a9cec938e626ca32d5c0d0b0ce3c5f85f43e7e..b6b34be6a174690358740905f077f795c096d1cf 100644 (file)
@@ -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);
 }