Dissect "nbs-9".

svn path=/trunk/; revision=15742
This commit is contained in:
Anders Broman 2005-09-09 19:46:57 +00:00
parent 4b07f6747e
commit bb18a56bbd
5 changed files with 76 additions and 13 deletions

View 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

View 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");
}

View 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

View 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");
}

View 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);
}