diff options
author | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2007-06-24 08:23:26 +0000 |
---|---|---|
committer | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2007-06-24 08:23:26 +0000 |
commit | ba986f3f05dffd57dbec71b389ea45d3b358ae58 (patch) | |
tree | 22096ff399897caffc4299c1eb5becfbc7b28fa2 | |
parent | c9e31101a10498e755b17cdf451d13bd5be74f8e (diff) |
Consolidation of FTBP dissector into the X420 dissector.
svn path=/trunk/; revision=22178
-rw-r--r-- | asn1/x420/Makefile.nmake | 4 | ||||
-rw-r--r-- | asn1/x420/ftbp.asn | 255 | ||||
-rw-r--r-- | asn1/x420/packet-x420-template.c | 1 | ||||
-rw-r--r-- | asn1/x420/x420-exp.cnf | 7 | ||||
-rw-r--r-- | asn1/x420/x420.cnf | 21 | ||||
-rw-r--r-- | epan/dissectors/Makefile.common | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-ftbp.c | 1345 | ||||
-rw-r--r-- | epan/dissectors/packet-ftbp.h | 39 | ||||
-rw-r--r-- | epan/dissectors/packet-x420.c | 1449 | ||||
-rw-r--r-- | epan/dissectors/packet-x420.h | 4 |
10 files changed, 1718 insertions, 1409 deletions
diff --git a/asn1/x420/Makefile.nmake b/asn1/x420/Makefile.nmake index aa4ef2d173..955a907bea 100644 --- a/asn1/x420/Makefile.nmake +++ b/asn1/x420/Makefile.nmake @@ -9,13 +9,15 @@ UNIX2DOS=$(PERL) ../../tools/unix2dos.pl PROTOCOL_NAME=x420 DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h +ASN_FILE_LIST=x420.asn ftbp.asn + all: generate_dissector generate_dissector: $(DISSECTOR_FILES) $(DISSECTOR_FILES): ../../tools/asn2wrs.py $(PROTOCOL_NAME).asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf !IFDEF PYTHON - $(PYTHON) "../../tools/asn2wrs.py" -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(PROTOCOL_NAME).asn + $(PYTHON) "../../tools/asn2wrs.py" -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(ASN_FILE_LIST) !ELSE @echo Error: You need Python to use asn2wrs.py @exit 1 diff --git a/asn1/x420/ftbp.asn b/asn1/x420/ftbp.asn new file mode 100644 index 0000000000..cc931e8ee6 --- /dev/null +++ b/asn1/x420/ftbp.asn @@ -0,0 +1,255 @@ +-- Module IPMSFileTransferBodyPartType (X.420:06/1999) +IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + file-transfer-body-part-type(9)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- FTAM Attribute Types + Attribute-Extensions, Concurrency-Access, Date-and-Time-Attribute, + Legal-Qualification-Attribute, Object-Availability-Attribute, + Object-Size-Attribute, Pathname, Permitted-Actions-Attribute, + Private-Use-Attribute + --== + FROM ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} + -- ACSE definitions of AP-title and AE-qualifier + EXTERNALt, + AE-qualifier, AP-title + --== + FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) + version1(1)} + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE, ExtensionsField + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers +-- id-ep-file-transfer, id-et-file-transfer + --== +-- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- object-identifiers(0) version-1999(1)} + -- MTS Abstract Service + ORName + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- File Transfer body part +--file-transfer-body-part EXTENDED-BODY-PART-TYPE ::= { +-- PARAMETERS {FileTransferParameters +-- IDENTIFIED BY id-ep-file-transfer}, +-- DATA {FileTransferData +-- IDENTIFIED BY id-et-file-transfer} +--} + +FileTransferParameters ::= SEQUENCE { + related-stored-file [0] RelatedStoredFile OPTIONAL, + contents-type + [1] ContentsTypeParameter OPTIONAL +-- DEFAULT +-- document-type: +-- {document-type-name +-- {iso standard 8571 document-type(5) unstructured-binary(3)}}--, + environment [2] EnvironmentParameter OPTIONAL, + compression [3] CompressionParameter OPTIONAL, + file-attributes [4] FileAttributes OPTIONAL, + extensions [5] ExtensionsField OPTIONAL +} + +FileTransferData ::= SEQUENCE OF EXTERNALt + +-- This conveys a sequence of data values representing file contents; +-- The rules for generating this sequence are implied by the value of the contents-type parameter. +RelatedStoredFile ::= + SET OF + SEQUENCE {file-identifier FileIdentifier, + relationship + Relationship OPTIONAL -- DEFAULT explicit-relationship:unspecified + } + +FileIdentifier ::= CHOICE { + pathname-and-version [0] PathnameandVersion, + cross-reference [1] CrossReference +} + +PathnameandVersion ::= SEQUENCE { + pathname [0] Pathname-Attribute, + file-version [1] GraphicString OPTIONAL +} + +CrossReference ::= SEQUENCE { + application-cross-reference [0] OCTET STRING, + message-reference [1] MessageReference OPTIONAL, + body-part-reference [2] INTEGER OPTIONAL +} + +MessageReference ::= SET { + user [0] ORName OPTIONAL, + -- Defined in 8.5.5 of ITU-T Rec. X.411 | ISO/IEC 10021-4 + user-relative-identifier [1] PrintableString +} + +Relationship ::= CHOICE { + explicit-relationship [0] ExplicitRelationship, + descriptive-relationship [1] GraphicString +} + +ExplicitRelationship ::= INTEGER { + unspecified(0), new-file(1), replacement(2), extension(3)} + +ContentsTypeParameter ::= Contents-Type-Attribute + +Contents-Type-Attribute ::= CHOICE { + document-type + [0] SEQUENCE {document-type-name Document-Type-Name, + parameter [0] --DOCUMENT-PARAMETER.&Type -- ANY OPTIONAL + }, + -- The actual types to be used for values of the parameter field + -- are defined in the named document type. + constraint-set-and-abstract-syntax + [1] SEQUENCE {constraint-set-name Constraint-Set-Name, + abstract-syntax-name Abstract-Syntax-Name} +} + +Document-Type-Name ::= OBJECT IDENTIFIER + +--DOCUMENT-PARAMETER ::= CLASS {&Type +--} + +Constraint-Set-Name ::= OBJECT IDENTIFIER + +Abstract-Syntax-Name ::= OBJECT IDENTIFIER + +EnvironmentParameter ::= SEQUENCE { + application-reference [0] GeneralIdentifier OPTIONAL, + machine [1] GeneralIdentifier OPTIONAL, + operating-system [2] OBJECT IDENTIFIER OPTIONAL, + user-visible-string [3] SEQUENCE OF GraphicString OPTIONAL +} + +GeneralIdentifier ::= CHOICE { + registered-identifier [0] OBJECT IDENTIFIER, + descriptive-identifier [1] SEQUENCE OF GraphicString +} + +CompressionParameter ::= SEQUENCE { + compression-algorithm-id + [0] -- COMPRESSION-ALGORITHM.&id({CompressionAlgorithmTable}) --OBJECT IDENTIFIER, + compression-algorithm-param + [1] --COMPRESSION-ALGORITHM.&Type +-- ({CompressionAlgorithmTable}{@compression-algorithm-id}) + ANY +} + +--COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER + +--CompressionAlgorithmTable COMPRESSION-ALGORITHM ::= +-- {...} + +FileAttributes ::= SEQUENCE { + pathname Pathname-Attribute OPTIONAL, + permitted-actions + [1] Permitted-Actions-Attribute OPTIONAL, + storage-account [3] Account-Attribute OPTIONAL, + date-and-time-of-creation + [4] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-modification + [5] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-read-access + [6] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-attribute-modification + [7] Date-and-Time-Attribute OPTIONAL, + identity-of-creator + [8] User-Identity-Attribute OPTIONAL, + identity-of-last-modifier + [9] User-Identity-Attribute OPTIONAL, + identity-of-last-reader + [10] User-Identity-Attribute OPTIONAL, + identity-of-last-attribute-modifier + [11] User-Identity-Attribute OPTIONAL, + object-availability + [12] Object-Availability-Attribute OPTIONAL, + object-size + [13] Object-Size-Attribute OPTIONAL, + future-object-size + [14] Object-Size-Attribute OPTIONAL, + access-control + [15] Access-Control-Attribute OPTIONAL, + legal-qualifications + [16] Legal-Qualification-Attribute OPTIONAL, + private-use + [17] Private-Use-Attribute OPTIONAL, + attribute-extensions + [22] Attribute-Extensions OPTIONAL +} + +Pathname-Attribute ::= CHOICE { + incomplete-pathname [0] Pathname, + complete-pathname [23] Pathname +} + +Account-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute + actual-values Account +} + +Account ::= GraphicString + +User-Identity-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute. + actual-values User-Identity +} + +User-Identity ::= GraphicString + +Access-Control-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute. + actual-values [1] SET OF Access-Control-Element +} + +-- The semantics of this attribute are described in ISO 8571-2 +Access-Control-Element ::= SEQUENCE { + action-list [0] Access-Request, + concurrency-access [1] Concurrency-Access OPTIONAL, + identity [2] User-Identity OPTIONAL, + passwords [3] Access-Passwords OPTIONAL, + location [4] Application-Entity-Title OPTIONAL +} + +Access-Request ::= BIT STRING { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-object(7)} + +Access-Passwords ::= SEQUENCE { + read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] Pass-Passwords, + link-password [9] Password +} + +Password ::= CHOICE { + graphic-string GraphicString, + octet-string OCTET STRING +} + +Pass-Passwords ::= SEQUENCE OF Password + +Application-Entity-Title ::= SEQUENCE { + ap-title AP-title, + ae-qualifier AE-qualifier +} + +END -- of IPMSFileTransferBodyPartType + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/x420/packet-x420-template.c b/asn1/x420/packet-x420-template.c index 2ea131ab9c..4bae685b41 100644 --- a/asn1/x420/packet-x420-template.c +++ b/asn1/x420/packet-x420-template.c @@ -42,6 +42,7 @@ #include "packet-x509af.h" #include "packet-x509ce.h" +#include "packet-ftam.h" #include "packet-x411.h" #include "packet-x420.h" diff --git a/asn1/x420/x420-exp.cnf b/asn1/x420/x420-exp.cnf index a2a0b88f62..6a70fb1e17 100644 --- a/asn1/x420/x420-exp.cnf +++ b/asn1/x420/x420-exp.cnf @@ -1,10 +1,11 @@ # Do not modify this file. # It is created automatically by the ASN.1 to Wireshark dissector compiler -# .\x420-exp.cnf -# ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn +# ./x420-exp.cnf +# ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn ftbp.asn #.MODULE -IPMSInformationObjects x420 +IPMSInformationObjects x420 +IPMSFileTransferBodyPartType x420 #.END #.IMPORT_TAG diff --git a/asn1/x420/x420.cnf b/asn1/x420/x420.cnf index fa15a9a079..99afc2943d 100644 --- a/asn1/x420/x420.cnf +++ b/asn1/x420/x420.cnf @@ -4,11 +4,17 @@ Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0 #.MODULE_IMPORT MTSAbstractService x411 +#.INCLUDE ../ftam/ftam-exp.cnf #.INCLUDE ../x411/x411-exp.cnf #.INCLUDE ../x509af/x509af-exp.cnf #.INCLUDE ../x509ce/x509ce-exp.cnf #.INCLUDE ../acse/acse-exp.cnf + +#.MODULE +x420 x420 +ftbp ftbp + #.EXPORTS ORDescriptor InformationObject @@ -43,11 +49,18 @@ G3FacsimileParameters/non-basic-parameters g3facsimile_non_basic_parameters BodyPart/encrypted encrypted_bp CirculationSignatureData/algorithm-identifier circulation-signature-algorithm-identifier +Account-Attribute/actual-values account-actual-values +User-Identity-Attribute/actual-values identity-actual-values + +MessageReference/user-relative-identifier user-relative-identifier-ref + #.PDU OriginatingUA AbsenceAdvice ChangeOfAddressAdvice IPMAssemblyInstructions +FileTransferData +FileTransferParameters #.REGISTER OriginatingUA B "1.2.826.0.1004.10.1.1" "nexor-originating-ua" @@ -89,7 +102,8 @@ BilaterallyDefinedBodyPart B "2.6.1.4.9" "id-et-bilaterally-defined" GeneralTextParameters B "2.6.1.11.11" "id-ep-general-text" GeneralTextData B "2.6.1.4.11" "id-et-general-text" -# FileTransferBodyPart {id-et 12} in a separate dissector (ftbp) +FileTransferParameters B "2.6.1.11.12" "id-ep-file-transfer" +FileTransferData B "2.6.1.4.12" "id-et-file-transfer" # {id-et 13} is no longer defined # ForwardedReportBodyPart {id-et 14} defined in x411.cnf MessageParameters B "2.6.1.11.15" "id-ep-notification" @@ -166,6 +180,11 @@ ForwardedContentParameters B "2.6.1.11.17.1.3.26.0.4406.0.4.1" "id-ep-content- #.FN_BODY NationallyDefinedBodyPart /* XXX Not implemented yet */ +#.FN_BODY Contents-Type-Attribute/document-type/parameter +/* XXX: Not implemented yet */ + +#.FN_BODY CompressionParameter/compression-algorithm-param +/* XXX: Not implemented yet */ #.END diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common index 966afe35e1..e7e7f7ee91 100644 --- a/epan/dissectors/Makefile.common +++ b/epan/dissectors/Makefile.common @@ -94,7 +94,6 @@ ASN_DISSECTOR_SRC = \ packet-dsp.c \ packet-ess.c \ packet-ftam.c \ - packet-ftbp.c \ packet-gnm.c \ packet-gsm_map.c \ packet-h225.c \ @@ -856,7 +855,6 @@ DISSECTOR_INCLUDES = \ packet-fr.h \ packet-frame.h \ packet-ftam.h \ - packet-ftbp.h \ packet-giop.h \ packet-gnm.h \ packet-gnutella.h \ diff --git a/epan/dissectors/packet-ftbp.c b/epan/dissectors/packet-ftbp.c deleted file mode 100644 index 045c06e57f..0000000000 --- a/epan/dissectors/packet-ftbp.c +++ /dev/null @@ -1,1345 +0,0 @@ -/* Do not modify this file. */ -/* It is created automatically by the ASN.1 to Wireshark dissector compiler */ -/* .\packet-ftbp.c */ -/* ../../tools/asn2wrs.py -b -X -T -e -p ftbp -c ftbp.cnf -s packet-ftbp-template ftbp.asn */ - -/* Input file: packet-ftbp-template.c */ - -#line 1 "packet-ftbp-template.c" -/* packet-ftbp.c - * Routines for File Transfer Body Part (FTBP) dissection (used in X.420 content) - * Graeme Lunt 2005 - * - * $Id$ - * - * Wireshark - Network traffic analyzer - * By Gerald Combs <gerald@wireshark.org> - * Copyright 1998 Gerald Combs - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include <glib.h> -#include <epan/packet.h> -#include <epan/conversation.h> -#include <epan/asn1.h> - -#include <stdio.h> -#include <string.h> - -#include "packet-ber.h" - -#include "packet-acse.h" -#include "packet-ftam.h" -#include "packet-x411.h" -#include "packet-x420.h" - -#include "packet-ftbp.h" - -#define PNAME "X.420 File Transfer Body Part" -#define PSNAME "FTBP" -#define PFNAME "ftbp" - -/* Initialize the protocol and registered fields */ -int proto_ftbp = -1; - - -/*--- Included file: packet-ftbp-hf.c ---*/ -#line 1 "packet-ftbp-hf.c" -static int hf_ftbp_FileTransferParameters_PDU = -1; /* FileTransferParameters */ -static int hf_ftbp_FileTransferData_PDU = -1; /* FileTransferData */ -static int hf_ftbp_related_stored_file = -1; /* RelatedStoredFile */ -static int hf_ftbp_contents_type = -1; /* ContentsTypeParameter */ -static int hf_ftbp_environment = -1; /* EnvironmentParameter */ -static int hf_ftbp_compression = -1; /* CompressionParameter */ -static int hf_ftbp_file_attributes = -1; /* FileAttributes */ -static int hf_ftbp_extensions = -1; /* ExtensionsField */ -static int hf_ftbp_FileTransferData_item = -1; /* EXTERNALt */ -static int hf_ftbp_RelatedStoredFile_item = -1; /* RelatedStoredFile_item */ -static int hf_ftbp_file_identifier = -1; /* FileIdentifier */ -static int hf_ftbp_relationship = -1; /* Relationship */ -static int hf_ftbp_pathname_and_version = -1; /* PathnameandVersion */ -static int hf_ftbp_cross_reference = -1; /* CrossReference */ -static int hf_ftbp_pathname = -1; /* Pathname_Attribute */ -static int hf_ftbp_file_version = -1; /* GraphicString */ -static int hf_ftbp_application_cross_reference = -1; /* OCTET_STRING */ -static int hf_ftbp_message_reference = -1; /* MessageReference */ -static int hf_ftbp_body_part_reference = -1; /* INTEGER */ -static int hf_ftbp_user = -1; /* ORName */ -static int hf_ftbp_user_relative_identifier = -1; /* PrintableString */ -static int hf_ftbp_explicit_relationship = -1; /* ExplicitRelationship */ -static int hf_ftbp_descriptive_relationship = -1; /* GraphicString */ -static int hf_ftbp_document_type = -1; /* T_document_type */ -static int hf_ftbp_document_type_name = -1; /* Document_Type_Name */ -static int hf_ftbp_parameter = -1; /* T_parameter */ -static int hf_ftbp_constraint_set_and_abstract_syntax = -1; /* T_constraint_set_and_abstract_syntax */ -static int hf_ftbp_constraint_set_name = -1; /* Constraint_Set_Name */ -static int hf_ftbp_abstract_syntax_name = -1; /* Abstract_Syntax_Name */ -static int hf_ftbp_application_reference = -1; /* GeneralIdentifier */ -static int hf_ftbp_machine = -1; /* GeneralIdentifier */ -static int hf_ftbp_operating_system = -1; /* OBJECT_IDENTIFIER */ -static int hf_ftbp_user_visible_string = -1; /* T_user_visible_string */ -static int hf_ftbp_user_visible_string_item = -1; /* GraphicString */ -static int hf_ftbp_registered_identifier = -1; /* OBJECT_IDENTIFIER */ -static int hf_ftbp_descriptive_identifier = -1; /* T_descriptive_identifier */ -static int hf_ftbp_descriptive_identifier_item = -1; /* GraphicString */ -static int hf_ftbp_compression_algorithm_id = -1; /* OBJECT_IDENTIFIER */ -static int hf_ftbp_compression_algorithm_param = -1; /* T_compression_algorithm_param */ -static int hf_ftbp_permitted_actions = -1; /* Permitted_Actions_Attribute */ -static int hf_ftbp_storage_account = -1; /* Account_Attribute */ -static int hf_ftbp_date_and_time_of_creation = -1; /* Date_and_Time_Attribute */ -static int hf_ftbp_date_and_time_of_last_modification = -1; /* Date_and_Time_Attribute */ -static int hf_ftbp_date_and_time_of_last_read_access = -1; /* Date_and_Time_Attribute */ -static int hf_ftbp_date_and_time_of_last_attribute_modification = -1; /* Date_and_Time_Attribute */ -static int hf_ftbp_identity_of_creator = -1; /* User_Identity_Attribute */ -static int hf_ftbp_identity_of_last_modifier = -1; /* User_Identity_Attribute */ -static int hf_ftbp_identity_of_last_reader = -1; /* User_Identity_Attribute */ -static int hf_ftbp_identity_of_last_attribute_modifier = -1; /* User_Identity_Attribute */ -static int hf_ftbp_object_availability = -1; /* Object_Availability_Attribute */ -static int hf_ftbp_object_size = -1; /* Object_Size_Attribute */ -static int hf_ftbp_future_object_size = -1; /* Object_Size_Attribute */ -static int hf_ftbp_access_control = -1; /* Access_Control_Attribute */ -static int hf_ftbp_legal_qualifications = -1; /* Legal_Qualification_Attribute */ -static int hf_ftbp_private_use = -1; /* Private_Use_Attribute */ -static int hf_ftbp_attribute_extensions = -1; /* Attribute_Extensions */ -static int hf_ftbp_incomplete_pathname = -1; /* Pathname */ -static int hf_ftbp_complete_pathname = -1; /* Pathname */ -static int hf_ftbp_no_value_available = -1; /* NULL */ -static int hf_ftbp_account_actual_values = -1; /* Account */ -static int hf_ftbp_identity_actual_values = -1; /* User_Identity */ -static int hf_ftbp_actual_values = -1; /* SET_OF_Access_Control_Element */ -static int hf_ftbp_actual_values_item = -1; /* Access_Control_Element */ -static int hf_ftbp_action_list = -1; /* Access_Request */ -static int hf_ftbp_concurrency_access = -1; /* Concurrency_Access */ -static int hf_ftbp_identity = -1; /* User_Identity */ -static int hf_ftbp_passwords = -1; /* Access_Passwords */ -static int hf_ftbp_location = -1; /* Application_Entity_Title */ -static int hf_ftbp_read_password = -1; /* Password */ -static int hf_ftbp_insert_password = -1; /* Password */ -static int hf_ftbp_replace_password = -1; /* Password */ -static int hf_ftbp_extend_password = -1; /* Password */ -static int hf_ftbp_erase_password = -1; /* Password */ -static int hf_ftbp_read_attribute_password = -1; /* Password */ -static int hf_ftbp_change_attribute_password = -1; /* Password */ -static int hf_ftbp_delete_password = -1; /* Password */ -static int hf_ftbp_pass_passwords = -1; /* Pass_Passwords */ -static int hf_ftbp_link_password = -1; /* Password */ -static int hf_ftbp_graphic_string = -1; /* GraphicString */ -static int hf_ftbp_octet_string = -1; /* OCTET_STRING */ -static int hf_ftbp_Pass_Passwords_item = -1; /* Password */ -static int hf_ftbp_ap_title = -1; /* AP_title */ -static int hf_ftbp_ae_qualifier = -1; /* AE_qualifier */ -/* named bits */ -static int hf_ftbp_Access_Request_read = -1; -static int hf_ftbp_Access_Request_insert = -1; -static int hf_ftbp_Access_Request_replace = -1; -static int hf_ftbp_Access_Request_extend = -1; -static int hf_ftbp_Access_Request_erase = -1; -static int hf_ftbp_Access_Request_read_attribute = -1; -static int hf_ftbp_Access_Request_change_attribute = -1; -static int hf_ftbp_Access_Request_delete_object = -1; - -/*--- End of included file: packet-ftbp-hf.c ---*/ -#line 55 "packet-ftbp-template.c" - -/* Initialize the subtree pointers */ -static gint ett_ftbp = -1; - -/*--- Included file: packet-ftbp-ett.c ---*/ -#line 1 "packet-ftbp-ett.c" -static gint ett_ftbp_FileTransferParameters = -1; -static gint ett_ftbp_FileTransferData = -1; -static gint ett_ftbp_RelatedStoredFile = -1; -static gint ett_ftbp_RelatedStoredFile_item = -1; -static gint ett_ftbp_FileIdentifier = -1; -static gint ett_ftbp_PathnameandVersion = -1; -static gint ett_ftbp_CrossReference = -1; -static gint ett_ftbp_MessageReference = -1; -static gint ett_ftbp_Relationship = -1; -static gint ett_ftbp_Contents_Type_Attribute = -1; -static gint ett_ftbp_T_document_type = -1; -static gint ett_ftbp_T_constraint_set_and_abstract_syntax = -1; -static gint ett_ftbp_EnvironmentParameter = -1; -static gint ett_ftbp_T_user_visible_string = -1; -static gint ett_ftbp_GeneralIdentifier = -1; -static gint ett_ftbp_T_descriptive_identifier = -1; -static gint ett_ftbp_CompressionParameter = -1; -static gint ett_ftbp_FileAttributes = -1; -static gint ett_ftbp_Pathname_Attribute = -1; -static gint ett_ftbp_Account_Attribute = -1; -static gint ett_ftbp_User_Identity_Attribute = -1; -static gint ett_ftbp_Access_Control_Attribute = -1; -static gint ett_ftbp_SET_OF_Access_Control_Element = -1; -static gint ett_ftbp_Access_Control_Element = -1; -static gint ett_ftbp_Access_Request = -1; -static gint ett_ftbp_Access_Passwords = -1; -static gint ett_ftbp_Password = -1; -static gint ett_ftbp_Pass_Passwords = -1; -static gint ett_ftbp_Application_Entity_Title = -1; - -/*--- End of included file: packet-ftbp-ett.c ---*/ -#line 59 "packet-ftbp-template.c" - - -/*--- Included file: packet-ftbp-fn.c ---*/ -#line 1 "packet-ftbp-fn.c" - -static const value_string ftbp_Pathname_Attribute_vals[] = { - { 0, "incomplete-pathname" }, - { 23, "complete-pathname" }, - { 0, NULL } -}; - -static const ber_choice_t Pathname_Attribute_choice[] = { - { 0, &hf_ftbp_incomplete_pathname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname }, - { 23, &hf_ftbp_complete_pathname, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Pathname_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Pathname_Attribute_choice, hf_index, ett_ftbp_Pathname_Attribute, - NULL); - - return offset; -} - - - -static int -dissect_ftbp_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, - actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const ber_sequence_t PathnameandVersion_sequence[] = { - { &hf_ftbp_pathname , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Pathname_Attribute }, - { &hf_ftbp_file_version , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_GraphicString }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_PathnameandVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - PathnameandVersion_sequence, hf_index, ett_ftbp_PathnameandVersion); - - return offset; -} - - - -static int -dissect_ftbp_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - - -static int -dissect_ftbp_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, - actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const ber_sequence_t MessageReference_set[] = { - { &hf_ftbp_user , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ORName }, - { &hf_ftbp_user_relative_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_PrintableString }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_MessageReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, - MessageReference_set, hf_index, ett_ftbp_MessageReference); - - return offset; -} - - - -static int -dissect_ftbp_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const ber_sequence_t CrossReference_sequence[] = { - { &hf_ftbp_application_cross_reference, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_OCTET_STRING }, - { &hf_ftbp_message_reference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_MessageReference }, - { &hf_ftbp_body_part_reference, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_INTEGER }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - CrossReference_sequence, hf_index, ett_ftbp_CrossReference); - - return offset; -} - - -static const value_string ftbp_FileIdentifier_vals[] = { - { 0, "pathname-and-version" }, - { 1, "cross-reference" }, - { 0, NULL } -}; - -static const ber_choice_t FileIdentifier_choice[] = { - { 0, &hf_ftbp_pathname_and_version, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_PathnameandVersion }, - { 1, &hf_ftbp_cross_reference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_CrossReference }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_FileIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - FileIdentifier_choice, hf_index, ett_ftbp_FileIdentifier, - NULL); - - return offset; -} - - -static const value_string ftbp_ExplicitRelationship_vals[] = { - { 0, "unspecified" }, - { 1, "new-file" }, - { 2, "replacement" }, - { 3, "extension" }, - { 0, NULL } -}; - - -static int -dissect_ftbp_ExplicitRelationship(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const value_string ftbp_Relationship_vals[] = { - { 0, "explicit-relationship" }, - { 1, "descriptive-relationship" }, - { 0, NULL } -}; - -static const ber_choice_t Relationship_choice[] = { - { 0, &hf_ftbp_explicit_relationship, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_ExplicitRelationship }, - { 1, &hf_ftbp_descriptive_relationship, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_GraphicString }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Relationship(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Relationship_choice, hf_index, ett_ftbp_Relationship, - NULL); - - return offset; -} - - -static const ber_sequence_t RelatedStoredFile_item_sequence[] = { - { &hf_ftbp_file_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_FileIdentifier }, - { &hf_ftbp_relationship , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Relationship }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_RelatedStoredFile_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - RelatedStoredFile_item_sequence, hf_index, ett_ftbp_RelatedStoredFile_item); - - return offset; -} - - -static const ber_sequence_t RelatedStoredFile_set_of[1] = { - { &hf_ftbp_RelatedStoredFile_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftbp_RelatedStoredFile_item }, -}; - -static int -dissect_ftbp_RelatedStoredFile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset, - RelatedStoredFile_set_of, hf_index, ett_ftbp_RelatedStoredFile); - - return offset; -} - - - -static int -dissect_ftbp_Document_Type_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); - - return offset; -} - - - -static int -dissect_ftbp_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 23 "ftbp.cnf" -/* XXX: Not implemented yet */ - - - - return offset; -} - - -static const ber_sequence_t T_document_type_sequence[] = { - { &hf_ftbp_document_type_name, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftbp_Document_Type_Name }, - { &hf_ftbp_parameter , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_T_parameter }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_T_document_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - T_document_type_sequence, hf_index, ett_ftbp_T_document_type); - - return offset; -} - - - -static int -dissect_ftbp_Constraint_Set_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); - - return offset; -} - - - -static int -dissect_ftbp_Abstract_Syntax_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); - - return offset; -} - - -static const ber_sequence_t T_constraint_set_and_abstract_syntax_sequence[] = { - { &hf_ftbp_constraint_set_name, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftbp_Constraint_Set_Name }, - { &hf_ftbp_abstract_syntax_name, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftbp_Abstract_Syntax_Name }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_T_constraint_set_and_abstract_syntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - T_constraint_set_and_abstract_syntax_sequence, hf_index, ett_ftbp_T_constraint_set_and_abstract_syntax); - - return offset; -} - - -static const value_string ftbp_Contents_Type_Attribute_vals[] = { - { 0, "document-type" }, - { 1, "constraint-set-and-abstract-syntax" }, - { 0, NULL } -}; - -static const ber_choice_t Contents_Type_Attribute_choice[] = { - { 0, &hf_ftbp_document_type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_T_document_type }, - { 1, &hf_ftbp_constraint_set_and_abstract_syntax, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_T_constraint_set_and_abstract_syntax }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Contents_Type_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Contents_Type_Attribute_choice, hf_index, ett_ftbp_Contents_Type_Attribute, - NULL); - - return offset; -} - - - -static int -dissect_ftbp_ContentsTypeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ftbp_Contents_Type_Attribute(implicit_tag, tvb, offset, actx, tree, hf_index); - - return offset; -} - - - -static int -dissect_ftbp_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); - - return offset; -} - - -static const ber_sequence_t T_descriptive_identifier_sequence_of[1] = { - { &hf_ftbp_descriptive_identifier_item, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftbp_GraphicString }, -}; - -static int -dissect_ftbp_T_descriptive_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_descriptive_identifier_sequence_of, hf_index, ett_ftbp_T_descriptive_identifier); - - return offset; -} - - -static const value_string ftbp_GeneralIdentifier_vals[] = { - { 0, "registered-identifier" }, - { 1, "descriptive-identifier" }, - { 0, NULL } -}; - -static const ber_choice_t GeneralIdentifier_choice[] = { - { 0, &hf_ftbp_registered_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_OBJECT_IDENTIFIER }, - { 1, &hf_ftbp_descriptive_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_T_descriptive_identifier }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_GeneralIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - GeneralIdentifier_choice, hf_index, ett_ftbp_GeneralIdentifier, - NULL); - - return offset; -} - - -static const ber_sequence_t T_user_visible_string_sequence_of[1] = { - { &hf_ftbp_user_visible_string_item, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftbp_GraphicString }, -}; - -static int -dissect_ftbp_T_user_visible_string(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_user_visible_string_sequence_of, hf_index, ett_ftbp_T_user_visible_string); - - return offset; -} - - -static const ber_sequence_t EnvironmentParameter_sequence[] = { - { &hf_ftbp_application_reference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_GeneralIdentifier }, - { &hf_ftbp_machine , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_GeneralIdentifier }, - { &hf_ftbp_operating_system, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_OBJECT_IDENTIFIER }, - { &hf_ftbp_user_visible_string, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_T_user_visible_string }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_EnvironmentParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - EnvironmentParameter_sequence, hf_index, ett_ftbp_EnvironmentParameter); - - return offset; -} - - - -static int -dissect_ftbp_T_compression_algorithm_param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 26 "ftbp.cnf" -/* XXX: Not implemented yet */ - - return offset; -} - - -static const ber_sequence_t CompressionParameter_sequence[] = { - { &hf_ftbp_compression_algorithm_id, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_OBJECT_IDENTIFIER }, - { &hf_ftbp_compression_algorithm_param, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_T_compression_algorithm_param }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_CompressionParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - CompressionParameter_sequence, hf_index, ett_ftbp_CompressionParameter); - - return offset; -} - - - -static int -dissect_ftbp_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); - - return offset; -} - - - -static int -dissect_ftbp_Account(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, - actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const value_string ftbp_Account_Attribute_vals[] = { - { 0, "no-value-available" }, - { 1, "actual-values" }, - { 0, NULL } -}; - -static const ber_choice_t Account_Attribute_choice[] = { - { 0, &hf_ftbp_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_NULL }, - { 1, &hf_ftbp_account_actual_values, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftbp_Account }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Account_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Account_Attribute_choice, hf_index, ett_ftbp_Account_Attribute, - NULL); - - return offset; -} - - - -static int -dissect_ftbp_User_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, - actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - -static const value_string ftbp_User_Identity_Attribute_vals[] = { - { 0, "no-value-available" }, - { 1, "actual-values" }, - { 0, NULL } -}; - -static const ber_choice_t User_Identity_Attribute_choice[] = { - { 0, &hf_ftbp_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_NULL }, - { 1, &hf_ftbp_identity_actual_values, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftbp_User_Identity }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_User_Identity_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - User_Identity_Attribute_choice, hf_index, ett_ftbp_User_Identity_Attribute, - NULL); - - return offset; -} - - -static const asn_namedbit Access_Request_bits[] = { - { 0, &hf_ftbp_Access_Request_read, -1, -1, "read", NULL }, - { 1, &hf_ftbp_Access_Request_insert, -1, -1, "insert", NULL }, - { 2, &hf_ftbp_Access_Request_replace, -1, -1, "replace", NULL }, - { 3, &hf_ftbp_Access_Request_extend, -1, -1, "extend", NULL }, - { 4, &hf_ftbp_Access_Request_erase, -1, -1, "erase", NULL }, - { 5, &hf_ftbp_Access_Request_read_attribute, -1, -1, "read-attribute", NULL }, - { 6, &hf_ftbp_Access_Request_change_attribute, -1, -1, "change-attribute", NULL }, - { 7, &hf_ftbp_Access_Request_delete_object, -1, -1, "delete-object", NULL }, - { 0, NULL, 0, 0, NULL, NULL } -}; - -static int -dissect_ftbp_Access_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - Access_Request_bits, hf_index, ett_ftbp_Access_Request, - NULL); - - return offset; -} - - -static const value_string ftbp_Password_vals[] = { - { 0, "graphic-string" }, - { 1, "octet-string" }, - { 0, NULL } -}; - -static const ber_choice_t Password_choice[] = { - { 0, &hf_ftbp_graphic_string , BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftbp_GraphicString }, - { 1, &hf_ftbp_octet_string , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ftbp_OCTET_STRING }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Password_choice, hf_index, ett_ftbp_Password, - NULL); - - return offset; -} - - -static const ber_sequence_t Pass_Passwords_sequence_of[1] = { - { &hf_ftbp_Pass_Passwords_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, -}; - -static int -dissect_ftbp_Pass_Passwords(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, - Pass_Passwords_sequence_of, hf_index, ett_ftbp_Pass_Passwords); - - return offset; -} - - -static const ber_sequence_t Access_Passwords_sequence[] = { - { &hf_ftbp_read_password , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_insert_password, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_replace_password, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_extend_password, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_erase_password , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_read_attribute_password, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_change_attribute_password, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_delete_password, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { &hf_ftbp_pass_passwords , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ftbp_Pass_Passwords }, - { &hf_ftbp_link_password , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Password }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Access_Passwords(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - Access_Passwords_sequence, hf_index, ett_ftbp_Access_Passwords); - - return offset; -} - - -static const ber_sequence_t Application_Entity_Title_sequence[] = { - { &hf_ftbp_ap_title , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_acse_AP_title }, - { &hf_ftbp_ae_qualifier , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_acse_AE_qualifier }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Application_Entity_Title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - Application_Entity_Title_sequence, hf_index, ett_ftbp_Application_Entity_Title); - - return offset; -} - - -static const ber_sequence_t Access_Control_Element_sequence[] = { - { &hf_ftbp_action_list , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_Access_Request }, - { &hf_ftbp_concurrency_access, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Access }, - { &hf_ftbp_identity , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_User_Identity }, - { &hf_ftbp_passwords , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_Access_Passwords }, - { &hf_ftbp_location , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_Application_Entity_Title }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Access_Control_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - Access_Control_Element_sequence, hf_index, ett_ftbp_Access_Control_Element); - - return offset; -} - - -static const ber_sequence_t SET_OF_Access_Control_Element_set_of[1] = { - { &hf_ftbp_actual_values_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftbp_Access_Control_Element }, -}; - -static int -dissect_ftbp_SET_OF_Access_Control_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset, - SET_OF_Access_Control_Element_set_of, hf_index, ett_ftbp_SET_OF_Access_Control_Element); - - return offset; -} - - -static const value_string ftbp_Access_Control_Attribute_vals[] = { - { 0, "no-value-available" }, - { 1, "actual-values" }, - { 0, NULL } -}; - -static const ber_choice_t Access_Control_Attribute_choice[] = { - { 0, &hf_ftbp_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftbp_NULL }, - { 1, &hf_ftbp_actual_values , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftbp_SET_OF_Access_Control_Element }, - { 0, NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_Access_Control_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_choice(actx, tree, tvb, offset, - Access_Control_Attribute_choice, hf_index, ett_ftbp_Access_Control_Attribute, - NULL); - - return offset; -} - - -static const ber_sequence_t FileAttributes_sequence[] = { - { &hf_ftbp_pathname , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Pathname_Attribute }, - { &hf_ftbp_permitted_actions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Permitted_Actions_Attribute }, - { &hf_ftbp_storage_account, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Account_Attribute }, - { &hf_ftbp_date_and_time_of_creation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Attribute }, - { &hf_ftbp_date_and_time_of_last_modification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Attribute }, - { &hf_ftbp_date_and_time_of_last_read_access, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Attribute }, - { &hf_ftbp_date_and_time_of_last_attribute_modification, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Attribute }, - { &hf_ftbp_identity_of_creator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_User_Identity_Attribute }, - { &hf_ftbp_identity_of_last_modifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_User_Identity_Attribute }, - { &hf_ftbp_identity_of_last_reader, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_User_Identity_Attribute }, - { &hf_ftbp_identity_of_last_attribute_modifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_User_Identity_Attribute }, - { &hf_ftbp_object_availability, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Availability_Attribute }, - { &hf_ftbp_object_size , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Size_Attribute }, - { &hf_ftbp_future_object_size, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Size_Attribute }, - { &hf_ftbp_access_control , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_Access_Control_Attribute }, - { &hf_ftbp_legal_qualifications, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Legal_Qualification_Attribute }, - { &hf_ftbp_private_use , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Private_Use_Attribute }, - { &hf_ftbp_attribute_extensions, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extensions }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_FileAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - FileAttributes_sequence, hf_index, ett_ftbp_FileAttributes); - - return offset; -} - - -static const ber_sequence_t FileTransferParameters_sequence[] = { - { &hf_ftbp_related_stored_file, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_RelatedStoredFile }, - { &hf_ftbp_contents_type , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ftbp_ContentsTypeParameter }, - { &hf_ftbp_environment , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_EnvironmentParameter }, - { &hf_ftbp_compression , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_CompressionParameter }, - { &hf_ftbp_file_attributes, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftbp_FileAttributes }, - { &hf_ftbp_extensions , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x420_ExtensionsField }, - { NULL, 0, 0, 0, NULL } -}; - -static int -dissect_ftbp_FileTransferParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, - FileTransferParameters_sequence, hf_index, ett_ftbp_FileTransferParameters); - - return offset; -} - - -static const ber_sequence_t FileTransferData_sequence_of[1] = { - { &hf_ftbp_FileTransferData_item, BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt }, -}; - -static int -dissect_ftbp_FileTransferData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, - FileTransferData_sequence_of, hf_index, ett_ftbp_FileTransferData); - - return offset; -} - -/*--- PDUs ---*/ - -static void dissect_FileTransferParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { - asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); - dissect_ftbp_FileTransferParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_ftbp_FileTransferParameters_PDU); -} -static void dissect_FileTransferData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { - asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); - dissect_ftbp_FileTransferData(FALSE, tvb, 0, &asn1_ctx, tree, hf_ftbp_FileTransferData_PDU); -} - - -/*--- End of included file: packet-ftbp-fn.c ---*/ -#line 61 "packet-ftbp-template.c" - - -/*--- proto_register_ftbp -------------------------------------------*/ -void proto_register_ftbp(void) { - - /* List of fields */ - static hf_register_info hf[] = - { - -/*--- Included file: packet-ftbp-hfarr.c ---*/ -#line 1 "packet-ftbp-hfarr.c" - { &hf_ftbp_FileTransferParameters_PDU, - { "FileTransferParameters", "ftbp.FileTransferParameters", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.FileTransferParameters", HFILL }}, - { &hf_ftbp_FileTransferData_PDU, - { "FileTransferData", "ftbp.FileTransferData", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.FileTransferData", HFILL }}, - { &hf_ftbp_related_stored_file, - { "related-stored-file", "ftbp.related_stored_file", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.RelatedStoredFile", HFILL }}, - { &hf_ftbp_contents_type, - { "contents-type", "ftbp.contents_type", - FT_UINT32, BASE_DEC, VALS(ftbp_Contents_Type_Attribute_vals), 0, - "ftbp.ContentsTypeParameter", HFILL }}, - { &hf_ftbp_environment, - { "environment", "ftbp.environment", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.EnvironmentParameter", HFILL }}, - { &hf_ftbp_compression, - { "compression", "ftbp.compression", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.CompressionParameter", HFILL }}, - { &hf_ftbp_file_attributes, - { "file-attributes", "ftbp.file_attributes", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.FileAttributes", HFILL }}, - { &hf_ftbp_extensions, - { "extensions", "ftbp.extensions", - FT_UINT32, BASE_DEC, NULL, 0, - "x420.ExtensionsField", HFILL }}, - { &hf_ftbp_FileTransferData_item, - { "Item", "ftbp.FileTransferData_item", - FT_NONE, BASE_NONE, NULL, 0, - "acse.EXTERNALt", HFILL }}, - { &hf_ftbp_RelatedStoredFile_item, - { "Item", "ftbp.RelatedStoredFile_item", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.RelatedStoredFile_item", HFILL }}, - { &hf_ftbp_file_identifier, - { "file-identifier", "ftbp.file_identifier", - FT_UINT32, BASE_DEC, VALS(ftbp_FileIdentifier_vals), 0, - "ftbp.FileIdentifier", HFILL }}, - { &hf_ftbp_relationship, - { "relationship", "ftbp.relationship", - FT_UINT32, BASE_DEC, VALS(ftbp_Relationship_vals), 0, - "ftbp.Relationship", HFILL }}, - { &hf_ftbp_pathname_and_version, - { "pathname-and-version", "ftbp.pathname_and_version", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.PathnameandVersion", HFILL }}, - { &hf_ftbp_cross_reference, - { "cross-reference", "ftbp.cross_reference", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.CrossReference", HFILL }}, - { &hf_ftbp_pathname, - { "pathname", "ftbp.pathname", - FT_UINT32, BASE_DEC, VALS(ftbp_Pathname_Attribute_vals), 0, - "ftbp.Pathname_Attribute", HFILL }}, - { &hf_ftbp_file_version, - { "file-version", "ftbp.file_version", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.GraphicString", HFILL }}, - { &hf_ftbp_application_cross_reference, - { "application-cross-reference", "ftbp.application_cross_reference", - FT_BYTES, BASE_HEX, NULL, 0, - "ftbp.OCTET_STRING", HFILL }}, - { &hf_ftbp_message_reference, - { "message-reference", "ftbp.message_reference", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.MessageReference", HFILL }}, - { &hf_ftbp_body_part_reference, - { "body-part-reference", "ftbp.body_part_reference", - FT_INT32, BASE_DEC, NULL, 0, - "ftbp.INTEGER", HFILL }}, - { &hf_ftbp_user, - { "user", "ftbp.user", - FT_NONE, BASE_NONE, NULL, 0, - "x411.ORName", HFILL }}, - { &hf_ftbp_user_relative_identifier, - { "user-relative-identifier", "ftbp.user_relative_identifier", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.PrintableString", HFILL }}, - { &hf_ftbp_explicit_relationship, - { "explicit-relationship", "ftbp.explicit_relationship", - FT_INT32, BASE_DEC, VALS(ftbp_ExplicitRelationship_vals), 0, - "ftbp.ExplicitRelationship", HFILL }}, - { &hf_ftbp_descriptive_relationship, - { "descriptive-relationship", "ftbp.descriptive_relationship", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.GraphicString", HFILL }}, - { &hf_ftbp_document_type, - { "document-type", "ftbp.document_type", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.T_document_type", HFILL }}, - { &hf_ftbp_document_type_name, - { "document-type-name", "ftbp.document_type_name", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.Document_Type_Name", HFILL }}, - { &hf_ftbp_parameter, - { "parameter", "ftbp.parameter", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.T_parameter", HFILL }}, - { &hf_ftbp_constraint_set_and_abstract_syntax, - { "constraint-set-and-abstract-syntax", "ftbp.constraint_set_and_abstract_syntax", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.T_constraint_set_and_abstract_syntax", HFILL }}, - { &hf_ftbp_constraint_set_name, - { "constraint-set-name", "ftbp.constraint_set_name", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.Constraint_Set_Name", HFILL }}, - { &hf_ftbp_abstract_syntax_name, - { "abstract-syntax-name", "ftbp.abstract_syntax_name", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.Abstract_Syntax_Name", HFILL }}, - { &hf_ftbp_application_reference, - { "application-reference", "ftbp.application_reference", - FT_UINT32, BASE_DEC, VALS(ftbp_GeneralIdentifier_vals), 0, - "ftbp.GeneralIdentifier", HFILL }}, - { &hf_ftbp_machine, - { "machine", "ftbp.machine", - FT_UINT32, BASE_DEC, VALS(ftbp_GeneralIdentifier_vals), 0, - "ftbp.GeneralIdentifier", HFILL }}, - { &hf_ftbp_operating_system, - { "operating-system", "ftbp.operating_system", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.OBJECT_IDENTIFIER", HFILL }}, - { &hf_ftbp_user_visible_string, - { "user-visible-string", "ftbp.user_visible_string", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.T_user_visible_string", HFILL }}, - { &hf_ftbp_user_visible_string_item, - { "Item", "ftbp.user_visible_string_item", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.GraphicString", HFILL }}, - { &hf_ftbp_registered_identifier, - { "registered-identifier", "ftbp.registered_identifier", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.OBJECT_IDENTIFIER", HFILL }}, - { &hf_ftbp_descriptive_identifier, - { "descriptive-identifier", "ftbp.descriptive_identifier", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.T_descriptive_identifier", HFILL }}, - { &hf_ftbp_descriptive_identifier_item, - { "Item", "ftbp.descriptive_identifier_item", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.GraphicString", HFILL }}, - { &hf_ftbp_compression_algorithm_id, - { "compression-algorithm-id", "ftbp.compression_algorithm_id", - FT_OID, BASE_NONE, NULL, 0, - "ftbp.OBJECT_IDENTIFIER", HFILL }}, - { &hf_ftbp_compression_algorithm_param, - { "compression-algorithm-param", "ftbp.compression_algorithm_param", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.T_compression_algorithm_param", HFILL }}, - { &hf_ftbp_permitted_actions, - { "permitted-actions", "ftbp.permitted_actions", - FT_BYTES, BASE_HEX, NULL, 0, - "ftam.Permitted_Actions_Attribute", HFILL }}, - { &hf_ftbp_storage_account, - { "storage-account", "ftbp.storage_account", - FT_UINT32, BASE_DEC, VALS(ftbp_Account_Attribute_vals), 0, - "ftbp.Account_Attribute", HFILL }}, - { &hf_ftbp_date_and_time_of_creation, - { "date-and-time-of-creation", "ftbp.date_and_time_of_creation", - FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, - "ftam.Date_and_Time_Attribute", HFILL }}, - { &hf_ftbp_date_and_time_of_last_modification, - { "date-and-time-of-last-modification", "ftbp.date_and_time_of_last_modification", - FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, - "ftam.Date_and_Time_Attribute", HFILL }}, - { &hf_ftbp_date_and_time_of_last_read_access, - { "date-and-time-of-last-read-access", "ftbp.date_and_time_of_last_read_access", - FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, - "ftam.Date_and_Time_Attribute", HFILL }}, - { &hf_ftbp_date_and_time_of_last_attribute_modification, - { "date-and-time-of-last-attribute-modification", "ftbp.date_and_time_of_last_attribute_modification", - FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, - "ftam.Date_and_Time_Attribute", HFILL }}, - { &hf_ftbp_identity_of_creator, - { "identity-of-creator", "ftbp.identity_of_creator", - FT_UINT32, BASE_DEC, VALS(ftbp_User_Identity_Attribute_vals), 0, - "ftbp.User_Identity_Attribute", HFILL }}, - { &hf_ftbp_identity_of_last_modifier, - { "identity-of-last-modifier", "ftbp.identity_of_last_modifier", - FT_UINT32, BASE_DEC, VALS(ftbp_User_Identity_Attribute_vals), 0, - "ftbp.User_Identity_Attribute", HFILL }}, - { &hf_ftbp_identity_of_last_reader, - { "identity-of-last-reader", "ftbp.identity_of_last_reader", - FT_UINT32, BASE_DEC, VALS(ftbp_User_Identity_Attribute_vals), 0, - "ftbp.User_Identity_Attribute", HFILL }}, - { &hf_ftbp_identity_of_last_attribute_modifier, - { "identity-of-last-attribute-modifier", "ftbp.identity_of_last_attribute_modifier", - FT_UINT32, BASE_DEC, VALS(ftbp_User_Identity_Attribute_vals), 0, - "ftbp.User_Identity_Attribute", HFILL }}, - { &hf_ftbp_object_availability, - { "object-availability", "ftbp.object_availability", - FT_UINT32, BASE_DEC, VALS(ftam_Object_Availability_Attribute_vals), 0, - "ftam.Object_Availability_Attribute", HFILL }}, - { &hf_ftbp_object_size, - { "object-size", "ftbp.object_size", - FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0, - "ftam.Object_Size_Attribute", HFILL }}, - { &hf_ftbp_future_object_size, - { "future-object-size", "ftbp.future_object_size", - FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0, - "ftam.Object_Size_Attribute", HFILL }}, - { &hf_ftbp_access_control, - { "access-control", "ftbp.access_control", - FT_UINT32, BASE_DEC, VALS(ftbp_Access_Control_Attribute_vals), 0, - "ftbp.Access_Control_Attribute", HFILL }}, - { &hf_ftbp_legal_qualifications, - { "legal-qualifications", "ftbp.legal_qualifications", - FT_UINT32, BASE_DEC, VALS(ftam_Legal_Qualification_Attribute_vals), 0, - "ftam.Legal_Qualification_Attribute", HFILL }}, - { &hf_ftbp_private_use, - { "private-use", "ftbp.private_use", - FT_UINT32, BASE_DEC, VALS(ftam_Private_Use_Attribute_vals), 0, - "ftam.Private_Use_Attribute", HFILL }}, - { &hf_ftbp_attribute_extensions, - { "attribute-extensions", "ftbp.attribute_extensions", - FT_UINT32, BASE_DEC, NULL, 0, - "ftam.Attribute_Extensions", HFILL }}, - { &hf_ftbp_incomplete_pathname, - { "incomplete-pathname", "ftbp.incomplete_pathname", - FT_UINT32, BASE_DEC, NULL, 0, - "ftam.Pathname", HFILL }}, - { &hf_ftbp_complete_pathname, - { "complete-pathname", "ftbp.complete_pathname", - FT_UINT32, BASE_DEC, NULL, 0, - "ftam.Pathname", HFILL }}, - { &hf_ftbp_no_value_available, - { "no-value-available", "ftbp.no_value_available", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.NULL", HFILL }}, - { &hf_ftbp_account_actual_values, - { "actual-values", "ftbp.actual_values", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.Account", HFILL }}, - { &hf_ftbp_identity_actual_values, - { "actual-values", "ftbp.actual_values", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.User_Identity", HFILL }}, - { &hf_ftbp_actual_values, - { "actual-values", "ftbp.actual_values", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.SET_OF_Access_Control_Element", HFILL }}, - { &hf_ftbp_actual_values_item, - { "Item", "ftbp.actual_values_item", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.Access_Control_Element", HFILL }}, - { &hf_ftbp_action_list, - { "action-list", "ftbp.action_list", - FT_BYTES, BASE_HEX, NULL, 0, - "ftbp.Access_Request", HFILL }}, - { &hf_ftbp_concurrency_access, - { "concurrency-access", "ftbp.concurrency_access", - FT_NONE, BASE_NONE, NULL, 0, - "ftam.Concurrency_Access", HFILL }}, - { &hf_ftbp_identity, - { "identity", "ftbp.identity", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.User_Identity", HFILL }}, - { &hf_ftbp_passwords, - { "passwords", "ftbp.passwords", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.Access_Passwords", HFILL }}, - { &hf_ftbp_location, - { "location", "ftbp.location", - FT_NONE, BASE_NONE, NULL, 0, - "ftbp.Application_Entity_Title", HFILL }}, - { &hf_ftbp_read_password, - { "read-password", "ftbp.read_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_insert_password, - { "insert-password", "ftbp.insert_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_replace_password, - { "replace-password", "ftbp.replace_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_extend_password, - { "extend-password", "ftbp.extend_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_erase_password, - { "erase-password", "ftbp.erase_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_read_attribute_password, - { "read-attribute-password", "ftbp.read_attribute_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_change_attribute_password, - { "change-attribute-password", "ftbp.change_attribute_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_delete_password, - { "delete-password", "ftbp.delete_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_pass_passwords, - { "pass-passwords", "ftbp.pass_passwords", - FT_UINT32, BASE_DEC, NULL, 0, - "ftbp.Pass_Passwords", HFILL }}, - { &hf_ftbp_link_password, - { "link-password", "ftbp.link_password", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_graphic_string, - { "graphic-string", "ftbp.graphic_string", - FT_STRING, BASE_NONE, NULL, 0, - "ftbp.GraphicString", HFILL }}, - { &hf_ftbp_octet_string, - { "octet-string", "ftbp.octet_string", - FT_BYTES, BASE_HEX, NULL, 0, - "ftbp.OCTET_STRING", HFILL }}, - { &hf_ftbp_Pass_Passwords_item, - { "Item", "ftbp.Pass_Passwords_item", - FT_UINT32, BASE_DEC, VALS(ftbp_Password_vals), 0, - "ftbp.Password", HFILL }}, - { &hf_ftbp_ap_title, - { "ap-title", "ftbp.ap_title", - FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0, - "acse.AP_title", HFILL }}, - { &hf_ftbp_ae_qualifier, - { "ae-qualifier", "ftbp.ae_qualifier", - FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0, - "acse.AE_qualifier", HFILL }}, - { &hf_ftbp_Access_Request_read, - { "read", "ftbp.read", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_ftbp_Access_Request_insert, - { "insert", "ftbp.insert", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_ftbp_Access_Request_replace, - { "replace", "ftbp.replace", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_ftbp_Access_Request_extend, - { "extend", "ftbp.extend", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_ftbp_Access_Request_erase, - { "erase", "ftbp.erase", - FT_BOOLEAN, 8, NULL, 0x08, - "", HFILL }}, - { &hf_ftbp_Access_Request_read_attribute, - { "read-attribute", "ftbp.read-attribute", - FT_BOOLEAN, 8, NULL, 0x04, - "", HFILL }}, - { &hf_ftbp_Access_Request_change_attribute, - { "change-attribute", "ftbp.change-attribute", - FT_BOOLEAN, 8, NULL, 0x02, - "", HFILL }}, - { &hf_ftbp_Access_Request_delete_object, - { "delete-object", "ftbp.delete-object", - FT_BOOLEAN, 8, NULL, 0x01, - "", HFILL }}, - -/*--- End of included file: packet-ftbp-hfarr.c ---*/ -#line 70 "packet-ftbp-template.c" - }; - - /* List of subtrees */ - static gint *ett[] = { - &ett_ftbp, - -/*--- Included file: packet-ftbp-ettarr.c ---*/ -#line 1 "packet-ftbp-ettarr.c" - &ett_ftbp_FileTransferParameters, - &ett_ftbp_FileTransferData, - &ett_ftbp_RelatedStoredFile, - &ett_ftbp_RelatedStoredFile_item, - &ett_ftbp_FileIdentifier, - &ett_ftbp_PathnameandVersion, - &ett_ftbp_CrossReference, - &ett_ftbp_MessageReference, - &ett_ftbp_Relationship, - &ett_ftbp_Contents_Type_Attribute, - &ett_ftbp_T_document_type, - &ett_ftbp_T_constraint_set_and_abstract_syntax, - &ett_ftbp_EnvironmentParameter, - &ett_ftbp_T_user_visible_string, - &ett_ftbp_GeneralIdentifier, - &ett_ftbp_T_descriptive_identifier, - &ett_ftbp_CompressionParameter, - &ett_ftbp_FileAttributes, - &ett_ftbp_Pathname_Attribute, - &ett_ftbp_Account_Attribute, - &ett_ftbp_User_Identity_Attribute, - &ett_ftbp_Access_Control_Attribute, - &ett_ftbp_SET_OF_Access_Control_Element, - &ett_ftbp_Access_Control_Element, - &ett_ftbp_Access_Request, - &ett_ftbp_Access_Passwords, - &ett_ftbp_Password, - &ett_ftbp_Pass_Passwords, - &ett_ftbp_Application_Entity_Title, - -/*--- End of included file: packet-ftbp-ettarr.c ---*/ -#line 76 "packet-ftbp-template.c" - }; - - /* Register protocol */ - proto_ftbp = proto_register_protocol(PNAME, PSNAME, PFNAME); - - /* Register fields and subtrees */ - proto_register_field_array(proto_ftbp, hf, array_length(hf)); - proto_register_subtree_array(ett, array_length(ett)); - -} - - -/*--- proto_reg_handoff_ftbp --- */ -void proto_reg_handoff_ftbp(void) { - -/*--- Included file: packet-ftbp-dis-tab.c ---*/ -#line 1 "packet-ftbp-dis-tab.c" - register_ber_oid_dissector("2.6.1.11.12", dissect_FileTransferParameters_PDU, proto_ftbp, "id-ep-file-transfer"); - register_ber_oid_dissector("2.6.1.4.12", dissect_FileTransferData_PDU, proto_ftbp, "id-et-file-transfer"); - - -/*--- End of included file: packet-ftbp-dis-tab.c ---*/ -#line 91 "packet-ftbp-template.c" - -} diff --git a/epan/dissectors/packet-ftbp.h b/epan/dissectors/packet-ftbp.h deleted file mode 100644 index 60f549006f..0000000000 --- a/epan/dissectors/packet-ftbp.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Do not modify this file. */ -/* It is created automatically by the ASN.1 to Wireshark dissector compiler */ -/* .\packet-ftbp.h */ -/* ../../tools/asn2wrs.py -b -X -T -e -p ftbp -c ftbp.cnf -s packet-ftbp-template ftbp.asn */ - -/* Input file: packet-ftbp-template.h */ - -#line 1 "packet-ftbp-template.h" -/* packet-ftbp.h - * Routines for File Transfer Body Part (FTBP) dissection (used in X.420 content) - * Graeme Lunt 2005 - * - * $Id$ - * - * Wireshark - Network traffic analyzer - * By Gerald Combs <gerald@wireshark.org> - * Copyright 1998 Gerald Combs - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef PACKET_FTBP_H -#define PACKET_FTBP_H - -/* #include "packet-ftbp-exp.h" */ - -#endif /* PACKET_FTBP_H */ diff --git a/epan/dissectors/packet-x420.c b/epan/dissectors/packet-x420.c index 6097ef2865..f937161781 100644 --- a/epan/dissectors/packet-x420.c +++ b/epan/dissectors/packet-x420.c @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ /* ./packet-x420.c */ -/* ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn */ +/* ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn ftbp.asn */ /* Input file: packet-x420-template.c */ @@ -50,6 +50,7 @@ #include "packet-x509af.h" #include "packet-x509ce.h" +#include "packet-ftam.h" #include "packet-x411.h" #include "packet-x420.h" @@ -136,6 +137,8 @@ static int hf_x420_GeneralTextData_PDU = -1; /* GeneralTextData */ static int hf_x420_VoiceParameters_PDU = -1; /* VoiceParameters */ static int hf_x420_VoiceData_PDU = -1; /* VoiceData */ static int hf_x420_ForwardedContentParameters_PDU = -1; /* ForwardedContentParameters */ +static int hf_x420_FileTransferParameters_PDU = -1; /* FileTransferParameters */ +static int hf_x420_FileTransferData_PDU = -1; /* FileTransferData */ static int hf_x420_ipm = -1; /* IPM */ static int hf_x420_ipn = -1; /* IPN */ static int hf_x420_heading = -1; /* Heading */ @@ -289,15 +292,102 @@ static int hf_x420_submission_proof = -1; /* SubmissionProof */ static int hf_x420_proof_of_submission = -1; /* ProofOfSubmission */ static int hf_x420_originating_MTA_certificate = -1; /* OriginatingMTACertificate */ static int hf_x420_message_submission_envelope = -1; /* MessageSubmissionEnvelope */ +static int hf_x420_related_stored_file = -1; /* RelatedStoredFile */ +static int hf_x420_contents_type = -1; /* ContentsTypeParameter */ +static int hf_x420_environment = -1; /* EnvironmentParameter */ +static int hf_x420_compression = -1; /* CompressionParameter */ +static int hf_x420_file_attributes = -1; /* FileAttributes */ +static int hf_x420_FileTransferData_item = -1; /* EXTERNALt */ +static int hf_x420_RelatedStoredFile_item = -1; /* RelatedStoredFile_item */ +static int hf_x420_file_identifier = -1; /* FileIdentifier */ +static int hf_x420_relationship = -1; /* Relationship */ +static int hf_x420_pathname_and_version = -1; /* PathnameandVersion */ +static int hf_x420_cross_reference = -1; /* CrossReference */ +static int hf_x420_pathname = -1; /* Pathname_Attribute */ +static int hf_x420_file_version = -1; /* GraphicString */ +static int hf_x420_application_cross_reference = -1; /* OCTET_STRING */ +static int hf_x420_message_reference = -1; /* MessageReference */ +static int hf_x420_body_part_reference = -1; /* INTEGER */ +static int hf_x420_user_relative_identifier_ref = -1; /* PrintableString */ +static int hf_x420_explicit_relationship = -1; /* ExplicitRelationship */ +static int hf_x420_descriptive_relationship = -1; /* GraphicString */ +static int hf_x420_document_type = -1; /* T_document_type */ +static int hf_x420_document_type_name = -1; /* Document_Type_Name */ +static int hf_x420_parameter = -1; /* T_parameter */ +static int hf_x420_constraint_set_and_abstract_syntax = -1; /* T_constraint_set_and_abstract_syntax */ +static int hf_x420_constraint_set_name = -1; /* Constraint_Set_Name */ +static int hf_x420_abstract_syntax_name = -1; /* Abstract_Syntax_Name */ +static int hf_x420_application_reference = -1; /* GeneralIdentifier */ +static int hf_x420_machine = -1; /* GeneralIdentifier */ +static int hf_x420_operating_system = -1; /* OBJECT_IDENTIFIER */ +static int hf_x420_user_visible_string = -1; /* T_user_visible_string */ +static int hf_x420_user_visible_string_item = -1; /* GraphicString */ +static int hf_x420_registered_identifier = -1; /* OBJECT_IDENTIFIER */ +static int hf_x420_descriptive_identifier = -1; /* T_descriptive_identifier */ +static int hf_x420_descriptive_identifier_item = -1; /* GraphicString */ +static int hf_x420_compression_algorithm_id = -1; /* OBJECT_IDENTIFIER */ +static int hf_x420_compression_algorithm_param = -1; /* T_compression_algorithm_param */ +static int hf_x420_permitted_actions = -1; /* Permitted_Actions_Attribute */ +static int hf_x420_storage_account = -1; /* Account_Attribute */ +static int hf_x420_date_and_time_of_creation = -1; /* Date_and_Time_Attribute */ +static int hf_x420_date_and_time_of_last_modification = -1; /* Date_and_Time_Attribute */ +static int hf_x420_date_and_time_of_last_read_access = -1; /* Date_and_Time_Attribute */ +static int hf_x420_date_and_time_of_last_attribute_modification = -1; /* Date_and_Time_Attribute */ +static int hf_x420_identity_of_creator = -1; /* User_Identity_Attribute */ +static int hf_x420_identity_of_last_modifier = -1; /* User_Identity_Attribute */ +static int hf_x420_identity_of_last_reader = -1; /* User_Identity_Attribute */ +static int hf_x420_identity_of_last_attribute_modifier = -1; /* User_Identity_Attribute */ +static int hf_x420_object_availability = -1; /* Object_Availability_Attribute */ +static int hf_x420_object_size = -1; /* Object_Size_Attribute */ +static int hf_x420_future_object_size = -1; /* Object_Size_Attribute */ +static int hf_x420_access_control = -1; /* Access_Control_Attribute */ +static int hf_x420_legal_qualifications = -1; /* Legal_Qualification_Attribute */ +static int hf_x420_private_use = -1; /* Private_Use_Attribute */ +static int hf_x420_attribute_extensions = -1; /* Attribute_Extensions */ +static int hf_x420_incomplete_pathname = -1; /* Pathname */ +static int hf_x420_complete_pathname = -1; /* Pathname */ +static int hf_x420_no_value_available = -1; /* NULL */ +static int hf_x420_account_actual_values = -1; /* Account */ +static int hf_x420_identity_actual_values = -1; /* User_Identity */ +static int hf_x420_actual_values = -1; /* SET_OF_Access_Control_Element */ +static int hf_x420_actual_values_item = -1; /* Access_Control_Element */ +static int hf_x420_action_list = -1; /* Access_Request */ +static int hf_x420_concurrency_access = -1; /* Concurrency_Access */ +static int hf_x420_identity = -1; /* User_Identity */ +static int hf_x420_passwords = -1; /* Access_Passwords */ +static int hf_x420_location = -1; /* Application_Entity_Title */ +static int hf_x420_read_password = -1; /* Password */ +static int hf_x420_insert_password = -1; /* Password */ +static int hf_x420_replace_password = -1; /* Password */ +static int hf_x420_extend_password = -1; /* Password */ +static int hf_x420_erase_password = -1; /* Password */ +static int hf_x420_read_attribute_password = -1; /* Password */ +static int hf_x420_change_attribute_password = -1; /* Password */ +static int hf_x420_delete_password = -1; /* Password */ +static int hf_x420_pass_passwords = -1; /* Pass_Passwords */ +static int hf_x420_link_password = -1; /* Password */ +static int hf_x420_graphic_string = -1; /* GraphicString */ +static int hf_x420_octet_string = -1; /* OCTET_STRING */ +static int hf_x420_Pass_Passwords_item = -1; /* Password */ +static int hf_x420_ap_title = -1; /* AP_title */ +static int hf_x420_ae_qualifier = -1; /* AE_qualifier */ /* named bits */ static int hf_x420_NotificationRequests_rn = -1; static int hf_x420_NotificationRequests_nrn = -1; static int hf_x420_NotificationRequests_ipm_return = -1; static int hf_x420_NotificationRequests_an_supported = -1; static int hf_x420_NotificationRequests_suppress_an = -1; +static int hf_x420_Access_Request_read = -1; +static int hf_x420_Access_Request_insert = -1; +static int hf_x420_Access_Request_replace = -1; +static int hf_x420_Access_Request_extend = -1; +static int hf_x420_Access_Request_erase = -1; +static int hf_x420_Access_Request_read_attribute = -1; +static int hf_x420_Access_Request_change_attribute = -1; +static int hf_x420_Access_Request_delete_object = -1; /*--- End of included file: packet-x420-hf.c ---*/ -#line 88 "packet-x420-template.c" +#line 89 "packet-x420-template.c" /* Initialize the subtree pointers */ static gint ett_x420 = -1; @@ -375,9 +465,38 @@ static gint ett_x420_GeneralTextParameters = -1; static gint ett_x420_VoiceParameters = -1; static gint ett_x420_ForwardedContentParameters = -1; static gint ett_x420_SubmissionProof = -1; +static gint ett_x420_FileTransferParameters = -1; +static gint ett_x420_FileTransferData = -1; +static gint ett_x420_RelatedStoredFile = -1; +static gint ett_x420_RelatedStoredFile_item = -1; +static gint ett_x420_FileIdentifier = -1; +static gint ett_x420_PathnameandVersion = -1; +static gint ett_x420_CrossReference = -1; +static gint ett_x420_MessageReference = -1; +static gint ett_x420_Relationship = -1; +static gint ett_x420_Contents_Type_Attribute = -1; +static gint ett_x420_T_document_type = -1; +static gint ett_x420_T_constraint_set_and_abstract_syntax = -1; +static gint ett_x420_EnvironmentParameter = -1; +static gint ett_x420_T_user_visible_string = -1; +static gint ett_x420_GeneralIdentifier = -1; +static gint ett_x420_T_descriptive_identifier = -1; +static gint ett_x420_CompressionParameter = -1; +static gint ett_x420_FileAttributes = -1; +static gint ett_x420_Pathname_Attribute = -1; +static gint ett_x420_Account_Attribute = -1; +static gint ett_x420_User_Identity_Attribute = -1; +static gint ett_x420_Access_Control_Attribute = -1; +static gint ett_x420_SET_OF_Access_Control_Element = -1; +static gint ett_x420_Access_Control_Element = -1; +static gint ett_x420_Access_Request = -1; +static gint ett_x420_Access_Passwords = -1; +static gint ett_x420_Password = -1; +static gint ett_x420_Pass_Passwords = -1; +static gint ett_x420_Application_Entity_Title = -1; /*--- End of included file: packet-x420-ett.c ---*/ -#line 92 "packet-x420-template.c" +#line 93 "packet-x420-template.c" /*--- Included file: packet-x420-fn.c ---*/ @@ -397,6 +516,9 @@ static int dissect_ipm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset static int dissect_user(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x411_ORName(FALSE, tvb, offset, actx, tree, hf_x420_user); } +static int dissect_user_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x411_ORName(TRUE, tvb, offset, actx, tree, hf_x420_user); +} static int dissect_formal_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x411_ORName(FALSE, tvb, offset, actx, tree, hf_x420_formal_name); } @@ -454,6 +576,57 @@ static int dissect_originating_MTA_certificate_impl(proto_tree *tree _U_, tvbuff static int dissect_message_submission_envelope(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, offset, actx, tree, hf_x420_message_submission_envelope); } +static int dissect_FileTransferData_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_acse_EXTERNALt(FALSE, tvb, offset, actx, tree, hf_x420_FileTransferData_item); +} +static int dissect_permitted_actions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Permitted_Actions_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_permitted_actions); +} +static int dissect_date_and_time_of_creation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Date_and_Time_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_date_and_time_of_creation); +} +static int dissect_date_and_time_of_last_modification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Date_and_Time_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_date_and_time_of_last_modification); +} +static int dissect_date_and_time_of_last_read_access_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Date_and_Time_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_date_and_time_of_last_read_access); +} +static int dissect_date_and_time_of_last_attribute_modification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Date_and_Time_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_date_and_time_of_last_attribute_modification); +} +static int dissect_object_availability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Object_Availability_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_object_availability); +} +static int dissect_object_size_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Object_Size_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_object_size); +} +static int dissect_future_object_size_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Object_Size_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_future_object_size); +} +static int dissect_legal_qualifications_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Legal_Qualification_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_legal_qualifications); +} +static int dissect_private_use_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Private_Use_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_private_use); +} +static int dissect_attribute_extensions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Attribute_Extensions(TRUE, tvb, offset, actx, tree, hf_x420_attribute_extensions); +} +static int dissect_incomplete_pathname_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Pathname(TRUE, tvb, offset, actx, tree, hf_x420_incomplete_pathname); +} +static int dissect_complete_pathname_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Pathname(TRUE, tvb, offset, actx, tree, hf_x420_complete_pathname); +} +static int dissect_concurrency_access_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_ftam_Concurrency_Access(TRUE, tvb, offset, actx, tree, hf_x420_concurrency_access); +} +static int dissect_ap_title(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_x420_ap_title); +} +static int dissect_ae_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_x420_ae_qualifier); +} @@ -647,7 +820,7 @@ static int dissect_telex_compatible_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_ static int dissect_x420_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 115 "x420.cnf" +#line 129 "x420.cnf" const char *name = NULL; offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); @@ -668,7 +841,7 @@ static int dissect_type(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, static int dissect_x420_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 123 "x420.cnf" +#line 137 "x420.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree); @@ -905,7 +1078,7 @@ static int dissect_related_IPMs_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, in static int dissect_x420_SubjectField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 145 "x420.cnf" +#line 159 "x420.cnf" tvbuff_t *subject=NULL; offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -1163,6 +1336,9 @@ static int dissect_submitted_body_part_impl(proto_tree *tree _U_, tvbuff_t *tvb static int dissect_voice_message_duration_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x420_INTEGER(TRUE, tvb, offset, actx, tree, hf_x420_voice_message_duration); } +static int dissect_body_part_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_INTEGER(TRUE, tvb, offset, actx, tree, hf_x420_body_part_reference); +} static const ber_old_sequence_t G3FacsimileParameters_set[] = { @@ -1237,7 +1413,7 @@ static int dissect_g3_facsimile_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, in static int dissect_x420_Interchange_Data_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 164 "x420.cnf" +#line 178 "x420.cnf" /* XXX Not implemented yet */ @@ -1553,12 +1729,11 @@ static int dissect_bilaterally_defined_impl(proto_tree *tree _U_, tvbuff_t *tvb static int dissect_x420_NationallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 167 "x420.cnf" +#line 181 "x420.cnf" /* XXX Not implemented yet */ - return offset; } static int dissect_nationally_defined_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { @@ -1654,7 +1829,7 @@ static const ber_old_sequence_t IPM_sequence[] = { int dissect_x420_IPM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 127 "x420.cnf" +#line 141 "x420.cnf" if(check_col(actx->pinfo->cinfo, COL_INFO)) col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Message"); @@ -1980,7 +2155,7 @@ static const ber_old_sequence_t IPN_set[] = { int dissect_x420_IPN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 135 "x420.cnf" +#line 149 "x420.cnf" if(check_col(actx->pinfo->cinfo, COL_INFO)) col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Notification"); @@ -2296,6 +2471,9 @@ static int dissect_body_part_unlabelled_impl(proto_tree *tree _U_, tvbuff_t *tvb static int dissect_simple(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x420_NULL(FALSE, tvb, offset, actx, tree, hf_x420_simple); } +static int dissect_no_value_available_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_NULL(TRUE, tvb, offset, actx, tree, hf_x420_no_value_available); +} static const value_string x420_BodyPartSecurityLabel_vals[] = { @@ -2512,6 +2690,15 @@ static int dissect_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int o static int dissect_voice_encoding_type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, actx, tree, hf_x420_voice_encoding_type); } +static int dissect_operating_system_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, actx, tree, hf_x420_operating_system); +} +static int dissect_registered_identifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, actx, tree, hf_x420_registered_identifier); +} +static int dissect_compression_algorithm_id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, actx, tree, hf_x420_compression_algorithm_id); +} @@ -2666,7 +2853,7 @@ dissect_x420_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_x420_CharacterSetRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 156 "x420.cnf" +#line 170 "x420.cnf" guint32 crs; proto_item *pi; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2784,6 +2971,839 @@ dissect_x420_ForwardedContentParameters(gboolean implicit_tag _U_, tvbuff_t *tvb return offset; } + +static const value_string x420_Pathname_Attribute_vals[] = { + { 0, "incomplete-pathname" }, + { 23, "complete-pathname" }, + { 0, NULL } +}; + +static const ber_old_choice_t Pathname_Attribute_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_incomplete_pathname_impl }, + { 23, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_complete_pathname_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Pathname_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Pathname_Attribute_choice, hf_index, ett_x420_Pathname_Attribute, + NULL); + + return offset; +} +static int dissect_pathname(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Pathname_Attribute(FALSE, tvb, offset, actx, tree, hf_x420_pathname); +} +static int dissect_pathname_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Pathname_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_pathname); +} + + + +static int +dissect_x420_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_file_version_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GraphicString(TRUE, tvb, offset, actx, tree, hf_x420_file_version); +} +static int dissect_descriptive_relationship_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GraphicString(TRUE, tvb, offset, actx, tree, hf_x420_descriptive_relationship); +} +static int dissect_user_visible_string_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GraphicString(FALSE, tvb, offset, actx, tree, hf_x420_user_visible_string_item); +} +static int dissect_descriptive_identifier_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GraphicString(FALSE, tvb, offset, actx, tree, hf_x420_descriptive_identifier_item); +} +static int dissect_graphic_string(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GraphicString(FALSE, tvb, offset, actx, tree, hf_x420_graphic_string); +} + + +static const ber_old_sequence_t PathnameandVersion_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_pathname_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_file_version_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_PathnameandVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + PathnameandVersion_sequence, hf_index, ett_x420_PathnameandVersion); + + return offset; +} +static int dissect_pathname_and_version_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_PathnameandVersion(TRUE, tvb, offset, actx, tree, hf_x420_pathname_and_version); +} + + + +static int +dissect_x420_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_application_cross_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_OCTET_STRING(TRUE, tvb, offset, actx, tree, hf_x420_application_cross_reference); +} +static int dissect_octet_string(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_OCTET_STRING(FALSE, tvb, offset, actx, tree, hf_x420_octet_string); +} + + + +static int +dissect_x420_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_user_relative_identifier_ref_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_PrintableString(TRUE, tvb, offset, actx, tree, hf_x420_user_relative_identifier_ref); +} + + +static const ber_old_sequence_t MessageReference_set[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_user_relative_identifier_ref_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_MessageReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset, + MessageReference_set, hf_index, ett_x420_MessageReference); + + return offset; +} +static int dissect_message_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_MessageReference(TRUE, tvb, offset, actx, tree, hf_x420_message_reference); +} + + +static const ber_old_sequence_t CrossReference_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_application_cross_reference_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_message_reference_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_body_part_reference_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + CrossReference_sequence, hf_index, ett_x420_CrossReference); + + return offset; +} +static int dissect_cross_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_CrossReference(TRUE, tvb, offset, actx, tree, hf_x420_cross_reference); +} + + +static const value_string x420_FileIdentifier_vals[] = { + { 0, "pathname-and-version" }, + { 1, "cross-reference" }, + { 0, NULL } +}; + +static const ber_old_choice_t FileIdentifier_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pathname_and_version_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_cross_reference_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_FileIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + FileIdentifier_choice, hf_index, ett_x420_FileIdentifier, + NULL); + + return offset; +} +static int dissect_file_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_FileIdentifier(FALSE, tvb, offset, actx, tree, hf_x420_file_identifier); +} + + +static const value_string x420_ExplicitRelationship_vals[] = { + { 0, "unspecified" }, + { 1, "new-file" }, + { 2, "replacement" }, + { 3, "extension" }, + { 0, NULL } +}; + + +static int +dissect_x420_ExplicitRelationship(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_explicit_relationship_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_ExplicitRelationship(TRUE, tvb, offset, actx, tree, hf_x420_explicit_relationship); +} + + +static const value_string x420_Relationship_vals[] = { + { 0, "explicit-relationship" }, + { 1, "descriptive-relationship" }, + { 0, NULL } +}; + +static const ber_old_choice_t Relationship_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_explicit_relationship_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_descriptive_relationship_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Relationship(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Relationship_choice, hf_index, ett_x420_Relationship, + NULL); + + return offset; +} +static int dissect_relationship(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Relationship(FALSE, tvb, offset, actx, tree, hf_x420_relationship); +} + + +static const ber_old_sequence_t RelatedStoredFile_item_sequence[] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_file_identifier }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_relationship }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_RelatedStoredFile_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + RelatedStoredFile_item_sequence, hf_index, ett_x420_RelatedStoredFile_item); + + return offset; +} +static int dissect_RelatedStoredFile_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_RelatedStoredFile_item(FALSE, tvb, offset, actx, tree, hf_x420_RelatedStoredFile_item); +} + + +static const ber_old_sequence_t RelatedStoredFile_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RelatedStoredFile_item }, +}; + +static int +dissect_x420_RelatedStoredFile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset, + RelatedStoredFile_set_of, hf_index, ett_x420_RelatedStoredFile); + + return offset; +} +static int dissect_related_stored_file_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_RelatedStoredFile(TRUE, tvb, offset, actx, tree, hf_x420_related_stored_file); +} + + + +static int +dissect_x420_Document_Type_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_document_type_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Document_Type_Name(FALSE, tvb, offset, actx, tree, hf_x420_document_type_name); +} + + + +static int +dissect_x420_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 184 "x420.cnf" +/* XXX: Not implemented yet */ + + + + return offset; +} +static int dissect_parameter_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_parameter(TRUE, tvb, offset, actx, tree, hf_x420_parameter); +} + + +static const ber_old_sequence_t T_document_type_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_document_type_name }, + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_parameter_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_T_document_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + T_document_type_sequence, hf_index, ett_x420_T_document_type); + + return offset; +} +static int dissect_document_type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_document_type(TRUE, tvb, offset, actx, tree, hf_x420_document_type); +} + + + +static int +dissect_x420_Constraint_Set_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_constraint_set_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Constraint_Set_Name(FALSE, tvb, offset, actx, tree, hf_x420_constraint_set_name); +} + + + +static int +dissect_x420_Abstract_Syntax_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_abstract_syntax_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Abstract_Syntax_Name(FALSE, tvb, offset, actx, tree, hf_x420_abstract_syntax_name); +} + + +static const ber_old_sequence_t T_constraint_set_and_abstract_syntax_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_constraint_set_name }, + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_abstract_syntax_name }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_T_constraint_set_and_abstract_syntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + T_constraint_set_and_abstract_syntax_sequence, hf_index, ett_x420_T_constraint_set_and_abstract_syntax); + + return offset; +} +static int dissect_constraint_set_and_abstract_syntax_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_constraint_set_and_abstract_syntax(TRUE, tvb, offset, actx, tree, hf_x420_constraint_set_and_abstract_syntax); +} + + +static const value_string x420_Contents_Type_Attribute_vals[] = { + { 0, "document-type" }, + { 1, "constraint-set-and-abstract-syntax" }, + { 0, NULL } +}; + +static const ber_old_choice_t Contents_Type_Attribute_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_document_type_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_constraint_set_and_abstract_syntax_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Contents_Type_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Contents_Type_Attribute_choice, hf_index, ett_x420_Contents_Type_Attribute, + NULL); + + return offset; +} + + + +static int +dissect_x420_ContentsTypeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_x420_Contents_Type_Attribute(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; +} +static int dissect_contents_type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_ContentsTypeParameter(TRUE, tvb, offset, actx, tree, hf_x420_contents_type); +} + + +static const ber_old_sequence_t T_descriptive_identifier_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_descriptive_identifier_item }, +}; + +static int +dissect_x420_T_descriptive_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_descriptive_identifier_sequence_of, hf_index, ett_x420_T_descriptive_identifier); + + return offset; +} +static int dissect_descriptive_identifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_descriptive_identifier(TRUE, tvb, offset, actx, tree, hf_x420_descriptive_identifier); +} + + +static const value_string x420_GeneralIdentifier_vals[] = { + { 0, "registered-identifier" }, + { 1, "descriptive-identifier" }, + { 0, NULL } +}; + +static const ber_old_choice_t GeneralIdentifier_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_registered_identifier_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_descriptive_identifier_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_GeneralIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + GeneralIdentifier_choice, hf_index, ett_x420_GeneralIdentifier, + NULL); + + return offset; +} +static int dissect_application_reference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GeneralIdentifier(TRUE, tvb, offset, actx, tree, hf_x420_application_reference); +} +static int dissect_machine_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_GeneralIdentifier(TRUE, tvb, offset, actx, tree, hf_x420_machine); +} + + +static const ber_old_sequence_t T_user_visible_string_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_user_visible_string_item }, +}; + +static int +dissect_x420_T_user_visible_string(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_user_visible_string_sequence_of, hf_index, ett_x420_T_user_visible_string); + + return offset; +} +static int dissect_user_visible_string_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_user_visible_string(TRUE, tvb, offset, actx, tree, hf_x420_user_visible_string); +} + + +static const ber_old_sequence_t EnvironmentParameter_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_application_reference_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_machine_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_operating_system_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_visible_string_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_EnvironmentParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + EnvironmentParameter_sequence, hf_index, ett_x420_EnvironmentParameter); + + return offset; +} +static int dissect_environment_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_EnvironmentParameter(TRUE, tvb, offset, actx, tree, hf_x420_environment); +} + + + +static int +dissect_x420_T_compression_algorithm_param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 187 "x420.cnf" +/* XXX: Not implemented yet */ + + + + return offset; +} +static int dissect_compression_algorithm_param_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_T_compression_algorithm_param(TRUE, tvb, offset, actx, tree, hf_x420_compression_algorithm_param); +} + + +static const ber_old_sequence_t CompressionParameter_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_compression_algorithm_id_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_compression_algorithm_param_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_CompressionParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + CompressionParameter_sequence, hf_index, ett_x420_CompressionParameter); + + return offset; +} +static int dissect_compression_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_CompressionParameter(TRUE, tvb, offset, actx, tree, hf_x420_compression); +} + + + +static int +dissect_x420_Account(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_account_actual_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Account(FALSE, tvb, offset, actx, tree, hf_x420_account_actual_values); +} + + +static const value_string x420_Account_Attribute_vals[] = { + { 0, "no-value-available" }, + { 1, "actual-values" }, + { 0, NULL } +}; + +static const ber_old_choice_t Account_Attribute_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_no_value_available_impl }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_account_actual_values }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Account_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Account_Attribute_choice, hf_index, ett_x420_Account_Attribute, + NULL); + + return offset; +} +static int dissect_storage_account_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Account_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_storage_account); +} + + + +static int +dissect_x420_User_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_identity_actual_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity(FALSE, tvb, offset, actx, tree, hf_x420_identity_actual_values); +} +static int dissect_identity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity(TRUE, tvb, offset, actx, tree, hf_x420_identity); +} + + +static const value_string x420_User_Identity_Attribute_vals[] = { + { 0, "no-value-available" }, + { 1, "actual-values" }, + { 0, NULL } +}; + +static const ber_old_choice_t User_Identity_Attribute_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_no_value_available_impl }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_identity_actual_values }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_User_Identity_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + User_Identity_Attribute_choice, hf_index, ett_x420_User_Identity_Attribute, + NULL); + + return offset; +} +static int dissect_identity_of_creator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_identity_of_creator); +} +static int dissect_identity_of_last_modifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_identity_of_last_modifier); +} +static int dissect_identity_of_last_reader_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_identity_of_last_reader); +} +static int dissect_identity_of_last_attribute_modifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_User_Identity_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_identity_of_last_attribute_modifier); +} + + +static const asn_namedbit Access_Request_bits[] = { + { 0, &hf_x420_Access_Request_read, -1, -1, "read", NULL }, + { 1, &hf_x420_Access_Request_insert, -1, -1, "insert", NULL }, + { 2, &hf_x420_Access_Request_replace, -1, -1, "replace", NULL }, + { 3, &hf_x420_Access_Request_extend, -1, -1, "extend", NULL }, + { 4, &hf_x420_Access_Request_erase, -1, -1, "erase", NULL }, + { 5, &hf_x420_Access_Request_read_attribute, -1, -1, "read-attribute", NULL }, + { 6, &hf_x420_Access_Request_change_attribute, -1, -1, "change-attribute", NULL }, + { 7, &hf_x420_Access_Request_delete_object, -1, -1, "delete-object", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_x420_Access_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + Access_Request_bits, hf_index, ett_x420_Access_Request, + NULL); + + return offset; +} +static int dissect_action_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Access_Request(TRUE, tvb, offset, actx, tree, hf_x420_action_list); +} + + +static const value_string x420_Password_vals[] = { + { 0, "graphic-string" }, + { 1, "octet-string" }, + { 0, NULL } +}; + +static const ber_old_choice_t Password_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_graphic_string }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_octet_string }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Password_choice, hf_index, ett_x420_Password, + NULL); + + return offset; +} +static int dissect_read_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_read_password); +} +static int dissect_insert_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_insert_password); +} +static int dissect_replace_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_replace_password); +} +static int dissect_extend_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_extend_password); +} +static int dissect_erase_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_erase_password); +} +static int dissect_read_attribute_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_read_attribute_password); +} +static int dissect_change_attribute_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_change_attribute_password); +} +static int dissect_delete_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_delete_password); +} +static int dissect_link_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(TRUE, tvb, offset, actx, tree, hf_x420_link_password); +} +static int dissect_Pass_Passwords_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Password(FALSE, tvb, offset, actx, tree, hf_x420_Pass_Passwords_item); +} + + +static const ber_old_sequence_t Pass_Passwords_sequence_of[1] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Pass_Passwords_item }, +}; + +static int +dissect_x420_Pass_Passwords(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, + Pass_Passwords_sequence_of, hf_index, ett_x420_Pass_Passwords); + + return offset; +} +static int dissect_pass_passwords_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Pass_Passwords(TRUE, tvb, offset, actx, tree, hf_x420_pass_passwords); +} + + +static const ber_old_sequence_t Access_Passwords_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_read_password_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_insert_password_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_replace_password_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_extend_password_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_erase_password_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_read_attribute_password_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_change_attribute_password_impl }, + { BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_delete_password_impl }, + { BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_pass_passwords_impl }, + { BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_link_password_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_Access_Passwords(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + Access_Passwords_sequence, hf_index, ett_x420_Access_Passwords); + + return offset; +} +static int dissect_passwords_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Access_Passwords(TRUE, tvb, offset, actx, tree, hf_x420_passwords); +} + + +static const ber_old_sequence_t Application_Entity_Title_sequence[] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ap_title }, + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ae_qualifier }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_Application_Entity_Title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + Application_Entity_Title_sequence, hf_index, ett_x420_Application_Entity_Title); + + return offset; +} +static int dissect_location_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Application_Entity_Title(TRUE, tvb, offset, actx, tree, hf_x420_location); +} + + +static const ber_old_sequence_t Access_Control_Element_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_action_list_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_concurrency_access_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_identity_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_passwords_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_location_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_Access_Control_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + Access_Control_Element_sequence, hf_index, ett_x420_Access_Control_Element); + + return offset; +} +static int dissect_actual_values_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Access_Control_Element(FALSE, tvb, offset, actx, tree, hf_x420_actual_values_item); +} + + +static const ber_old_sequence_t SET_OF_Access_Control_Element_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_actual_values_item }, +}; + +static int +dissect_x420_SET_OF_Access_Control_Element(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset, + SET_OF_Access_Control_Element_set_of, hf_index, ett_x420_SET_OF_Access_Control_Element); + + return offset; +} +static int dissect_actual_values_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_SET_OF_Access_Control_Element(TRUE, tvb, offset, actx, tree, hf_x420_actual_values); +} + + +static const value_string x420_Access_Control_Attribute_vals[] = { + { 0, "no-value-available" }, + { 1, "actual-values" }, + { 0, NULL } +}; + +static const ber_old_choice_t Access_Control_Attribute_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_no_value_available_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_actual_values_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x420_Access_Control_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_choice(actx, tree, tvb, offset, + Access_Control_Attribute_choice, hf_index, ett_x420_Access_Control_Attribute, + NULL); + + return offset; +} +static int dissect_access_control_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_Access_Control_Attribute(TRUE, tvb, offset, actx, tree, hf_x420_access_control); +} + + +static const ber_old_sequence_t FileAttributes_sequence[] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_pathname }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permitted_actions_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_storage_account_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_date_and_time_of_creation_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_date_and_time_of_last_modification_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_date_and_time_of_last_read_access_impl }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_date_and_time_of_last_attribute_modification_impl }, + { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_identity_of_creator_impl }, + { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_identity_of_last_modifier_impl }, + { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_identity_of_last_reader_impl }, + { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_identity_of_last_attribute_modifier_impl }, + { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_object_availability_impl }, + { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_object_size_impl }, + { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_future_object_size_impl }, + { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_access_control_impl }, + { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legal_qualifications_impl }, + { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_private_use_impl }, + { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attribute_extensions_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_FileAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + FileAttributes_sequence, hf_index, ett_x420_FileAttributes); + + return offset; +} +static int dissect_file_attributes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { + return dissect_x420_FileAttributes(TRUE, tvb, offset, actx, tree, hf_x420_file_attributes); +} + + +static const ber_old_sequence_t FileTransferParameters_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_related_stored_file_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_contents_type_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_environment_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_compression_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_file_attributes_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x420_FileTransferParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, + FileTransferParameters_sequence, hf_index, ett_x420_FileTransferParameters); + + return offset; +} + + +static const ber_old_sequence_t FileTransferData_sequence_of[1] = { + { BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_FileTransferData_item }, +}; + +static int +dissect_x420_FileTransferData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, + FileTransferData_sequence_of, hf_index, ett_x420_FileTransferData); + + return offset; +} + /*--- PDUs ---*/ static void dissect_InformationObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { @@ -2991,10 +4011,20 @@ static void dissect_ForwardedContentParameters_PDU(tvbuff_t *tvb _U_, packet_inf asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); dissect_x420_ForwardedContentParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_x420_ForwardedContentParameters_PDU); } +static void dissect_FileTransferParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); + dissect_x420_FileTransferParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_x420_FileTransferParameters_PDU); +} +static void dissect_FileTransferData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); + dissect_x420_FileTransferData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x420_FileTransferData_PDU); +} /*--- End of included file: packet-x420-fn.c ---*/ -#line 94 "packet-x420-template.c" +#line 95 "packet-x420-template.c" /* * Dissect X420 PDUs inside a PPDU. @@ -3195,6 +4225,14 @@ void proto_register_x420(void) { { "ForwardedContentParameters", "x420.ForwardedContentParameters", FT_NONE, BASE_NONE, NULL, 0, "x420.ForwardedContentParameters", HFILL }}, + { &hf_x420_FileTransferParameters_PDU, + { "FileTransferParameters", "x420.FileTransferParameters", + FT_NONE, BASE_NONE, NULL, 0, + "x420.FileTransferParameters", HFILL }}, + { &hf_x420_FileTransferData_PDU, + { "FileTransferData", "x420.FileTransferData", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.FileTransferData", HFILL }}, { &hf_x420_ipm, { "ipm", "x420.ipm", FT_NONE, BASE_NONE, NULL, 0, @@ -3807,6 +4845,322 @@ void proto_register_x420(void) { { "message-submission-envelope", "x420.message_submission_envelope", FT_NONE, BASE_NONE, NULL, 0, "x411.MessageSubmissionEnvelope", HFILL }}, + { &hf_x420_related_stored_file, + { "related-stored-file", "x420.related_stored_file", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.RelatedStoredFile", HFILL }}, + { &hf_x420_contents_type, + { "contents-type", "x420.contents_type", + FT_UINT32, BASE_DEC, VALS(x420_Contents_Type_Attribute_vals), 0, + "x420.ContentsTypeParameter", HFILL }}, + { &hf_x420_environment, + { "environment", "x420.environment", + FT_NONE, BASE_NONE, NULL, 0, + "x420.EnvironmentParameter", HFILL }}, + { &hf_x420_compression, + { "compression", "x420.compression", + FT_NONE, BASE_NONE, NULL, 0, + "x420.CompressionParameter", HFILL }}, + { &hf_x420_file_attributes, + { "file-attributes", "x420.file_attributes", + FT_NONE, BASE_NONE, NULL, 0, + "x420.FileAttributes", HFILL }}, + { &hf_x420_FileTransferData_item, + { "Item", "x420.FileTransferData_item", + FT_NONE, BASE_NONE, NULL, 0, + "acse.EXTERNALt", HFILL }}, + { &hf_x420_RelatedStoredFile_item, + { "Item", "x420.RelatedStoredFile_item", + FT_NONE, BASE_NONE, NULL, 0, + "x420.RelatedStoredFile_item", HFILL }}, + { &hf_x420_file_identifier, + { "file-identifier", "x420.file_identifier", + FT_UINT32, BASE_DEC, VALS(x420_FileIdentifier_vals), 0, + "x420.FileIdentifier", HFILL }}, + { &hf_x420_relationship, + { "relationship", "x420.relationship", + FT_UINT32, BASE_DEC, VALS(x420_Relationship_vals), 0, + "x420.Relationship", HFILL }}, + { &hf_x420_pathname_and_version, + { "pathname-and-version", "x420.pathname_and_version", + FT_NONE, BASE_NONE, NULL, 0, + "x420.PathnameandVersion", HFILL }}, + { &hf_x420_cross_reference, + { "cross-reference", "x420.cross_reference", + FT_NONE, BASE_NONE, NULL, 0, + "x420.CrossReference", HFILL }}, + { &hf_x420_pathname, + { "pathname", "x420.pathname", + FT_UINT32, BASE_DEC, VALS(x420_Pathname_Attribute_vals), 0, + "x420.Pathname_Attribute", HFILL }}, + { &hf_x420_file_version, + { "file-version", "x420.file_version", + FT_STRING, BASE_NONE, NULL, 0, + "x420.GraphicString", HFILL }}, + { &hf_x420_application_cross_reference, + { "application-cross-reference", "x420.application_cross_reference", + FT_BYTES, BASE_HEX, NULL, 0, + "x420.OCTET_STRING", HFILL }}, + { &hf_x420_message_reference, + { "message-reference", "x420.message_reference", + FT_NONE, BASE_NONE, NULL, 0, + "x420.MessageReference", HFILL }}, + { &hf_x420_body_part_reference, + { "body-part-reference", "x420.body_part_reference", + FT_INT32, BASE_DEC, NULL, 0, + "x420.INTEGER", HFILL }}, + { &hf_x420_user_relative_identifier_ref, + { "user-relative-identifier", "x420.user_relative_identifier", + FT_STRING, BASE_NONE, NULL, 0, + "x420.PrintableString", HFILL }}, + { &hf_x420_explicit_relationship, + { "explicit-relationship", "x420.explicit_relationship", + FT_INT32, BASE_DEC, VALS(x420_ExplicitRelationship_vals), 0, + "x420.ExplicitRelationship", HFILL }}, + { &hf_x420_descriptive_relationship, + { "descriptive-relationship", "x420.descriptive_relationship", + FT_STRING, BASE_NONE, NULL, 0, + "x420.GraphicString", HFILL }}, + { &hf_x420_document_type, + { "document-type", "x420.document_type", + FT_NONE, BASE_NONE, NULL, 0, + "x420.T_document_type", HFILL }}, + { &hf_x420_document_type_name, + { "document-type-name", "x420.document_type_name", + FT_OID, BASE_NONE, NULL, 0, + "x420.Document_Type_Name", HFILL }}, + { &hf_x420_parameter, + { "parameter", "x420.parameter", + FT_NONE, BASE_NONE, NULL, 0, + "x420.T_parameter", HFILL }}, + { &hf_x420_constraint_set_and_abstract_syntax, + { "constraint-set-and-abstract-syntax", "x420.constraint_set_and_abstract_syntax", + FT_NONE, BASE_NONE, NULL, 0, + "x420.T_constraint_set_and_abstract_syntax", HFILL }}, + { &hf_x420_constraint_set_name, + { "constraint-set-name", "x420.constraint_set_name", + FT_OID, BASE_NONE, NULL, 0, + "x420.Constraint_Set_Name", HFILL }}, + { &hf_x420_abstract_syntax_name, + { "abstract-syntax-name", "x420.abstract_syntax_name", + FT_OID, BASE_NONE, NULL, 0, + "x420.Abstract_Syntax_Name", HFILL }}, + { &hf_x420_application_reference, + { "application-reference", "x420.application_reference", + FT_UINT32, BASE_DEC, VALS(x420_GeneralIdentifier_vals), 0, + "x420.GeneralIdentifier", HFILL }}, + { &hf_x420_machine, + { "machine", "x420.machine", + FT_UINT32, BASE_DEC, VALS(x420_GeneralIdentifier_vals), 0, + "x420.GeneralIdentifier", HFILL }}, + { &hf_x420_operating_system, + { "operating-system", "x420.operating_system", + FT_OID, BASE_NONE, NULL, 0, + "x420.OBJECT_IDENTIFIER", HFILL }}, + { &hf_x420_user_visible_string, + { "user-visible-string", "x420.user_visible_string", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.T_user_visible_string", HFILL }}, + { &hf_x420_user_visible_string_item, + { "Item", "x420.user_visible_string_item", + FT_STRING, BASE_NONE, NULL, 0, + "x420.GraphicString", HFILL }}, + { &hf_x420_registered_identifier, + { "registered-identifier", "x420.registered_identifier", + FT_OID, BASE_NONE, NULL, 0, + "x420.OBJECT_IDENTIFIER", HFILL }}, + { &hf_x420_descriptive_identifier, + { "descriptive-identifier", "x420.descriptive_identifier", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.T_descriptive_identifier", HFILL }}, + { &hf_x420_descriptive_identifier_item, + { "Item", "x420.descriptive_identifier_item", + FT_STRING, BASE_NONE, NULL, 0, + "x420.GraphicString", HFILL }}, + { &hf_x420_compression_algorithm_id, + { "compression-algorithm-id", "x420.compression_algorithm_id", + FT_OID, BASE_NONE, NULL, 0, + "x420.OBJECT_IDENTIFIER", HFILL }}, + { &hf_x420_compression_algorithm_param, + { "compression-algorithm-param", "x420.compression_algorithm_param", + FT_NONE, BASE_NONE, NULL, 0, + "x420.T_compression_algorithm_param", HFILL }}, + { &hf_x420_permitted_actions, + { "permitted-actions", "x420.permitted_actions", + FT_BYTES, BASE_HEX, NULL, 0, + "ftam.Permitted_Actions_Attribute", HFILL }}, + { &hf_x420_storage_account, + { "storage-account", "x420.storage_account", + FT_UINT32, BASE_DEC, VALS(x420_Account_Attribute_vals), 0, + "x420.Account_Attribute", HFILL }}, + { &hf_x420_date_and_time_of_creation, + { "date-and-time-of-creation", "x420.date_and_time_of_creation", + FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, + "ftam.Date_and_Time_Attribute", HFILL }}, + { &hf_x420_date_and_time_of_last_modification, + { "date-and-time-of-last-modification", "x420.date_and_time_of_last_modification", + FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, + "ftam.Date_and_Time_Attribute", HFILL }}, + { &hf_x420_date_and_time_of_last_read_access, + { "date-and-time-of-last-read-access", "x420.date_and_time_of_last_read_access", + FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, + "ftam.Date_and_Time_Attribute", HFILL }}, + { &hf_x420_date_and_time_of_last_attribute_modification, + { "date-and-time-of-last-attribute-modification", "x420.date_and_time_of_last_attribute_modification", + FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0, + "ftam.Date_and_Time_Attribute", HFILL }}, + { &hf_x420_identity_of_creator, + { "identity-of-creator", "x420.identity_of_creator", + FT_UINT32, BASE_DEC, VALS(x420_User_Identity_Attribute_vals), 0, + "x420.User_Identity_Attribute", HFILL }}, + { &hf_x420_identity_of_last_modifier, + { "identity-of-last-modifier", "x420.identity_of_last_modifier", + FT_UINT32, BASE_DEC, VALS(x420_User_Identity_Attribute_vals), 0, + "x420.User_Identity_Attribute", HFILL }}, + { &hf_x420_identity_of_last_reader, + { "identity-of-last-reader", "x420.identity_of_last_reader", + FT_UINT32, BASE_DEC, VALS(x420_User_Identity_Attribute_vals), 0, + "x420.User_Identity_Attribute", HFILL }}, + { &hf_x420_identity_of_last_attribute_modifier, + { "identity-of-last-attribute-modifier", "x420.identity_of_last_attribute_modifier", + FT_UINT32, BASE_DEC, VALS(x420_User_Identity_Attribute_vals), 0, + "x420.User_Identity_Attribute", HFILL }}, + { &hf_x420_object_availability, + { "object-availability", "x420.object_availability", + FT_UINT32, BASE_DEC, VALS(ftam_Object_Availability_Attribute_vals), 0, + "ftam.Object_Availability_Attribute", HFILL }}, + { &hf_x420_object_size, + { "object-size", "x420.object_size", + FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0, + "ftam.Object_Size_Attribute", HFILL }}, + { &hf_x420_future_object_size, + { "future-object-size", "x420.future_object_size", + FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0, + "ftam.Object_Size_Attribute", HFILL }}, + { &hf_x420_access_control, + { "access-control", "x420.access_control", + FT_UINT32, BASE_DEC, VALS(x420_Access_Control_Attribute_vals), 0, + "x420.Access_Control_Attribute", HFILL }}, + { &hf_x420_legal_qualifications, + { "legal-qualifications", "x420.legal_qualifications", + FT_UINT32, BASE_DEC, VALS(ftam_Legal_Qualification_Attribute_vals), 0, + "ftam.Legal_Qualification_Attribute", HFILL }}, + { &hf_x420_private_use, + { "private-use", "x420.private_use", + FT_UINT32, BASE_DEC, VALS(ftam_Private_Use_Attribute_vals), 0, + "ftam.Private_Use_Attribute", HFILL }}, + { &hf_x420_attribute_extensions, + { "attribute-extensions", "x420.attribute_extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "ftam.Attribute_Extensions", HFILL }}, + { &hf_x420_incomplete_pathname, + { "incomplete-pathname", "x420.incomplete_pathname", + FT_UINT32, BASE_DEC, NULL, 0, + "ftam.Pathname", HFILL }}, + { &hf_x420_complete_pathname, + { "complete-pathname", "x420.complete_pathname", + FT_UINT32, BASE_DEC, NULL, 0, + "ftam.Pathname", HFILL }}, + { &hf_x420_no_value_available, + { "no-value-available", "x420.no_value_available", + FT_NONE, BASE_NONE, NULL, 0, + "x420.NULL", HFILL }}, + { &hf_x420_account_actual_values, + { "actual-values", "x420.actual_values", + FT_STRING, BASE_NONE, NULL, 0, + "x420.Account", HFILL }}, + { &hf_x420_identity_actual_values, + { "actual-values", "x420.actual_values", + FT_STRING, BASE_NONE, NULL, 0, + "x420.User_Identity", HFILL }}, + { &hf_x420_actual_values, + { "actual-values", "x420.actual_values", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.SET_OF_Access_Control_Element", HFILL }}, + { &hf_x420_actual_values_item, + { "Item", "x420.actual_values_item", + FT_NONE, BASE_NONE, NULL, 0, + "x420.Access_Control_Element", HFILL }}, + { &hf_x420_action_list, + { "action-list", "x420.action_list", + FT_BYTES, BASE_HEX, NULL, 0, + "x420.Access_Request", HFILL }}, + { &hf_x420_concurrency_access, + { "concurrency-access", "x420.concurrency_access", + FT_NONE, BASE_NONE, NULL, 0, + "ftam.Concurrency_Access", HFILL }}, + { &hf_x420_identity, + { "identity", "x420.identity", + FT_STRING, BASE_NONE, NULL, 0, + "x420.User_Identity", HFILL }}, + { &hf_x420_passwords, + { "passwords", "x420.passwords", + FT_NONE, BASE_NONE, NULL, 0, + "x420.Access_Passwords", HFILL }}, + { &hf_x420_location, + { "location", "x420.location", + FT_NONE, BASE_NONE, NULL, 0, + "x420.Application_Entity_Title", HFILL }}, + { &hf_x420_read_password, + { "read-password", "x420.read_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_insert_password, + { "insert-password", "x420.insert_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_replace_password, + { "replace-password", "x420.replace_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_extend_password, + { "extend-password", "x420.extend_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_erase_password, + { "erase-password", "x420.erase_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_read_attribute_password, + { "read-attribute-password", "x420.read_attribute_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_change_attribute_password, + { "change-attribute-password", "x420.change_attribute_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_delete_password, + { "delete-password", "x420.delete_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_pass_passwords, + { "pass-passwords", "x420.pass_passwords", + FT_UINT32, BASE_DEC, NULL, 0, + "x420.Pass_Passwords", HFILL }}, + { &hf_x420_link_password, + { "link-password", "x420.link_password", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_graphic_string, + { "graphic-string", "x420.graphic_string", + FT_STRING, BASE_NONE, NULL, 0, + "x420.GraphicString", HFILL }}, + { &hf_x420_octet_string, + { "octet-string", "x420.octet_string", + FT_BYTES, BASE_HEX, NULL, 0, + "x420.OCTET_STRING", HFILL }}, + { &hf_x420_Pass_Passwords_item, + { "Item", "x420.Pass_Passwords_item", + FT_UINT32, BASE_DEC, VALS(x420_Password_vals), 0, + "x420.Password", HFILL }}, + { &hf_x420_ap_title, + { "ap-title", "x420.ap_title", + FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0, + "acse.AP_title", HFILL }}, + { &hf_x420_ae_qualifier, + { "ae-qualifier", "x420.ae_qualifier", + FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0, + "acse.AE_qualifier", HFILL }}, { &hf_x420_NotificationRequests_rn, { "rn", "x420.rn", FT_BOOLEAN, 8, NULL, 0x80, @@ -3827,9 +5181,41 @@ void proto_register_x420(void) { { "suppress-an", "x420.suppress-an", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, + { &hf_x420_Access_Request_read, + { "read", "x420.read", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x420_Access_Request_insert, + { "insert", "x420.insert", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x420_Access_Request_replace, + { "replace", "x420.replace", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x420_Access_Request_extend, + { "extend", "x420.extend", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x420_Access_Request_erase, + { "erase", "x420.erase", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_x420_Access_Request_read_attribute, + { "read-attribute", "x420.read-attribute", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_x420_Access_Request_change_attribute, + { "change-attribute", "x420.change-attribute", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_x420_Access_Request_delete_object, + { "delete-object", "x420.delete-object", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, /*--- End of included file: packet-x420-hfarr.c ---*/ -#line 128 "packet-x420-template.c" +#line 129 "packet-x420-template.c" }; /* List of subtrees */ @@ -3909,9 +5295,38 @@ void proto_register_x420(void) { &ett_x420_VoiceParameters, &ett_x420_ForwardedContentParameters, &ett_x420_SubmissionProof, + &ett_x420_FileTransferParameters, + &ett_x420_FileTransferData, + &ett_x420_RelatedStoredFile, + &ett_x420_RelatedStoredFile_item, + &ett_x420_FileIdentifier, + &ett_x420_PathnameandVersion, + &ett_x420_CrossReference, + &ett_x420_MessageReference, + &ett_x420_Relationship, + &ett_x420_Contents_Type_Attribute, + &ett_x420_T_document_type, + &ett_x420_T_constraint_set_and_abstract_syntax, + &ett_x420_EnvironmentParameter, + &ett_x420_T_user_visible_string, + &ett_x420_GeneralIdentifier, + &ett_x420_T_descriptive_identifier, + &ett_x420_CompressionParameter, + &ett_x420_FileAttributes, + &ett_x420_Pathname_Attribute, + &ett_x420_Account_Attribute, + &ett_x420_User_Identity_Attribute, + &ett_x420_Access_Control_Attribute, + &ett_x420_SET_OF_Access_Control_Element, + &ett_x420_Access_Control_Element, + &ett_x420_Access_Request, + &ett_x420_Access_Passwords, + &ett_x420_Password, + &ett_x420_Pass_Passwords, + &ett_x420_Application_Entity_Title, /*--- End of included file: packet-x420-ettarr.c ---*/ -#line 134 "packet-x420-template.c" +#line 135 "packet-x420-template.c" }; /* Register protocol */ @@ -3966,6 +5381,8 @@ void proto_reg_handoff_x420(void) { register_ber_oid_dissector("2.6.1.4.9", dissect_BilaterallyDefinedBodyPart_PDU, proto_x420, "id-et-bilaterally-defined"); register_ber_oid_dissector("2.6.1.11.11", dissect_GeneralTextParameters_PDU, proto_x420, "id-ep-general-text"); register_ber_oid_dissector("2.6.1.4.11", dissect_GeneralTextData_PDU, proto_x420, "id-et-general-text"); + register_ber_oid_dissector("2.6.1.11.12", dissect_FileTransferParameters_PDU, proto_x420, "id-ep-file-transfer"); + register_ber_oid_dissector("2.6.1.4.12", dissect_FileTransferData_PDU, proto_x420, "id-et-file-transfer"); register_ber_oid_dissector("2.6.1.11.15", dissect_MessageParameters_PDU, proto_x420, "id-ep-notification"); register_ber_oid_dissector("2.6.1.4.15", dissect_IPN_PDU, proto_x420, "id-et-notification"); register_ber_oid_dissector("2.6.1.11.16", dissect_VoiceParameters_PDU, proto_x420, "id-ep-voice"); @@ -3978,7 +5395,7 @@ void proto_reg_handoff_x420(void) { /*--- End of included file: packet-x420-dis-tab.c ---*/ -#line 150 "packet-x420-template.c" +#line 151 "packet-x420-template.c" register_ber_oid_dissector("2.6.1.10.0", dissect_x420, proto_x420, "InterPersonal Message (1984)"); register_ber_oid_dissector("2.6.1.10.1", dissect_x420, proto_x420, "InterPersonal Message (1988)"); diff --git a/epan/dissectors/packet-x420.h b/epan/dissectors/packet-x420.h index d6608c7a9f..ab853f341d 100644 --- a/epan/dissectors/packet-x420.h +++ b/epan/dissectors/packet-x420.h @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ -/* .\packet-x420.h */ -/* ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn */ +/* ./packet-x420.h */ +/* ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn ftbp.asn */ /* Input file: packet-x420-template.h */ |