summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asn1/ftam/ftam.cnf2
-rw-r--r--asn1/ftam/packet-ftam-template.c16
-rw-r--r--asn1/pres/pres.cnf13
-rw-r--r--epan/dissectors/packet-ftam.c34
-rw-r--r--epan/dissectors/packet-pres.c24
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);
}