Don't guard col_set_str (COL_INFO) with col_check
[metze/wireshark/wip.git] / epan / dissectors / packet-x411.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-x411.c                                                              */
4 /* ../../tools/asn2wrs.py -b -e -p x411 -c ./x411.cnf -s ./packet-x411-template -D . MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn */
5
6 /* Input file: packet-x411-template.c */
7
8 #line 1 "packet-x411-template.c"
9 /* packet-x411.c
10  * Routines for X.411 (X.400 Message Transfer)  packet dissection
11  * Graeme Lunt 2005
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/oids.h>
42 #include <epan/asn1.h>
43 #include <epan/expert.h>
44
45 #include <stdio.h>
46 #include <string.h>
47
48 #include "packet-ber.h"
49 #include "packet-acse.h"
50 #include "packet-ros.h"
51 #include "packet-rtse.h"
52
53 #include "packet-x509af.h"
54 #include "packet-x509ce.h"
55 #include "packet-x509if.h"
56 #include "packet-x509sat.h"
57
58 #include "packet-x411.h"
59 #include <epan/strutil.h>
60
61 #define PNAME  "X.411 Message Transfer Service"
62 #define PSNAME "X411"
63 #define PFNAME "x411"
64
65 static guint global_x411_tcp_port = 102;
66 static dissector_handle_t tpkt_handle;
67 void prefs_register_x411(void); /* forward declaration for use in preferences registration */
68
69 /* Initialize the protocol and registered fields */
70 int proto_x411 = -1;
71 int proto_p3 = -1;
72
73 static struct SESSION_DATA_STRUCTURE* session = NULL;
74 static int extension_id = -1; /* integer extension id */
75 static const char *object_identifier_id = NULL; /* extensions identifier */
76 static const char *content_type_id = NULL; /* content type identifier */
77
78 #define MAX_ORA_STR_LEN     256
79 static char *oraddress = NULL;
80 static char *ddatype = NULL;
81 static gboolean doing_address=FALSE;
82 static gboolean doing_subjectid=FALSE;
83 static proto_item *address_item = NULL;
84
85 static proto_tree *top_tree=NULL;
86
87 static int hf_x411_MTS_APDU_PDU = -1;
88 static int hf_x411_MTABindArgument_PDU = -1;
89 static int hf_x411_MTABindResult_PDU = -1;
90 static int hf_x411_MTABindError_PDU = -1;
91
92
93 /*--- Included file: packet-x411-hf.c ---*/
94 #line 1 "packet-x411-hf.c"
95 static int hf_x411_InternalTraceInformation_PDU = -1;  /* InternalTraceInformation */
96 static int hf_x411_InternalTraceInformationElement_PDU = -1;  /* InternalTraceInformationElement */
97 static int hf_x411_TraceInformation_PDU = -1;     /* TraceInformation */
98 static int hf_x411_TraceInformationElement_PDU = -1;  /* TraceInformationElement */
99 static int hf_x411_MTSBindArgument_PDU = -1;      /* MTSBindArgument */
100 static int hf_x411_MTSBindResult_PDU = -1;        /* MTSBindResult */
101 static int hf_x411_PAR_mts_bind_error_PDU = -1;   /* PAR_mts_bind_error */
102 static int hf_x411_MessageSubmissionArgument_PDU = -1;  /* MessageSubmissionArgument */
103 static int hf_x411_MessageSubmissionResult_PDU = -1;  /* MessageSubmissionResult */
104 static int hf_x411_ProbeSubmissionArgument_PDU = -1;  /* ProbeSubmissionArgument */
105 static int hf_x411_ProbeSubmissionResult_PDU = -1;  /* ProbeSubmissionResult */
106 static int hf_x411_CancelDeferredDeliveryArgument_PDU = -1;  /* CancelDeferredDeliveryArgument */
107 static int hf_x411_CancelDeferredDeliveryResult_PDU = -1;  /* CancelDeferredDeliveryResult */
108 static int hf_x411_SubmissionControlArgument_PDU = -1;  /* SubmissionControlArgument */
109 static int hf_x411_SubmissionControlResult_PDU = -1;  /* SubmissionControlResult */
110 static int hf_x411_PAR_submission_control_violated_PDU = -1;  /* PAR_submission_control_violated */
111 static int hf_x411_PAR_element_of_service_not_subscribed_PDU = -1;  /* PAR_element_of_service_not_subscribed */
112 static int hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU = -1;  /* PAR_deferred_delivery_cancellation_rejected */
113 static int hf_x411_PAR_originator_invalid_PDU = -1;  /* PAR_originator_invalid */
114 static int hf_x411_ImproperlySpecifiedRecipients_PDU = -1;  /* ImproperlySpecifiedRecipients */
115 static int hf_x411_PAR_message_submission_identifier_invalid_PDU = -1;  /* PAR_message_submission_identifier_invalid */
116 static int hf_x411_PAR_inconsistent_request_PDU = -1;  /* PAR_inconsistent_request */
117 static int hf_x411_SecurityProblem_PDU = -1;      /* SecurityProblem */
118 static int hf_x411_PAR_unsupported_critical_function_PDU = -1;  /* PAR_unsupported_critical_function */
119 static int hf_x411_PAR_remote_bind_error_PDU = -1;  /* PAR_remote_bind_error */
120 static int hf_x411_MessageSubmissionTime_PDU = -1;  /* MessageSubmissionTime */
121 static int hf_x411_MessageDeliveryArgument_PDU = -1;  /* MessageDeliveryArgument */
122 static int hf_x411_MessageDeliveryResult_PDU = -1;  /* MessageDeliveryResult */
123 static int hf_x411_ReportDeliveryArgument_PDU = -1;  /* ReportDeliveryArgument */
124 static int hf_x411_ReportDeliveryResult_PDU = -1;  /* ReportDeliveryResult */
125 static int hf_x411_DeliveryControlArgument_PDU = -1;  /* DeliveryControlArgument */
126 static int hf_x411_DeliveryControlResult_PDU = -1;  /* DeliveryControlResult */
127 static int hf_x411_PAR_delivery_control_violated_PDU = -1;  /* PAR_delivery_control_violated */
128 static int hf_x411_PAR_control_violates_registration_PDU = -1;  /* PAR_control_violates_registration */
129 static int hf_x411_RefusedOperation_PDU = -1;     /* RefusedOperation */
130 static int hf_x411_RecipientCertificate_PDU = -1;  /* RecipientCertificate */
131 static int hf_x411_ProofOfDelivery_PDU = -1;      /* ProofOfDelivery */
132 static int hf_x411_RegisterArgument_PDU = -1;     /* RegisterArgument */
133 static int hf_x411_RegisterResult_PDU = -1;       /* RegisterResult */
134 static int hf_x411_ChangeCredentialsArgument_PDU = -1;  /* ChangeCredentialsArgument */
135 static int hf_x411_RES_change_credentials_PDU = -1;  /* RES_change_credentials */
136 static int hf_x411_PAR_register_rejected_PDU = -1;  /* PAR_register_rejected */
137 static int hf_x411_PAR_new_credentials_unacceptable_PDU = -1;  /* PAR_new_credentials_unacceptable */
138 static int hf_x411_PAR_old_credentials_incorrectly_specified_PDU = -1;  /* PAR_old_credentials_incorrectly_specified */
139 static int hf_x411_MessageSubmissionEnvelope_PDU = -1;  /* MessageSubmissionEnvelope */
140 static int hf_x411_PerRecipientMessageSubmissionFields_PDU = -1;  /* PerRecipientMessageSubmissionFields */
141 static int hf_x411_ProbeSubmissionEnvelope_PDU = -1;  /* ProbeSubmissionEnvelope */
142 static int hf_x411_PerRecipientProbeSubmissionFields_PDU = -1;  /* PerRecipientProbeSubmissionFields */
143 static int hf_x411_MessageDeliveryEnvelope_PDU = -1;  /* MessageDeliveryEnvelope */
144 static int hf_x411_ReportDeliveryEnvelope_PDU = -1;  /* ReportDeliveryEnvelope */
145 static int hf_x411_PerRecipientReportDeliveryFields_PDU = -1;  /* PerRecipientReportDeliveryFields */
146 static int hf_x411_ExtendedContentType_PDU = -1;  /* ExtendedContentType */
147 static int hf_x411_ContentIdentifier_PDU = -1;    /* ContentIdentifier */
148 static int hf_x411_PerMessageIndicators_PDU = -1;  /* PerMessageIndicators */
149 static int hf_x411_OriginatorReportRequest_PDU = -1;  /* OriginatorReportRequest */
150 static int hf_x411_DeferredDeliveryTime_PDU = -1;  /* DeferredDeliveryTime */
151 static int hf_x411_Priority_PDU = -1;             /* Priority */
152 static int hf_x411_ContentLength_PDU = -1;        /* ContentLength */
153 static int hf_x411_MessageDeliveryTime_PDU = -1;  /* MessageDeliveryTime */
154 static int hf_x411_DeliveryFlags_PDU = -1;        /* DeliveryFlags */
155 static int hf_x411_SubjectSubmissionIdentifier_PDU = -1;  /* SubjectSubmissionIdentifier */
156 static int hf_x411_RecipientReassignmentProhibited_PDU = -1;  /* RecipientReassignmentProhibited */
157 static int hf_x411_OriginatorRequestedAlternateRecipient_PDU = -1;  /* OriginatorRequestedAlternateRecipient */
158 static int hf_x411_DLExpansionProhibited_PDU = -1;  /* DLExpansionProhibited */
159 static int hf_x411_ConversionWithLossProhibited_PDU = -1;  /* ConversionWithLossProhibited */
160 static int hf_x411_LatestDeliveryTime_PDU = -1;   /* LatestDeliveryTime */
161 static int hf_x411_RequestedDeliveryMethod_PDU = -1;  /* RequestedDeliveryMethod */
162 static int hf_x411_PhysicalForwardingProhibited_PDU = -1;  /* PhysicalForwardingProhibited */
163 static int hf_x411_PhysicalForwardingAddressRequest_PDU = -1;  /* PhysicalForwardingAddressRequest */
164 static int hf_x411_PhysicalDeliveryModes_PDU = -1;  /* PhysicalDeliveryModes */
165 static int hf_x411_RegisteredMailType_PDU = -1;   /* RegisteredMailType */
166 static int hf_x411_RecipientNumberForAdvice_PDU = -1;  /* RecipientNumberForAdvice */
167 static int hf_x411_PhysicalRenditionAttributes_PDU = -1;  /* PhysicalRenditionAttributes */
168 static int hf_x411_OriginatorReturnAddress_PDU = -1;  /* OriginatorReturnAddress */
169 static int hf_x411_PhysicalDeliveryReportRequest_PDU = -1;  /* PhysicalDeliveryReportRequest */
170 static int hf_x411_OriginatorCertificate_PDU = -1;  /* OriginatorCertificate */
171 static int hf_x411_MessageToken_PDU = -1;         /* MessageToken */
172 static int hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU = -1;  /* ContentConfidentialityAlgorithmIdentifier */
173 static int hf_x411_ContentIntegrityCheck_PDU = -1;  /* ContentIntegrityCheck */
174 static int hf_x411_MessageOriginAuthenticationCheck_PDU = -1;  /* MessageOriginAuthenticationCheck */
175 static int hf_x411_MessageSecurityLabel_PDU = -1;  /* MessageSecurityLabel */
176 static int hf_x411_ProofOfSubmissionRequest_PDU = -1;  /* ProofOfSubmissionRequest */
177 static int hf_x411_ProofOfDeliveryRequest_PDU = -1;  /* ProofOfDeliveryRequest */
178 static int hf_x411_ContentCorrelator_PDU = -1;    /* ContentCorrelator */
179 static int hf_x411_ProbeOriginAuthenticationCheck_PDU = -1;  /* ProbeOriginAuthenticationCheck */
180 static int hf_x411_RedirectionHistory_PDU = -1;   /* RedirectionHistory */
181 static int hf_x411_Redirection_PDU = -1;          /* Redirection */
182 static int hf_x411_DLExpansionHistory_PDU = -1;   /* DLExpansionHistory */
183 static int hf_x411_DLExpansion_PDU = -1;          /* DLExpansion */
184 static int hf_x411_PhysicalForwardingAddress_PDU = -1;  /* PhysicalForwardingAddress */
185 static int hf_x411_OriginatorAndDLExpansionHistory_PDU = -1;  /* OriginatorAndDLExpansionHistory */
186 static int hf_x411_ReportingDLName_PDU = -1;      /* ReportingDLName */
187 static int hf_x411_ReportingMTACertificate_PDU = -1;  /* ReportingMTACertificate */
188 static int hf_x411_ReportOriginAuthenticationCheck_PDU = -1;  /* ReportOriginAuthenticationCheck */
189 static int hf_x411_OriginatingMTACertificate_PDU = -1;  /* OriginatingMTACertificate */
190 static int hf_x411_ProofOfSubmission_PDU = -1;    /* ProofOfSubmission */
191 static int hf_x411_ReportingMTAName_PDU = -1;     /* ReportingMTAName */
192 static int hf_x411_ExtendedCertificates_PDU = -1;  /* ExtendedCertificates */
193 static int hf_x411_DLExemptedRecipients_PDU = -1;  /* DLExemptedRecipients */
194 static int hf_x411_CertificateSelectors_PDU = -1;  /* CertificateSelectors */
195 static int hf_x411_Content_PDU = -1;              /* Content */
196 static int hf_x411_MTSIdentifier_PDU = -1;        /* MTSIdentifier */
197 static int hf_x411_ORName_PDU = -1;               /* ORName */
198 static int hf_x411_ORAddress_PDU = -1;            /* ORAddress */
199 static int hf_x411_CommonName_PDU = -1;           /* CommonName */
200 static int hf_x411_TeletexCommonName_PDU = -1;    /* TeletexCommonName */
201 static int hf_x411_UniversalCommonName_PDU = -1;  /* UniversalCommonName */
202 static int hf_x411_TeletexOrganizationName_PDU = -1;  /* TeletexOrganizationName */
203 static int hf_x411_UniversalOrganizationName_PDU = -1;  /* UniversalOrganizationName */
204 static int hf_x411_TeletexPersonalName_PDU = -1;  /* TeletexPersonalName */
205 static int hf_x411_UniversalPersonalName_PDU = -1;  /* UniversalPersonalName */
206 static int hf_x411_TeletexOrganizationalUnitNames_PDU = -1;  /* TeletexOrganizationalUnitNames */
207 static int hf_x411_UniversalOrganizationalUnitNames_PDU = -1;  /* UniversalOrganizationalUnitNames */
208 static int hf_x411_PDSName_PDU = -1;              /* PDSName */
209 static int hf_x411_PhysicalDeliveryCountryName_PDU = -1;  /* PhysicalDeliveryCountryName */
210 static int hf_x411_PostalCode_PDU = -1;           /* PostalCode */
211 static int hf_x411_PhysicalDeliveryOfficeName_PDU = -1;  /* PhysicalDeliveryOfficeName */
212 static int hf_x411_UniversalPhysicalDeliveryOfficeName_PDU = -1;  /* UniversalPhysicalDeliveryOfficeName */
213 static int hf_x411_PhysicalDeliveryOfficeNumber_PDU = -1;  /* PhysicalDeliveryOfficeNumber */
214 static int hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU = -1;  /* UniversalPhysicalDeliveryOfficeNumber */
215 static int hf_x411_ExtensionORAddressComponents_PDU = -1;  /* ExtensionORAddressComponents */
216 static int hf_x411_UniversalExtensionORAddressComponents_PDU = -1;  /* UniversalExtensionORAddressComponents */
217 static int hf_x411_PhysicalDeliveryPersonalName_PDU = -1;  /* PhysicalDeliveryPersonalName */
218 static int hf_x411_UniversalPhysicalDeliveryPersonalName_PDU = -1;  /* UniversalPhysicalDeliveryPersonalName */
219 static int hf_x411_PhysicalDeliveryOrganizationName_PDU = -1;  /* PhysicalDeliveryOrganizationName */
220 static int hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU = -1;  /* UniversalPhysicalDeliveryOrganizationName */
221 static int hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* ExtensionPhysicalDeliveryAddressComponents */
222 static int hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* UniversalExtensionPhysicalDeliveryAddressComponents */
223 static int hf_x411_UnformattedPostalAddress_PDU = -1;  /* UnformattedPostalAddress */
224 static int hf_x411_UniversalUnformattedPostalAddress_PDU = -1;  /* UniversalUnformattedPostalAddress */
225 static int hf_x411_StreetAddress_PDU = -1;        /* StreetAddress */
226 static int hf_x411_UniversalStreetAddress_PDU = -1;  /* UniversalStreetAddress */
227 static int hf_x411_PostOfficeBoxAddress_PDU = -1;  /* PostOfficeBoxAddress */
228 static int hf_x411_UniversalPostOfficeBoxAddress_PDU = -1;  /* UniversalPostOfficeBoxAddress */
229 static int hf_x411_PosteRestanteAddress_PDU = -1;  /* PosteRestanteAddress */
230 static int hf_x411_UniversalPosteRestanteAddress_PDU = -1;  /* UniversalPosteRestanteAddress */
231 static int hf_x411_UniquePostalName_PDU = -1;     /* UniquePostalName */
232 static int hf_x411_UniversalUniquePostalName_PDU = -1;  /* UniversalUniquePostalName */
233 static int hf_x411_LocalPostalAttributes_PDU = -1;  /* LocalPostalAttributes */
234 static int hf_x411_UniversalLocalPostalAttributes_PDU = -1;  /* UniversalLocalPostalAttributes */
235 static int hf_x411_ExtendedNetworkAddress_PDU = -1;  /* ExtendedNetworkAddress */
236 static int hf_x411_TerminalType_PDU = -1;         /* TerminalType */
237 static int hf_x411_TeletexDomainDefinedAttributes_PDU = -1;  /* TeletexDomainDefinedAttributes */
238 static int hf_x411_UniversalDomainDefinedAttributes_PDU = -1;  /* UniversalDomainDefinedAttributes */
239 static int hf_x411_ExtendedEncodedInformationType_PDU = -1;  /* ExtendedEncodedInformationType */
240 static int hf_x411_MTANameAndOptionalGDI_PDU = -1;  /* MTANameAndOptionalGDI */
241 static int hf_x411_AsymmetricToken_PDU = -1;      /* AsymmetricToken */
242 static int hf_x411_BindTokenSignedData_PDU = -1;  /* BindTokenSignedData */
243 static int hf_x411_MessageTokenSignedData_PDU = -1;  /* MessageTokenSignedData */
244 static int hf_x411_MessageTokenEncryptedData_PDU = -1;  /* MessageTokenEncryptedData */
245 static int hf_x411_BindTokenEncryptedData_PDU = -1;  /* BindTokenEncryptedData */
246 static int hf_x411_SecurityClassification_PDU = -1;  /* SecurityClassification */
247 static int hf_x411_unauthenticated = -1;          /* NULL */
248 static int hf_x411_authenticated_argument = -1;   /* AuthenticatedArgument */
249 static int hf_x411_authenticated_initiator_name = -1;  /* MTAName */
250 static int hf_x411_initiator_credentials = -1;    /* InitiatorCredentials */
251 static int hf_x411_security_context = -1;         /* SecurityContext */
252 static int hf_x411_authenticated_result = -1;     /* AuthenticatedResult */
253 static int hf_x411_authenticated_responder_name = -1;  /* MTAName */
254 static int hf_x411_responder_credentials = -1;    /* ResponderCredentials */
255 static int hf_x411_message = -1;                  /* Message */
256 static int hf_x411_probe = -1;                    /* Probe */
257 static int hf_x411_report = -1;                   /* Report */
258 static int hf_x411_message_envelope = -1;         /* MessageTransferEnvelope */
259 static int hf_x411_content = -1;                  /* Content */
260 static int hf_x411_report_envelope = -1;          /* ReportTransferEnvelope */
261 static int hf_x411_report_content = -1;           /* ReportTransferContent */
262 static int hf_x411_message_identifier = -1;       /* MessageIdentifier */
263 static int hf_x411_originator_name = -1;          /* MTAOriginatorName */
264 static int hf_x411_original_encoded_information_types = -1;  /* OriginalEncodedInformationTypes */
265 static int hf_x411_content_type = -1;             /* ContentType */
266 static int hf_x411_content_identifier = -1;       /* ContentIdentifier */
267 static int hf_x411_priority = -1;                 /* Priority */
268 static int hf_x411_per_message_indicators = -1;   /* PerMessageIndicators */
269 static int hf_x411_deferred_delivery_time = -1;   /* DeferredDeliveryTime */
270 static int hf_x411_per_domain_bilateral_information = -1;  /* SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation */
271 static int hf_x411_per_domain_bilateral_information_item = -1;  /* PerDomainBilateralInformation */
272 static int hf_x411_trace_information = -1;        /* TraceInformation */
273 static int hf_x411_extensions = -1;               /* SET_OF_ExtensionField */
274 static int hf_x411_extensions_item = -1;          /* ExtensionField */
275 static int hf_x411_recipient_name = -1;           /* MTARecipientName */
276 static int hf_x411_originally_specified_recipient_number = -1;  /* OriginallySpecifiedRecipientNumber */
277 static int hf_x411_per_recipient_indicators = -1;  /* PerRecipientIndicators */
278 static int hf_x411_explicit_conversion = -1;      /* ExplicitConversion */
279 static int hf_x411_probe_identifier = -1;         /* ProbeIdentifier */
280 static int hf_x411_content_length = -1;           /* ContentLength */
281 static int hf_x411_report_identifier = -1;        /* ReportIdentifier */
282 static int hf_x411_report_destination_name = -1;  /* ReportDestinationName */
283 static int hf_x411_subject_identifier = -1;       /* SubjectIdentifier */
284 static int hf_x411_subject_intermediate_trace_information = -1;  /* SubjectIntermediateTraceInformation */
285 static int hf_x411_returned_content = -1;         /* Content */
286 static int hf_x411_additional_information = -1;   /* AdditionalInformation */
287 static int hf_x411_mta_actual_recipient_name = -1;  /* MTAActualRecipientName */
288 static int hf_x411_last_trace_information = -1;   /* LastTraceInformation */
289 static int hf_x411_report_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
290 static int hf_x411_supplementary_information = -1;  /* SupplementaryInformation */
291 static int hf_x411_country_name = -1;             /* CountryName */
292 static int hf_x411_bilateral_domain = -1;         /* T_bilateral_domain */
293 static int hf_x411_administration_domain_name = -1;  /* AdministrationDomainName */
294 static int hf_x411_private_domain = -1;           /* T_private_domain */
295 static int hf_x411_private_domain_identifier = -1;  /* PrivateDomainIdentifier */
296 static int hf_x411_bilateral_information = -1;    /* T_bilateral_information */
297 static int hf_x411_domain = -1;                   /* T_domain */
298 static int hf_x411_private_domain_01 = -1;        /* T_private_domain_01 */
299 static int hf_x411_arrival_time = -1;             /* ArrivalTime */
300 static int hf_x411_converted_encoded_information_types = -1;  /* ConvertedEncodedInformationTypes */
301 static int hf_x411_trace_report_type = -1;        /* ReportType */
302 static int hf_x411_InternalTraceInformation_item = -1;  /* InternalTraceInformationElement */
303 static int hf_x411_global_domain_identifier = -1;  /* GlobalDomainIdentifier */
304 static int hf_x411_mta_name = -1;                 /* MTAName */
305 static int hf_x411_mta_supplied_information = -1;  /* MTASuppliedInformation */
306 static int hf_x411__untag_item = -1;              /* TraceInformationElement */
307 static int hf_x411_domain_supplied_information = -1;  /* DomainSuppliedInformation */
308 static int hf_x411_deferred_time = -1;            /* DeferredTime */
309 static int hf_x411_other_actions = -1;            /* OtherActions */
310 static int hf_x411_initiator_name = -1;           /* ObjectName */
311 static int hf_x411_messages_waiting = -1;         /* MessagesWaiting */
312 static int hf_x411_responder_name = -1;           /* ObjectName */
313 static int hf_x411_user_agent = -1;               /* ORAddressAndOptionalDirectoryName */
314 static int hf_x411_mTA = -1;                      /* MTAName */
315 static int hf_x411_message_store = -1;            /* ORAddressAndOptionalDirectoryName */
316 static int hf_x411_urgent = -1;                   /* DeliveryQueue */
317 static int hf_x411_normal = -1;                   /* DeliveryQueue */
318 static int hf_x411_non_urgent = -1;               /* DeliveryQueue */
319 static int hf_x411_messages = -1;                 /* INTEGER_0_ub_queue_size */
320 static int hf_x411_delivery_queue_octets = -1;    /* INTEGER_0_ub_content_length */
321 static int hf_x411_simple = -1;                   /* Password */
322 static int hf_x411_strong = -1;                   /* StrongCredentials */
323 static int hf_x411_protected = -1;                /* ProtectedPassword */
324 static int hf_x411_ia5_string = -1;               /* IA5String_SIZE_0_ub_password_length */
325 static int hf_x411_octet_string = -1;             /* OCTET_STRING_SIZE_0_ub_password_length */
326 static int hf_x411_bind_token = -1;               /* Token */
327 static int hf_x411_certificate = -1;              /* Certificates */
328 static int hf_x411_certificate_selector = -1;     /* CertificateAssertion */
329 static int hf_x411_signature = -1;                /* Signature */
330 static int hf_x411_time1 = -1;                    /* UTCTime */
331 static int hf_x411_time2 = -1;                    /* UTCTime */
332 static int hf_x411_random1 = -1;                  /* BIT_STRING */
333 static int hf_x411_random2 = -1;                  /* BIT_STRING */
334 static int hf_x411_algorithmIdentifier = -1;      /* AlgorithmIdentifier */
335 static int hf_x411_encrypted = -1;                /* BIT_STRING */
336 static int hf_x411_SecurityContext_item = -1;     /* SecurityLabel */
337 static int hf_x411_message_submission_envelope = -1;  /* MessageSubmissionEnvelope */
338 static int hf_x411_message_submission_identifier = -1;  /* MessageSubmissionIdentifier */
339 static int hf_x411_message_submission_time = -1;  /* MessageSubmissionTime */
340 static int hf_x411_probe_submission_identifier = -1;  /* ProbeSubmissionIdentifier */
341 static int hf_x411_probe_submission_time = -1;    /* ProbeSubmissionTime */
342 static int hf_x411_ImproperlySpecifiedRecipients_item = -1;  /* RecipientName */
343 static int hf_x411_waiting_operations = -1;       /* Operations */
344 static int hf_x411_waiting_messages = -1;         /* WaitingMessages */
345 static int hf_x411_waiting_content_types = -1;    /* SET_SIZE_0_ub_content_types_OF_ContentType */
346 static int hf_x411_waiting_content_types_item = -1;  /* ContentType */
347 static int hf_x411_waiting_encoded_information_types = -1;  /* EncodedInformationTypes */
348 static int hf_x411_recipient_certificate = -1;    /* RecipientCertificate */
349 static int hf_x411_proof_of_delivery = -1;        /* ProofOfDelivery */
350 static int hf_x411_empty_result = -1;             /* NULL */
351 static int hf_x411_max_extensions = -1;           /* SET_SIZE_1_MAX_OF_ExtensionField */
352 static int hf_x411_max_extensions_item = -1;      /* ExtensionField */
353 static int hf_x411_restrict = -1;                 /* BOOLEAN */
354 static int hf_x411_permissible_operations = -1;   /* Operations */
355 static int hf_x411_permissible_maximum_content_length = -1;  /* ContentLength */
356 static int hf_x411_permissible_lowest_priority = -1;  /* Priority */
357 static int hf_x411_permissible_content_types = -1;  /* ContentTypes */
358 static int hf_x411_permissible_encoded_information_types = -1;  /* PermissibleEncodedInformationTypes */
359 static int hf_x411_permissible_security_context = -1;  /* SecurityContext */
360 static int hf_x411_refused_argument = -1;         /* T_refused_argument */
361 static int hf_x411_built_in_argument = -1;        /* RefusedArgument */
362 static int hf_x411_refused_extension = -1;        /* T_refused_extension */
363 static int hf_x411_refusal_reason = -1;           /* RefusalReason */
364 static int hf_x411_user_name = -1;                /* UserName */
365 static int hf_x411_user_address = -1;             /* UserAddress */
366 static int hf_x411_deliverable_class = -1;        /* SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass */
367 static int hf_x411_deliverable_class_item = -1;   /* DeliverableClass */
368 static int hf_x411_default_delivery_controls = -1;  /* DefaultDeliveryControls */
369 static int hf_x411_redirections = -1;             /* Redirections */
370 static int hf_x411_restricted_delivery = -1;      /* RestrictedDelivery */
371 static int hf_x411_retrieve_registrations = -1;   /* RegistrationTypes */
372 static int hf_x411_non_empty_result = -1;         /* T_non_empty_result */
373 static int hf_x411_registered_information = -1;   /* RegisterArgument */
374 static int hf_x411_old_credentials = -1;          /* Credentials */
375 static int hf_x411_new_credentials = -1;          /* Credentials */
376 static int hf_x411_x121 = -1;                     /* T_x121 */
377 static int hf_x411_x121_address = -1;             /* AddrNumericString */
378 static int hf_x411_tsap_id = -1;                  /* PrintableString_SIZE_1_ub_tsap_id_length */
379 static int hf_x411_presentation = -1;             /* PSAPAddress */
380 static int hf_x411_Redirections_item = -1;        /* RecipientRedirection */
381 static int hf_x411_redirection_classes = -1;      /* SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass */
382 static int hf_x411_redirection_classes_item = -1;  /* RedirectionClass */
383 static int hf_x411_recipient_assigned_alternate_recipient = -1;  /* RecipientAssignedAlternateRecipient */
384 static int hf_x411_content_types = -1;            /* ContentTypes */
385 static int hf_x411_maximum_content_length = -1;   /* ContentLength */
386 static int hf_x411_encoded_information_types_constraints = -1;  /* EncodedInformationTypesConstraints */
387 static int hf_x411_security_labels = -1;          /* SecurityContext */
388 static int hf_x411_class_priority = -1;           /* SET_OF_Priority */
389 static int hf_x411_class_priority_item = -1;      /* Priority */
390 static int hf_x411_objects = -1;                  /* T_objects */
391 static int hf_x411_applies_only_to = -1;          /* SEQUENCE_OF_Restriction */
392 static int hf_x411_applies_only_to_item = -1;     /* Restriction */
393 static int hf_x411_unacceptable_eits = -1;        /* ExtendedEncodedInformationTypes */
394 static int hf_x411_acceptable_eits = -1;          /* ExtendedEncodedInformationTypes */
395 static int hf_x411_exclusively_acceptable_eits = -1;  /* ExtendedEncodedInformationTypes */
396 static int hf_x411_RestrictedDelivery_item = -1;  /* Restriction */
397 static int hf_x411_permitted = -1;                /* BOOLEAN */
398 static int hf_x411_source_type = -1;              /* T_source_type */
399 static int hf_x411_source_name = -1;              /* ExactOrPattern */
400 static int hf_x411_exact_match = -1;              /* ORName */
401 static int hf_x411_pattern_match = -1;            /* ORName */
402 static int hf_x411_standard_parameters = -1;      /* T_standard_parameters */
403 static int hf_x411_type_extensions = -1;          /* T_type_extensions */
404 static int hf_x411_type_extensions_item = -1;     /* T_type_extensions_item */
405 static int hf_x411_originator_name_01 = -1;       /* OriginatorName */
406 static int hf_x411_submission_recipient_name = -1;  /* RecipientName */
407 static int hf_x411_originator_report_request = -1;  /* OriginatorReportRequest */
408 static int hf_x411_probe_recipient_name = -1;     /* RecipientName */
409 static int hf_x411_message_delivery_identifier = -1;  /* MessageDeliveryIdentifier */
410 static int hf_x411_message_delivery_time = -1;    /* MessageDeliveryTime */
411 static int hf_x411_other_fields = -1;             /* OtherMessageDeliveryFields */
412 static int hf_x411_delivered_content_type = -1;   /* DeliveredContentType */
413 static int hf_x411_delivered_originator_name = -1;  /* DeliveredOriginatorName */
414 static int hf_x411_delivery_flags = -1;           /* DeliveryFlags */
415 static int hf_x411_other_recipient_names = -1;    /* OtherRecipientNames */
416 static int hf_x411_this_recipient_name = -1;      /* ThisRecipientName */
417 static int hf_x411_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
418 static int hf_x411_subject_submission_identifier = -1;  /* SubjectSubmissionIdentifier */
419 static int hf_x411_actual_recipient_name = -1;    /* ActualRecipientName */
420 static int hf_x411_delivery_report_type = -1;     /* ReportType */
421 static int hf_x411_delivery = -1;                 /* DeliveryReport */
422 static int hf_x411_non_delivery = -1;             /* NonDeliveryReport */
423 static int hf_x411_type_of_MTS_user = -1;         /* TypeOfMTSUser */
424 static int hf_x411_non_delivery_reason_code = -1;  /* NonDeliveryReasonCode */
425 static int hf_x411_non_delivery_diagnostic_code = -1;  /* NonDeliveryDiagnosticCode */
426 static int hf_x411_ContentTypes_item = -1;        /* ContentType */
427 static int hf_x411_built_in = -1;                 /* BuiltInContentType */
428 static int hf_x411_extended = -1;                 /* ExtendedContentType */
429 static int hf_x411_OtherRecipientNames_item = -1;  /* OtherRecipientName */
430 static int hf_x411_standard_extension = -1;       /* StandardExtension */
431 static int hf_x411_private_extension = -1;        /* T_private_extension */
432 static int hf_x411_extension_type = -1;           /* ExtensionType */
433 static int hf_x411_criticality = -1;              /* Criticality */
434 static int hf_x411_extension_value = -1;          /* ExtensionValue */
435 static int hf_x411_RequestedDeliveryMethod_item = -1;  /* RequestedDeliveryMethod_item */
436 static int hf_x411_ia5text = -1;                  /* IA5String */
437 static int hf_x411_octets = -1;                   /* OCTET_STRING */
438 static int hf_x411_RedirectionHistory_item = -1;  /* Redirection */
439 static int hf_x411_intended_recipient_name = -1;  /* IntendedRecipientName */
440 static int hf_x411_redirection_reason = -1;       /* RedirectionReason */
441 static int hf_x411_intended_recipient = -1;       /* ORAddressAndOptionalDirectoryName */
442 static int hf_x411_redirection_time = -1;         /* Time */
443 static int hf_x411_DLExpansionHistory_item = -1;  /* DLExpansion */
444 static int hf_x411_dl = -1;                       /* ORAddressAndOptionalDirectoryName */
445 static int hf_x411_dl_expansion_time = -1;        /* Time */
446 static int hf_x411_OriginatorAndDLExpansionHistory_item = -1;  /* OriginatorAndDLExpansion */
447 static int hf_x411_originator_or_dl_name = -1;    /* ORAddressAndOptionalDirectoryName */
448 static int hf_x411_origination_or_expansion_time = -1;  /* Time */
449 static int hf_x411_report_type = -1;              /* T_report_type */
450 static int hf_x411_report_type_delivery = -1;     /* PerRecipientDeliveryReportFields */
451 static int hf_x411_non_delivery_report = -1;      /* PerRecipientNonDeliveryReportFields */
452 static int hf_x411_domain_01 = -1;                /* GlobalDomainIdentifier */
453 static int hf_x411_mta_directory_name = -1;       /* Name */
454 static int hf_x411_ExtendedCertificates_item = -1;  /* ExtendedCertificate */
455 static int hf_x411_directory_entry = -1;          /* Name */
456 static int hf_x411_DLExemptedRecipients_item = -1;  /* ORAddressAndOrDirectoryName */
457 static int hf_x411_encryption_recipient = -1;     /* CertificateAssertion */
458 static int hf_x411_encryption_originator = -1;    /* CertificateAssertion */
459 static int hf_x411_selectors_content_integrity_check = -1;  /* CertificateAssertion */
460 static int hf_x411_token_signature = -1;          /* CertificateAssertion */
461 static int hf_x411_message_origin_authentication = -1;  /* CertificateAssertion */
462 static int hf_x411_local_identifier = -1;         /* LocalIdentifier */
463 static int hf_x411_numeric_private_domain_identifier = -1;  /* AddrNumericString */
464 static int hf_x411_printable_private_domain_identifier = -1;  /* AddrPrintableString */
465 static int hf_x411_built_in_standard_attributes = -1;  /* BuiltInStandardAttributes */
466 static int hf_x411_built_in_domain_defined_attributes = -1;  /* BuiltInDomainDefinedAttributes */
467 static int hf_x411_extension_attributes = -1;     /* ExtensionAttributes */
468 static int hf_x411_network_address = -1;          /* NetworkAddress */
469 static int hf_x411_terminal_identifier = -1;      /* TerminalIdentifier */
470 static int hf_x411_private_domain_name = -1;      /* PrivateDomainName */
471 static int hf_x411_organization_name = -1;        /* OrganizationName */
472 static int hf_x411_numeric_user_identifier = -1;  /* NumericUserIdentifier */
473 static int hf_x411_personal_name = -1;            /* PersonalName */
474 static int hf_x411_organizational_unit_names = -1;  /* OrganizationalUnitNames */
475 static int hf_x411_x121_dcc_code = -1;            /* AddrNumericString */
476 static int hf_x411_iso_3166_alpha2_code = -1;     /* AddrPrintableString */
477 static int hf_x411_numeric = -1;                  /* AddrNumericString */
478 static int hf_x411_printable = -1;                /* AddrPrintableString */
479 static int hf_x411_numeric_private_domain_name = -1;  /* AddrNumericString */
480 static int hf_x411_printable_private_domain_name = -1;  /* AddrPrintableString */
481 static int hf_x411_printable_surname = -1;        /* T_printable_surname */
482 static int hf_x411_printable_given_name = -1;     /* T_printable_given_name */
483 static int hf_x411_printable_initials = -1;       /* T_printable_initials */
484 static int hf_x411_printable_generation_qualifier = -1;  /* T_printable_generation_qualifier */
485 static int hf_x411_OrganizationalUnitNames_item = -1;  /* OrganizationalUnitName */
486 static int hf_x411_BuiltInDomainDefinedAttributes_item = -1;  /* BuiltInDomainDefinedAttribute */
487 static int hf_x411_printable_type = -1;           /* T_printable_type */
488 static int hf_x411_printable_value = -1;          /* T_printable_value */
489 static int hf_x411_ExtensionAttributes_item = -1;  /* ExtensionAttribute */
490 static int hf_x411_extension_attribute_type = -1;  /* ExtensionAttributeType */
491 static int hf_x411_extension_attribute_value = -1;  /* T_extension_attribute_value */
492 static int hf_x411_teletex_surname = -1;          /* AddrTeletexString */
493 static int hf_x411_teletex_given_name = -1;       /* AddrTeletexString */
494 static int hf_x411_teletex_initials = -1;         /* AddrTeletexString */
495 static int hf_x411_teletex_generation_qualifier = -1;  /* AddrTeletexString */
496 static int hf_x411_universal_surname = -1;        /* UniversalOrBMPString */
497 static int hf_x411_universal_given_name = -1;     /* UniversalOrBMPString */
498 static int hf_x411_universal_initials = -1;       /* UniversalOrBMPString */
499 static int hf_x411_universal_generation_qualifier = -1;  /* UniversalOrBMPString */
500 static int hf_x411_TeletexOrganizationalUnitNames_item = -1;  /* TeletexOrganizationalUnitName */
501 static int hf_x411_UniversalOrganizationalUnitNames_item = -1;  /* UniversalOrganizationalUnitName */
502 static int hf_x411_character_encoding = -1;       /* T_character_encoding */
503 static int hf_x411_two_octets = -1;               /* BMPString_SIZE_1_ub_string_length */
504 static int hf_x411_four_octets = -1;              /* UniversalString_SIZE_1_ub_string_length */
505 static int hf_x411_iso_639_language_code = -1;    /* PrintableString_SIZE_CONSTR5416640 */
506 static int hf_x411_numeric_code = -1;             /* AddrNumericString */
507 static int hf_x411_printable_code = -1;           /* PrintableString_SIZE_1_ub_postal_code_length */
508 static int hf_x411_printable_address = -1;        /* T_printable_address */
509 static int hf_x411_printable_address_item = -1;   /* PrintableString_SIZE_1_ub_pds_parameter_length */
510 static int hf_x411_teletex_string = -1;           /* TeletexString_SIZE_1_ub_unformatted_address_length */
511 static int hf_x411_printable_string = -1;         /* PrintableString_SIZE_1_ub_pds_parameter_length */
512 static int hf_x411_pds_teletex_string = -1;       /* TeletexString_SIZE_1_ub_pds_parameter_length */
513 static int hf_x411_e163_4_address = -1;           /* T_e163_4_address */
514 static int hf_x411_number = -1;                   /* NumericString_SIZE_1_ub_e163_4_number_length */
515 static int hf_x411_sub_address = -1;              /* NumericString_SIZE_1_ub_e163_4_sub_address_length */
516 static int hf_x411_psap_address = -1;             /* PresentationAddress */
517 static int hf_x411_TeletexDomainDefinedAttributes_item = -1;  /* TeletexDomainDefinedAttribute */
518 static int hf_x411_type = -1;                     /* AddrTeletexString */
519 static int hf_x411_teletex_value = -1;            /* AddrTeletexString */
520 static int hf_x411_UniversalDomainDefinedAttributes_item = -1;  /* UniversalDomainDefinedAttribute */
521 static int hf_x411_universal_type = -1;           /* UniversalOrBMPString */
522 static int hf_x411_universal_value = -1;          /* UniversalOrBMPString */
523 static int hf_x411_ExtendedEncodedInformationTypes_item = -1;  /* ExtendedEncodedInformationType */
524 static int hf_x411_g3_facsimile = -1;             /* G3FacsimileNonBasicParameters */
525 static int hf_x411_teletex = -1;                  /* TeletexNonBasicParameters */
526 static int hf_x411_graphic_character_sets = -1;   /* TeletexString */
527 static int hf_x411_control_character_sets = -1;   /* TeletexString */
528 static int hf_x411_page_formats = -1;             /* OCTET_STRING */
529 static int hf_x411_miscellaneous_terminal_capabilities = -1;  /* TeletexString */
530 static int hf_x411_private_use = -1;              /* OCTET_STRING */
531 static int hf_x411_token_type_identifier = -1;    /* TokenTypeIdentifier */
532 static int hf_x411_token = -1;                    /* TokenTypeData */
533 static int hf_x411_signature_algorithm_identifier = -1;  /* AlgorithmIdentifier */
534 static int hf_x411_name = -1;                     /* T_name */
535 static int hf_x411_token_recipient_name = -1;     /* RecipientName */
536 static int hf_x411_token_mta = -1;                /* MTANameAndOptionalGDI */
537 static int hf_x411_time = -1;                     /* Time */
538 static int hf_x411_signed_data = -1;              /* TokenData */
539 static int hf_x411_encryption_algorithm_identifier = -1;  /* AlgorithmIdentifier */
540 static int hf_x411_encrypted_data = -1;           /* BIT_STRING */
541 static int hf_x411_asymmetric_token_data = -1;    /* AsymmetricTokenData */
542 static int hf_x411_algorithm_identifier = -1;     /* AlgorithmIdentifier */
543 static int hf_x411_token_data_type = -1;          /* TokenDataType */
544 static int hf_x411_value = -1;                    /* T_value */
545 static int hf_x411_content_confidentiality_algorithm_identifier = -1;  /* ContentConfidentialityAlgorithmIdentifier */
546 static int hf_x411_content_integrity_check = -1;  /* ContentIntegrityCheck */
547 static int hf_x411_message_security_label = -1;   /* MessageSecurityLabel */
548 static int hf_x411_proof_of_delivery_request = -1;  /* ProofOfDeliveryRequest */
549 static int hf_x411_message_sequence_number = -1;  /* INTEGER */
550 static int hf_x411_content_confidentiality_key = -1;  /* EncryptionKey */
551 static int hf_x411_content_integrity_key = -1;    /* EncryptionKey */
552 static int hf_x411_security_policy_identifier = -1;  /* SecurityPolicyIdentifier */
553 static int hf_x411_security_classification = -1;  /* SecurityClassification */
554 static int hf_x411_privacy_mark = -1;             /* PrivacyMark */
555 static int hf_x411_security_categories = -1;      /* SecurityCategories */
556 static int hf_x411_SecurityCategories_item = -1;  /* SecurityCategory */
557 static int hf_x411_category_type = -1;            /* SecurityCategoryIdentifier */
558 static int hf_x411_category_value = -1;           /* CategoryValue */
559 static int hf_x411_rtorq_apdu = -1;               /* RTORQapdu */
560 static int hf_x411_rtoac_apdu = -1;               /* RTOACapdu */
561 static int hf_x411_rtorj_apdu = -1;               /* RTORJapdu */
562 static int hf_x411_rttp_apdu = -1;                /* RTTPapdu */
563 static int hf_x411_rttr_apdu = -1;                /* RTTRapdu */
564 static int hf_x411_rtab_apdu = -1;                /* RTABapdu */
565 static int hf_x411_abortReason = -1;              /* AbortReason */
566 static int hf_x411_reflectedParameter = -1;       /* BIT_STRING */
567 static int hf_x411_userdataAB = -1;               /* OBJECT_IDENTIFIER */
568 static int hf_x411_mta_originator_name = -1;      /* MTAOriginatorName */
569 static int hf_x411_per_recipient_message_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields */
570 static int hf_x411_per_recipient_message_fields_item = -1;  /* PerRecipientMessageTransferFields */
571 static int hf_x411_per_recipient_probe_transfer_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields */
572 static int hf_x411_per_recipient_probe_transfer_fields_item = -1;  /* PerRecipientProbeTransferFields */
573 static int hf_x411_per_recipient_report_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields */
574 static int hf_x411_per_recipient_report_fields_item = -1;  /* PerRecipientReportTransferFields */
575 static int hf_x411_routing_action = -1;           /* RoutingAction */
576 static int hf_x411_attempted = -1;                /* T_attempted */
577 static int hf_x411_mta = -1;                      /* MTAName */
578 static int hf_x411_attempted_domain = -1;         /* GlobalDomainIdentifier */
579 static int hf_x411_per_recipient_report_delivery_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields */
580 static int hf_x411_per_recipient_report_delivery_fields_item = -1;  /* PerRecipientReportDeliveryFields */
581 static int hf_x411_mts_originator_name = -1;      /* OriginatorName */
582 static int hf_x411_per_recipient_message_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields */
583 static int hf_x411_per_recipient_message_submission_fields_item = -1;  /* PerRecipientMessageSubmissionFields */
584 static int hf_x411_per_recipient_probe_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields */
585 static int hf_x411_per_recipient_probe_submission_fields_item = -1;  /* PerRecipientProbeSubmissionFields */
586 static int hf_x411_directory_name = -1;           /* Name */
587 static int hf_x411_built_in_encoded_information_types = -1;  /* BuiltInEncodedInformationTypes */
588 static int hf_x411_extended_encoded_information_types = -1;  /* ExtendedEncodedInformationTypes */
589 /* named bits */
590 static int hf_x411_PerRecipientIndicators_responsibility = -1;
591 static int hf_x411_PerRecipientIndicators_originating_MTA_report = -1;
592 static int hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report = -1;
593 static int hf_x411_PerRecipientIndicators_originator_report = -1;
594 static int hf_x411_PerRecipientIndicators_originator_non_delivery_report = -1;
595 static int hf_x411_PerRecipientIndicators_reserved_5 = -1;
596 static int hf_x411_PerRecipientIndicators_reserved_6 = -1;
597 static int hf_x411_PerRecipientIndicators_reserved_7 = -1;
598 static int hf_x411_OtherActions_redirected = -1;
599 static int hf_x411_OtherActions_dl_operation = -1;
600 static int hf_x411_Operations_probe_submission_or_report_delivery = -1;
601 static int hf_x411_Operations_message_submission_or_message_delivery = -1;
602 static int hf_x411_WaitingMessages_long_content = -1;
603 static int hf_x411_WaitingMessages_low_priority = -1;
604 static int hf_x411_WaitingMessages_other_security_labels = -1;
605 static int hf_x411_T_source_type_originated_by = -1;
606 static int hf_x411_T_source_type_redirected_by = -1;
607 static int hf_x411_T_source_type_dl_expanded_by = -1;
608 static int hf_x411_T_standard_parameters_user_name = -1;
609 static int hf_x411_T_standard_parameters_user_address = -1;
610 static int hf_x411_T_standard_parameters_deliverable_class = -1;
611 static int hf_x411_T_standard_parameters_default_delivery_controls = -1;
612 static int hf_x411_T_standard_parameters_redirections = -1;
613 static int hf_x411_T_standard_parameters_restricted_delivery = -1;
614 static int hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients = -1;
615 static int hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited = -1;
616 static int hf_x411_PerMessageIndicators_U_alternate_recipient_allowed = -1;
617 static int hf_x411_PerMessageIndicators_U_content_return_request = -1;
618 static int hf_x411_PerMessageIndicators_U_reserved = -1;
619 static int hf_x411_PerMessageIndicators_U_bit_5 = -1;
620 static int hf_x411_PerMessageIndicators_U_bit_6 = -1;
621 static int hf_x411_PerMessageIndicators_U_service_message = -1;
622 static int hf_x411_OriginatorReportRequest_report = -1;
623 static int hf_x411_OriginatorReportRequest_non_delivery_report = -1;
624 static int hf_x411_DeliveryFlags_implicit_conversion_prohibited = -1;
625 static int hf_x411_Criticality_for_submission = -1;
626 static int hf_x411_Criticality_for_transfer = -1;
627 static int hf_x411_Criticality_for_delivery = -1;
628 static int hf_x411_PhysicalDeliveryModes_ordinary_mail = -1;
629 static int hf_x411_PhysicalDeliveryModes_special_delivery = -1;
630 static int hf_x411_PhysicalDeliveryModes_express_mail = -1;
631 static int hf_x411_PhysicalDeliveryModes_counter_collection = -1;
632 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice = -1;
633 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice = -1;
634 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice = -1;
635 static int hf_x411_PhysicalDeliveryModes_bureau_fax_delivery = -1;
636 static int hf_x411_BuiltInEncodedInformationTypes_unknown = -1;
637 static int hf_x411_BuiltInEncodedInformationTypes_ia5_text = -1;
638 static int hf_x411_BuiltInEncodedInformationTypes_g3_facsimile = -1;
639 static int hf_x411_BuiltInEncodedInformationTypes_g4_class_1 = -1;
640 static int hf_x411_BuiltInEncodedInformationTypes_teletex = -1;
641 static int hf_x411_BuiltInEncodedInformationTypes_videotex = -1;
642 static int hf_x411_BuiltInEncodedInformationTypes_voice = -1;
643 static int hf_x411_BuiltInEncodedInformationTypes_sfd = -1;
644 static int hf_x411_BuiltInEncodedInformationTypes_mixed_mode = -1;
645 static int hf_x411_G3FacsimileNonBasicParameters_two_dimensional = -1;
646 static int hf_x411_G3FacsimileNonBasicParameters_fine_resolution = -1;
647 static int hf_x411_G3FacsimileNonBasicParameters_unlimited_length = -1;
648 static int hf_x411_G3FacsimileNonBasicParameters_b4_length = -1;
649 static int hf_x411_G3FacsimileNonBasicParameters_a3_width = -1;
650 static int hf_x411_G3FacsimileNonBasicParameters_b4_width = -1;
651 static int hf_x411_G3FacsimileNonBasicParameters_t6_coding = -1;
652 static int hf_x411_G3FacsimileNonBasicParameters_uncompressed = -1;
653 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728 = -1;
654 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728 = -1;
655 static int hf_x411_G3FacsimileNonBasicParameters_resolution_type = -1;
656 static int hf_x411_G3FacsimileNonBasicParameters_resolution_400x400 = -1;
657 static int hf_x411_G3FacsimileNonBasicParameters_resolution_300x300 = -1;
658 static int hf_x411_G3FacsimileNonBasicParameters_resolution_8x15 = -1;
659 static int hf_x411_G3FacsimileNonBasicParameters_edi = -1;
660 static int hf_x411_G3FacsimileNonBasicParameters_dtm = -1;
661 static int hf_x411_G3FacsimileNonBasicParameters_bft = -1;
662 static int hf_x411_G3FacsimileNonBasicParameters_mixed_mode = -1;
663 static int hf_x411_G3FacsimileNonBasicParameters_character_mode = -1;
664 static int hf_x411_G3FacsimileNonBasicParameters_twelve_bits = -1;
665 static int hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann = -1;
666 static int hf_x411_G3FacsimileNonBasicParameters_full_colour = -1;
667 static int hf_x411_G3FacsimileNonBasicParameters_jpeg = -1;
668 static int hf_x411_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
669
670 /*--- End of included file: packet-x411-hf.c ---*/
671 #line 85 "packet-x411-template.c"
672
673 /* Initialize the subtree pointers */
674 static gint ett_x411 = -1;
675 static gint ett_p3 = -1;
676 static gint ett_x411_content_unknown = -1;
677 static gint ett_x411_bilateral_information = -1;
678 static gint ett_x411_additional_information = -1;
679 static gint ett_x411_unknown_standard_extension = -1;
680 static gint ett_x411_unknown_extension_attribute_type = -1;
681 static gint ett_x411_unknown_tokendata_type = -1;
682
683 /*--- Included file: packet-x411-ett.c ---*/
684 #line 1 "packet-x411-ett.c"
685 static gint ett_x411_MTABindArgument = -1;
686 static gint ett_x411_AuthenticatedArgument = -1;
687 static gint ett_x411_MTABindResult = -1;
688 static gint ett_x411_AuthenticatedResult = -1;
689 static gint ett_x411_MTS_APDU = -1;
690 static gint ett_x411_Message = -1;
691 static gint ett_x411_Report = -1;
692 static gint ett_x411_MessageTransferEnvelope = -1;
693 static gint ett_x411_PerMessageTransferFields = -1;
694 static gint ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation = -1;
695 static gint ett_x411_SET_OF_ExtensionField = -1;
696 static gint ett_x411_PerRecipientMessageTransferFields = -1;
697 static gint ett_x411_ProbeTransferEnvelope = -1;
698 static gint ett_x411_PerProbeTransferFields = -1;
699 static gint ett_x411_PerRecipientProbeTransferFields = -1;
700 static gint ett_x411_ReportTransferEnvelope = -1;
701 static gint ett_x411_ReportTransferContent = -1;
702 static gint ett_x411_PerReportTransferFields = -1;
703 static gint ett_x411_PerRecipientReportTransferFields = -1;
704 static gint ett_x411_PerDomainBilateralInformation = -1;
705 static gint ett_x411_T_bilateral_domain = -1;
706 static gint ett_x411_T_private_domain = -1;
707 static gint ett_x411_BilateralDomain = -1;
708 static gint ett_x411_T_domain = -1;
709 static gint ett_x411_T_private_domain_01 = -1;
710 static gint ett_x411_PerRecipientIndicators = -1;
711 static gint ett_x411_LastTraceInformation = -1;
712 static gint ett_x411_InternalTraceInformation = -1;
713 static gint ett_x411_InternalTraceInformationElement = -1;
714 static gint ett_x411_MTASuppliedInformation = -1;
715 static gint ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement = -1;
716 static gint ett_x411_TraceInformationElement = -1;
717 static gint ett_x411_DomainSuppliedInformation = -1;
718 static gint ett_x411_AdditionalActions = -1;
719 static gint ett_x411_OtherActions = -1;
720 static gint ett_x411_MTSBindArgument = -1;
721 static gint ett_x411_MTSBindResult = -1;
722 static gint ett_x411_ObjectName = -1;
723 static gint ett_x411_MessagesWaiting = -1;
724 static gint ett_x411_DeliveryQueue = -1;
725 static gint ett_x411_Credentials = -1;
726 static gint ett_x411_Password = -1;
727 static gint ett_x411_StrongCredentials = -1;
728 static gint ett_x411_ProtectedPassword = -1;
729 static gint ett_x411_Signature = -1;
730 static gint ett_x411_SecurityContext = -1;
731 static gint ett_x411_MessageSubmissionArgument = -1;
732 static gint ett_x411_MessageSubmissionResult = -1;
733 static gint ett_x411_ProbeSubmissionResult = -1;
734 static gint ett_x411_ImproperlySpecifiedRecipients = -1;
735 static gint ett_x411_Waiting = -1;
736 static gint ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType = -1;
737 static gint ett_x411_Operations = -1;
738 static gint ett_x411_WaitingMessages = -1;
739 static gint ett_x411_MessageDeliveryArgument = -1;
740 static gint ett_x411_MessageDeliveryResult = -1;
741 static gint ett_x411_ReportDeliveryArgument = -1;
742 static gint ett_x411_ReportDeliveryResult = -1;
743 static gint ett_x411_SET_SIZE_1_MAX_OF_ExtensionField = -1;
744 static gint ett_x411_DeliveryControlArgument = -1;
745 static gint ett_x411_DeliveryControlResult = -1;
746 static gint ett_x411_RefusedOperation = -1;
747 static gint ett_x411_T_refused_argument = -1;
748 static gint ett_x411_Controls = -1;
749 static gint ett_x411_RegisterArgument = -1;
750 static gint ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass = -1;
751 static gint ett_x411_RegisterResult = -1;
752 static gint ett_x411_T_non_empty_result = -1;
753 static gint ett_x411_ChangeCredentialsArgument = -1;
754 static gint ett_x411_UserAddress = -1;
755 static gint ett_x411_T_x121 = -1;
756 static gint ett_x411_Redirections = -1;
757 static gint ett_x411_RecipientRedirection = -1;
758 static gint ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass = -1;
759 static gint ett_x411_MessageClass = -1;
760 static gint ett_x411_SET_OF_Priority = -1;
761 static gint ett_x411_SEQUENCE_OF_Restriction = -1;
762 static gint ett_x411_EncodedInformationTypesConstraints = -1;
763 static gint ett_x411_RestrictedDelivery = -1;
764 static gint ett_x411_Restriction = -1;
765 static gint ett_x411_T_source_type = -1;
766 static gint ett_x411_ExactOrPattern = -1;
767 static gint ett_x411_RegistrationTypes = -1;
768 static gint ett_x411_T_standard_parameters = -1;
769 static gint ett_x411_T_type_extensions = -1;
770 static gint ett_x411_MessageSubmissionEnvelope = -1;
771 static gint ett_x411_PerMessageSubmissionFields = -1;
772 static gint ett_x411_PerRecipientMessageSubmissionFields = -1;
773 static gint ett_x411_ProbeSubmissionEnvelope = -1;
774 static gint ett_x411_PerProbeSubmissionFields = -1;
775 static gint ett_x411_PerRecipientProbeSubmissionFields = -1;
776 static gint ett_x411_MessageDeliveryEnvelope = -1;
777 static gint ett_x411_OtherMessageDeliveryFields = -1;
778 static gint ett_x411_ReportDeliveryEnvelope = -1;
779 static gint ett_x411_PerReportDeliveryFields = -1;
780 static gint ett_x411_PerRecipientReportDeliveryFields = -1;
781 static gint ett_x411_ReportType = -1;
782 static gint ett_x411_DeliveryReport = -1;
783 static gint ett_x411_NonDeliveryReport = -1;
784 static gint ett_x411_ContentTypes = -1;
785 static gint ett_x411_ContentType = -1;
786 static gint ett_x411_DeliveredContentType = -1;
787 static gint ett_x411_PerMessageIndicators_U = -1;
788 static gint ett_x411_OriginatorReportRequest = -1;
789 static gint ett_x411_DeliveryFlags = -1;
790 static gint ett_x411_OtherRecipientNames = -1;
791 static gint ett_x411_ExtensionType = -1;
792 static gint ett_x411_Criticality = -1;
793 static gint ett_x411_ExtensionField = -1;
794 static gint ett_x411_RequestedDeliveryMethod = -1;
795 static gint ett_x411_PhysicalDeliveryModes = -1;
796 static gint ett_x411_ContentCorrelator = -1;
797 static gint ett_x411_RedirectionHistory = -1;
798 static gint ett_x411_Redirection = -1;
799 static gint ett_x411_IntendedRecipientName = -1;
800 static gint ett_x411_DLExpansionHistory = -1;
801 static gint ett_x411_DLExpansion = -1;
802 static gint ett_x411_OriginatorAndDLExpansionHistory = -1;
803 static gint ett_x411_OriginatorAndDLExpansion = -1;
804 static gint ett_x411_PerRecipientReportFields = -1;
805 static gint ett_x411_T_report_type = -1;
806 static gint ett_x411_PerRecipientDeliveryReportFields = -1;
807 static gint ett_x411_PerRecipientNonDeliveryReportFields = -1;
808 static gint ett_x411_ReportingMTAName = -1;
809 static gint ett_x411_ExtendedCertificates = -1;
810 static gint ett_x411_ExtendedCertificate = -1;
811 static gint ett_x411_DLExemptedRecipients = -1;
812 static gint ett_x411_CertificateSelectors = -1;
813 static gint ett_x411_MTSIdentifier_U = -1;
814 static gint ett_x411_GlobalDomainIdentifier_U = -1;
815 static gint ett_x411_PrivateDomainIdentifier = -1;
816 static gint ett_x411_ORName_U = -1;
817 static gint ett_x411_ORAddress = -1;
818 static gint ett_x411_BuiltInStandardAttributes = -1;
819 static gint ett_x411_CountryName_U = -1;
820 static gint ett_x411_AdministrationDomainName_U = -1;
821 static gint ett_x411_PrivateDomainName = -1;
822 static gint ett_x411_PersonalName = -1;
823 static gint ett_x411_OrganizationalUnitNames = -1;
824 static gint ett_x411_BuiltInDomainDefinedAttributes = -1;
825 static gint ett_x411_BuiltInDomainDefinedAttribute = -1;
826 static gint ett_x411_ExtensionAttributes = -1;
827 static gint ett_x411_ExtensionAttribute = -1;
828 static gint ett_x411_TeletexPersonalName = -1;
829 static gint ett_x411_UniversalPersonalName = -1;
830 static gint ett_x411_TeletexOrganizationalUnitNames = -1;
831 static gint ett_x411_UniversalOrganizationalUnitNames = -1;
832 static gint ett_x411_UniversalOrBMPString = -1;
833 static gint ett_x411_T_character_encoding = -1;
834 static gint ett_x411_PhysicalDeliveryCountryName = -1;
835 static gint ett_x411_PostalCode = -1;
836 static gint ett_x411_UnformattedPostalAddress = -1;
837 static gint ett_x411_T_printable_address = -1;
838 static gint ett_x411_PDSParameter = -1;
839 static gint ett_x411_ExtendedNetworkAddress = -1;
840 static gint ett_x411_T_e163_4_address = -1;
841 static gint ett_x411_TeletexDomainDefinedAttributes = -1;
842 static gint ett_x411_TeletexDomainDefinedAttribute = -1;
843 static gint ett_x411_UniversalDomainDefinedAttributes = -1;
844 static gint ett_x411_UniversalDomainDefinedAttribute = -1;
845 static gint ett_x411_EncodedInformationTypes_U = -1;
846 static gint ett_x411_BuiltInEncodedInformationTypes = -1;
847 static gint ett_x411_ExtendedEncodedInformationTypes = -1;
848 static gint ett_x411_NonBasicParameters = -1;
849 static gint ett_x411_G3FacsimileNonBasicParameters = -1;
850 static gint ett_x411_TeletexNonBasicParameters = -1;
851 static gint ett_x411_Token = -1;
852 static gint ett_x411_AsymmetricTokenData = -1;
853 static gint ett_x411_T_name = -1;
854 static gint ett_x411_MTANameAndOptionalGDI = -1;
855 static gint ett_x411_AsymmetricToken = -1;
856 static gint ett_x411_TokenData = -1;
857 static gint ett_x411_MessageTokenSignedData = -1;
858 static gint ett_x411_MessageTokenEncryptedData = -1;
859 static gint ett_x411_SecurityLabel = -1;
860 static gint ett_x411_SecurityCategories = -1;
861 static gint ett_x411_SecurityCategory = -1;
862 static gint ett_x411_RTSE_apdus = -1;
863 static gint ett_x411_RTABapdu = -1;
864 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields = -1;
865 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields = -1;
866 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields = -1;
867 static gint ett_x411_T_attempted = -1;
868 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields = -1;
869 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields = -1;
870 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields = -1;
871
872 /*--- End of included file: packet-x411-ett.c ---*/
873 #line 96 "packet-x411-template.c"
874
875 /* Dissector tables */
876 static dissector_table_t x411_extension_dissector_table;
877 static dissector_table_t x411_extension_attribute_dissector_table;
878 static dissector_table_t x411_tokendata_dissector_table;
879
880
881 /*--- Included file: packet-x411-val.h ---*/
882 #line 1 "packet-x411-val.h"
883 #define op_message_submission          3
884 #define op_probe_submission            4
885 #define op_cancel_deferred_delivery    7
886 #define op_submission_control          2
887 #define err_submission_control_violated 1
888 #define err_element_of_service_not_subscribed 4
889 #define err_deferred_delivery_cancellation_rejected 8
890 #define err_originator_invalid         2
891 #define err_recipient_improperly_specified 3
892 #define err_message_submission_identifier_invalid 7
893 #define err_inconsistent_request       11
894 #define err_security_error             12
895 #define err_unsupported_critical_function 13
896 #define err_remote_bind_error          15
897 #define op_message_delivery            5
898 #define op_report_delivery             6
899 #define op_delivery_control            2
900 #define err_delivery_control_violated  1
901 #define err_control_violates_registration 14
902 #define err_operation_refused          16
903 #define op_register                    1
904 #define op_change_credentials          8
905 #define err_register_rejected          10
906 #define err_new_credentials_unacceptable 6
907 #define err_old_credentials_incorrectly_specified 5
908 #define id_mhs_protocols               "2.6.0"
909 #define id_mod                         id_mhs_protocols".0"
910 #define id_ac                          id_mhs_protocols".1"
911 #define id_as                          id_mhs_protocols".2"
912 #define id_ase                         id_mhs_protocols".3"
913 #define id_mod_object_identifiers      id_mod".0"
914 #define id_mod_mts_access_protocol     id_mod".1"
915 #define id_mod_ms_access_protocol      id_mod".2"
916 #define id_mod_mts_transfer_protocol   id_mod".3"
917 #define id_ac_mts_access_88            id_ac".0"
918 #define id_ac_mts_forced_access_88     id_ac".1"
919 #define id_ac_mts_reliable_access_88   id_ac".2"
920 #define id_ac_mts_forced_reliable_access_88 id_ac".3"
921 #define id_ac_mts_access_94            id_ac".7"
922 #define id_ac_mts_forced_access_94     id_ac".8"
923 #define id_ac_mts_reliable_access_94   id_ac".9"
924 #define id_ac_mts_forced_reliable_access_94 id_ac".10"
925 #define id_ac_ms_access_88             id_ac".4"
926 #define id_ac_ms_reliable_access_88    id_ac".5"
927 #define id_ac_ms_access_94             id_ac".11"
928 #define id_ac_ms_reliable_access_94    id_ac".12"
929 #define id_ac_mts_transfer             id_ac".6"
930 #define id_as_msse                     id_as".1"
931 #define id_as_mdse_88                  id_as".2"
932 #define id_as_mrse_88                  id_as".5"
933 #define id_as_mase_88                  id_as".6"
934 #define id_as_mtse                     id_as".7"
935 #define id_as_mts_rtse                 id_as".8"
936 #define id_as_ms_88                    id_as".9"
937 #define id_as_ms_rtse                  id_as".10"
938 #define id_as_mts                      id_as".11"
939 #define id_as_mta_rtse                 id_as".12"
940 #define id_as_ms_msse                  id_as".13"
941 #define id_as_mdse_94                  id_as".14"
942 #define id_as_mrse_94                  id_as".15"
943 #define id_as_mase_94                  id_as".16"
944 #define id_as_ms_94                    id_as".17"
945 #define id_ase_msse                    id_ase".0"
946 #define id_ase_mdse                    id_ase".1"
947 #define id_ase_mrse                    id_ase".2"
948 #define id_ase_mase                    id_ase".3"
949 #define id_ase_mtse                    id_ase".4"
950
951 /*--- End of included file: packet-x411-val.h ---*/
952 #line 103 "packet-x411-template.c"
953
954
955 /*--- Included file: packet-x411-table.c ---*/
956 #line 1 "packet-x411-table.c"
957
958 /* P3 ABSTRACT-OPERATIONS */
959 const value_string p3_opr_code_string_vals[] = {
960         { op_ros_bind, "mts_bind" },
961         { op_message_submission, "message_submission" },
962         { op_probe_submission, "probe_submission" },
963         { op_cancel_deferred_delivery, "cancel_deferred_delivery" },
964         { op_submission_control, "submission_control" },
965         { op_message_delivery, "message_delivery" },
966         { op_report_delivery, "report_delivery" },
967         { op_delivery_control, "delivery_control" },
968         { op_register, "register" },
969         { op_change_credentials, "change_credentials" },
970         { 0, NULL }
971 };
972
973
974 /* P3 ERRORS */
975 static const value_string p3_err_code_string_vals[] = {
976         { err_ros_bind, "mts_bind_error" },  
977         { err_submission_control_violated, "submission_control_violated" },  
978         { err_element_of_service_not_subscribed, "element_of_service_not_subscribed" },  
979         { err_deferred_delivery_cancellation_rejected, "deferred_delivery_cancellation_rejected" },  
980         { err_originator_invalid, "originator_invalid" },  
981         { err_recipient_improperly_specified, "recipient_improperly_specified" },  
982         { err_message_submission_identifier_invalid, "message_submission_identifier_invalid" },  
983         { err_inconsistent_request, "inconsistent_request" },  
984         { err_security_error, "security_error" },  
985         { err_unsupported_critical_function, "unsupported_critical_function" },  
986         { err_remote_bind_error, "remote_bind_error" },  
987         { err_delivery_control_violated, "delivery_control_violated" },  
988         { err_control_violates_registration, "control_violates_registration" },  
989         { err_operation_refused, "operation_refused" },  
990         { err_register_rejected, "register_rejected" },  
991         { err_new_credentials_unacceptable, "new_credentials_unacceptable" },  
992         { err_old_credentials_incorrectly_specified, "old_credentials_incorrectly_specified" },  
993           { 0, NULL }
994 };
995
996
997 /*--- End of included file: packet-x411-table.c ---*/
998 #line 105 "packet-x411-template.c"
999
1000
1001 /*--- Included file: packet-x411-fn.c ---*/
1002 #line 1 "packet-x411-fn.c"
1003
1004
1005 static int
1006 dissect_x411_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_) {
1007   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1008
1009   return offset;
1010 }
1011
1012
1013
1014 static int
1015 dissect_x411_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1016 #line 635 "x411.cnf"
1017         tvbuff_t        *mtaname = NULL;
1018
1019           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1020                                             actx, tree, tvb, offset, hf_index,
1021                                             &mtaname);
1022
1023
1024         if(doing_address) {
1025
1026                 proto_item_append_text(address_item, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
1027
1028         } else {
1029
1030         if (check_col(actx->pinfo->cinfo, COL_INFO) && mtaname) {
1031                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
1032         }
1033
1034         }
1035
1036
1037
1038   return offset;
1039 }
1040
1041
1042
1043 static int
1044 dissect_x411_IA5String_SIZE_0_ub_password_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1045   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1046                                             actx, tree, tvb, offset, hf_index,
1047                                             NULL);
1048
1049   return offset;
1050 }
1051
1052
1053
1054 static int
1055 dissect_x411_OCTET_STRING_SIZE_0_ub_password_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1056   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1057                                        NULL);
1058
1059   return offset;
1060 }
1061
1062
1063 static const value_string x411_Password_vals[] = {
1064   {   0, "ia5-string" },
1065   {   1, "octet-string" },
1066   { 0, NULL }
1067 };
1068
1069 static const ber_choice_t Password_choice[] = {
1070   {   0, &hf_x411_ia5_string     , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_IA5String_SIZE_0_ub_password_length },
1071   {   1, &hf_x411_octet_string   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_OCTET_STRING_SIZE_0_ub_password_length },
1072   { 0, NULL, 0, 0, 0, NULL }
1073 };
1074
1075 static int
1076 dissect_x411_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_) {
1077   offset = dissect_ber_choice(actx, tree, tvb, offset,
1078                                  Password_choice, hf_index, ett_x411_Password,
1079                                  NULL);
1080
1081   return offset;
1082 }
1083
1084
1085
1086 static int
1087 dissect_x411_TokenTypeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1088   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
1089
1090   return offset;
1091 }
1092
1093
1094
1095 static int
1096 dissect_x411_TokenTypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1097 #line 993 "x411.cnf"
1098         
1099         if(object_identifier_id) 
1100            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1101
1102
1103
1104   return offset;
1105 }
1106
1107
1108 static const ber_sequence_t Token_sequence[] = {
1109   { &hf_x411_token_type_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_TokenTypeIdentifier },
1110   { &hf_x411_token          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_TokenTypeData },
1111   { NULL, 0, 0, 0, NULL }
1112 };
1113
1114 static int
1115 dissect_x411_Token(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1117                                    Token_sequence, hf_index, ett_x411_Token);
1118
1119   return offset;
1120 }
1121
1122
1123 static const ber_sequence_t StrongCredentials_set[] = {
1124   { &hf_x411_bind_token     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Token },
1125   { &hf_x411_certificate    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
1126   { &hf_x411_certificate_selector, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1127   { NULL, 0, 0, 0, NULL }
1128 };
1129
1130 static int
1131 dissect_x411_StrongCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1132   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1133                               StrongCredentials_set, hf_index, ett_x411_StrongCredentials);
1134
1135   return offset;
1136 }
1137
1138
1139
1140 static int
1141 dissect_x411_BIT_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_) {
1142   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1143                                     NULL, hf_index, -1,
1144                                     NULL);
1145
1146   return offset;
1147 }
1148
1149
1150 static const ber_sequence_t Signature_sequence[] = {
1151   { &hf_x411_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1152   { &hf_x411_encrypted      , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_BIT_STRING },
1153   { NULL, 0, 0, 0, NULL }
1154 };
1155
1156 static int
1157 dissect_x411_Signature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1158   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1159                                    Signature_sequence, hf_index, ett_x411_Signature);
1160
1161   return offset;
1162 }
1163
1164
1165
1166 static int
1167 dissect_x411_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1168   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1169
1170   return offset;
1171 }
1172
1173
1174 static const ber_sequence_t ProtectedPassword_set[] = {
1175   { &hf_x411_signature      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_Signature },
1176   { &hf_x411_time1          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UTCTime },
1177   { &hf_x411_time2          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UTCTime },
1178   { &hf_x411_random1        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
1179   { &hf_x411_random2        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
1180   { NULL, 0, 0, 0, NULL }
1181 };
1182
1183 static int
1184 dissect_x411_ProtectedPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1185   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1186                               ProtectedPassword_set, hf_index, ett_x411_ProtectedPassword);
1187
1188   return offset;
1189 }
1190
1191
1192 const value_string x411_Credentials_vals[] = {
1193   {   0, "simple" },
1194   {   1, "strong" },
1195   {   2, "protected" },
1196   { 0, NULL }
1197 };
1198
1199 static const ber_choice_t Credentials_choice[] = {
1200   {   0, &hf_x411_simple         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_Password },
1201   {   1, &hf_x411_strong         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_StrongCredentials },
1202   {   2, &hf_x411_protected      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_ProtectedPassword },
1203   { 0, NULL, 0, 0, 0, NULL }
1204 };
1205
1206 int
1207 dissect_x411_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1208 #line 1001 "x411.cnf"
1209   gint credentials = -1;
1210
1211     offset = dissect_ber_choice(actx, tree, tvb, offset,
1212                                  Credentials_choice, hf_index, ett_x411_Credentials,
1213                                  &credentials);
1214
1215
1216   if( (credentials!=-1) && x411_Credentials_vals[credentials].strptr ){
1217     if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1218       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_Credentials_vals[credentials].strptr);
1219     }
1220   }
1221
1222
1223
1224   return offset;
1225 }
1226
1227
1228
1229 int
1230 dissect_x411_InitiatorCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1231   offset = dissect_x411_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1232
1233   return offset;
1234 }
1235
1236
1237
1238 static int
1239 dissect_x411_SecurityPolicyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1240   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1241
1242   return offset;
1243 }
1244
1245
1246 static const value_string x411_SecurityClassification_vals[] = {
1247   {   0, "unmarked" },
1248   {   1, "unclassified" },
1249   {   2, "restricted" },
1250   {   3, "confidential" },
1251   {   4, "secret" },
1252   {   5, "top-secret" },
1253   { 0, NULL }
1254 };
1255
1256
1257 static int
1258 dissect_x411_SecurityClassification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1259   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1260                                                 NULL);
1261
1262   return offset;
1263 }
1264
1265
1266
1267 static int
1268 dissect_x411_PrivacyMark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1269   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1270                                             actx, tree, tvb, offset, hf_index,
1271                                             NULL);
1272
1273   return offset;
1274 }
1275
1276
1277
1278 static int
1279 dissect_x411_SecurityCategoryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1280   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1281
1282   return offset;
1283 }
1284
1285
1286
1287 static int
1288 dissect_x411_SecurityCategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1289 #line 525 "x411.cnf"
1290
1291         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1292
1293
1294
1295   return offset;
1296 }
1297
1298
1299
1300 static int
1301 dissect_x411_CategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1302   offset = dissect_x411_SecurityCategoryValue(implicit_tag, tvb, offset, actx, tree, hf_index);
1303
1304   return offset;
1305 }
1306
1307
1308 static const ber_sequence_t SecurityCategory_sequence[] = {
1309   { &hf_x411_category_type  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_SecurityCategoryIdentifier },
1310   { &hf_x411_category_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_CategoryValue },
1311   { NULL, 0, 0, 0, NULL }
1312 };
1313
1314 static int
1315 dissect_x411_SecurityCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1316   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1317                                    SecurityCategory_sequence, hf_index, ett_x411_SecurityCategory);
1318
1319   return offset;
1320 }
1321
1322
1323 static const ber_sequence_t SecurityCategories_set_of[1] = {
1324   { &hf_x411_SecurityCategories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_SecurityCategory },
1325 };
1326
1327 static int
1328 dissect_x411_SecurityCategories(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1329   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1330                                  SecurityCategories_set_of, hf_index, ett_x411_SecurityCategories);
1331
1332   return offset;
1333 }
1334
1335
1336 static const ber_sequence_t SecurityLabel_set[] = {
1337   { &hf_x411_security_policy_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityPolicyIdentifier },
1338   { &hf_x411_security_classification, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityClassification },
1339   { &hf_x411_privacy_mark   , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrivacyMark },
1340   { &hf_x411_security_categories, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityCategories },
1341   { NULL, 0, 0, 0, NULL }
1342 };
1343
1344 int
1345 dissect_x411_SecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1346   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1347                               SecurityLabel_set, hf_index, ett_x411_SecurityLabel);
1348
1349   return offset;
1350 }
1351
1352
1353 static const ber_sequence_t SecurityContext_set_of[1] = {
1354   { &hf_x411_SecurityContext_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_SecurityLabel },
1355 };
1356
1357 int
1358 dissect_x411_SecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1359   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1360                                  SecurityContext_set_of, hf_index, ett_x411_SecurityContext);
1361
1362   return offset;
1363 }
1364
1365
1366 static const ber_sequence_t AuthenticatedArgument_set[] = {
1367   { &hf_x411_authenticated_initiator_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
1368   { &hf_x411_initiator_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_InitiatorCredentials },
1369   { &hf_x411_security_context, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
1370   { NULL, 0, 0, 0, NULL }
1371 };
1372
1373 static int
1374 dissect_x411_AuthenticatedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1375   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1376                               AuthenticatedArgument_set, hf_index, ett_x411_AuthenticatedArgument);
1377
1378   return offset;
1379 }
1380
1381
1382 static const value_string x411_MTABindArgument_vals[] = {
1383   {   0, "unauthenticated" },
1384   {   1, "authenticated" },
1385   { 0, NULL }
1386 };
1387
1388 static const ber_choice_t MTABindArgument_choice[] = {
1389   {   0, &hf_x411_unauthenticated, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
1390   {   1, &hf_x411_authenticated_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_AuthenticatedArgument },
1391   { 0, NULL, 0, 0, 0, NULL }
1392 };
1393
1394 static int
1395 dissect_x411_MTABindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1396   offset = dissect_ber_choice(actx, tree, tvb, offset,
1397                                  MTABindArgument_choice, hf_index, ett_x411_MTABindArgument,
1398                                  NULL);
1399
1400   return offset;
1401 }
1402
1403
1404
1405 int
1406 dissect_x411_ResponderCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1407   offset = dissect_x411_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1408
1409   return offset;
1410 }
1411
1412
1413 static const ber_sequence_t AuthenticatedResult_set[] = {
1414   { &hf_x411_authenticated_responder_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
1415   { &hf_x411_responder_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ResponderCredentials },
1416   { NULL, 0, 0, 0, NULL }
1417 };
1418
1419 static int
1420 dissect_x411_AuthenticatedResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1421   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1422                               AuthenticatedResult_set, hf_index, ett_x411_AuthenticatedResult);
1423
1424   return offset;
1425 }
1426
1427
1428 static const value_string x411_MTABindResult_vals[] = {
1429   {   0, "unauthenticated" },
1430   {   1, "authenticated" },
1431   { 0, NULL }
1432 };
1433
1434 static const ber_choice_t MTABindResult_choice[] = {
1435   {   0, &hf_x411_unauthenticated, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
1436   {   1, &hf_x411_authenticated_result, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_AuthenticatedResult },
1437   { 0, NULL, 0, 0, 0, NULL }
1438 };
1439
1440 static int
1441 dissect_x411_MTABindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1442   offset = dissect_ber_choice(actx, tree, tvb, offset,
1443                                  MTABindResult_choice, hf_index, ett_x411_MTABindResult,
1444                                  NULL);
1445
1446   return offset;
1447 }
1448
1449
1450 static const value_string x411_MTABindError_vals[] = {
1451   {   0, "busy" },
1452   {   2, "authentication-error" },
1453   {   3, "unacceptable-dialogue-mode" },
1454   {   4, "unacceptable-security-context" },
1455   {   5, "inadequate-association-confidentiality" },
1456   { 0, NULL }
1457 };
1458
1459
1460 static int
1461 dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1462 #line 984 "x411.cnf"
1463   int error = -1;
1464     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1465                                                 &error);
1466
1467   if((error != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
1468     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, x411_MTABindError_vals, "error(%d)"));
1469
1470
1471
1472   return offset;
1473 }
1474
1475
1476
1477 static int
1478 dissect_x411_AddrNumericString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1479 #line 746 "x411.cnf"
1480         tvbuff_t        *nstring = NULL;
1481
1482           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1483                                             actx, tree, tvb, offset, hf_index,
1484                                             &nstring);
1485
1486
1487         if(doing_address && nstring)
1488                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1489
1490
1491
1492   return offset;
1493 }
1494
1495
1496
1497 static int
1498 dissect_x411_AddrPrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1499 #line 735 "x411.cnf"
1500         tvbuff_t        *nstring = NULL;
1501
1502           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1503                                             actx, tree, tvb, offset, hf_index,
1504                                             &nstring);
1505
1506
1507         if(doing_address && nstring)
1508                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1509
1510
1511
1512   return offset;
1513 }
1514
1515
1516 static const value_string x411_CountryName_U_vals[] = {
1517   {   0, "x121-dcc-code" },
1518   {   1, "iso-3166-alpha2-code" },
1519   { 0, NULL }
1520 };
1521
1522 static const ber_choice_t CountryName_U_choice[] = {
1523   {   0, &hf_x411_x121_dcc_code  , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
1524   {   1, &hf_x411_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrPrintableString },
1525   { 0, NULL, 0, 0, 0, NULL }
1526 };
1527
1528 static int
1529 dissect_x411_CountryName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1530   offset = dissect_ber_choice(actx, tree, tvb, offset,
1531                                  CountryName_U_choice, hf_index, ett_x411_CountryName_U,
1532                                  NULL);
1533
1534   return offset;
1535 }
1536
1537
1538
1539 static int
1540 dissect_x411_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1541 #line 552 "x411.cnf"
1542  if(doing_address)
1543     g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
1544  
1545    offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1546                                       hf_index, BER_CLASS_APP, 1, TRUE, dissect_x411_CountryName_U);
1547
1548
1549
1550
1551
1552   return offset;
1553 }
1554
1555
1556 static const value_string x411_AdministrationDomainName_U_vals[] = {
1557   {   0, "numeric" },
1558   {   1, "printable" },
1559   { 0, NULL }
1560 };
1561
1562 static const ber_choice_t AdministrationDomainName_U_choice[] = {
1563   {   0, &hf_x411_numeric        , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
1564   {   1, &hf_x411_printable      , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrPrintableString },
1565   { 0, NULL, 0, 0, 0, NULL }
1566 };
1567
1568 static int
1569 dissect_x411_AdministrationDomainName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1570   offset = dissect_ber_choice(actx, tree, tvb, offset,
1571                                  AdministrationDomainName_U_choice, hf_index, ett_x411_AdministrationDomainName_U,
1572                                  NULL);
1573
1574   return offset;
1575 }
1576
1577
1578
1579 static int
1580 dissect_x411_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1581 #line 559 "x411.cnf"
1582   if(doing_address)
1583     g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
1584
1585    offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1586                                       hf_index, BER_CLASS_APP, 2, TRUE, dissect_x411_AdministrationDomainName_U);
1587
1588
1589
1590
1591
1592   return offset;
1593 }
1594
1595
1596 static const value_string x411_PrivateDomainIdentifier_vals[] = {
1597   {   0, "numeric" },
1598   {   1, "printable" },
1599   { 0, NULL }
1600 };
1601
1602 static const ber_choice_t PrivateDomainIdentifier_choice[] = {
1603   {   0, &hf_x411_numeric_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
1604   {   1, &hf_x411_printable_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrPrintableString },
1605   { 0, NULL, 0, 0, 0, NULL }
1606 };
1607
1608 static int
1609 dissect_x411_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1610 #line 686 "x411.cnf"
1611
1612         if(doing_address)
1613                 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1614
1615           offset = dissect_ber_choice(actx, tree, tvb, offset,
1616                                  PrivateDomainIdentifier_choice, hf_index, ett_x411_PrivateDomainIdentifier,
1617                                  NULL);
1618
1619
1620
1621
1622   return offset;
1623 }
1624
1625
1626 static const ber_sequence_t GlobalDomainIdentifier_U_sequence[] = {
1627   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
1628   { &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
1629   { &hf_x411_private_domain_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
1630   { NULL, 0, 0, 0, NULL }
1631 };
1632
1633 static int
1634 dissect_x411_GlobalDomainIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1635   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1636                                    GlobalDomainIdentifier_U_sequence, hf_index, ett_x411_GlobalDomainIdentifier_U);
1637
1638   return offset;
1639 }
1640
1641
1642
1643 static int
1644 dissect_x411_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1645 #line 864 "x411.cnf"
1646         
1647         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
1648         address_item = tree;
1649
1650           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1651                                       hf_index, BER_CLASS_APP, 3, TRUE, dissect_x411_GlobalDomainIdentifier_U);
1652
1653
1654         if(*oraddress) {
1655                 proto_item_append_text(address_item, " (%s/", oraddress);
1656
1657                 if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) {
1658                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s/", oraddress);
1659                 }
1660         }
1661
1662
1663
1664
1665   return offset;
1666 }
1667
1668
1669
1670 static int
1671 dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1672 #line 883 "x411.cnf"
1673         tvbuff_t        *id = NULL;
1674         
1675           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1676                                             actx, tree, tvb, offset, hf_index,
1677                                             &id);
1678
1679         
1680         if(id) {
1681           if(doing_address) 
1682                   proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1683
1684           if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) 
1685                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1686         }
1687
1688
1689
1690   return offset;
1691 }
1692
1693
1694 static const ber_sequence_t MTSIdentifier_U_sequence[] = {
1695   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
1696   { &hf_x411_local_identifier, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_LocalIdentifier },
1697   { NULL, 0, 0, 0, NULL }
1698 };
1699
1700 static int
1701 dissect_x411_MTSIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1702   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1703                                    MTSIdentifier_U_sequence, hf_index, ett_x411_MTSIdentifier_U);
1704
1705   return offset;
1706 }
1707
1708
1709
1710 static int
1711 dissect_x411_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1712 #line 896 "x411.cnf"
1713
1714         doing_address = TRUE;
1715
1716         if(hf_index == hf_x411_subject_identifier)
1717                 doing_subjectid = TRUE;
1718
1719           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1720                                       hf_index, BER_CLASS_APP, 4, TRUE, dissect_x411_MTSIdentifier_U);
1721
1722
1723         doing_address = FALSE;
1724
1725         if(hf_index == hf_x411_subject_identifier)
1726                 doing_subjectid = FALSE;
1727
1728
1729
1730
1731   return offset;
1732 }
1733
1734
1735
1736 static int
1737 dissect_x411_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1738 #line 858 "x411.cnf"
1739
1740         address_item = NULL;
1741
1742           offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
1743
1744
1745
1746
1747   return offset;
1748 }
1749
1750
1751
1752 static int
1753 dissect_x411_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1754 #line 655 "x411.cnf"
1755         tvbuff_t        *string = NULL;
1756
1757           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1758                                             actx, tree, tvb, offset, hf_index,
1759                                             &string);
1760
1761
1762         if(doing_address && string) {
1763                 g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
1764                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1765         }
1766
1767
1768
1769
1770   return offset;
1771 }
1772
1773
1774
1775 static int
1776 dissect_x411_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1777   offset = dissect_x411_X121Address(implicit_tag, tvb, offset, actx, tree, hf_index);
1778
1779   return offset;
1780 }
1781
1782
1783
1784 static int
1785 dissect_x411_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1786 #line 669 "x411.cnf"
1787         tvbuff_t        *string = NULL;
1788
1789           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1790                                             actx, tree, tvb, offset, hf_index,
1791                                             &string);
1792
1793
1794         if(doing_address && string) {
1795                 g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
1796                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1797         }
1798
1799
1800
1801   return offset;
1802 }
1803
1804
1805 static const value_string x411_PrivateDomainName_vals[] = {
1806   {   0, "numeric" },
1807   {   1, "printable" },
1808   { 0, NULL }
1809 };
1810
1811 static const ber_choice_t PrivateDomainName_choice[] = {
1812   {   0, &hf_x411_numeric_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
1813   {   1, &hf_x411_printable_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrPrintableString },
1814   { 0, NULL, 0, 0, 0, NULL }
1815 };
1816
1817 static int
1818 dissect_x411_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1819 #line 679 "x411.cnf"
1820
1821         if(doing_address)
1822                 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1823
1824           offset = dissect_ber_choice(actx, tree, tvb, offset,
1825                                  PrivateDomainName_choice, hf_index, ett_x411_PrivateDomainName,
1826                                  NULL);
1827
1828
1829
1830
1831   return offset;
1832 }
1833
1834
1835
1836 static int
1837 dissect_x411_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1838 #line 696 "x411.cnf"
1839         tvbuff_t        *string = NULL;
1840
1841           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1842                                             actx, tree, tvb, offset, hf_index,
1843                                             &string);
1844
1845
1846         if(doing_address && string) {
1847                 g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
1848                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1849         }
1850
1851
1852
1853   return offset;
1854 }
1855
1856
1857
1858 static int
1859 dissect_x411_NumericUserIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1860   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1861                                             actx, tree, tvb, offset, hf_index,
1862                                             NULL);
1863
1864   return offset;
1865 }
1866
1867
1868
1869 static int
1870 dissect_x411_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1871 #line 766 "x411.cnf"
1872         tvbuff_t        *pstring = NULL;
1873
1874           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1875                                             actx, tree, tvb, offset, hf_index,
1876                                             &pstring);
1877
1878
1879         if(doing_address && pstring) {
1880             g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
1881           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1882         }
1883
1884
1885   return offset;
1886 }
1887
1888
1889
1890 static int
1891 dissect_x411_T_printable_given_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_) {
1892 #line 775 "x411.cnf"
1893         tvbuff_t        *pstring = NULL;
1894
1895           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1896                                             actx, tree, tvb, offset, hf_index,
1897                                             &pstring);
1898
1899
1900         if(doing_address && pstring) {
1901             g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
1902           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1903         }
1904
1905
1906   return offset;
1907 }
1908
1909
1910
1911 static int
1912 dissect_x411_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1913 #line 784 "x411.cnf"
1914         tvbuff_t        *pstring = NULL;
1915
1916           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1917                                             actx, tree, tvb, offset, hf_index,
1918                                             &pstring);
1919
1920
1921         if(doing_address && pstring) {
1922             g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
1923           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1924         }
1925
1926
1927   return offset;
1928 }
1929
1930
1931
1932 static int
1933 dissect_x411_T_printable_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1934 #line 793 "x411.cnf"
1935         tvbuff_t        *pstring = NULL;
1936
1937           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1938                                             actx, tree, tvb, offset, hf_index,
1939                                             &pstring);
1940
1941
1942         if(doing_address && pstring) {
1943             g_strlcat(oraddress, "/GQ=", MAX_ORA_STR_LEN);
1944           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1945         }
1946
1947
1948
1949   return offset;
1950 }
1951
1952
1953 static const ber_sequence_t PersonalName_set[] = {
1954   { &hf_x411_printable_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_T_printable_surname },
1955   { &hf_x411_printable_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_given_name },
1956   { &hf_x411_printable_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_initials },
1957   { &hf_x411_printable_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_generation_qualifier },
1958   { NULL, 0, 0, 0, NULL }
1959 };
1960
1961 static int
1962 dissect_x411_PersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1963   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1964                               PersonalName_set, hf_index, ett_x411_PersonalName);
1965
1966   return offset;
1967 }
1968
1969
1970
1971 static int
1972 dissect_x411_OrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1973 #line 709 "x411.cnf"
1974         tvbuff_t        *string = NULL;
1975
1976           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1977                                             actx, tree, tvb, offset, hf_index,
1978                                             &string);
1979
1980
1981         if(doing_address && string) {
1982                 g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
1983                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1984         }
1985
1986
1987
1988   return offset;
1989 }
1990
1991
1992 static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
1993   { &hf_x411_OrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_OrganizationalUnitName },
1994 };
1995
1996 static int
1997 dissect_x411_OrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1998   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1999                                       OrganizationalUnitNames_sequence_of, hf_index, ett_x411_OrganizationalUnitNames);
2000
2001   return offset;
2002 }
2003
2004
2005 static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
2006   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
2007   { &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
2008   { &hf_x411_network_address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NetworkAddress },
2009   { &hf_x411_terminal_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TerminalIdentifier },
2010   { &hf_x411_private_domain_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainName },
2011   { &hf_x411_organization_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OrganizationName },
2012   { &hf_x411_numeric_user_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NumericUserIdentifier },
2013   { &hf_x411_personal_name  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_PersonalName },
2014   { &hf_x411_organizational_unit_names, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OrganizationalUnitNames },
2015   { NULL, 0, 0, 0, NULL }
2016 };
2017
2018 static int
2019 dissect_x411_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2020 #line 920 "x411.cnf"
2021
2022         address_item = tree;    
2023
2024           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2025                                    BuiltInStandardAttributes_sequence, hf_index, ett_x411_BuiltInStandardAttributes);
2026
2027
2028
2029
2030   return offset;
2031 }
2032
2033
2034
2035 static int
2036 dissect_x411_T_printable_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_) {
2037 #line 803 "x411.cnf"
2038         tvbuff_t        *pstring = NULL;
2039
2040           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2041                                             actx, tree, tvb, offset, hf_index,
2042                                             &pstring);
2043
2044
2045         if(doing_address && pstring) {
2046             g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
2047             g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2048             g_strlcat(ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2049         }
2050         
2051
2052
2053   return offset;
2054 }
2055
2056
2057
2058 static int
2059 dissect_x411_T_printable_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_) {
2060 #line 814 "x411.cnf"
2061         tvbuff_t        *pstring = NULL;
2062
2063           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2064                                             actx, tree, tvb, offset, hf_index,
2065                                             &pstring);
2066
2067
2068         if(doing_address && pstring) {
2069             g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
2070             g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2071             if (*ddatype) {
2072                proto_item_append_text (tree, " (%s=%s)", ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)));
2073             }
2074         }
2075         
2076
2077
2078   return offset;
2079 }
2080
2081
2082 static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
2083   { &hf_x411_printable_type , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_type },
2084   { &hf_x411_printable_value, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_value },
2085   { NULL, 0, 0, 0, NULL }
2086 };
2087
2088 static int
2089 dissect_x411_BuiltInDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2090 #line 827 "x411.cnf"
2091         ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
2092
2093           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2094                                    BuiltInDomainDefinedAttribute_sequence, hf_index, ett_x411_BuiltInDomainDefinedAttribute);
2095
2096
2097
2098
2099   return offset;
2100 }
2101
2102
2103 static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
2104   { &hf_x411_BuiltInDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttribute },
2105 };
2106
2107 static int
2108 dissect_x411_BuiltInDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2109   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2110                                       BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_x411_BuiltInDomainDefinedAttributes);
2111
2112   return offset;
2113 }
2114
2115
2116 static const value_string x411_ExtensionAttributeType_vals[] = {
2117   {   1, "common-name" },
2118   {   2, "teletex-common-name" },
2119   {   3, "teletex-organization-name" },
2120   {   4, "teletex-personal-name" },
2121   {   5, "teletex-organizational-unit-names" },
2122   {   6, "teletex-domain-defined-attributes" },
2123   {   7, "pds-name" },
2124   {   8, "physical-delivery-country-name" },
2125   {   9, "postal-code" },
2126   {  10, "physical-delivery-office-name" },
2127   {  11, "physical-delivery-office-number" },
2128   {  12, "extension-OR-address-components" },
2129   {  13, "physical-delivery-personal-name" },
2130   {  14, "physical-delivery-organization-name" },
2131   {  15, "extension-physical-delivery-address-components" },
2132   {  16, "unformatted-postal-address" },
2133   {  17, "street-address" },
2134   {  18, "post-office-box-address" },
2135   {  19, "poste-restante-address" },
2136   {  20, "unique-postal-name" },
2137   {  21, "local-postal-attributes" },
2138   {  22, "extended-network-address" },
2139   {  23, "terminal-type" },
2140   {  24, "universal-common-name" },
2141   {  25, "universal-organization-name" },
2142   {  26, "universal-personal-name" },
2143   {  27, "universal-organizational-unit-names" },
2144   {  28, "universal-domain-defined-attributes" },
2145   {  29, "universal-physical-delivery-office-name" },
2146   {  30, "universal-physical-delivery-office-number" },
2147   {  31, "universal-extension-OR-address-components" },
2148   {  32, "universal-physical-delivery-personal-name" },
2149   {  33, "universal-physical-delivery-organization-name" },
2150   {  34, "universal-extension-physical-delivery-address-components" },
2151   {  35, "universal-unformatted-postal-address" },
2152   {  36, "universal-street-address" },
2153   {  37, "universal-post-office-box-address" },
2154   {  38, "universal-poste-restante-address" },
2155   {  39, "universal-unique-postal-name" },
2156   {  40, "universal-local-postal-attributes" },
2157   { 0, NULL }
2158 };
2159
2160
2161 static int
2162 dissect_x411_ExtensionAttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2163   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2164                                                 &extension_id);
2165
2166   return offset;
2167 }
2168
2169
2170
2171 static int
2172 dissect_x411_T_extension_attribute_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_) {
2173 #line 532 "x411.cnf"
2174
2175         proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_ExtensionAttributeType_vals, "extension-attribute-type %d")); 
2176         if (dissector_try_port(x411_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
2177                 offset =tvb_length(tvb);
2178         } else {
2179                 proto_item *item = NULL;
2180                 proto_tree *next_tree = NULL;
2181
2182                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
2183                         "Dissector for extension-attribute-type %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
2184                 next_tree = proto_item_add_subtree(item, ett_x411_unknown_extension_attribute_type);
2185                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
2186                 expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type");
2187         }
2188
2189
2190
2191
2192   return offset;
2193 }
2194
2195
2196 static const ber_sequence_t ExtensionAttribute_sequence[] = {
2197   { &hf_x411_extension_attribute_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ExtensionAttributeType },
2198   { &hf_x411_extension_attribute_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_T_extension_attribute_value },
2199   { NULL, 0, 0, 0, NULL }
2200 };
2201
2202 static int
2203 dissect_x411_ExtensionAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2204   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2205                                    ExtensionAttribute_sequence, hf_index, ett_x411_ExtensionAttribute);
2206
2207   return offset;
2208 }
2209
2210
2211 static const ber_sequence_t ExtensionAttributes_set_of[1] = {
2212   { &hf_x411_ExtensionAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttribute },
2213 };
2214
2215 static int
2216 dissect_x411_ExtensionAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2217   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2218                                  ExtensionAttributes_set_of, hf_index, ett_x411_ExtensionAttributes);
2219
2220   return offset;
2221 }
2222
2223
2224 static const ber_sequence_t ORName_U_sequence[] = {
2225   { &hf_x411_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInStandardAttributes },
2226   { &hf_x411_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttributes },
2227   { &hf_x411_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttributes },
2228   { &hf_x411_directory_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
2229   { NULL, 0, 0, 0, NULL }
2230 };
2231
2232 static int
2233 dissect_x411_ORName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2234   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2235                                    ORName_U_sequence, hf_index, ett_x411_ORName_U);
2236
2237   return offset;
2238 }
2239
2240
2241
2242 int
2243 dissect_x411_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2244 #line 845 "x411.cnf"
2245         
2246         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
2247         address_item = NULL;
2248         doing_address = TRUE;
2249
2250           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2251                                       hf_index, BER_CLASS_APP, 0, TRUE, dissect_x411_ORName_U);
2252
2253
2254         if(*oraddress && address_item)
2255                 proto_item_append_text(address_item, " (%s/)", oraddress);
2256
2257         doing_address = FALSE;
2258
2259
2260
2261   return offset;
2262 }
2263
2264
2265
2266 static int
2267 dissect_x411_ORAddressAndOptionalDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2268   offset = dissect_x411_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
2269
2270   return offset;
2271 }
2272
2273
2274
2275 static int
2276 dissect_x411_MTAOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2277   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
2278
2279   return offset;
2280 }
2281
2282
2283 static const asn_namedbit BuiltInEncodedInformationTypes_bits[] = {
2284   {  0, &hf_x411_BuiltInEncodedInformationTypes_unknown, -1, -1, "unknown", NULL },
2285   {  2, &hf_x411_BuiltInEncodedInformationTypes_ia5_text, -1, -1, "ia5-text", NULL },
2286   {  3, &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile, -1, -1, "g3-facsimile", NULL },
2287   {  4, &hf_x411_BuiltInEncodedInformationTypes_g4_class_1, -1, -1, "g4-class-1", NULL },
2288   {  5, &hf_x411_BuiltInEncodedInformationTypes_teletex, -1, -1, "teletex", NULL },
2289   {  6, &hf_x411_BuiltInEncodedInformationTypes_videotex, -1, -1, "videotex", NULL },
2290   {  7, &hf_x411_BuiltInEncodedInformationTypes_voice, -1, -1, "voice", NULL },
2291   {  8, &hf_x411_BuiltInEncodedInformationTypes_sfd, -1, -1, "sfd", NULL },
2292   {  9, &hf_x411_BuiltInEncodedInformationTypes_mixed_mode, -1, -1, "mixed-mode", NULL },
2293   { 0, NULL, 0, 0, NULL, NULL }
2294 };
2295
2296 static int
2297 dissect_x411_BuiltInEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2298   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2299                                     BuiltInEncodedInformationTypes_bits, hf_index, ett_x411_BuiltInEncodedInformationTypes,
2300                                     NULL);
2301
2302   return offset;
2303 }
2304
2305
2306 static const asn_namedbit G3FacsimileNonBasicParameters_bits[] = {
2307   {  8, &hf_x411_G3FacsimileNonBasicParameters_two_dimensional, -1, -1, "two-dimensional", NULL },
2308   {  9, &hf_x411_G3FacsimileNonBasicParameters_fine_resolution, -1, -1, "fine-resolution", NULL },
2309   { 20, &hf_x411_G3FacsimileNonBasicParameters_unlimited_length, -1, -1, "unlimited-length", NULL },
2310   { 21, &hf_x411_G3FacsimileNonBasicParameters_b4_length, -1, -1, "b4-length", NULL },
2311   { 22, &hf_x411_G3FacsimileNonBasicParameters_a3_width, -1, -1, "a3-width", NULL },
2312   { 23, &hf_x411_G3FacsimileNonBasicParameters_b4_width, -1, -1, "b4-width", NULL },
2313   { 25, &hf_x411_G3FacsimileNonBasicParameters_t6_coding, -1, -1, "t6-coding", NULL },
2314   { 30, &hf_x411_G3FacsimileNonBasicParameters_uncompressed, -1, -1, "uncompressed", NULL },
2315   { 37, &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728, -1, -1, "width-middle-864-of-1728", NULL },
2316   { 38, &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728, -1, -1, "width-middle-1216-of-1728", NULL },
2317   { 44, &hf_x411_G3FacsimileNonBasicParameters_resolution_type, -1, -1, "resolution-type", NULL },
2318   { 45, &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400, -1, -1, "resolution-400x400", NULL },
2319   { 46, &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300, -1, -1, "resolution-300x300", NULL },
2320   { 47, &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15, -1, -1, "resolution-8x15", NULL },
2321   { 49, &hf_x411_G3FacsimileNonBasicParameters_edi, -1, -1, "edi", NULL },
2322   { 50, &hf_x411_G3FacsimileNonBasicParameters_dtm, -1, -1, "dtm", NULL },
2323   { 51, &hf_x411_G3FacsimileNonBasicParameters_bft, -1, -1, "bft", NULL },
2324   { 58, &hf_x411_G3FacsimileNonBasicParameters_mixed_mode, -1, -1, "mixed-mode", NULL },
2325   { 60, &hf_x411_G3FacsimileNonBasicParameters_character_mode, -1, -1, "character-mode", NULL },
2326   { 65, &hf_x411_G3FacsimileNonBasicParameters_twelve_bits, -1, -1, "twelve-bits", NULL },
2327   { 66, &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann, -1, -1, "preferred-huffmann", NULL },
2328   { 67, &hf_x411_G3FacsimileNonBasicParameters_full_colour, -1, -1, "full-colour", NULL },
2329   { 68, &hf_x411_G3FacsimileNonBasicParameters_jpeg, -1, -1, "jpeg", NULL },
2330   { 71, &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26, -1, -1, "processable-mode-26", NULL },
2331   { 0, NULL, 0, 0, NULL, NULL }
2332 };
2333
2334 int
2335 dissect_x411_G3FacsimileNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2336   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2337                                     G3FacsimileNonBasicParameters_bits, hf_index, ett_x411_G3FacsimileNonBasicParameters,
2338                                     NULL);
2339
2340   return offset;
2341 }
2342
2343
2344
2345 static int
2346 dissect_x411_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2347   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
2348                                             actx, tree, tvb, offset, hf_index,
2349                                             NULL);
2350
2351   return offset;
2352 }
2353
2354
2355
2356 static int
2357 dissect_x411_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_) {
2358   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2359                                        NULL);
2360
2361   return offset;
2362 }
2363
2364
2365 static const ber_sequence_t TeletexNonBasicParameters_set[] = {
2366   { &hf_x411_graphic_character_sets, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2367   { &hf_x411_control_character_sets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2368   { &hf_x411_page_formats   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OCTET_STRING },
2369   { &hf_x411_miscellaneous_terminal_capabilities, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2370   { &hf_x411_private_use    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OCTET_STRING },
2371   { NULL, 0, 0, 0, NULL }
2372 };
2373
2374 int
2375 dissect_x411_TeletexNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2376   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2377                               TeletexNonBasicParameters_set, hf_index, ett_x411_TeletexNonBasicParameters);
2378
2379   return offset;
2380 }
2381
2382
2383
2384 static int
2385 dissect_x411_ExtendedEncodedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2386   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2387
2388   return offset;
2389 }
2390
2391
2392 static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
2393   { &hf_x411_ExtendedEncodedInformationTypes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedEncodedInformationType },
2394 };
2395
2396 static int
2397 dissect_x411_ExtendedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2399                                  ExtendedEncodedInformationTypes_set_of, hf_index, ett_x411_ExtendedEncodedInformationTypes);
2400
2401   return offset;
2402 }
2403
2404
2405 static const ber_sequence_t EncodedInformationTypes_U_set[] = {
2406   { &hf_x411_built_in_encoded_information_types, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_BuiltInEncodedInformationTypes },
2407   { &hf_x411_g3_facsimile   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_G3FacsimileNonBasicParameters },
2408   { &hf_x411_teletex        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexNonBasicParameters },
2409   { &hf_x411_extended_encoded_information_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
2410   { NULL, 0, 0, 0, NULL }
2411 };
2412
2413 static int
2414 dissect_x411_EncodedInformationTypes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2416                               EncodedInformationTypes_U_set, hf_index, ett_x411_EncodedInformationTypes_U);
2417
2418   return offset;
2419 }
2420
2421
2422
2423 int
2424 dissect_x411_EncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2425   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2426                                       hf_index, BER_CLASS_APP, 5, TRUE, dissect_x411_EncodedInformationTypes_U);
2427
2428   return offset;
2429 }
2430
2431
2432
2433 int
2434 dissect_x411_OriginalEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2435   offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2436
2437   return offset;
2438 }
2439
2440
2441 static const value_string x411_BuiltInContentType_U_vals[] = {
2442   {   0, "unidentified" },
2443   {   1, "external" },
2444   {   2, "interpersonal-messaging-1984" },
2445   {  22, "interpersonal-messaging-1988" },
2446   {  35, "edi-messaging" },
2447   {  40, "voice-messaging" },
2448   { 0, NULL }
2449 };
2450
2451
2452 static int
2453 dissect_x411_BuiltInContentType_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2454 #line 592 "x411.cnf"
2455   static guint32        ict = -1;       
2456
2457     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2458                                                 &ict);
2459
2460
2461   /* convert integer content type to oid for dispatch when the content is found */
2462   switch(ict) {
2463         case 2:
2464         content_type_id = ep_strdup("2.6.1.10.0");
2465         break;
2466         case 22:
2467         content_type_id = ep_strdup("2.6.1.10.1");
2468         break;
2469         default:
2470         content_type_id = NULL;
2471         break;
2472         }
2473
2474
2475
2476   return offset;
2477 }
2478
2479
2480
2481 static int
2482 dissect_x411_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2484                                       hf_index, BER_CLASS_APP, 6, TRUE, dissect_x411_BuiltInContentType_U);
2485
2486   return offset;
2487 }
2488
2489
2490
2491 int
2492 dissect_x411_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2493 #line 577 "x411.cnf"
2494         const char *name = NULL;
2495
2496           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &content_type_id);
2497
2498
2499         if(content_type_id) {
2500           name = oid_resolved_from_string(content_type_id);
2501
2502           if(!name) name = content_type_id;
2503
2504           proto_item_append_text(tree, " (%s)", name);
2505         }
2506
2507
2508
2509   return offset;
2510 }
2511
2512
2513 const value_string x411_ContentType_vals[] = {
2514   {   0, "built-in" },
2515   {   1, "extended" },
2516   { 0, NULL }
2517 };
2518
2519 static const ber_choice_t ContentType_choice[] = {
2520   {   0, &hf_x411_built_in       , BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInContentType },
2521   {   1, &hf_x411_extended       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedContentType },
2522   { 0, NULL, 0, 0, 0, NULL }
2523 };
2524
2525 int
2526 dissect_x411_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2527   offset = dissect_ber_choice(actx, tree, tvb, offset,
2528                                  ContentType_choice, hf_index, ett_x411_ContentType,
2529                                  NULL);
2530
2531   return offset;
2532 }
2533
2534
2535
2536 static int
2537 dissect_x411_PrintableString_SIZE_1_ub_content_id_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2538   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2539                                             actx, tree, tvb, offset, hf_index,
2540                                             NULL);
2541
2542   return offset;
2543 }
2544
2545
2546
2547 int
2548 dissect_x411_ContentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2549   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2550                                       hf_index, BER_CLASS_APP, 10, TRUE, dissect_x411_PrintableString_SIZE_1_ub_content_id_length);
2551
2552   return offset;
2553 }
2554
2555
2556 static const value_string x411_Priority_U_vals[] = {
2557   {   0, "normal" },
2558   {   1, "non-urgent" },
2559   {   2, "urgent" },
2560   { 0, NULL }
2561 };
2562
2563
2564 static int
2565 dissect_x411_Priority_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2566   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2567                                   NULL);
2568
2569   return offset;
2570 }
2571
2572
2573
2574 static int
2575 dissect_x411_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2576   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2577                                       hf_index, BER_CLASS_APP, 7, TRUE, dissect_x411_Priority_U);
2578
2579   return offset;
2580 }
2581
2582
2583 static const asn_namedbit PerMessageIndicators_U_bits[] = {
2584   {  0, &hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients, -1, -1, "disclosure-of-other-recipients", NULL },
2585   {  1, &hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
2586   {  2, &hf_x411_PerMessageIndicators_U_alternate_recipient_allowed, -1, -1, "alternate-recipient-allowed", NULL },
2587   {  3, &hf_x411_PerMessageIndicators_U_content_return_request, -1, -1, "content-return-request", NULL },
2588   {  4, &hf_x411_PerMessageIndicators_U_reserved, -1, -1, "reserved", NULL },
2589   {  5, &hf_x411_PerMessageIndicators_U_bit_5, -1, -1, "bit-5", NULL },
2590   {  6, &hf_x411_PerMessageIndicators_U_bit_6, -1, -1, "bit-6", NULL },
2591   {  7, &hf_x411_PerMessageIndicators_U_service_message, -1, -1, "service-message", NULL },
2592   { 0, NULL, 0, 0, NULL, NULL }
2593 };
2594
2595 static int
2596 dissect_x411_PerMessageIndicators_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2597   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2598                                     PerMessageIndicators_U_bits, hf_index, ett_x411_PerMessageIndicators_U,
2599                                     NULL);
2600
2601   return offset;
2602 }
2603
2604
2605
2606 int
2607 dissect_x411_PerMessageIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2608   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2609                                       hf_index, BER_CLASS_APP, 8, TRUE, dissect_x411_PerMessageIndicators_U);
2610
2611   return offset;
2612 }
2613
2614
2615
2616 static int
2617 dissect_x411_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2618 #line 963 "x411.cnf"
2619         tvbuff_t *arrival = NULL;
2620
2621           offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
2622
2623
2624         if(arrival && doing_address)
2625                 proto_item_append_text(address_item, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
2626
2627
2628
2629   return offset;
2630 }
2631
2632
2633
2634 static int
2635 dissect_x411_DeferredDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2636   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2637
2638   return offset;
2639 }
2640
2641
2642 static const ber_sequence_t T_private_domain_sequence[] = {
2643   { &hf_x411_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_AdministrationDomainName },
2644   { &hf_x411_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
2645   { NULL, 0, 0, 0, NULL }
2646 };
2647
2648 static int
2649 dissect_x411_T_private_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2650   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2651                                    T_private_domain_sequence, hf_index, ett_x411_T_private_domain);
2652
2653   return offset;
2654 }
2655
2656
2657 static const value_string x411_T_bilateral_domain_vals[] = {
2658   {   0, "administration-domain-name" },
2659   {   1, "private-domain" },
2660   { 0, NULL }
2661 };
2662
2663 static const ber_choice_t T_bilateral_domain_choice[] = {
2664   {   0, &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
2665   {   1, &hf_x411_private_domain , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_private_domain },
2666   { 0, NULL, 0, 0, 0, NULL }
2667 };
2668
2669 static int
2670 dissect_x411_T_bilateral_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2671   offset = dissect_ber_choice(actx, tree, tvb, offset,
2672                                  T_bilateral_domain_choice, hf_index, ett_x411_T_bilateral_domain,
2673                                  NULL);
2674
2675   return offset;
2676 }
2677
2678
2679
2680 static int
2681 dissect_x411_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2682 #line 1031 "x411.cnf"
2683         proto_item *item = NULL;
2684         int         loffset = 0;
2685         guint32     len = 0;
2686
2687         /* work out the length */
2688         loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
2689         (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
2690
2691         /* create some structure so we can tell what this unknown ASN.1 represents */   
2692         item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
2693         tree = proto_item_add_subtree(item, ett_x411_bilateral_information);
2694
2695         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
2696
2697
2698
2699   return offset;
2700 }
2701
2702
2703 static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
2704   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
2705   { &hf_x411_bilateral_domain, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_bilateral_domain },
2706   { &hf_x411_bilateral_information, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x411_T_bilateral_information },
2707   { NULL, 0, 0, 0, NULL }
2708 };
2709
2710 static int
2711 dissect_x411_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2713                                    PerDomainBilateralInformation_sequence, hf_index, ett_x411_PerDomainBilateralInformation);
2714
2715   return offset;
2716 }
2717
2718
2719 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of[1] = {
2720   { &hf_x411_per_domain_bilateral_information_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_PerDomainBilateralInformation },
2721 };
2722
2723 static int
2724 dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2725   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2726                                       SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation);
2727
2728   return offset;
2729 }
2730
2731
2732
2733 static int
2734 dissect_x411_ArrivalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2735   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2736
2737   return offset;
2738 }
2739
2740
2741 static const value_string x411_RoutingAction_vals[] = {
2742   {   0, "relayed" },
2743   {   1, "rerouted" },
2744   { 0, NULL }
2745 };
2746
2747
2748 static int
2749 dissect_x411_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2750 #line 974 "x411.cnf"
2751         int action = 0;
2752
2753           offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2754                                   &action);
2755
2756
2757         proto_item_append_text(address_item, " %s", val_to_str(action, x411_RoutingAction_vals, "action(%d)"));
2758
2759
2760
2761   return offset;
2762 }
2763
2764
2765
2766 static int
2767 dissect_x411_DeferredTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2768   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2769
2770   return offset;
2771 }
2772
2773
2774
2775 static int
2776 dissect_x411_ConvertedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2777   offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2778
2779   return offset;
2780 }
2781
2782
2783 static const asn_namedbit OtherActions_bits[] = {
2784   {  0, &hf_x411_OtherActions_redirected, -1, -1, "redirected", NULL },
2785   {  1, &hf_x411_OtherActions_dl_operation, -1, -1, "dl-operation", NULL },
2786   { 0, NULL, 0, 0, NULL, NULL }
2787 };
2788
2789 static int
2790 dissect_x411_OtherActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2791   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2792                                     OtherActions_bits, hf_index, ett_x411_OtherActions,
2793                                     NULL);
2794
2795   return offset;
2796 }
2797
2798
2799 static const ber_sequence_t DomainSuppliedInformation_set[] = {
2800   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
2801   { &hf_x411_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RoutingAction },
2802   { &hf_x411_attempted_domain, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
2803   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
2804   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
2805   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
2806   { NULL, 0, 0, 0, NULL }
2807 };
2808
2809 static int
2810 dissect_x411_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2811 #line 942 "x411.cnf"
2812
2813         doing_address = FALSE;
2814
2815           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2816                               DomainSuppliedInformation_set, hf_index, ett_x411_DomainSuppliedInformation);
2817
2818
2819         doing_address = TRUE;
2820         proto_item_append_text(tree, ")");
2821
2822
2823
2824   return offset;
2825 }
2826
2827
2828 static const ber_sequence_t TraceInformationElement_sequence[] = {
2829   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
2830   { &hf_x411_domain_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_DomainSuppliedInformation },
2831   { NULL, 0, 0, 0, NULL }
2832 };
2833
2834 static int
2835 dissect_x411_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2836 #line 926 "x411.cnf"
2837
2838         doing_address = TRUE;
2839
2840           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2841                                    TraceInformationElement_sequence, hf_index, ett_x411_TraceInformationElement);
2842
2843
2844         doing_address = FALSE;
2845
2846
2847
2848   return offset;
2849 }
2850
2851
2852 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of[1] = {
2853   { &hf_x411__untag_item    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformationElement },
2854 };
2855
2856 static int
2857 dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2858   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2859                                       SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2860
2861   return offset;
2862 }
2863
2864
2865
2866 static int
2867 dissect_x411_TraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2868   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2869                                       hf_index, BER_CLASS_APP, 9, TRUE, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2870
2871   return offset;
2872 }
2873
2874
2875 static const value_string x411_StandardExtension_vals[] = {
2876   {   1, "recipient-reassignment-prohibited" },
2877   {   2, "originator-requested-alternate-recipient" },
2878   {   3, "dl-expansion-prohibited" },
2879   {   4, "conversion-with-loss-prohibited" },
2880   {   5, "latest-delivery-time" },
2881   {   6, "requested-delivery-method" },
2882   {   7, "physical-forwarding-prohibited" },
2883   {   8, "physical-forwarding-address-request" },
2884   {   9, "physical-delivery-modes" },
2885   {  10, "registered-mail-type" },
2886   {  11, "recipient-number-for-advice" },
2887   {  12, "physical-rendition-attributes" },
2888   {  13, "originator-return-address" },
2889   {  14, "physical-delivery-report-request" },
2890   {  15, "originator-certificate" },
2891   {  16, "message-token" },
2892   {  17, "content-confidentiality-algorithm-identifier" },
2893   {  18, "content-integrity-check" },
2894   {  19, "message-origin-authentication-check" },
2895   {  20, "message-security-label" },
2896   {  21, "proof-of-submission-request" },
2897   {  22, "proof-of-delivery-request" },
2898   {  23, "content-correlator" },
2899   {  24, "probe-origin-authentication-check" },
2900   {  25, "redirection-history" },
2901   {  26, "dl-expansion-history" },
2902   {  27, "physical-forwarding-address" },
2903   {  28, "recipient-certificate" },
2904   {  29, "proof-of-delivery" },
2905   {  30, "originator-and-DL-expansion-history" },
2906   {  31, "reporting-DL-name" },
2907   {  32, "reporting-MTA-certificate" },
2908   {  33, "report-origin-authentication-check" },
2909   {  34, "originating-MTA-certificate" },
2910   {  35, "proof-of-submission" },
2911   {  36, "forwarding-request" },
2912   {  37, "trace-information" },
2913   {  38, "internal-trace-information" },
2914   {  39, "reporting-MTA-name" },
2915   {  40, "multiple-originator-certificates" },
2916   {  41, "blind-copy-recipients" },
2917   {  42, "dl-exempted-recipients" },
2918   {  43, "body-part-encryption-token" },
2919   {  44, "forwarded-content-token" },
2920   {  45, "certificate-selectors" },
2921   { 0, NULL }
2922 };
2923
2924
2925 static int
2926 dissect_x411_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2927   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2928                                                 &extension_id);
2929
2930   return offset;
2931 }
2932
2933
2934
2935 static int
2936 dissect_x411_T_private_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2937 #line 569 "x411.cnf"
2938
2939           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
2940
2941         extension_id = -1;
2942
2943
2944
2945   return offset;
2946 }
2947
2948
2949 static const value_string x411_ExtensionType_vals[] = {
2950   {   0, "standard-extension" },
2951   {   3, "private-extension" },
2952   { 0, NULL }
2953 };
2954
2955 static const ber_choice_t ExtensionType_choice[] = {
2956   {   0, &hf_x411_standard_extension, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_StandardExtension },
2957   {   3, &hf_x411_private_extension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_T_private_extension },
2958   { 0, NULL, 0, 0, 0, NULL }
2959 };
2960
2961 static int
2962 dissect_x411_ExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2963   offset = dissect_ber_choice(actx, tree, tvb, offset,
2964                                  ExtensionType_choice, hf_index, ett_x411_ExtensionType,
2965                                  NULL);
2966
2967   return offset;
2968 }
2969
2970
2971 static const asn_namedbit Criticality_bits[] = {
2972   {  0, &hf_x411_Criticality_for_submission, -1, -1, "for-submission", NULL },
2973   {  1, &hf_x411_Criticality_for_transfer, -1, -1, "for-transfer", NULL },
2974   {  2, &hf_x411_Criticality_for_delivery, -1, -1, "for-delivery", NULL },
2975   { 0, NULL, 0, 0, NULL, NULL }
2976 };
2977
2978 static int
2979 dissect_x411_Criticality(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2980   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2981                                     Criticality_bits, hf_index, ett_x411_Criticality,
2982                                     NULL);
2983
2984   return offset;
2985 }
2986
2987
2988
2989 static int
2990 dissect_x411_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2991 #line 501 "x411.cnf"
2992         const char *name;
2993
2994         if(extension_id != -1) {
2995                 proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_StandardExtension_vals, "standard-extension %d")); 
2996                 if (dissector_try_port(x411_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
2997                         offset = tvb_length(tvb);
2998                 } else {
2999                         proto_item *item = NULL;
3000                         proto_tree *next_tree = NULL;
3001
3002                         item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
3003                                 "Dissector for standard-extension %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
3004                         next_tree = proto_item_add_subtree(item, ett_x411_unknown_standard_extension);
3005                         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
3006                         expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown standard-extension");
3007                 }
3008         } else if (object_identifier_id) {
3009                 call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
3010                 name = oid_resolved_from_string(object_identifier_id);
3011                 proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id); 
3012         }
3013                 
3014
3015
3016
3017   return offset;
3018 }
3019
3020
3021 static const ber_sequence_t ExtensionField_sequence[] = {
3022   { &hf_x411_extension_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExtensionType },
3023   { &hf_x411_criticality    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Criticality },
3024   { &hf_x411_extension_value, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtensionValue },
3025   { NULL, 0, 0, 0, NULL }
3026 };
3027
3028 int
3029 dissect_x411_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3030   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3031                                    ExtensionField_sequence, hf_index, ett_x411_ExtensionField);
3032
3033   return offset;
3034 }
3035
3036
3037 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
3038   { &hf_x411_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionField },
3039 };
3040
3041 static int
3042 dissect_x411_SET_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3043   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3044                                  SET_OF_ExtensionField_set_of, hf_index, ett_x411_SET_OF_ExtensionField);
3045
3046   return offset;
3047 }
3048
3049
3050
3051 static int
3052 dissect_x411_MTARecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3053   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3054
3055   return offset;
3056 }
3057
3058
3059
3060 static int
3061 dissect_x411_OriginallySpecifiedRecipientNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3062   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3063                                                 NULL);
3064
3065   return offset;
3066 }
3067
3068
3069 static const asn_namedbit PerRecipientIndicators_bits[] = {
3070   {  0, &hf_x411_PerRecipientIndicators_responsibility, -1, -1, "responsibility", NULL },
3071   {  1, &hf_x411_PerRecipientIndicators_originating_MTA_report, -1, -1, "originating-MTA-report", NULL },
3072   {  2, &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report, -1, -1, "originating-MTA-non-delivery-report", NULL },
3073   {  3, &hf_x411_PerRecipientIndicators_originator_report, -1, -1, "originator-report", NULL },
3074   {  4, &hf_x411_PerRecipientIndicators_originator_non_delivery_report, -1, -1, "originator-non-delivery-report", NULL },
3075   {  5, &hf_x411_PerRecipientIndicators_reserved_5, -1, -1, "reserved-5", NULL },
3076   {  6, &hf_x411_PerRecipientIndicators_reserved_6, -1, -1, "reserved-6", NULL },
3077   {  7, &hf_x411_PerRecipientIndicators_reserved_7, -1, -1, "reserved-7", NULL },
3078   { 0, NULL, 0, 0, NULL, NULL }
3079 };
3080
3081 static int
3082 dissect_x411_PerRecipientIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3083   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3084                                     PerRecipientIndicators_bits, hf_index, ett_x411_PerRecipientIndicators,
3085                                     NULL);
3086
3087   return offset;
3088 }
3089
3090
3091 static const value_string x411_ExplicitConversion_vals[] = {
3092   {   0, "ia5-text-to-teletex" },
3093   {   8, "ia5-text-to-g3-facsimile" },
3094   {   9, "ia5-text-to-g4-class-1" },
3095   {  10, "ia5-text-to-videotex" },
3096   {  11, "teletex-to-ia5-text" },
3097   {  12, "teletex-to-g3-facsimile" },
3098   {  13, "teletex-to-g4-class-1" },
3099   {  14, "teletex-to-videotex" },
3100   {  16, "videotex-to-ia5-text" },
3101   {  17, "videotex-to-teletex" },
3102   { 0, NULL }
3103 };
3104
3105
3106 static int
3107 dissect_x411_ExplicitConversion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3108   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3109                                                 NULL);
3110
3111   return offset;
3112 }
3113
3114
3115 static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
3116   { &hf_x411_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTARecipientName },
3117   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3118   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3119   { &hf_x411_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
3120   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3121   { NULL, 0, 0, 0, NULL }
3122 };
3123
3124 static int
3125 dissect_x411_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3126   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3127                               PerRecipientMessageTransferFields_set, hf_index, ett_x411_PerRecipientMessageTransferFields);
3128
3129   return offset;
3130 }
3131
3132
3133 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
3134   { &hf_x411_per_recipient_message_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientMessageTransferFields },
3135 };
3136
3137 static int
3138 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3139   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3140                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields);
3141
3142   return offset;
3143 }
3144
3145
3146 static const ber_sequence_t MessageTransferEnvelope_set[] = {
3147   { &hf_x411_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageIdentifier },
3148   { &hf_x411_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3149   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3150   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3151   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3152   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
3153   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3154   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
3155   { &hf_x411_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3156   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3157   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3158   { &hf_x411_per_recipient_message_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields },
3159   { NULL, 0, 0, 0, NULL }
3160 };
3161
3162 static int
3163 dissect_x411_MessageTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3164   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3165                               MessageTransferEnvelope_set, hf_index, ett_x411_MessageTransferEnvelope);
3166
3167   return offset;
3168 }
3169
3170
3171
3172 int
3173 dissect_x411_Content(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3174 #line 610 "x411.cnf"
3175   tvbuff_t *next_tvb;
3176
3177   /* we can do this now constructed octet strings are supported */
3178   offset = dissect_ber_octet_string(FALSE, actx, NULL, tvb, offset, hf_index, &next_tvb);
3179
3180   if (next_tvb) {
3181     if (content_type_id) {
3182       (void) call_ber_oid_callback(content_type_id, next_tvb, 0, actx->pinfo, top_tree ? top_tree : tree);
3183     } else {
3184       proto_item *item = NULL;
3185       proto_tree *next_tree = NULL;
3186
3187       item = proto_tree_add_text(top_tree ? top_tree : tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "X.411 Unknown Content (unknown built-in content-type)");
3188       expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown built-in content-type");
3189       if (item) {
3190         next_tree=proto_item_add_subtree(item, ett_x411_content_unknown);
3191       }
3192       dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
3193     }
3194   }
3195
3196
3197
3198   return offset;
3199 }
3200
3201
3202 static const ber_sequence_t Message_sequence[] = {
3203   { &hf_x411_message_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MessageTransferEnvelope },
3204   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
3205   { NULL, 0, 0, 0, NULL }
3206 };
3207
3208 static int
3209 dissect_x411_Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3210   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3211                                    Message_sequence, hf_index, ett_x411_Message);
3212
3213   return offset;
3214 }
3215
3216
3217
3218 static int
3219 dissect_x411_ProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3220   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3221
3222   return offset;
3223 }
3224
3225
3226
3227 int
3228 dissect_x411_ContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3229   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3230                                                 NULL);
3231
3232   return offset;
3233 }
3234
3235
3236 static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
3237   { &hf_x411_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTARecipientName },
3238   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3239   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3240   { &hf_x411_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
3241   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3242   { NULL, 0, 0, 0, NULL }
3243 };
3244
3245 static int
3246 dissect_x411_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3247   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3248                               PerRecipientProbeTransferFields_set, hf_index, ett_x411_PerRecipientProbeTransferFields);
3249
3250   return offset;
3251 }
3252
3253
3254 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
3255   { &hf_x411_per_recipient_probe_transfer_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientProbeTransferFields },
3256 };
3257
3258 static int
3259 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3260   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3261                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields);
3262
3263   return offset;
3264 }
3265
3266
3267 static const ber_sequence_t ProbeTransferEnvelope_set[] = {
3268   { &hf_x411_probe_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeIdentifier },
3269   { &hf_x411_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3270   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3271   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3272   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3273   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
3274   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3275   { &hf_x411_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3276   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3277   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3278   { &hf_x411_per_recipient_probe_transfer_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields },
3279   { NULL, 0, 0, 0, NULL }
3280 };
3281
3282 static int
3283 dissect_x411_ProbeTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3284   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3285                               ProbeTransferEnvelope_set, hf_index, ett_x411_ProbeTransferEnvelope);
3286
3287   return offset;
3288 }
3289
3290
3291
3292 static int
3293 dissect_x411_Probe(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3294   offset = dissect_x411_ProbeTransferEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
3295
3296   return offset;
3297 }
3298
3299
3300
3301 static int
3302 dissect_x411_ReportIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3303   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3304
3305   return offset;
3306 }
3307
3308
3309
3310 static int
3311 dissect_x411_ReportDestinationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3312   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3313
3314   return offset;
3315 }
3316
3317
3318 static const ber_sequence_t ReportTransferEnvelope_set[] = {
3319   { &hf_x411_report_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ReportIdentifier },
3320   { &hf_x411_report_destination_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ReportDestinationName },
3321   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3322   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3323   { NULL, 0, 0, 0, NULL }
3324 };
3325
3326 static int
3327 dissect_x411_ReportTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3328   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3329                               ReportTransferEnvelope_set, hf_index, ett_x411_ReportTransferEnvelope);
3330
3331   return offset;
3332 }
3333
3334
3335
3336 static int
3337 dissect_x411_MessageOrProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3338   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3339
3340   return offset;
3341 }
3342
3343
3344
3345 static int
3346 dissect_x411_SubjectIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3347   offset = dissect_x411_MessageOrProbeIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3348
3349   return offset;
3350 }
3351
3352
3353
3354 static int
3355 dissect_x411_SubjectIntermediateTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3356   offset = dissect_x411_TraceInformation(implicit_tag, tvb, offset, actx, tree, hf_index);
3357
3358   return offset;
3359 }
3360
3361
3362
3363 static int
3364 dissect_x411_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3365 #line 483 "x411.cnf"
3366    proto_item *item = NULL;
3367    int         loffset = 0;
3368    guint32     len = 0;
3369
3370    /* work out the length */
3371    loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
3372    (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
3373
3374    item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
3375    tree = proto_item_add_subtree(item, ett_x411_additional_information);
3376    proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)"); 
3377
3378    offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
3379
3380
3381
3382   return offset;
3383 }
3384
3385
3386
3387 static int
3388 dissect_x411_MTAActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3389   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3390
3391   return offset;
3392 }
3393
3394
3395
3396 int
3397 dissect_x411_MessageDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3398   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
3399
3400   return offset;
3401 }
3402
3403
3404 static const value_string x411_TypeOfMTSUser_vals[] = {
3405   {   0, "public" },
3406   {   1, "private" },
3407   {   2, "ms" },
3408   {   3, "dl" },
3409   {   4, "pdau" },
3410   {   5, "physical-recipient" },
3411   {   6, "other" },
3412   { 0, NULL }
3413 };
3414
3415
3416 static int
3417 dissect_x411_TypeOfMTSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3418   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3419                                                 NULL);
3420
3421   return offset;
3422 }
3423
3424
3425 static const ber_sequence_t DeliveryReport_set[] = {
3426   { &hf_x411_message_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MessageDeliveryTime },
3427   { &hf_x411_type_of_MTS_user, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TypeOfMTSUser },
3428   { NULL, 0, 0, 0, NULL }
3429 };
3430
3431 static int
3432 dissect_x411_DeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3433   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3434                               DeliveryReport_set, hf_index, ett_x411_DeliveryReport);
3435
3436   return offset;
3437 }
3438
3439
3440 const value_string x411_NonDeliveryReasonCode_vals[] = {
3441   {   0, "transfer-failure" },
3442   {   1, "unable-to-transfer" },
3443   {   2, "conversion-not-performed" },
3444   {   3, "physical-rendition-not-performed" },
3445   {   4, "physical-delivery-not-performed" },
3446   {   5, "restricted-delivery" },
3447   {   6, "directory-operation-unsuccessful" },
3448   {   7, "deferred-delivery-not-performed" },
3449   {   8, "transfer-failure-for-security-reason" },
3450   { 0, NULL }
3451 };
3452
3453
3454 int
3455 dissect_x411_NonDeliveryReasonCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3456   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3457                                                 NULL);
3458
3459   return offset;
3460 }
3461
3462
3463 const value_string x411_NonDeliveryDiagnosticCode_vals[] = {
3464   {   0, "unrecognised-OR-name" },
3465   {   1, "ambiguous-OR-name" },
3466   {   2, "mts-congestion" },
3467   {   3, "loop-detected" },
3468   {   4, "recipient-unavailable" },
3469   {   5, "maximum-time-expired" },
3470   {   6, "encoded-information-types-unsupported" },
3471   {   7, "content-too-long" },
3472   {   8, "conversion-impractical" },
3473   {   9, "implicit-conversion-prohibited" },
3474   {  10, "implicit-conversion-not-subscribed" },
3475   {  11, "invalid-arguments" },
3476   {  12, "content-syntax-error" },
3477   {  13, "size-constraint-violation" },
3478   {  14, "protocol-violation" },
3479   {  15, "content-type-not-supported" },
3480   {  16, "too-many-recipients" },
3481   {  17, "no-bilateral-agreement" },
3482   {  18, "unsupported-critical-function" },
3483   {  19, "conversion-with-loss-prohibited" },
3484   {  20, "line-too-long" },
3485   {  21, "page-split" },
3486   {  22, "pictorial-symbol-loss" },
3487   {  23, "punctuation-symbol-loss" },
3488   {  24, "alphabetic-character-loss" },
3489   {  25, "multiple-information-loss" },
3490   {  26, "recipient-reassignment-prohibited" },
3491   {  27, "redirection-loop-detected" },
3492   {  28, "dl-expansion-prohibited" },
3493   {  29, "no-dl-submit-permission" },
3494   {  30, "dl-expansion-failure" },
3495   {  31, "physical-rendition-attributes-not-supported" },
3496   {  32, "undeliverable-mail-physical-delivery-address-incorrect" },
3497   {  33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
3498   {  34, "undeliverable-mail-physical-delivery-address-incomplete" },
3499   {  35, "undeliverable-mail-recipient-unknown" },
3500   {  36, "undeliverable-mail-recipient-deceased" },
3501   {  37, "undeliverable-mail-organization-expired" },
3502   {  38, "undeliverable-mail-recipient-refused-to-accept" },
3503   {  39, "undeliverable-mail-recipient-did-not-claim" },
3504   {  40, "undeliverable-mail-recipient-changed-address-permanently" },
3505   {  41, "undeliverable-mail-recipient-changed-address-temporarily" },
3506   {  42, "undeliverable-mail-recipient-changed-temporary-address" },
3507   {  43, "undeliverable-mail-new-address-unknown" },
3508   {  44, "undeliverable-mail-recipient-did-not-want-forwarding" },
3509   {  45, "undeliverable-mail-originator-prohibited-forwarding" },
3510   {  46, "secure-messaging-error" },
3511   {  47, "unable-to-downgrade" },
3512   {  48, "unable-to-complete-transfer" },
3513   {  49, "transfer-attempts-limit-reached" },
3514   {  50, "incorrect-notification-type" },
3515   {  51, "dl-expansion-prohibited-by-security-policy" },
3516   {  52, "forbidden-alternate-recipient" },
3517   {  53, "security-policy-violation" },
3518   {  54, "security-services-refusal" },
3519   {  55, "unauthorised-dl-member" },
3520   {  56, "unauthorised-dl-name" },
3521   {  57, "unauthorised-originally-intended-recipient-name" },
3522   {  58, "unauthorised-originator-name" },
3523   {  59, "unauthorised-recipient-name" },
3524   {  60, "unreliable-system" },
3525   {  61, "authentication-failure-on-subject-message" },
3526   {  62, "decryption-failed" },
3527   {  63, "decryption-key-unobtainable" },
3528   {  64, "double-envelope-creation-failure" },
3529   {  65, "double-enveloping-message-restoring-failure" },
3530   {  66, "failure-of-proof-of-message" },
3531   {  67, "integrity-failure-on-subject-message" },
3532   {  68, "invalid-security-label" },
3533   {  69, "key-failure" },
3534   {  70, "mandatory-parameter-absence" },
3535   {  71, "operation-security-failure" },
3536   {  72, "repudiation-failure-of-message" },
3537   {  73, "security-context-failure" },
3538   {  74, "token-decryption-failed" },
3539   {  75, "token-error" },
3540   {  76, "unknown-security-label" },
3541   {  77, "unsupported-algorithm-identifier" },
3542   {  78, "unsupported-security-policy" },
3543   { 0, NULL }
3544 };
3545
3546
3547 int
3548 dissect_x411_NonDeliveryDiagnosticCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3549   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3550                                                 NULL);
3551
3552   return offset;
3553 }
3554
3555
3556 static const ber_sequence_t NonDeliveryReport_set[] = {
3557   { &hf_x411_non_delivery_reason_code, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryReasonCode },
3558   { &hf_x411_non_delivery_diagnostic_code, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryDiagnosticCode },
3559   { NULL, 0, 0, 0, NULL }
3560 };
3561
3562 static int
3563 dissect_x411_NonDeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3564   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3565                               NonDeliveryReport_set, hf_index, ett_x411_NonDeliveryReport);
3566
3567   return offset;
3568 }
3569
3570
3571 static const value_string x411_ReportType_vals[] = {
3572   {   0, "delivery" },
3573   {   1, "non-delivery" },
3574   { 0, NULL }
3575 };
3576
3577 static const ber_choice_t ReportType_choice[] = {
3578   {   0, &hf_x411_delivery       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryReport },
3579   {   1, &hf_x411_non_delivery   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryReport },
3580   { 0, NULL, 0, 0, 0, NULL }
3581 };
3582
3583 static int
3584 dissect_x411_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3585 #line 1063 "x411.cnf"
3586         gint report = -1;
3587
3588           offset = dissect_ber_choice(actx, tree, tvb, offset,
3589                                  ReportType_choice, hf_index, ett_x411_ReportType,
3590                                  &report);
3591
3592         
3593         if( (report!=-1) && x411_ReportType_vals[report].strptr ){
3594                 if(check_col(actx->pinfo->cinfo, COL_INFO)) {
3595                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_ReportType_vals[report].strptr);
3596                 }
3597         }
3598
3599
3600
3601   return offset;
3602 }
3603
3604
3605 static const ber_sequence_t LastTraceInformation_set[] = {
3606   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
3607   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
3608   { &hf_x411_trace_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ReportType },
3609   { NULL, 0, 0, 0, NULL }
3610 };
3611
3612 static int
3613 dissect_x411_LastTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3614   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3615                               LastTraceInformation_set, hf_index, ett_x411_LastTraceInformation);
3616
3617   return offset;
3618 }
3619
3620
3621
3622 static int
3623 dissect_x411_OriginallyIntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3624   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3625
3626   return offset;
3627 }
3628
3629
3630
3631 int
3632 dissect_x411_SupplementaryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3633   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
3634                                             actx, tree, tvb, offset, hf_index,
3635                                             NULL);
3636
3637   return offset;
3638 }
3639
3640
3641 static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
3642   { &hf_x411_mta_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAActualRecipientName },
3643   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3644   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3645   { &hf_x411_last_trace_information, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_LastTraceInformation },
3646   { &hf_x411_report_originally_intended_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
3647   { &hf_x411_supplementary_information, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SupplementaryInformation },
3648   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3649   { NULL, 0, 0, 0, NULL }
3650 };
3651
3652 static int
3653 dissect_x411_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3654   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3655                               PerRecipientReportTransferFields_set, hf_index, ett_x411_PerRecipientReportTransferFields);
3656
3657   return offset;
3658 }
3659
3660
3661 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of[1] = {
3662   { &hf_x411_per_recipient_report_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientReportTransferFields },
3663 };
3664
3665 static int
3666 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3667   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3668                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields);
3669
3670   return offset;
3671 }
3672
3673
3674 static const ber_sequence_t ReportTransferContent_set[] = {
3675   { &hf_x411_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIdentifier },
3676   { &hf_x411_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIntermediateTraceInformation },
3677   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3678   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3679   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3680   { &hf_x411_returned_content, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
3681   { &hf_x411_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AdditionalInformation },
3682   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3683   { &hf_x411_per_recipient_report_fields, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields },
3684   { NULL, 0, 0, 0, NULL }
3685 };
3686
3687 static int
3688 dissect_x411_ReportTransferContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3689   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3690                               ReportTransferContent_set, hf_index, ett_x411_ReportTransferContent);
3691
3692   return offset;
3693 }
3694
3695
3696 static const ber_sequence_t Report_sequence[] = {
3697   { &hf_x411_report_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_ReportTransferEnvelope },
3698   { &hf_x411_report_content , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_ReportTransferContent },
3699   { NULL, 0, 0, 0, NULL }
3700 };
3701
3702 static int
3703 dissect_x411_Report(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3704   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3705                                    Report_sequence, hf_index, ett_x411_Report);
3706
3707   return offset;
3708 }
3709
3710
3711 static const value_string x411_MTS_APDU_vals[] = {
3712   {   0, "message" },
3713   {   2, "probe" },
3714   {   1, "report" },
3715   { 0, NULL }
3716 };
3717
3718 static const ber_choice_t MTS_APDU_choice[] = {
3719   {   0, &hf_x411_message        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_Message },
3720   {   2, &hf_x411_probe          , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_Probe },
3721   {   1, &hf_x411_report         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_Report },
3722   { 0, NULL, 0, 0, 0, NULL }
3723 };
3724
3725 static int
3726 dissect_x411_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3727 #line 1049 "x411.cnf"
3728         gint apdu = -1;
3729
3730           offset = dissect_ber_choice(actx, tree, tvb, offset,
3731                                  MTS_APDU_choice, hf_index, ett_x411_MTS_APDU,
3732                                  &apdu);
3733
3734         
3735         if( (apdu!=-1) && x411_MTS_APDU_vals[apdu].strptr ){
3736                 if(check_col(actx->pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
3737                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_MTS_APDU_vals[apdu].strptr);
3738                 }
3739         }
3740
3741
3742
3743   return offset;
3744 }
3745
3746
3747 static const ber_sequence_t PerMessageTransferFields_set[] = {
3748   { &hf_x411_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageIdentifier },
3749   { &hf_x411_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3750   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3751   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3752   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3753   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
3754   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3755   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
3756   { &hf_x411_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3757   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3758   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3759   { NULL, 0, 0, 0, NULL }
3760 };
3761
3762 static int
3763 dissect_x411_PerMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3764   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3765                               PerMessageTransferFields_set, hf_index, ett_x411_PerMessageTransferFields);
3766
3767   return offset;
3768 }
3769
3770
3771 static const ber_sequence_t PerProbeTransferFields_set[] = {
3772   { &hf_x411_probe_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeIdentifier },
3773   { &hf_x411_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3774   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3775   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3776   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3777   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
3778   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3779   { &hf_x411_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3780   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3781   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3782   { NULL, 0, 0, 0, NULL }
3783 };
3784
3785 static int
3786 dissect_x411_PerProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3787   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3788                               PerProbeTransferFields_set, hf_index, ett_x411_PerProbeTransferFields);
3789
3790   return offset;
3791 }
3792
3793
3794 static const ber_sequence_t PerReportTransferFields_set[] = {
3795   { &hf_x411_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIdentifier },
3796   { &hf_x411_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIntermediateTraceInformation },
3797   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3798   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3799   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3800   { &hf_x411_returned_content, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
3801   { &hf_x411_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AdditionalInformation },
3802   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3803   { NULL, 0, 0, 0, NULL }
3804 };
3805
3806 static int
3807 dissect_x411_PerReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3808   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3809                               PerReportTransferFields_set, hf_index, ett_x411_PerReportTransferFields);
3810
3811   return offset;
3812 }
3813
3814
3815 static const ber_sequence_t T_private_domain_01_sequence[] = {
3816   { &hf_x411_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_AdministrationDomainName },
3817   { &hf_x411_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
3818   { NULL, 0, 0, 0, NULL }
3819 };
3820
3821 static int
3822 dissect_x411_T_private_domain_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3823   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3824                                    T_private_domain_01_sequence, hf_index, ett_x411_T_private_domain_01);
3825
3826   return offset;
3827 }
3828
3829
3830 static const value_string x411_T_domain_vals[] = {
3831   {   0, "administration-domain-name" },
3832   {   1, "private-domain" },
3833   { 0, NULL }
3834 };
3835
3836 static const ber_choice_t T_domain_choice[] = {
3837   {   0, &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
3838   {   1, &hf_x411_private_domain_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_private_domain_01 },
3839   { 0, NULL, 0, 0, 0, NULL }
3840 };
3841
3842 static int
3843 dissect_x411_T_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3844   offset = dissect_ber_choice(actx, tree, tvb, offset,
3845                                  T_domain_choice, hf_index, ett_x411_T_domain,
3846                                  NULL);
3847
3848   return offset;
3849 }
3850
3851
3852 static const ber_sequence_t BilateralDomain_sequence[] = {
3853   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
3854   { &hf_x411_domain         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_domain },
3855   { NULL, 0, 0, 0, NULL }
3856 };
3857
3858 static int
3859 dissect_x411_BilateralDomain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3860   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3861                                    BilateralDomain_sequence, hf_index, ett_x411_BilateralDomain);
3862
3863   return offset;
3864 }
3865
3866
3867 static const value_string x411_T_attempted_vals[] = {
3868   {   0, "mta" },
3869   {   1, "domain" },
3870   { 0, NULL }
3871 };
3872
3873 static const ber_choice_t T_attempted_choice[] = {
3874   {   0, &hf_x411_mta            , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
3875   {   1, &hf_x411_domain_01      , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
3876   { 0, NULL, 0, 0, 0, NULL }
3877 };
3878
3879 static int
3880 dissect_x411_T_attempted(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3881   offset = dissect_ber_choice(actx, tree, tvb, offset,
3882                                  T_attempted_choice, hf_index, ett_x411_T_attempted,
3883                                  NULL);
3884
3885   return offset;
3886 }
3887
3888
3889 static const ber_sequence_t MTASuppliedInformation_set[] = {
3890   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
3891   { &hf_x411_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RoutingAction },
3892   { &hf_x411_attempted      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_attempted },
3893   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
3894   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
3895   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
3896   { NULL, 0, 0, 0, NULL }
3897 };
3898
3899 static int
3900 dissect_x411_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3901 #line 951 "x411.cnf"
3902
3903         doing_address = FALSE;
3904
3905           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3906                               MTASuppliedInformation_set, hf_index, ett_x411_MTASuppliedInformation);
3907
3908
3909         doing_address = TRUE;
3910         proto_item_append_text(tree, ")");
3911
3912
3913
3914   return offset;
3915 }
3916
3917
3918 static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
3919   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
3920   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
3921   { &hf_x411_mta_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MTASuppliedInformation },
3922   { NULL, 0, 0, 0, NULL }
3923 };
3924
3925 static int
3926 dissect_x411_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3927 #line 934 "x411.cnf"
3928
3929         doing_address = TRUE;
3930
3931           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3932                                    InternalTraceInformationElement_sequence, hf_index, ett_x411_InternalTraceInformationElement);
3933
3934
3935         doing_address = FALSE;
3936
3937
3938
3939   return offset;
3940 }
3941
3942
3943 static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
3944   { &hf_x411_InternalTraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_InternalTraceInformationElement },
3945 };
3946
3947 static int
3948 dissect_x411_InternalTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3949   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3950                                       InternalTraceInformation_sequence_of, hf_index, ett_x411_InternalTraceInformation);
3951
3952   return offset;
3953 }
3954
3955
3956 static const ber_sequence_t AdditionalActions_set[] = {
3957   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
3958   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
3959   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
3960   { NULL, 0, 0, 0, NULL }
3961 };
3962
3963 static int
3964 dissect_x411_AdditionalActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3965   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3966                               AdditionalActions_set, hf_index, ett_x411_AdditionalActions);
3967
3968   return offset;
3969 }
3970
3971
3972
3973 static int
3974 dissect_x411_InternalAdditionalActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3975   offset = dissect_x411_AdditionalActions(implicit_tag, tvb, offset, actx, tree, hf_index);
3976
3977   return offset;
3978 }
3979
3980
3981 static const value_string x411_ObjectName_vals[] = {
3982   {   0, "user-agent" },
3983   {   1, "mTA" },
3984   {   2, "message-store" },
3985   { 0, NULL }
3986 };
3987
3988 static const ber_choice_t ObjectName_choice[] = {
3989   {   0, &hf_x411_user_agent     , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
3990   {   1, &hf_x411_mTA            , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
3991   {   2, &hf_x411_message_store  , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
3992   { 0, NULL, 0, 0, 0, NULL }
3993 };
3994
3995 static int
3996 dissect_x411_ObjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3997   offset = dissect_ber_choice(actx, tree, tvb, offset,
3998                                  ObjectName_choice, hf_index, ett_x411_ObjectName,
3999                                  NULL);
4000
4001   return offset;
4002 }
4003
4004
4005
4006 static int
4007 dissect_x411_INTEGER_0_ub_queue_size(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4008   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4009                                                 NULL);
4010
4011   return offset;
4012 }
4013
4014
4015
4016 static int
4017 dissect_x411_INTEGER_0_ub_content_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4018   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4019                                                 NULL);
4020
4021   return offset;
4022 }
4023
4024
4025 static const ber_sequence_t DeliveryQueue_set[] = {
4026   { &hf_x411_messages       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_INTEGER_0_ub_queue_size },
4027   { &hf_x411_delivery_queue_octets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER_0_ub_content_length },
4028   { NULL, 0, 0, 0, NULL }
4029 };
4030
4031 static int
4032 dissect_x411_DeliveryQueue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4033   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4034                               DeliveryQueue_set, hf_index, ett_x411_DeliveryQueue);
4035
4036   return offset;
4037 }
4038
4039
4040 static const ber_sequence_t MessagesWaiting_set[] = {
4041   { &hf_x411_urgent         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4042   { &hf_x411_normal         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4043   { &hf_x411_non_urgent     , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4044   { NULL, 0, 0, 0, NULL }
4045 };
4046
4047 static int
4048 dissect_x411_MessagesWaiting(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4049   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4050                               MessagesWaiting_set, hf_index, ett_x411_MessagesWaiting);
4051
4052   return offset;
4053 }
4054
4055
4056 static const ber_sequence_t MTSBindArgument_set[] = {
4057   { &hf_x411_initiator_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ObjectName },
4058   { &hf_x411_messages_waiting, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x411_MessagesWaiting },
4059   { &hf_x411_initiator_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_InitiatorCredentials },
4060   { &hf_x411_security_context, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4061   { &hf_x411_extensions     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4062   { NULL, 0, 0, 0, NULL }
4063 };
4064
4065 static int
4066 dissect_x411_MTSBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4067   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4068                               MTSBindArgument_set, hf_index, ett_x411_MTSBindArgument);
4069
4070   return offset;
4071 }
4072
4073
4074 static const ber_sequence_t MTSBindResult_set[] = {
4075   { &hf_x411_responder_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ObjectName },
4076   { &hf_x411_messages_waiting, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x411_MessagesWaiting },
4077   { &hf_x411_responder_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ResponderCredentials },
4078   { &hf_x411_extensions     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4079   { NULL, 0, 0, 0, NULL }
4080 };
4081
4082 static int
4083 dissect_x411_MTSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4084   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4085                               MTSBindResult_set, hf_index, ett_x411_MTSBindResult);
4086
4087   return offset;
4088 }
4089
4090
4091 static const value_string x411_PAR_mts_bind_error_vals[] = {
4092   {   0, "busy" },
4093   {   2, "authentication-error" },
4094   {   3, "unacceptable-dialogue-mode" },
4095   {   4, "unacceptable-security-context" },
4096   {   5, "inadequate-association-confidentiality" },
4097   { 0, NULL }
4098 };
4099
4100
4101 static int
4102 dissect_x411_PAR_mts_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4103   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4104                                                 NULL);
4105
4106   return offset;
4107 }
4108
4109
4110
4111 int
4112 dissect_x411_ORAddressAndOrDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4113   offset = dissect_x411_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
4114
4115   return offset;
4116 }
4117
4118
4119
4120 int
4121 dissect_x411_OriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4122   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4123
4124   return offset;
4125 }
4126
4127
4128
4129 static int
4130 dissect_x411_RecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4131   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4132
4133   return offset;
4134 }
4135
4136
4137 static const asn_namedbit OriginatorReportRequest_bits[] = {
4138   {  3, &hf_x411_OriginatorReportRequest_report, -1, -1, "report", NULL },
4139   {  4, &hf_x411_OriginatorReportRequest_non_delivery_report, -1, -1, "non-delivery-report", NULL },
4140   { 0, NULL, 0, 0, NULL, NULL }
4141 };
4142
4143 static int
4144 dissect_x411_OriginatorReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4145   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4146                                     OriginatorReportRequest_bits, hf_index, ett_x411_OriginatorReportRequest,
4147                                     NULL);
4148
4149   return offset;
4150 }
4151
4152
4153 static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
4154   { &hf_x411_submission_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4155   { &hf_x411_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginatorReportRequest },
4156   { &hf_x411_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
4157   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4158   { NULL, 0, 0, 0, NULL }
4159 };
4160
4161 static int
4162 dissect_x411_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4163   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4164                               PerRecipientMessageSubmissionFields_set, hf_index, ett_x411_PerRecipientMessageSubmissionFields);
4165
4166   return offset;
4167 }
4168
4169
4170 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
4171   { &hf_x411_per_recipient_message_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientMessageSubmissionFields },
4172 };
4173
4174 static int
4175 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4176   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4177                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields);
4178
4179   return offset;
4180 }
4181
4182
4183 static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
4184   { &hf_x411_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
4185   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4186   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4187   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4188   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4189   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
4190   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
4191   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4192   { &hf_x411_per_recipient_message_submission_fields, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields },
4193   { NULL, 0, 0, 0, NULL }
4194 };
4195
4196 int
4197 dissect_x411_MessageSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4198   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4199                               MessageSubmissionEnvelope_set, hf_index, ett_x411_MessageSubmissionEnvelope);
4200
4201   return offset;
4202 }
4203
4204
4205 static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
4206   { &hf_x411_message_submission_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionEnvelope },
4207   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
4208   { NULL, 0, 0, 0, NULL }
4209 };
4210
4211 static int
4212 dissect_x411_MessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4214                                    MessageSubmissionArgument_sequence, hf_index, ett_x411_MessageSubmissionArgument);
4215
4216   return offset;
4217 }
4218
4219
4220
4221 int
4222 dissect_x411_MessageSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4223   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4224
4225   return offset;
4226 }
4227
4228
4229
4230 int
4231 dissect_x411_MessageSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4232   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4233
4234   return offset;
4235 }
4236
4237
4238 static const ber_sequence_t MessageSubmissionResult_set[] = {
4239   { &hf_x411_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionIdentifier },
4240   { &hf_x411_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MessageSubmissionTime },
4241   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4242   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4243   { NULL, 0, 0, 0, NULL }
4244 };
4245
4246 static int
4247 dissect_x411_MessageSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4248   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4249                               MessageSubmissionResult_set, hf_index, ett_x411_MessageSubmissionResult);
4250
4251   return offset;
4252 }
4253
4254
4255 static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
4256   { &hf_x411_probe_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4257   { &hf_x411_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginatorReportRequest },
4258   { &hf_x411_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
4259   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4260   { NULL, 0, 0, 0, NULL }
4261 };
4262
4263 int
4264 dissect_x411_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4265   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4266                               PerRecipientProbeSubmissionFields_set, hf_index, ett_x411_PerRecipientProbeSubmissionFields);
4267
4268   return offset;
4269 }
4270
4271
4272 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
4273   { &hf_x411_per_recipient_probe_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientProbeSubmissionFields },
4274 };
4275
4276 static int
4277 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4278   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4279                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields);
4280
4281   return offset;
4282 }
4283
4284
4285 static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
4286   { &hf_x411_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
4287   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4288   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4289   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4290   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4291   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
4292   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4293   { &hf_x411_per_recipient_probe_submission_fields, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields },
4294   { NULL, 0, 0, 0, NULL }
4295 };
4296
4297 int
4298 dissect_x411_ProbeSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4299   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4300                               ProbeSubmissionEnvelope_set, hf_index, ett_x411_ProbeSubmissionEnvelope);
4301
4302   return offset;
4303 }
4304
4305
4306
4307 static int
4308 dissect_x411_ProbeSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4309   offset = dissect_x411_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
4310
4311   return offset;
4312 }
4313
4314
4315
4316 int
4317 dissect_x411_ProbeSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4318   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4319
4320   return offset;
4321 }
4322
4323
4324
4325 int
4326 dissect_x411_ProbeSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4327   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4328
4329   return offset;
4330 }
4331
4332
4333 static const ber_sequence_t ProbeSubmissionResult_set[] = {
4334   { &hf_x411_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeSubmissionIdentifier },
4335   { &hf_x411_probe_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ProbeSubmissionTime },
4336   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4337   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4338   { NULL, 0, 0, 0, NULL }
4339 };
4340
4341 static int
4342 dissect_x411_ProbeSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4343   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4344                               ProbeSubmissionResult_set, hf_index, ett_x411_ProbeSubmissionResult);
4345
4346   return offset;
4347 }
4348
4349
4350
4351 static int
4352 dissect_x411_CancelDeferredDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4353   offset = dissect_x411_MessageSubmissionIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4354
4355   return offset;
4356 }
4357
4358
4359
4360 static int
4361 dissect_x411_CancelDeferredDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4362   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4363
4364   return offset;
4365 }
4366
4367
4368
4369 static int
4370 dissect_x411_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4371   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4372
4373   return offset;
4374 }
4375
4376
4377 static const asn_namedbit Operations_bits[] = {
4378   {  0, &hf_x411_Operations_probe_submission_or_report_delivery, -1, -1, "probe-submission-or-report-delivery", NULL },
4379   {  1, &hf_x411_Operations_message_submission_or_message_delivery, -1, -1, "message-submission-or-message-delivery", NULL },
4380   { 0, NULL, 0, 0, NULL, NULL }
4381 };
4382
4383 static int
4384 dissect_x411_Operations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4385   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4386                                     Operations_bits, hf_index, ett_x411_Operations,
4387                                     NULL);
4388
4389   return offset;
4390 }
4391
4392
4393 static const ber_sequence_t ContentTypes_set_of[1] = {
4394   { &hf_x411_ContentTypes_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4395 };
4396
4397 static int
4398 dissect_x411_ContentTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4399   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4400                                  ContentTypes_set_of, hf_index, ett_x411_ContentTypes);
4401
4402   return offset;
4403 }
4404
4405
4406 static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
4407   { &hf_x411_unacceptable_eits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4408   { &hf_x411_acceptable_eits, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4409   { &hf_x411_exclusively_acceptable_eits, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4410   { NULL, 0, 0, 0, NULL }
4411 };
4412
4413 int
4414 dissect_x411_EncodedInformationTypesConstraints(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4416                                    EncodedInformationTypesConstraints_sequence, hf_index, ett_x411_EncodedInformationTypesConstraints);
4417
4418   return offset;
4419 }
4420
4421
4422
4423 static int
4424 dissect_x411_PermissibleEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4425   offset = dissect_x411_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, actx, tree, hf_index);
4426
4427   return offset;
4428 }
4429
4430
4431 static const ber_sequence_t Controls_set[] = {
4432   { &hf_x411_restrict       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BOOLEAN },
4433   { &hf_x411_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4434   { &hf_x411_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4435   { &hf_x411_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4436   { &hf_x411_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
4437   { &hf_x411_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PermissibleEncodedInformationTypes },
4438   { &hf_x411_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4439   { NULL, 0, 0, 0, NULL }
4440 };
4441
4442 static int
4443 dissect_x411_Controls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4444   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4445                               Controls_set, hf_index, ett_x411_Controls);
4446
4447   return offset;
4448 }
4449
4450
4451
4452 static int
4453 dissect_x411_SubmissionControls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4454   offset = dissect_x411_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
4455
4456   return offset;
4457 }
4458
4459
4460
4461 static int
4462 dissect_x411_SubmissionControlArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4463   offset = dissect_x411_SubmissionControls(implicit_tag, tvb, offset, actx, tree, hf_index);
4464
4465   return offset;
4466 }
4467
4468
4469 static const asn_namedbit WaitingMessages_bits[] = {
4470   {  0, &hf_x411_WaitingMessages_long_content, -1, -1, "long-content", NULL },
4471   {  1, &hf_x411_WaitingMessages_low_priority, -1, -1, "low-priority", NULL },
4472   {  2, &hf_x411_WaitingMessages_other_security_labels, -1, -1, "other-security-labels", NULL },
4473   { 0, NULL, 0, 0, NULL, NULL }
4474 };
4475
4476 static int
4477 dissect_x411_WaitingMessages(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4478   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4479                                     WaitingMessages_bits, hf_index, ett_x411_WaitingMessages,
4480                                     NULL);
4481
4482   return offset;
4483 }
4484
4485
4486 static const ber_sequence_t SET_SIZE_0_ub_content_types_OF_ContentType_set_of[1] = {
4487   { &hf_x411_waiting_content_types_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4488 };
4489
4490 static int
4491 dissect_x411_SET_SIZE_0_ub_content_types_OF_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4492   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4493                                  SET_SIZE_0_ub_content_types_OF_ContentType_set_of, hf_index, ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType);
4494
4495   return offset;
4496 }
4497
4498
4499 static const ber_sequence_t Waiting_set[] = {
4500   { &hf_x411_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4501   { &hf_x411_waiting_messages, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_WaitingMessages },
4502   { &hf_x411_waiting_content_types, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_SIZE_0_ub_content_types_OF_ContentType },
4503   { &hf_x411_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_EncodedInformationTypes },
4504   { NULL, 0, 0, 0, NULL }
4505 };
4506
4507 static int
4508 dissect_x411_Waiting(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4509   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4510                               Waiting_set, hf_index, ett_x411_Waiting);
4511
4512   return offset;
4513 }
4514
4515
4516
4517 static int
4518 dissect_x411_SubmissionControlResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4519   offset = dissect_x411_Waiting(implicit_tag, tvb, offset, actx, tree, hf_index);
4520
4521   return offset;
4522 }
4523
4524
4525
4526 static int
4527 dissect_x411_PAR_submission_control_violated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4528   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4529
4530   return offset;
4531 }
4532
4533
4534
4535 static int
4536 dissect_x411_PAR_element_of_service_not_subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4537   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4538
4539   return offset;
4540 }
4541
4542
4543
4544 static int
4545 dissect_x411_PAR_deferred_delivery_cancellation_rejected(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4546   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4547
4548   return offset;
4549 }
4550
4551
4552
4553 static int
4554 dissect_x411_PAR_originator_invalid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4555   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4556
4557   return offset;
4558 }
4559
4560
4561 static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
4562   { &hf_x411_ImproperlySpecifiedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4563 };
4564
4565 int
4566 dissect_x411_ImproperlySpecifiedRecipients(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4567   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4568                                       ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_x411_ImproperlySpecifiedRecipients);
4569
4570   return offset;
4571 }
4572
4573
4574
4575 static int
4576 dissect_x411_PAR_message_submission_identifier_invalid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4577   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4578
4579   return offset;
4580 }
4581
4582
4583
4584 static int
4585 dissect_x411_PAR_inconsistent_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_) {
4586   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4587
4588   return offset;
4589 }
4590
4591
4592 const value_string x411_SecurityProblem_vals[] = {
4593   {   0, "assemby-instructions-conflict-with-security-services" },
4594   {   1, "authentication-problem" },
4595   {   2, "authentication-failure-on-subject-message" },
4596   {   3, "confidentiality-association-problem" },
4597   {   4, "decryption-failed" },
4598   {   5, "decryption-key-unobtainable" },
4599   {   6, "failure-of-proof-of-message" },
4600   {   7, "forbidden-user-security-label-register" },
4601   {   8, "incompatible-change-with-original-security-context" },
4602   {   9, "integrity-failure-on-subject-message" },
4603   {  10, "invalid-security-label" },
4604   {  11, "invalid-security-label-update" },
4605   {  12, "key-failure" },
4606   {  13, "mandatory-parameter-absence" },
4607   {  14, "operation-security-failure" },
4608   {  15, "redirection-prohibited" },
4609   {  16, "refused-alternate-recipient-name" },
4610   {  17, "repudiation-failure-of-message" },
4611   {  18, "responder-credentials-checking-problem" },
4612   {  19, "security-context-failure" },
4613   {  20, "security-context-problem" },
4614   {  21, "security-policy-violation" },
4615   {  22, "security-services-refusal" },
4616   {  23, "token-decryption-failed" },
4617   {  24, "token-error" },
4618   {  25, "unable-to-aggregate-security-labels" },
4619   {  26, "unauthorised-dl-name" },
4620   {  27, "unauthorised-entry-class" },
4621   {  28, "unauthorised-originally-intended-recipient-name" },
4622   {  29, "unauthorised-originator-name" },
4623   {  30, "unauthorised-recipient-name" },
4624   {  31, "unauthorised-security-label-update" },
4625   {  32, "unauthorised-user-name" },
4626   {  33, "unknown-security-label" },
4627   {  34, "unsupported-algorithm-identifier" },
4628   {  35, "unsupported-security-policy" },
4629   { 0, NULL }
4630 };
4631
4632
4633 int
4634 dissect_x411_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4635   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4636                                                 NULL);
4637
4638   return offset;
4639 }
4640
4641
4642
4643 static int
4644 dissect_x411_PAR_unsupported_critical_function(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4645   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4646
4647   return offset;
4648 }
4649
4650
4651
4652 static int
4653 dissect_x411_PAR_remote_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4654   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4655
4656   return offset;
4657 }
4658
4659
4660
4661 int
4662 dissect_x411_MessageDeliveryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4663   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4664
4665   return offset;
4666 }
4667
4668
4669 static const value_string x411_DeliveredContentType_vals[] = {
4670   {   0, "built-in" },
4671   {   1, "extended" },
4672   { 0, NULL }
4673 };
4674
4675 static const ber_choice_t DeliveredContentType_choice[] = {
4676   {   0, &hf_x411_built_in       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_BuiltInContentType },
4677   {   1, &hf_x411_extended       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedContentType },
4678   { 0, NULL, 0, 0, 0, NULL }
4679 };
4680
4681 static int
4682 dissect_x411_DeliveredContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4683   offset = dissect_ber_choice(actx, tree, tvb, offset,
4684                                  DeliveredContentType_choice, hf_index, ett_x411_DeliveredContentType,
4685                                  NULL);
4686
4687   return offset;
4688 }
4689
4690
4691
4692 static int
4693 dissect_x411_DeliveredOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4694   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4695
4696   return offset;
4697 }
4698
4699
4700 static const asn_namedbit DeliveryFlags_bits[] = {
4701   {  1, &hf_x411_DeliveryFlags_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
4702   { 0, NULL, 0, 0, NULL, NULL }
4703 };
4704
4705 static int
4706 dissect_x411_DeliveryFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4707   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4708                                     DeliveryFlags_bits, hf_index, ett_x411_DeliveryFlags,
4709                                     NULL);
4710
4711   return offset;
4712 }
4713
4714
4715
4716 static int
4717 dissect_x411_OtherRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4718   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4719
4720   return offset;
4721 }
4722
4723
4724 static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
4725   { &hf_x411_OtherRecipientNames_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OtherRecipientName },
4726 };
4727
4728 static int
4729 dissect_x411_OtherRecipientNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4730   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4731                                       OtherRecipientNames_sequence_of, hf_index, ett_x411_OtherRecipientNames);
4732
4733   return offset;
4734 }
4735
4736
4737
4738 static int
4739 dissect_x411_ThisRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4740   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4741
4742   return offset;
4743 }
4744
4745
4746 static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
4747   { &hf_x411_delivered_content_type, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_DeliveredContentType },
4748   { &hf_x411_delivered_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_DeliveredOriginatorName },
4749   { &hf_x411_original_encoded_information_types, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginalEncodedInformationTypes },
4750   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4751   { &hf_x411_delivery_flags , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeliveryFlags },
4752   { &hf_x411_other_recipient_names, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherRecipientNames },
4753   { &hf_x411_this_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x411_ThisRecipientName },
4754   { &hf_x411_originally_intended_recipient_name, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
4755   { &hf_x411_converted_encoded_information_types, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ConvertedEncodedInformationTypes },
4756   { &hf_x411_message_submission_time, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_x411_MessageSubmissionTime },
4757   { &hf_x411_content_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIdentifier },
4758   { &hf_x411_extensions     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4759   { NULL, 0, 0, 0, NULL }
4760 };
4761
4762 int
4763 dissect_x411_OtherMessageDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4764   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4765                               OtherMessageDeliveryFields_set, hf_index, ett_x411_OtherMessageDeliveryFields);
4766
4767   return offset;
4768 }
4769
4770
4771 static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
4772   { &hf_x411_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryIdentifier },
4773   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
4774   { &hf_x411_other_fields   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_OtherMessageDeliveryFields },
4775   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
4776   { NULL, 0, 0, 0, NULL }
4777 };
4778
4779 static int
4780 dissect_x411_MessageDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4782                                    MessageDeliveryArgument_sequence, hf_index, ett_x411_MessageDeliveryArgument);
4783
4784   return offset;
4785 }
4786
4787
4788
4789 static int
4790 dissect_x411_RecipientCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4791   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
4792
4793   return offset;
4794 }
4795
4796
4797
4798 static int
4799 dissect_x411_ProofOfDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4800   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
4801
4802   return offset;
4803 }
4804
4805
4806 static const ber_sequence_t MessageDeliveryResult_set[] = {
4807   { &hf_x411_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientCertificate },
4808   { &hf_x411_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDelivery },
4809   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4810   { NULL, 0, 0, 0, NULL }
4811 };
4812
4813 static int
4814 dissect_x411_MessageDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4815   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4816                               MessageDeliveryResult_set, hf_index, ett_x411_MessageDeliveryResult);
4817
4818   return offset;
4819 }
4820
4821
4822
4823 static int
4824 dissect_x411_SubjectSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4825   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4826
4827   return offset;
4828 }
4829
4830
4831
4832 static int
4833 dissect_x411_ActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4834   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4835
4836   return offset;
4837 }
4838
4839
4840 static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
4841   { &hf_x411_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ActualRecipientName },
4842   { &hf_x411_delivery_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ReportType },
4843   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
4844   { &hf_x411_originally_intended_recipient_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
4845   { &hf_x411_supplementary_information, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SupplementaryInformation },
4846   { &hf_x411_extensions     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4847   { NULL, 0, 0, 0, NULL }
4848 };
4849
4850 static int
4851 dissect_x411_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4852   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4853                               PerRecipientReportDeliveryFields_set, hf_index, ett_x411_PerRecipientReportDeliveryFields);
4854
4855   return offset;
4856 }
4857
4858
4859 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
4860   { &hf_x411_per_recipient_report_delivery_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientReportDeliveryFields },
4861 };
4862
4863 static int
4864 dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4865   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4866                                       SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields);
4867
4868   return offset;
4869 }
4870
4871
4872 static const ber_sequence_t ReportDeliveryArgument_set[] = {
4873   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
4874   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4875   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4876   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4877   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4878   { &hf_x411_per_recipient_report_delivery_fields, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields },
4879   { &hf_x411_returned_content, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
4880   { NULL, 0, 0, 0, NULL }
4881 };
4882
4883 static int
4884 dissect_x411_ReportDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4885   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4886                               ReportDeliveryArgument_set, hf_index, ett_x411_ReportDeliveryArgument);
4887
4888   return offset;
4889 }
4890
4891
4892 static const ber_sequence_t SET_SIZE_1_MAX_OF_ExtensionField_set_of[1] = {
4893   { &hf_x411_max_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionField },
4894 };
4895
4896 static int
4897 dissect_x411_SET_SIZE_1_MAX_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4898   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4899                                  SET_SIZE_1_MAX_OF_ExtensionField_set_of, hf_index, ett_x411_SET_SIZE_1_MAX_OF_ExtensionField);
4900
4901   return offset;
4902 }
4903
4904
4905 static const value_string x411_ReportDeliveryResult_vals[] = {
4906   {   0, "empty-result" },
4907   {   1, "extensions" },
4908   { 0, NULL }
4909 };
4910
4911 static const ber_choice_t ReportDeliveryResult_choice[] = {
4912   {   0, &hf_x411_empty_result   , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
4913   {   1, &hf_x411_max_extensions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_SET_SIZE_1_MAX_OF_ExtensionField },
4914   { 0, NULL, 0, 0, 0, NULL }
4915 };
4916
4917 static int
4918 dissect_x411_ReportDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4919   offset = dissect_ber_choice(actx, tree, tvb, offset,
4920                                  ReportDeliveryResult_choice, hf_index, ett_x411_ReportDeliveryResult,
4921                                  NULL);
4922
4923   return offset;
4924 }
4925
4926
4927 static const ber_sequence_t DeliveryControlArgument_set[] = {
4928   { &hf_x411_restrict       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BOOLEAN },
4929   { &hf_x411_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4930   { &hf_x411_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4931   { &hf_x411_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4932   { &hf_x411_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
4933   { &hf_x411_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PermissibleEncodedInformationTypes },
4934   { &hf_x411_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4935   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4936   { NULL, 0, 0, 0, NULL }
4937 };
4938
4939 static int
4940 dissect_x411_DeliveryControlArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4941   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4942                               DeliveryControlArgument_set, hf_index, ett_x411_DeliveryControlArgument);
4943
4944   return offset;
4945 }
4946
4947
4948 static const ber_sequence_t DeliveryControlResult_set[] = {
4949   { &hf_x411_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4950   { &hf_x411_waiting_messages, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_WaitingMessages },
4951   { &hf_x411_waiting_content_types, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_SIZE_0_ub_content_types_OF_ContentType },
4952   { &hf_x411_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_EncodedInformationTypes },
4953   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4954   { NULL, 0, 0, 0, NULL }
4955 };
4956
4957 static int
4958 dissect_x411_DeliveryControlResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4959   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4960                               DeliveryControlResult_set, hf_index, ett_x411_DeliveryControlResult);
4961
4962   return offset;
4963 }
4964
4965
4966
4967 static int
4968 dissect_x411_PAR_delivery_control_violated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4969   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4970
4971   return offset;
4972 }
4973
4974
4975
4976 static int
4977 dissect_x411_PAR_control_violates_registration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4978   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4979
4980   return offset;
4981 }
4982
4983
4984 static const value_string x411_RefusedArgument_vals[] = {
4985   {   0, "user-name" },
4986   {   1, "user-address" },
4987   {   2, "deliverable-content-types" },
4988   {   3, "deliverable-maximum-content-length" },
4989   {   4, "deliverable-encoded-information-types-constraints" },
4990   {   5, "deliverable-security-labels" },
4991   {   6, "recipient-assigned-redirections" },
4992   {   7, "restricted-delivery" },
4993   {   8, "retrieve-registrations" },
4994   {  10, "restrict" },
4995   {  11, "permissible-operations" },
4996   {  12, "permissible-lowest-priority" },
4997   {  13, "permissible-encoded-information-types" },
4998   {  14, "permissible-content-types" },
4999   {  15, "permissible-maximum-content-length" },
5000   {  16, "permissible-security-context" },
5001   { 0, NULL }
5002 };
5003
5004
5005 static int
5006 dissect_x411_RefusedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5007   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5008                                                 NULL);
5009
5010   return offset;
5011 }
5012
5013
5014
5015 static int
5016 dissect_x411_T_refused_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5017 #line 549 "x411.cnf"
5018 /*XXX not implemented yet */
5019
5020
5021
5022   return offset;
5023 }
5024
5025
5026 static const value_string x411_T_refused_argument_vals[] = {
5027   {   0, "built-in-argument" },
5028   {   1, "refused-extension" },
5029   { 0, NULL }
5030 };
5031
5032 static const ber_choice_t T_refused_argument_choice[] = {
5033   {   0, &hf_x411_built_in_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_RefusedArgument },
5034   {   1, &hf_x411_refused_extension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_T_refused_extension },
5035   { 0, NULL, 0, 0, 0, NULL }
5036 };
5037
5038 static int
5039 dissect_x411_T_refused_argument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5040   offset = dissect_ber_choice(actx, tree, tvb, offset,
5041                                  T_refused_argument_choice, hf_index, ett_x411_T_refused_argument,
5042                                  NULL);
5043
5044   return offset;
5045 }
5046
5047
5048 static const value_string x411_RefusalReason_vals[] = {
5049   {   0, "facility-unavailable" },
5050   {   1, "facility-not-subscribed" },
5051   {   2, "parameter-unacceptable" },
5052   { 0, NULL }
5053 };
5054
5055
5056 static int
5057 dissect_x411_RefusalReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5058   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5059                                                 NULL);
5060
5061   return offset;
5062 }
5063
5064
5065 static const ber_sequence_t RefusedOperation_set[] = {
5066   { &hf_x411_refused_argument, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_refused_argument },
5067   { &hf_x411_refusal_reason , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RefusalReason },
5068   { NULL, 0, 0, 0, NULL }
5069 };
5070
5071 static int
5072 dissect_x411_RefusedOperation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5073   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5074                               RefusedOperation_set, hf_index, ett_x411_RefusedOperation);
5075
5076   return offset;
5077 }
5078
5079
5080
5081 static int
5082 dissect_x411_UserName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5083   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5084
5085   return offset;
5086 }
5087
5088
5089
5090 static int
5091 dissect_x411_PrintableString_SIZE_1_ub_tsap_id_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5092   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
5093                                             actx, tree, tvb, offset, hf_index,
5094                                             NULL);
5095
5096   return offset;
5097 }
5098
5099
5100 static const ber_sequence_t T_x121_sequence[] = {
5101   { &hf_x411_x121_address   , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
5102   { &hf_x411_tsap_id        , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_tsap_id_length },
5103   { NULL, 0, 0, 0, NULL }
5104 };
5105
5106 static int
5107 dissect_x411_T_x121(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5108   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5109                                    T_x121_sequence, hf_index, ett_x411_T_x121);
5110
5111   return offset;
5112 }
5113
5114
5115
5116 static int
5117 dissect_x411_PSAPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5118   offset = dissect_x509sat_PresentationAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5119
5120   return offset;
5121 }
5122
5123
5124 static const value_string x411_UserAddress_vals[] = {
5125   {   0, "x121" },
5126   {   1, "presentation" },
5127   { 0, NULL }
5128 };
5129
5130 static const ber_choice_t UserAddress_choice[] = {
5131   {   0, &hf_x411_x121           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_T_x121 },
5132   {   1, &hf_x411_presentation   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PSAPAddress },
5133   { 0, NULL, 0, 0, 0, NULL }
5134 };
5135
5136 static int
5137 dissect_x411_UserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5138   offset = dissect_ber_choice(actx, tree, tvb, offset,
5139                                  UserAddress_choice, hf_index, ett_x411_UserAddress,
5140                                  NULL);
5141
5142   return offset;
5143 }
5144
5145
5146 static const ber_sequence_t SET_OF_Priority_set_of[1] = {
5147   { &hf_x411_class_priority_item, BER_CLASS_APP, 7, BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
5148 };
5149
5150 static int
5151 dissect_x411_SET_OF_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5152   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5153                                  SET_OF_Priority_set_of, hf_index, ett_x411_SET_OF_Priority);
5154
5155   return offset;
5156 }
5157
5158
5159 static const value_string x411_T_objects_vals[] = {
5160   {   0, "messages" },
5161   {   1, "reports" },
5162   {   2, "both" },
5163   { 0, NULL }
5164 };
5165
5166
5167 static int
5168 dissect_x411_T_objects(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5169   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5170                                   NULL);
5171
5172   return offset;
5173 }
5174
5175
5176 static const asn_namedbit T_source_type_bits[] = {
5177   {  0, &hf_x411_T_source_type_originated_by, -1, -1, "originated-by", NULL },
5178   {  1, &hf_x411_T_source_type_redirected_by, -1, -1, "redirected-by", NULL },
5179   {  2, &hf_x411_T_source_type_dl_expanded_by, -1, -1, "dl-expanded-by", NULL },
5180   { 0, NULL, 0, 0, NULL, NULL }
5181 };
5182
5183 static int
5184 dissect_x411_T_source_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_) {
5185   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5186                                     T_source_type_bits, hf_index, ett_x411_T_source_type,
5187                                     NULL);
5188
5189   return offset;
5190 }
5191
5192
5193 static const value_string x411_ExactOrPattern_vals[] = {
5194   {   0, "exact-match" },
5195   {   1, "pattern-match" },
5196   { 0, NULL }
5197 };
5198
5199 static const ber_choice_t ExactOrPattern_choice[] = {
5200   {   0, &hf_x411_exact_match    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
5201   {   1, &hf_x411_pattern_match  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
5202   { 0, NULL, 0, 0, 0, NULL }
5203 };
5204
5205 static int
5206 dissect_x411_ExactOrPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5207   offset = dissect_ber_choice(actx, tree, tvb, offset,
5208                                  ExactOrPattern_choice, hf_index, ett_x411_ExactOrPattern,
5209                                  NULL);
5210
5211   return offset;
5212 }
5213
5214
5215 static const ber_sequence_t Restriction_set[] = {
5216   { &hf_x411_permitted      , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BOOLEAN },
5217   { &hf_x411_source_type    , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_T_source_type },
5218   { &hf_x411_source_name    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExactOrPattern },
5219   { NULL, 0, 0, 0, NULL }
5220 };
5221
5222 static int
5223 dissect_x411_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5224   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5225                               Restriction_set, hf_index, ett_x411_Restriction);
5226
5227   return offset;
5228 }
5229
5230
5231 static const ber_sequence_t SEQUENCE_OF_Restriction_sequence_of[1] = {
5232   { &hf_x411_applies_only_to_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_Restriction },
5233 };
5234
5235 static int
5236 dissect_x411_SEQUENCE_OF_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5237   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5238                                       SEQUENCE_OF_Restriction_sequence_of, hf_index, ett_x411_SEQUENCE_OF_Restriction);
5239
5240   return offset;
5241 }
5242
5243
5244 static const ber_sequence_t MessageClass_set[] = {
5245   { &hf_x411_content_types  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
5246   { &hf_x411_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
5247   { &hf_x411_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncodedInformationTypesConstraints },
5248   { &hf_x411_security_labels, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
5249   { &hf_x411_class_priority , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_Priority },
5250   { &hf_x411_objects        , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_objects },
5251   { &hf_x411_applies_only_to, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_OF_Restriction },
5252   { &hf_x411_extensions     , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5253   { NULL, 0, 0, 0, NULL }
5254 };
5255
5256 static int
5257 dissect_x411_MessageClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5258   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5259                               MessageClass_set, hf_index, ett_x411_MessageClass);
5260
5261   return offset;
5262 }
5263
5264
5265
5266 static int
5267 dissect_x411_DeliverableClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5268   offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5269
5270   return offset;
5271 }
5272
5273
5274 static const ber_sequence_t SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of[1] = {
5275   { &hf_x411_deliverable_class_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_DeliverableClass },
5276 };
5277
5278 static int
5279 dissect_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5280   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5281                                  SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of, hf_index, ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass);
5282
5283   return offset;
5284 }
5285
5286
5287
5288 static int
5289 dissect_x411_DefaultDeliveryControls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5290   offset = dissect_x411_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
5291
5292   return offset;
5293 }
5294
5295
5296
5297 static int
5298 dissect_x411_RedirectionClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5299   offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5300
5301   return offset;
5302 }
5303
5304
5305 static const ber_sequence_t SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of[1] = {
5306   { &hf_x411_redirection_classes_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_RedirectionClass },
5307 };
5308
5309 static int
5310 dissect_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5311   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5312                                  SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of, hf_index, ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass);
5313
5314   return offset;
5315 }
5316
5317
5318
5319 static int
5320 dissect_x411_RecipientAssignedAlternateRecipient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5321   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5322
5323   return offset;
5324 }
5325
5326
5327 static const ber_sequence_t RecipientRedirection_set[] = {
5328   { &hf_x411_redirection_classes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass },
5329   { &hf_x411_recipient_assigned_alternate_recipient, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientAssignedAlternateRecipient },
5330   { NULL, 0, 0, 0, NULL }
5331 };
5332
5333 static int
5334 dissect_x411_RecipientRedirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5335   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5336                               RecipientRedirection_set, hf_index, ett_x411_RecipientRedirection);
5337
5338   return offset;
5339 }
5340
5341
5342 static const ber_sequence_t Redirections_sequence_of[1] = {
5343   { &hf_x411_Redirections_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientRedirection },
5344 };
5345
5346 static int
5347 dissect_x411_Redirections(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5348   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5349                                       Redirections_sequence_of, hf_index, ett_x411_Redirections);
5350
5351   return offset;
5352 }
5353
5354
5355 static const ber_sequence_t RestrictedDelivery_sequence_of[1] = {
5356   { &hf_x411_RestrictedDelivery_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_Restriction },
5357 };
5358
5359 static int
5360 dissect_x411_RestrictedDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5361   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5362                                       RestrictedDelivery_sequence_of, hf_index, ett_x411_RestrictedDelivery);
5363
5364   return offset;
5365 }
5366
5367
5368 static const asn_namedbit T_standard_parameters_bits[] = {
5369   {  0, &hf_x411_T_standard_parameters_user_name, -1, -1, "user-name", NULL },
5370   {  1, &hf_x411_T_standard_parameters_user_address, -1, -1, "user-address", NULL },
5371   {  2, &hf_x411_T_standard_parameters_deliverable_class, -1, -1, "deliverable-class", NULL },
5372   {  3, &hf_x411_T_standard_parameters_default_delivery_controls, -1, -1, "default-delivery-controls", NULL },
5373   {  4, &hf_x411_T_standard_parameters_redirections, -1, -1, "redirections", NULL },
5374   {  5, &hf_x411_T_standard_parameters_restricted_delivery, -1, -1, "restricted-delivery", NULL },
5375   { 0, NULL, 0, 0, NULL, NULL }
5376 };
5377
5378 static int
5379 dissect_x411_T_standard_parameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5380   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5381                                     T_standard_parameters_bits, hf_index, ett_x411_T_standard_parameters,
5382                                     NULL);
5383
5384   return offset;
5385 }
5386
5387
5388
5389 static int
5390 dissect_x411_T_type_extensions_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_) {
5391 #line 498 "x411.cnf"
5392 /*XXX not implemented yet */
5393
5394
5395
5396   return offset;
5397 }
5398
5399
5400 static const ber_sequence_t T_type_extensions_set_of[1] = {
5401   { &hf_x411_type_extensions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_type_extensions_item },
5402 };
5403
5404 static int
5405 dissect_x411_T_type_extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5406   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5407                                  T_type_extensions_set_of, hf_index, ett_x411_T_type_extensions);
5408
5409   return offset;
5410 }
5411
5412
5413 static const ber_sequence_t RegistrationTypes_sequence[] = {
5414   { &hf_x411_standard_parameters, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_standard_parameters },
5415   { &hf_x411_type_extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_type_extensions },
5416   { NULL, 0, 0, 0, NULL }
5417 };
5418
5419 static int
5420 dissect_x411_RegistrationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5421   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5422                                    RegistrationTypes_sequence, hf_index, ett_x411_RegistrationTypes);
5423
5424   return offset;
5425 }
5426
5427
5428 static const ber_sequence_t RegisterArgument_set[] = {
5429   { &hf_x411_user_name      , BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_UserName },
5430   { &hf_x411_user_address   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_UserAddress },
5431   { &hf_x411_deliverable_class, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass },
5432   { &hf_x411_default_delivery_controls, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x411_DefaultDeliveryControls },
5433   { &hf_x411_redirections   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Redirections },
5434   { &hf_x411_restricted_delivery, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RestrictedDelivery },
5435   { &hf_x411_retrieve_registrations, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RegistrationTypes },
5436   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5437   { NULL, 0, 0, 0, NULL }
5438 };
5439
5440 static int
5441 dissect_x411_RegisterArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5442   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5443                               RegisterArgument_set, hf_index, ett_x411_RegisterArgument);
5444
5445   return offset;
5446 }
5447
5448
5449 static const ber_sequence_t T_non_empty_result_set[] = {
5450   { &hf_x411_registered_information, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RegisterArgument },
5451   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5452   { NULL, 0, 0, 0, NULL }
5453 };
5454
5455 static int
5456 dissect_x411_T_non_empty_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5457   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5458                               T_non_empty_result_set, hf_index, ett_x411_T_non_empty_result);
5459
5460   return offset;
5461 }
5462
5463
5464 static const value_string x411_RegisterResult_vals[] = {
5465   {   0, "empty-result" },
5466   {   1, "non-empty-result" },
5467   { 0, NULL }
5468 };
5469
5470 static const ber_choice_t RegisterResult_choice[] = {
5471   {   0, &hf_x411_empty_result   , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
5472   {   1, &hf_x411_non_empty_result, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_T_non_empty_result },
5473   { 0, NULL, 0, 0, 0, NULL }
5474 };
5475
5476 static int
5477 dissect_x411_RegisterResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5478   offset = dissect_ber_choice(actx, tree, tvb, offset,
5479                                  RegisterResult_choice, hf_index, ett_x411_RegisterResult,
5480                                  NULL);
5481
5482   return offset;
5483 }
5484
5485
5486
5487 static int
5488 dissect_x411_RES_change_credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5489   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5490
5491   return offset;
5492 }
5493
5494
5495 static const ber_sequence_t ChangeCredentialsArgument_set[] = {
5496   { &hf_x411_old_credentials, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_Credentials },
5497   { &hf_x411_new_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_Credentials },
5498   { NULL, 0, 0, 0, NULL }
5499 };
5500
5501 static int
5502 dissect_x411_ChangeCredentialsArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5503   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5504                               ChangeCredentialsArgument_set, hf_index, ett_x411_ChangeCredentialsArgument);
5505
5506   return offset;
5507 }
5508
5509
5510
5511 static int
5512 dissect_x411_PAR_register_rejected(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5513   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5514
5515   return offset;
5516 }
5517
5518
5519
5520 static int
5521 dissect_x411_PAR_new_credentials_unacceptable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5522   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5523
5524   return offset;
5525 }
5526
5527
5528
5529 static int
5530 dissect_x411_PAR_old_credentials_incorrectly_specified(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5531   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5532
5533   return offset;
5534 }
5535
5536
5537 static const ber_sequence_t PerMessageSubmissionFields_set[] = {
5538   { &hf_x411_originator_name_01, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
5539   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5540   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5541   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5542   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
5543   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
5544   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
5545   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5546   { NULL, 0, 0, 0, NULL }
5547 };
5548
5549 static int
5550 dissect_x411_PerMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5551   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5552                               PerMessageSubmissionFields_set, hf_index, ett_x411_PerMessageSubmissionFields);
5553
5554   return offset;
5555 }
5556
5557
5558 static const ber_sequence_t PerProbeSubmissionFields_set[] = {
5559   { &hf_x411_originator_name_01, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
5560   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5561   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5562   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5563   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
5564   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
5565   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5566   { NULL, 0, 0, 0, NULL }
5567 };
5568
5569 static int
5570 dissect_x411_PerProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5571   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5572                               PerProbeSubmissionFields_set, hf_index, ett_x411_PerProbeSubmissionFields);
5573
5574   return offset;
5575 }
5576
5577
5578 static const ber_sequence_t MessageDeliveryEnvelope_sequence[] = {
5579   { &hf_x411_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryIdentifier },
5580   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
5581   { &hf_x411_other_fields   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_OtherMessageDeliveryFields },
5582   { NULL, 0, 0, 0, NULL }
5583 };
5584
5585 static int
5586 dissect_x411_MessageDeliveryEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5587   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5588                                    MessageDeliveryEnvelope_sequence, hf_index, ett_x411_MessageDeliveryEnvelope);
5589
5590   return offset;
5591 }
5592
5593
5594 static const ber_sequence_t ReportDeliveryEnvelope_set[] = {
5595   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
5596   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5597   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5598   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5599   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5600   { &hf_x411_per_recipient_report_delivery_fields, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields },
5601   { NULL, 0, 0, 0, NULL }
5602 };
5603
5604 static int
5605 dissect_x411_ReportDeliveryEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5606   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5607                               ReportDeliveryEnvelope_set, hf_index, ett_x411_ReportDeliveryEnvelope);
5608
5609   return offset;
5610 }
5611
5612
5613 static const ber_sequence_t PerReportDeliveryFields_set[] = {
5614   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
5615   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5616   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5617   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5618   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5619   { NULL, 0, 0, 0, NULL }
5620 };
5621
5622 static int
5623 dissect_x411_PerReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5624   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5625                               PerReportDeliveryFields_set, hf_index, ett_x411_PerReportDeliveryFields);
5626
5627   return offset;
5628 }
5629
5630
5631 static const value_string x411_RecipientReassignmentProhibited_vals[] = {
5632   {   0, "recipient-reassignment-allowed" },
5633   {   1, "recipient-reassignment-prohibited" },
5634   { 0, NULL }
5635 };
5636
5637
5638 static int
5639 dissect_x411_RecipientReassignmentProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5640   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5641                                   NULL);
5642
5643   return offset;
5644 }
5645
5646
5647
5648 static int
5649 dissect_x411_OriginatorRequestedAlternateRecipient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5650   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5651
5652   return offset;
5653 }
5654
5655
5656 static const value_string x411_DLExpansionProhibited_vals[] = {
5657   {   0, "dl-expansion-allowed" },
5658   {   1, "dl-expansion-prohibited" },
5659   { 0, NULL }
5660 };
5661
5662
5663 static int
5664 dissect_x411_DLExpansionProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5665   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5666                                   NULL);
5667
5668   return offset;
5669 }
5670
5671
5672 static const value_string x411_ConversionWithLossProhibited_vals[] = {
5673   {   0, "conversion-with-loss-allowed" },
5674   {   1, "conversion-with-loss-prohibited" },
5675   { 0, NULL }
5676 };
5677
5678
5679 static int
5680 dissect_x411_ConversionWithLossProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5681   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5682                                   NULL);
5683
5684   return offset;
5685 }
5686
5687
5688
5689 static int
5690 dissect_x411_LatestDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5691   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
5692
5693   return offset;
5694 }
5695
5696
5697 static const value_string x411_RequestedDeliveryMethod_item_vals[] = {
5698   {   0, "any-delivery-method" },
5699   {   1, "mhs-delivery" },
5700   {   2, "physical-delivery" },
5701   {   3, "telex-delivery" },
5702   {   4, "teletex-delivery" },
5703   {   5, "g3-facsimile-delivery" },
5704   {   6, "g4-facsimile-delivery" },
5705   {   7, "ia5-terminal-delivery" },
5706   {   8, "videotex-delivery" },
5707   {   9, "telephone-delivery" },
5708   { 0, NULL }
5709 };
5710
5711
5712 static int
5713 dissect_x411_RequestedDeliveryMethod_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_) {
5714   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5715                                                 NULL);
5716
5717   return offset;
5718 }
5719
5720
5721 static const ber_sequence_t RequestedDeliveryMethod_sequence_of[1] = {
5722   { &hf_x411_RequestedDeliveryMethod_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_RequestedDeliveryMethod_item },
5723 };
5724
5725 int
5726 dissect_x411_RequestedDeliveryMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5727   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5728                                       RequestedDeliveryMethod_sequence_of, hf_index, ett_x411_RequestedDeliveryMethod);
5729
5730   return offset;
5731 }
5732
5733
5734 static const value_string x411_PhysicalForwardingProhibited_vals[] = {
5735   {   0, "physical-forwarding-allowed" },
5736   {   1, "physical-forwarding-prohibited" },
5737   { 0, NULL }
5738 };
5739
5740
5741 static int
5742 dissect_x411_PhysicalForwardingProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5743   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5744                                   NULL);
5745
5746   return offset;
5747 }
5748
5749
5750 static const value_string x411_PhysicalForwardingAddressRequest_vals[] = {
5751   {   0, "physical-forwarding-address-not-requested" },
5752   {   1, "physical-forwarding-address-requested" },
5753   { 0, NULL }
5754 };
5755
5756
5757 static int
5758 dissect_x411_PhysicalForwardingAddressRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5759   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5760                                   NULL);
5761
5762   return offset;
5763 }
5764
5765
5766 static const asn_namedbit PhysicalDeliveryModes_bits[] = {
5767   {  0, &hf_x411_PhysicalDeliveryModes_ordinary_mail, -1, -1, "ordinary-mail", NULL },
5768   {  1, &hf_x411_PhysicalDeliveryModes_special_delivery, -1, -1, "special-delivery", NULL },
5769   {  2, &hf_x411_PhysicalDeliveryModes_express_mail, -1, -1, "express-mail", NULL },
5770   {  3, &hf_x411_PhysicalDeliveryModes_counter_collection, -1, -1, "counter-collection", NULL },
5771   {  4, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice, -1, -1, "counter-collection-with-telephone-advice", NULL },
5772   {  5, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice, -1, -1, "counter-collection-with-telex-advice", NULL },
5773   {  6, &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice, -1, -1, "counter-collection-with-teletex-advice", NULL },
5774   {  7, &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery, -1, -1, "bureau-fax-delivery", NULL },
5775   { 0, NULL, 0, 0, NULL, NULL }
5776 };
5777
5778 static int
5779 dissect_x411_PhysicalDeliveryModes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5780   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5781                                     PhysicalDeliveryModes_bits, hf_index, ett_x411_PhysicalDeliveryModes,
5782                                     NULL);
5783
5784   return offset;
5785 }
5786
5787
5788 static const value_string x411_RegisteredMailType_vals[] = {
5789   {   0, "non-registered-mail" },
5790   {   1, "registered-mail" },
5791   {   2, "registered-mail-to-addressee-in-person" },
5792   { 0, NULL }
5793 };
5794
5795
5796 static int
5797 dissect_x411_RegisteredMailType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5798   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5799                                                 NULL);
5800
5801   return offset;
5802 }
5803
5804
5805
5806 static int
5807 dissect_x411_RecipientNumberForAdvice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5808   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5809                                             actx, tree, tvb, offset, hf_index,
5810                                             NULL);
5811
5812   return offset;
5813 }
5814
5815
5816
5817 static int
5818 dissect_x411_PhysicalRenditionAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5819   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5820
5821   return offset;
5822 }
5823
5824
5825 static const ber_sequence_t ORAddress_sequence[] = {
5826   { &hf_x411_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInStandardAttributes },
5827   { &hf_x411_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttributes },
5828   { &hf_x411_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttributes },
5829   { NULL, 0, 0, 0, NULL }
5830 };
5831
5832 int
5833 dissect_x411_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5834 #line 832 "x411.cnf"
5835         
5836         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
5837         doing_address = TRUE;
5838         address_item = NULL;
5839
5840           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5841                                    ORAddress_sequence, hf_index, ett_x411_ORAddress);
5842
5843
5844         if(*oraddress && address_item)
5845                 proto_item_append_text(address_item, " %s/", oraddress);
5846
5847         doing_address = FALSE;
5848
5849
5850
5851   return offset;
5852 }
5853
5854
5855
5856 static int
5857 dissect_x411_OriginatorReturnAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5858   offset = dissect_x411_ORAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5859
5860   return offset;
5861 }
5862
5863
5864 static const value_string x411_PhysicalDeliveryReportRequest_vals[] = {
5865   {   0, "return-of-undeliverable-mail-by-PDS" },
5866   {   1, "return-of-notification-by-PDS" },
5867   {   2, "return-of-notification-by-MHS" },
5868   {   3, "return-of-notification-by-MHS-and-PDS" },
5869   { 0, NULL }
5870 };
5871
5872
5873 static int
5874 dissect_x411_PhysicalDeliveryReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5875   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5876                                                 NULL);
5877
5878   return offset;
5879 }
5880
5881
5882
5883 static int
5884 dissect_x411_OriginatorCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5885   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
5886
5887   return offset;
5888 }
5889
5890
5891
5892 int
5893 dissect_x411_MessageToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5894   offset = dissect_x411_Token(implicit_tag, tvb, offset, actx, tree, hf_index);
5895
5896   return offset;
5897 }
5898
5899
5900
5901 static int
5902 dissect_x411_ContentConfidentialityAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5903   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
5904
5905   return offset;
5906 }
5907
5908
5909
5910 int
5911 dissect_x411_ContentIntegrityCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5912   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5913
5914   return offset;
5915 }
5916
5917
5918
5919 int
5920 dissect_x411_MessageOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5921   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5922
5923   return offset;
5924 }
5925
5926
5927
5928 int
5929 dissect_x411_MessageSecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5930   offset = dissect_x411_SecurityLabel(implicit_tag, tvb, offset, actx, tree, hf_index);
5931
5932   return offset;
5933 }
5934
5935
5936 static const value_string x411_ProofOfSubmissionRequest_vals[] = {
5937   {   0, "proof-of-submission-not-requested" },
5938   {   1, "proof-of-submission-requested" },
5939   { 0, NULL }
5940 };
5941
5942
5943 static int
5944 dissect_x411_ProofOfSubmissionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5945   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5946                                   NULL);
5947
5948   return offset;
5949 }
5950
5951
5952 static const value_string x411_ProofOfDeliveryRequest_vals[] = {
5953   {   0, "proof-of-delivery-not-requested" },
5954   {   1, "proof-of-delivery-requested" },
5955   { 0, NULL }
5956 };
5957
5958
5959 static int
5960 dissect_x411_ProofOfDeliveryRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5961   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5962                                   NULL);
5963
5964   return offset;
5965 }
5966
5967
5968
5969 static int
5970 dissect_x411_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5971   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
5972                                             actx, tree, tvb, offset, hf_index,
5973                                             NULL);
5974
5975   return offset;
5976 }
5977
5978
5979 static const value_string x411_ContentCorrelator_vals[] = {
5980   {   0, "ia5text" },
5981   {   1, "octets" },
5982   { 0, NULL }
5983 };
5984
5985 static const ber_choice_t ContentCorrelator_choice[] = {
5986   {   0, &hf_x411_ia5text        , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_IA5String },
5987   {   1, &hf_x411_octets         , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_OCTET_STRING },
5988   { 0, NULL, 0, 0, 0, NULL }
5989 };
5990
5991 static int
5992 dissect_x411_ContentCorrelator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5993   offset = dissect_ber_choice(actx, tree, tvb, offset,
5994                                  ContentCorrelator_choice, hf_index, ett_x411_ContentCorrelator,
5995                                  NULL);
5996
5997   return offset;
5998 }
5999
6000
6001
6002 static int
6003 dissect_x411_ProbeOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6004   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6005
6006   return offset;
6007 }
6008
6009
6010 static const ber_sequence_t IntendedRecipientName_sequence[] = {
6011   { &hf_x411_intended_recipient, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6012   { &hf_x411_redirection_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6013   { NULL, 0, 0, 0, NULL }
6014 };
6015
6016 static int
6017 dissect_x411_IntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6018   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6019                                    IntendedRecipientName_sequence, hf_index, ett_x411_IntendedRecipientName);
6020
6021   return offset;
6022 }
6023
6024
6025 static const value_string x411_RedirectionReason_vals[] = {
6026   {   0, "recipient-assigned-alternate-recipient" },
6027   {   1, "originator-requested-alternate-recipient" },
6028   {   2, "recipient-MD-assigned-alternate-recipient" },
6029   {   3, "directory-look-up" },
6030   {   4, "alias" },
6031   { 0, NULL }
6032 };
6033
6034
6035 static int
6036 dissect_x411_RedirectionReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6037   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6038                                   NULL);
6039
6040   return offset;
6041 }
6042
6043
6044 static const ber_sequence_t Redirection_sequence[] = {
6045   { &hf_x411_intended_recipient_name, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_IntendedRecipientName },
6046   { &hf_x411_redirection_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x411_RedirectionReason },
6047   { NULL, 0, 0, 0, NULL }
6048 };
6049
6050 static int
6051 dissect_x411_Redirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6052   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6053                                    Redirection_sequence, hf_index, ett_x411_Redirection);
6054
6055   return offset;
6056 }
6057
6058
6059 static const ber_sequence_t RedirectionHistory_sequence_of[1] = {
6060   { &hf_x411_RedirectionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_Redirection },
6061 };
6062
6063 static int
6064 dissect_x411_RedirectionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6065   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6066                                       RedirectionHistory_sequence_of, hf_index, ett_x411_RedirectionHistory);
6067
6068   return offset;
6069 }
6070
6071
6072 static const ber_sequence_t DLExpansion_sequence[] = {
6073   { &hf_x411_dl             , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6074   { &hf_x411_dl_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6075   { NULL, 0, 0, 0, NULL }
6076 };
6077
6078 static int
6079 dissect_x411_DLExpansion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6080   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6081                                    DLExpansion_sequence, hf_index, ett_x411_DLExpansion);
6082
6083   return offset;
6084 }
6085
6086
6087 static const ber_sequence_t DLExpansionHistory_sequence_of[1] = {
6088   { &hf_x411_DLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_DLExpansion },
6089 };
6090
6091 static int
6092 dissect_x411_DLExpansionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6093   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6094                                       DLExpansionHistory_sequence_of, hf_index, ett_x411_DLExpansionHistory);
6095
6096   return offset;
6097 }
6098
6099
6100
6101 static int
6102 dissect_x411_PhysicalForwardingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6103   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6104
6105   return offset;
6106 }
6107
6108
6109 static const ber_sequence_t OriginatorAndDLExpansion_sequence[] = {
6110   { &hf_x411_originator_or_dl_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6111   { &hf_x411_origination_or_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6112   { NULL, 0, 0, 0, NULL }
6113 };
6114
6115 static int
6116 dissect_x411_OriginatorAndDLExpansion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6117   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6118                                    OriginatorAndDLExpansion_sequence, hf_index, ett_x411_OriginatorAndDLExpansion);
6119
6120   return offset;
6121 }
6122
6123
6124 static const ber_sequence_t OriginatorAndDLExpansionHistory_sequence_of[1] = {
6125   { &hf_x411_OriginatorAndDLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorAndDLExpansion },
6126 };
6127
6128 static int
6129 dissect_x411_OriginatorAndDLExpansionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6130   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6131                                       OriginatorAndDLExpansionHistory_sequence_of, hf_index, ett_x411_OriginatorAndDLExpansionHistory);
6132
6133   return offset;
6134 }
6135
6136
6137
6138 static int
6139 dissect_x411_ReportingDLName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6140   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6141
6142   return offset;
6143 }
6144
6145
6146
6147 static int
6148 dissect_x411_ReportingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6149   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6150
6151   return offset;
6152 }
6153
6154
6155
6156 static int
6157 dissect_x411_ReportOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6158   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6159
6160   return offset;
6161 }
6162
6163
6164 static const ber_sequence_t PerRecipientDeliveryReportFields_sequence[] = {
6165   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
6166   { &hf_x411_type_of_MTS_user, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_TypeOfMTSUser },
6167   { &hf_x411_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientCertificate },
6168   { &hf_x411_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDelivery },
6169   { NULL, 0, 0, 0, NULL }
6170 };
6171
6172 static int
6173 dissect_x411_PerRecipientDeliveryReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6174   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6175                                    PerRecipientDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientDeliveryReportFields);
6176
6177   return offset;
6178 }
6179
6180
6181 static const ber_sequence_t PerRecipientNonDeliveryReportFields_sequence[] = {
6182   { &hf_x411_non_delivery_reason_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_NonDeliveryReasonCode },
6183   { &hf_x411_non_delivery_diagnostic_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_NonDeliveryDiagnosticCode },
6184   { NULL, 0, 0, 0, NULL }
6185 };
6186
6187 static int
6188 dissect_x411_PerRecipientNonDeliveryReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6189   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6190                                    PerRecipientNonDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientNonDeliveryReportFields);
6191
6192   return offset;
6193 }
6194
6195
6196 static const value_string x411_T_report_type_vals[] = {
6197   {   0, "delivery" },
6198   {   1, "non-delivery" },
6199   { 0, NULL }
6200 };
6201
6202 static const ber_choice_t T_report_type_choice[] = {
6203   {   0, &hf_x411_report_type_delivery, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientDeliveryReportFields },
6204   {   1, &hf_x411_non_delivery_report, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientNonDeliveryReportFields },
6205   { 0, NULL, 0, 0, 0, NULL }
6206 };
6207
6208 static int
6209 dissect_x411_T_report_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_) {
6210   offset = dissect_ber_choice(actx, tree, tvb, offset,
6211                                  T_report_type_choice, hf_index, ett_x411_T_report_type,
6212                                  NULL);
6213
6214   return offset;
6215 }
6216
6217
6218 static const ber_sequence_t PerRecipientReportFields_sequence[] = {
6219   { &hf_x411_actual_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ActualRecipientName },
6220   { &hf_x411_originally_intended_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginallyIntendedRecipientName },
6221   { &hf_x411_report_type    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_report_type },
6222   { NULL, 0, 0, 0, NULL }
6223 };
6224
6225 static int
6226 dissect_x411_PerRecipientReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6227   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6228                                    PerRecipientReportFields_sequence, hf_index, ett_x411_PerRecipientReportFields);
6229
6230   return offset;
6231 }
6232
6233
6234
6235 int
6236 dissect_x411_OriginatingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6237   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6238
6239   return offset;
6240 }
6241
6242
6243
6244 int
6245 dissect_x411_ProofOfSubmission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6246   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6247
6248   return offset;
6249 }
6250
6251
6252
6253 static int
6254 dissect_x411_ProofOfSubmissionAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6255   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
6256
6257   return offset;
6258 }
6259
6260
6261 static const ber_sequence_t ReportingMTAName_sequence[] = {
6262   { &hf_x411_domain_01      , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
6263   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
6264   { &hf_x411_mta_directory_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6265   { NULL, 0, 0, 0, NULL }
6266 };
6267
6268 static int
6269 dissect_x411_ReportingMTAName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6270   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6271                                    ReportingMTAName_sequence, hf_index, ett_x411_ReportingMTAName);
6272
6273   return offset;
6274 }
6275
6276
6277 static const value_string x411_ExtendedCertificate_vals[] = {
6278   {   0, "directory-entry" },
6279   {   1, "certificate" },
6280   { 0, NULL }
6281 };
6282
6283 static const ber_choice_t ExtendedCertificate_choice[] = {
6284   {   0, &hf_x411_directory_entry, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6285   {   1, &hf_x411_certificate    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
6286   { 0, NULL, 0, 0, 0, NULL }
6287 };
6288
6289 static int
6290 dissect_x411_ExtendedCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6291   offset = dissect_ber_choice(actx, tree, tvb, offset,
6292                                  ExtendedCertificate_choice, hf_index, ett_x411_ExtendedCertificate,
6293                                  NULL);
6294
6295   return offset;
6296 }
6297
6298
6299 static const ber_sequence_t ExtendedCertificates_set_of[1] = {
6300   { &hf_x411_ExtendedCertificates_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExtendedCertificate },
6301 };
6302
6303 int
6304 dissect_x411_ExtendedCertificates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6305   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
6306                                  ExtendedCertificates_set_of, hf_index, ett_x411_ExtendedCertificates);
6307
6308   return offset;
6309 }
6310
6311
6312 static const ber_sequence_t DLExemptedRecipients_set_of[1] = {
6313   { &hf_x411_DLExemptedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOrDirectoryName },
6314 };
6315
6316 static int
6317 dissect_x411_DLExemptedRecipients(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6318   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
6319                                  DLExemptedRecipients_set_of, hf_index, ett_x411_DLExemptedRecipients);
6320
6321   return offset;
6322 }
6323
6324
6325 static const ber_sequence_t CertificateSelectors_set[] = {
6326   { &hf_x411_encryption_recipient, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6327   { &hf_x411_encryption_originator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6328   { &hf_x411_selectors_content_integrity_check, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6329   { &hf_x411_token_signature, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6330   { &hf_x411_message_origin_authentication, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6331   { NULL, 0, 0, 0, NULL }
6332 };
6333
6334 static int
6335 dissect_x411_CertificateSelectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6336   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6337                               CertificateSelectors_set, hf_index, ett_x411_CertificateSelectors);
6338
6339   return offset;
6340 }
6341
6342
6343
6344 static int
6345 dissect_x411_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6346 #line 722 "x411.cnf"
6347         tvbuff_t        *string = NULL;
6348
6349           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6350                                             actx, tree, tvb, offset, hf_index,
6351                                             &string);
6352
6353
6354         if(doing_address && string) {
6355                 g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
6356                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
6357         }
6358
6359
6360
6361   return offset;
6362 }
6363
6364
6365
6366 static int
6367 dissect_x411_TeletexCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6368   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6369                                             actx, tree, tvb, offset, hf_index,
6370                                             NULL);
6371
6372   return offset;
6373 }
6374
6375
6376
6377 static int
6378 dissect_x411_BMPString_SIZE_1_ub_string_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6379   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
6380                                             actx, tree, tvb, offset, hf_index,
6381                                             NULL);
6382
6383   return offset;
6384 }
6385
6386
6387
6388 static int
6389 dissect_x411_UniversalString_SIZE_1_ub_string_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6390   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
6391                                             actx, tree, tvb, offset, hf_index,
6392                                             NULL);
6393
6394   return offset;
6395 }
6396
6397
6398 static const value_string x411_T_character_encoding_vals[] = {
6399   {   0, "two-octets" },
6400   {   1, "four-octets" },
6401   { 0, NULL }
6402 };
6403
6404 static const ber_choice_t T_character_encoding_choice[] = {
6405   {   0, &hf_x411_two_octets     , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_x411_BMPString_SIZE_1_ub_string_length },
6406   {   1, &hf_x411_four_octets    , BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalString_SIZE_1_ub_string_length },
6407   { 0, NULL, 0, 0, 0, NULL }
6408 };
6409
6410 static int
6411 dissect_x411_T_character_encoding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6412   offset = dissect_ber_choice(actx, tree, tvb, offset,
6413                                  T_character_encoding_choice, hf_index, ett_x411_T_character_encoding,
6414                                  NULL);
6415
6416   return offset;
6417 }
6418
6419
6420
6421 static int
6422 dissect_x411_PrintableString_SIZE_CONSTR5416640(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6423   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6424                                             actx, tree, tvb, offset, hf_index,
6425                                             NULL);
6426
6427   return offset;
6428 }
6429
6430
6431 static const ber_sequence_t UniversalOrBMPString_set[] = {
6432   { &hf_x411_character_encoding, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_character_encoding },
6433   { &hf_x411_iso_639_language_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_CONSTR5416640 },
6434   { NULL, 0, 0, 0, NULL }
6435 };
6436
6437 int
6438 dissect_x411_UniversalOrBMPString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6439   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6440                               UniversalOrBMPString_set, hf_index, ett_x411_UniversalOrBMPString);
6441
6442   return offset;
6443 }
6444
6445
6446
6447 static int
6448 dissect_x411_UniversalCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6449   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6450
6451   return offset;
6452 }
6453
6454
6455
6456 static int
6457 dissect_x411_TeletexOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6458   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6459                                             actx, tree, tvb, offset, hf_index,
6460                                             NULL);
6461
6462   return offset;
6463 }
6464
6465
6466
6467 static int
6468 dissect_x411_UniversalOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6469   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6470
6471   return offset;
6472 }
6473
6474
6475
6476 static int
6477 dissect_x411_AddrTeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6478 #line 757 "x411.cnf"
6479         tvbuff_t        *tstring = NULL;
6480
6481           offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6482                                             actx, tree, tvb, offset, hf_index,
6483                                             &tstring);
6484
6485
6486         if(doing_address && tstring) 
6487                 g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
6488
6489
6490
6491
6492   return offset;
6493 }
6494
6495
6496 static const ber_sequence_t TeletexPersonalName_set[] = {
6497   { &hf_x411_teletex_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_AddrTeletexString },
6498   { &hf_x411_teletex_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AddrTeletexString },
6499   { &hf_x411_teletex_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AddrTeletexString },
6500   { &hf_x411_teletex_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AddrTeletexString },
6501   { NULL, 0, 0, 0, NULL }
6502 };
6503
6504 static int
6505 dissect_x411_TeletexPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6506   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6507                               TeletexPersonalName_set, hf_index, ett_x411_TeletexPersonalName);
6508
6509   return offset;
6510 }
6511
6512
6513 static const ber_sequence_t UniversalPersonalName_set[] = {
6514   { &hf_x411_universal_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6515   { &hf_x411_universal_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6516   { &hf_x411_universal_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6517   { &hf_x411_universal_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6518   { NULL, 0, 0, 0, NULL }
6519 };
6520
6521 static int
6522 dissect_x411_UniversalPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6523   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6524                               UniversalPersonalName_set, hf_index, ett_x411_UniversalPersonalName);
6525
6526   return offset;
6527 }
6528
6529
6530
6531 static int
6532 dissect_x411_TeletexOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6533   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6534                                             actx, tree, tvb, offset, hf_index,
6535                                             NULL);
6536
6537   return offset;
6538 }
6539
6540
6541 static const ber_sequence_t TeletexOrganizationalUnitNames_sequence_of[1] = {
6542   { &hf_x411_TeletexOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_TeletexOrganizationalUnitName },
6543 };
6544
6545 static int
6546 dissect_x411_TeletexOrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6547   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6548                                       TeletexOrganizationalUnitNames_sequence_of, hf_index, ett_x411_TeletexOrganizationalUnitNames);
6549
6550   return offset;
6551 }
6552
6553
6554
6555 static int
6556 dissect_x411_UniversalOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6557   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6558
6559   return offset;
6560 }
6561
6562
6563 static const ber_sequence_t UniversalOrganizationalUnitNames_sequence_of[1] = {
6564   { &hf_x411_UniversalOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrganizationalUnitName },
6565 };
6566
6567 static int
6568 dissect_x411_UniversalOrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6569   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6570                                       UniversalOrganizationalUnitNames_sequence_of, hf_index, ett_x411_UniversalOrganizationalUnitNames);
6571
6572   return offset;
6573 }
6574
6575
6576
6577 static int
6578 dissect_x411_PDSName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6579   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6580                                             actx, tree, tvb, offset, hf_index,
6581                                             NULL);
6582
6583   return offset;
6584 }
6585
6586
6587 static const value_string x411_PhysicalDeliveryCountryName_vals[] = {
6588   {   0, "x121-dcc-code" },
6589   {   1, "iso-3166-alpha2-code" },
6590   { 0, NULL }
6591 };
6592
6593 static const ber_choice_t PhysicalDeliveryCountryName_choice[] = {
6594   {   0, &hf_x411_x121_dcc_code  , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
6595   {   1, &hf_x411_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrPrintableString },
6596   { 0, NULL, 0, 0, 0, NULL }
6597 };
6598
6599 static int
6600 dissect_x411_PhysicalDeliveryCountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6601   offset = dissect_ber_choice(actx, tree, tvb, offset,
6602                                  PhysicalDeliveryCountryName_choice, hf_index, ett_x411_PhysicalDeliveryCountryName,
6603                                  NULL);
6604
6605   return offset;
6606 }
6607
6608
6609
6610 static int
6611 dissect_x411_PrintableString_SIZE_1_ub_postal_code_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6612   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6613                                             actx, tree, tvb, offset, hf_index,
6614                                             NULL);
6615
6616   return offset;
6617 }
6618
6619
6620 static const value_string x411_PostalCode_vals[] = {
6621   {   0, "numeric-code" },
6622   {   1, "printable-code" },
6623   { 0, NULL }
6624 };
6625
6626 static const ber_choice_t PostalCode_choice[] = {
6627   {   0, &hf_x411_numeric_code   , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrNumericString },
6628   {   1, &hf_x411_printable_code , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_postal_code_length },
6629   { 0, NULL, 0, 0, 0, NULL }
6630 };
6631
6632 static int
6633 dissect_x411_PostalCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6634   offset = dissect_ber_choice(actx, tree, tvb, offset,
6635                                  PostalCode_choice, hf_index, ett_x411_PostalCode,
6636                                  NULL);
6637
6638   return offset;
6639 }
6640
6641
6642
6643 static int
6644 dissect_x411_PrintableString_SIZE_1_ub_pds_parameter_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6645   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6646                                             actx, tree, tvb, offset, hf_index,
6647                                             NULL);
6648
6649   return offset;
6650 }
6651
6652
6653
6654 static int
6655 dissect_x411_TeletexString_SIZE_1_ub_pds_parameter_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6656   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6657                                             actx, tree, tvb, offset, hf_index,
6658                                             NULL);
6659
6660   return offset;
6661 }
6662
6663
6664 static const ber_sequence_t PDSParameter_set[] = {
6665   { &hf_x411_printable_string, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_pds_parameter_length },
6666   { &hf_x411_pds_teletex_string, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_TeletexString_SIZE_1_ub_pds_parameter_length },
6667   { NULL, 0, 0, 0, NULL }
6668 };
6669
6670 static int
6671 dissect_x411_PDSParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6672   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6673                               PDSParameter_set, hf_index, ett_x411_PDSParameter);
6674
6675   return offset;
6676 }
6677
6678
6679
6680 static int
6681 dissect_x411_PhysicalDeliveryOfficeName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6682   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6683
6684   return offset;
6685 }
6686
6687
6688
6689 static int
6690 dissect_x411_UniversalPDSParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6691   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6692
6693   return offset;
6694 }
6695
6696
6697
6698 static int
6699 dissect_x411_UniversalPhysicalDeliveryOfficeName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6700   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6701
6702   return offset;
6703 }
6704
6705
6706
6707 static int
6708 dissect_x411_PhysicalDeliveryOfficeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6709   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6710
6711   return offset;
6712 }
6713
6714
6715
6716 static int
6717 dissect_x411_UniversalPhysicalDeliveryOfficeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6718   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6719
6720   return offset;
6721 }
6722
6723
6724
6725 static int
6726 dissect_x411_ExtensionORAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6727   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6728
6729   return offset;
6730 }
6731
6732
6733
6734 static int
6735 dissect_x411_UniversalExtensionORAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6736   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6737
6738   return offset;
6739 }
6740
6741
6742
6743 static int
6744 dissect_x411_PhysicalDeliveryPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6745   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6746
6747   return offset;
6748 }
6749
6750
6751
6752 static int
6753 dissect_x411_UniversalPhysicalDeliveryPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6754   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6755
6756   return offset;
6757 }
6758
6759
6760
6761 static int
6762 dissect_x411_PhysicalDeliveryOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6763   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6764
6765   return offset;
6766 }
6767
6768
6769
6770 static int
6771 dissect_x411_UniversalPhysicalDeliveryOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6772   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6773
6774   return offset;
6775 }
6776
6777
6778
6779 static int
6780 dissect_x411_ExtensionPhysicalDeliveryAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6781   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6782
6783   return offset;
6784 }
6785
6786
6787
6788 static int
6789 dissect_x411_UniversalExtensionPhysicalDeliveryAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6790   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6791
6792   return offset;
6793 }
6794
6795
6796 static const ber_sequence_t T_printable_address_sequence_of[1] = {
6797   { &hf_x411_printable_address_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_pds_parameter_length },
6798 };
6799
6800 static int
6801 dissect_x411_T_printable_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6802   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6803                                       T_printable_address_sequence_of, hf_index, ett_x411_T_printable_address);
6804
6805   return offset;
6806 }
6807
6808
6809
6810 static int
6811 dissect_x411_TeletexString_SIZE_1_ub_unformatted_address_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6812   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6813                                             actx, tree, tvb, offset, hf_index,
6814                                             NULL);
6815
6816   return offset;
6817 }
6818
6819
6820 static const ber_sequence_t UnformattedPostalAddress_set[] = {
6821   { &hf_x411_printable_address, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_address },
6822   { &hf_x411_teletex_string , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_TeletexString_SIZE_1_ub_unformatted_address_length },
6823   { NULL, 0, 0, 0, NULL }
6824 };
6825
6826 static int
6827 dissect_x411_UnformattedPostalAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6828   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6829                               UnformattedPostalAddress_set, hf_index, ett_x411_UnformattedPostalAddress);
6830
6831   return offset;
6832 }
6833
6834
6835
6836 static int
6837 dissect_x411_UniversalUnformattedPostalAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6838   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6839
6840   return offset;
6841 }
6842
6843
6844
6845 static int
6846 dissect_x411_StreetAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6847   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6848
6849   return offset;
6850 }
6851
6852
6853
6854 static int
6855 dissect_x411_UniversalStreetAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6856   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6857
6858   return offset;
6859 }
6860
6861
6862
6863 static int
6864 dissect_x411_PostOfficeBoxAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6865   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6866
6867   return offset;
6868 }
6869
6870
6871
6872 static int
6873 dissect_x411_UniversalPostOfficeBoxAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6874   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6875
6876   return offset;
6877 }
6878
6879
6880
6881 static int
6882 dissect_x411_PosteRestanteAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6883   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6884
6885   return offset;
6886 }
6887
6888
6889
6890 static int
6891 dissect_x411_UniversalPosteRestanteAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6892   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6893
6894   return offset;
6895 }
6896
6897
6898
6899 static int
6900 dissect_x411_UniquePostalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6901   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6902
6903   return offset;
6904 }
6905
6906
6907
6908 static int
6909 dissect_x411_UniversalUniquePostalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6910   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6911
6912   return offset;
6913 }
6914
6915
6916
6917 static int
6918 dissect_x411_LocalPostalAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6919   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6920
6921   return offset;
6922 }
6923
6924
6925
6926 static int
6927 dissect_x411_UniversalLocalPostalAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6928   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6929
6930   return offset;
6931 }
6932
6933
6934
6935 static int
6936 dissect_x411_NumericString_SIZE_1_ub_e163_4_number_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6937   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6938                                             actx, tree, tvb, offset, hf_index,
6939                                             NULL);
6940
6941   return offset;
6942 }
6943
6944
6945
6946 static int
6947 dissect_x411_NumericString_SIZE_1_ub_e163_4_sub_address_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6948   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6949                                             actx, tree, tvb, offset, hf_index,
6950                                             NULL);
6951
6952   return offset;
6953 }
6954
6955
6956 static const ber_sequence_t T_e163_4_address_sequence[] = {
6957   { &hf_x411_number         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_NumericString_SIZE_1_ub_e163_4_number_length },
6958   { &hf_x411_sub_address    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NumericString_SIZE_1_ub_e163_4_sub_address_length },
6959   { NULL, 0, 0, 0, NULL }
6960 };
6961
6962 static int
6963 dissect_x411_T_e163_4_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6964   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6965                                    T_e163_4_address_sequence, hf_index, ett_x411_T_e163_4_address);
6966
6967   return offset;
6968 }
6969
6970
6971 static const value_string x411_ExtendedNetworkAddress_vals[] = {
6972   {   0, "e163-4-address" },
6973   {   1, "psap-address" },
6974   { 0, NULL }
6975 };
6976
6977 static const ber_choice_t ExtendedNetworkAddress_choice[] = {
6978   {   0, &hf_x411_e163_4_address , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_e163_4_address },
6979   {   1, &hf_x411_psap_address   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509sat_PresentationAddress },
6980   { 0, NULL, 0, 0, 0, NULL }
6981 };
6982
6983 static int
6984 dissect_x411_ExtendedNetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6985   offset = dissect_ber_choice(actx, tree, tvb, offset,
6986                                  ExtendedNetworkAddress_choice, hf_index, ett_x411_ExtendedNetworkAddress,
6987                                  NULL);
6988
6989   return offset;
6990 }
6991
6992
6993 static const value_string x411_TerminalType_vals[] = {
6994   {   3, "telex" },
6995   {   4, "teletex" },
6996   {   5, "g3-facsimile" },
6997   {   6, "g4-facsimile" },
6998   {   7, "ia5-terminal" },
6999   {   8, "videotex" },
7000   { 0, NULL }
7001 };
7002
7003
7004 static int
7005 dissect_x411_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7006   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7007                                                 NULL);
7008
7009   return offset;
7010 }
7011
7012
7013 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
7014   { &hf_x411_type           , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrTeletexString },
7015   { &hf_x411_teletex_value  , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_AddrTeletexString },
7016   { NULL, 0, 0, 0, NULL }
7017 };
7018
7019 static int
7020 dissect_x411_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7021   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7022                                    TeletexDomainDefinedAttribute_sequence, hf_index, ett_x411_TeletexDomainDefinedAttribute);
7023
7024   return offset;
7025 }
7026
7027
7028 static const ber_sequence_t TeletexDomainDefinedAttributes_sequence_of[1] = {
7029   { &hf_x411_TeletexDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_TeletexDomainDefinedAttribute },
7030 };
7031
7032 static int
7033 dissect_x411_TeletexDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7034   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7035                                       TeletexDomainDefinedAttributes_sequence_of, hf_index, ett_x411_TeletexDomainDefinedAttributes);
7036
7037   return offset;
7038 }
7039
7040
7041 static const ber_sequence_t UniversalDomainDefinedAttribute_sequence[] = {
7042   { &hf_x411_universal_type , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrBMPString },
7043   { &hf_x411_universal_value, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrBMPString },
7044   { NULL, 0, 0, 0, NULL }
7045 };
7046
7047 static int
7048 dissect_x411_UniversalDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7049   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7050                                    UniversalDomainDefinedAttribute_sequence, hf_index, ett_x411_UniversalDomainDefinedAttribute);
7051
7052   return offset;
7053 }
7054
7055
7056 static const ber_sequence_t UniversalDomainDefinedAttributes_sequence_of[1] = {
7057   { &hf_x411_UniversalDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalDomainDefinedAttribute },
7058 };
7059
7060 static int
7061 dissect_x411_UniversalDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7062   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7063                                       UniversalDomainDefinedAttributes_sequence_of, hf_index, ett_x411_UniversalDomainDefinedAttributes);
7064
7065   return offset;
7066 }
7067
7068
7069 static const ber_sequence_t NonBasicParameters_set[] = {
7070   { &hf_x411_g3_facsimile   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_G3FacsimileNonBasicParameters },
7071   { &hf_x411_teletex        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexNonBasicParameters },
7072   { NULL, 0, 0, 0, NULL }
7073 };
7074
7075 static int
7076 dissect_x411_NonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7077   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
7078                               NonBasicParameters_set, hf_index, ett_x411_NonBasicParameters);
7079
7080   return offset;
7081 }
7082
7083
7084 static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
7085   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
7086   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
7087   { NULL, 0, 0, 0, NULL }
7088 };
7089
7090 static int
7091 dissect_x411_MTANameAndOptionalGDI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7092 #line 911 "x411.cnf"
7093
7094         doing_address = TRUE;
7095
7096           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7097                                    MTANameAndOptionalGDI_sequence, hf_index, ett_x411_MTANameAndOptionalGDI);
7098
7099
7100         doing_address = FALSE;
7101         proto_item_append_text(tree, ")");
7102
7103
7104
7105   return offset;
7106 }
7107
7108
7109 static const value_string x411_T_name_vals[] = {
7110   {   0, "recipient-name" },
7111   {   1, "mta" },
7112   { 0, NULL }
7113 };
7114
7115 static const ber_choice_t T_name_choice[] = {
7116   {   0, &hf_x411_token_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
7117   {   1, &hf_x411_token_mta      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_MTANameAndOptionalGDI },
7118   { 0, NULL, 0, 0, 0, NULL }
7119 };
7120
7121 static int
7122 dissect_x411_T_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_) {
7123   offset = dissect_ber_choice(actx, tree, tvb, offset,
7124                                  T_name_choice, hf_index, ett_x411_T_name,
7125                                  NULL);
7126
7127   return offset;
7128 }
7129
7130
7131 static const value_string x411_TokenDataType_vals[] = {
7132   {   1, "bind-token-signed-data" },
7133   {   2, "message-token-signed-data" },
7134   {   3, "message-token-encrypted-data" },
7135   {   4, "bind-token-encrypted-data" },
7136   { 0, NULL }
7137 };
7138
7139
7140 static int
7141 dissect_x411_TokenDataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7142   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7143                                                 &extension_id);
7144
7145   return offset;
7146 }
7147
7148
7149
7150 static int
7151 dissect_x411_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_) {
7152 #line 1015 "x411.cnf"
7153
7154         proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_TokenDataType_vals, "tokendata-type %d")); 
7155         if (dissector_try_port(x411_tokendata_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
7156                 offset = tvb_length(tvb);
7157         } else {
7158                 proto_item *item = NULL;
7159                 proto_tree *next_tree = NULL;
7160
7161                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
7162                         "Dissector for tokendata-type %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
7163                 next_tree = proto_item_add_subtree(item, ett_x411_unknown_tokendata_type);
7164                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
7165                 expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown tokendata-type");
7166         }
7167
7168
7169
7170   return offset;
7171 }
7172
7173
7174 static const ber_sequence_t TokenData_sequence[] = {
7175   { &hf_x411_token_data_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_TokenDataType },
7176   { &hf_x411_value          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_T_value },
7177   { NULL, 0, 0, 0, NULL }
7178 };
7179
7180 static int
7181 dissect_x411_TokenData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7182   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7183                                    TokenData_sequence, hf_index, ett_x411_TokenData);
7184
7185   return offset;
7186 }
7187
7188
7189 static const ber_sequence_t AsymmetricTokenData_sequence[] = {
7190   { &hf_x411_signature_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7191   { &hf_x411_name           , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_name },
7192   { &hf_x411_time           , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
7193   { &hf_x411_signed_data    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TokenData },
7194   { &hf_x411_encryption_algorithm_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_AlgorithmIdentifier },
7195   { &hf_x411_encrypted_data , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
7196   { NULL, 0, 0, 0, NULL }
7197 };
7198
7199 static int
7200 dissect_x411_AsymmetricTokenData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7201   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7202                                    AsymmetricTokenData_sequence, hf_index, ett_x411_AsymmetricTokenData);
7203
7204   return offset;
7205 }
7206
7207
7208 static const ber_sequence_t AsymmetricToken_sequence[] = {
7209   { &hf_x411_asymmetric_token_data, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_AsymmetricTokenData },
7210   { &hf_x411_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7211   { &hf_x411_encrypted      , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_BIT_STRING },
7212   { NULL, 0, 0, 0, NULL }
7213 };
7214
7215 static int
7216 dissect_x411_AsymmetricToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7217   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7218                                    AsymmetricToken_sequence, hf_index, ett_x411_AsymmetricToken);
7219
7220   return offset;
7221 }
7222
7223
7224
7225 static int
7226 dissect_x411_RandomNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7227   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7228                                     NULL, hf_index, -1,
7229                                     NULL);
7230
7231   return offset;
7232 }
7233
7234
7235
7236 static int
7237 dissect_x411_BindTokenSignedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7238   offset = dissect_x411_RandomNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
7239
7240   return offset;
7241 }
7242
7243
7244
7245 static int
7246 dissect_x411_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_) {
7247   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7248                                                 NULL);
7249
7250   return offset;
7251 }
7252
7253
7254 static const ber_sequence_t MessageTokenSignedData_sequence[] = {
7255   { &hf_x411_content_confidentiality_algorithm_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentConfidentialityAlgorithmIdentifier },
7256   { &hf_x411_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIntegrityCheck },
7257   { &hf_x411_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageSecurityLabel },
7258   { &hf_x411_proof_of_delivery_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDeliveryRequest },
7259   { &hf_x411_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER },
7260   { NULL, 0, 0, 0, NULL }
7261 };
7262
7263 static int
7264 dissect_x411_MessageTokenSignedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7265   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7266                                    MessageTokenSignedData_sequence, hf_index, ett_x411_MessageTokenSignedData);
7267
7268   return offset;
7269 }
7270
7271
7272
7273 static int
7274 dissect_x411_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7275   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7276                                     NULL, hf_index, -1,
7277                                     NULL);
7278
7279   return offset;
7280 }
7281
7282
7283 static const ber_sequence_t MessageTokenEncryptedData_sequence[] = {
7284   { &hf_x411_content_confidentiality_key, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncryptionKey },
7285   { &hf_x411_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIntegrityCheck },
7286   { &hf_x411_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageSecurityLabel },
7287   { &hf_x411_content_integrity_key, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncryptionKey },
7288   { &hf_x411_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER },
7289   { NULL, 0, 0, 0, NULL }
7290 };
7291
7292 static int
7293 dissect_x411_MessageTokenEncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7294   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7295                                    MessageTokenEncryptedData_sequence, hf_index, ett_x411_MessageTokenEncryptedData);
7296
7297   return offset;
7298 }
7299
7300
7301
7302 static int
7303 dissect_x411_BindTokenEncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7304   offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
7305
7306   return offset;
7307 }
7308
7309
7310
7311 static int
7312 dissect_x411_RTTPapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7313   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7314                                                 NULL);
7315
7316   return offset;
7317 }
7318
7319
7320
7321 static int
7322 dissect_x411_RTTRapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7323   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7324                                        NULL);
7325
7326   return offset;
7327 }
7328
7329
7330 static const value_string x411_AbortReason_vals[] = {
7331   {   0, "localSystemProblem" },
7332   {   1, "invalidParameter" },
7333   {   2, "unrecognizedActivity" },
7334   {   3, "temporaryProblem" },
7335   {   4, "protocolError" },
7336   {   5, "permanentProblem" },
7337   {   6, "userError" },
7338   {   7, "transferCompleted" },
7339   { 0, NULL }
7340 };
7341
7342
7343 static int
7344 dissect_x411_AbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7345   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7346                                                 NULL);
7347
7348   return offset;
7349 }
7350
7351
7352
7353 static int
7354 dissect_x411_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_) {
7355   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
7356
7357   return offset;
7358 }
7359
7360
7361 static const ber_sequence_t RTABapdu_set[] = {
7362   { &hf_x411_abortReason    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AbortReason },
7363   { &hf_x411_reflectedParameter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
7364   { &hf_x411_userdataAB     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OBJECT_IDENTIFIER },
7365   { NULL, 0, 0, 0, NULL }
7366 };
7367
7368 static int
7369 dissect_x411_RTABapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7370   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
7371                               RTABapdu_set, hf_index, ett_x411_RTABapdu);
7372
7373   return offset;
7374 }
7375
7376
7377 static const value_string x411_RTSE_apdus_vals[] = {
7378   {   0, "rtorq-apdu" },
7379   {   1, "rtoac-apdu" },
7380   {   2, "rtorj-apdu" },
7381   {   3, "rttp-apdu" },
7382   {   4, "rttr-apdu" },
7383   {   5, "rtab-apdu" },
7384   { 0, NULL }
7385 };
7386
7387 static const ber_choice_t RTSE_apdus_choice[] = {
7388   {   0, &hf_x411_rtorq_apdu     , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_rtse_RTORQapdu },
7389   {   1, &hf_x411_rtoac_apdu     , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_rtse_RTOACapdu },
7390   {   2, &hf_x411_rtorj_apdu     , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_rtse_RTORJapdu },
7391   {   3, &hf_x411_rttp_apdu      , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_RTTPapdu },
7392   {   4, &hf_x411_rttr_apdu      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_RTTRapdu },
7393   {   5, &hf_x411_rtab_apdu      , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_x411_RTABapdu },
7394   { 0, NULL, 0, 0, 0, NULL }
7395 };
7396
7397 static int
7398 dissect_x411_RTSE_apdus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7399   offset = dissect_ber_choice(actx, tree, tvb, offset,
7400                                  RTSE_apdus_choice, hf_index, ett_x411_RTSE_apdus,
7401                                  NULL);
7402
7403   return offset;
7404 }
7405
7406
7407
7408 static int
7409 dissect_x411_MTSInvokeIds(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7410   offset = dissect_ros_InvokeId(implicit_tag, tvb, offset, actx, tree, hf_index);
7411
7412   return offset;
7413 }
7414
7415
7416
7417 static int
7418 dissect_x411_ID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7419   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
7420
7421   return offset;
7422 }
7423
7424 /*--- PDUs ---*/
7425
7426 static void dissect_InternalTraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7427   asn1_ctx_t asn1_ctx;
7428   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7429   dissect_x411_InternalTraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_InternalTraceInformation_PDU);
7430 }
7431 static void dissect_InternalTraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7432   asn1_ctx_t asn1_ctx;
7433   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7434   dissect_x411_InternalTraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_InternalTraceInformationElement_PDU);
7435 }
7436 static void dissect_TraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7437   asn1_ctx_t asn1_ctx;
7438   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7439   dissect_x411_TraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TraceInformation_PDU);
7440 }
7441 static void dissect_TraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7442   asn1_ctx_t asn1_ctx;
7443   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7444   dissect_x411_TraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TraceInformationElement_PDU);
7445 }
7446 static int dissect_MTSBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7447   int offset = 0;
7448   asn1_ctx_t asn1_ctx;
7449   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7450   offset = dissect_x411_MTSBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MTSBindArgument_PDU);
7451   return offset;
7452 }
7453 static int dissect_MTSBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7454   int offset = 0;
7455   asn1_ctx_t asn1_ctx;
7456   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7457   offset = dissect_x411_MTSBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MTSBindResult_PDU);
7458   return offset;
7459 }
7460 static int dissect_PAR_mts_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7461   int offset = 0;
7462   asn1_ctx_t asn1_ctx;
7463   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7464   offset = dissect_x411_PAR_mts_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_mts_bind_error_PDU);
7465   return offset;
7466 }
7467 static int dissect_MessageSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7468   int offset = 0;
7469   asn1_ctx_t asn1_ctx;
7470   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7471   offset = dissect_x411_MessageSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageSubmissionArgument_PDU);
7472   return offset;
7473 }
7474 static int dissect_MessageSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7475   int offset = 0;
7476   asn1_ctx_t asn1_ctx;
7477   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7478   offset = dissect_x411_MessageSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageSubmissionResult_PDU);
7479   return offset;
7480 }
7481 static int dissect_ProbeSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7482   int offset = 0;
7483   asn1_ctx_t asn1_ctx;
7484   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7485   offset = dissect_x411_ProbeSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ProbeSubmissionArgument_PDU);
7486   return offset;
7487 }
7488 static int dissect_ProbeSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7489   int offset = 0;
7490   asn1_ctx_t asn1_ctx;
7491   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7492   offset = dissect_x411_ProbeSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ProbeSubmissionResult_PDU);
7493   return offset;
7494 }
7495 static int dissect_CancelDeferredDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7496   int offset = 0;
7497   asn1_ctx_t asn1_ctx;
7498   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7499   offset = dissect_x411_CancelDeferredDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_CancelDeferredDeliveryArgument_PDU);
7500   return offset;
7501 }
7502 static int dissect_CancelDeferredDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7503   int offset = 0;
7504   asn1_ctx_t asn1_ctx;
7505   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7506   offset = dissect_x411_CancelDeferredDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_CancelDeferredDeliveryResult_PDU);
7507   return offset;
7508 }
7509 static int dissect_SubmissionControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7510   int offset = 0;
7511   asn1_ctx_t asn1_ctx;
7512   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7513   offset = dissect_x411_SubmissionControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SubmissionControlArgument_PDU);
7514   return offset;
7515 }
7516 static int dissect_SubmissionControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7517   int offset = 0;
7518   asn1_ctx_t asn1_ctx;
7519   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7520   offset = dissect_x411_SubmissionControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SubmissionControlResult_PDU);
7521   return offset;
7522 }
7523 static int dissect_PAR_submission_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7524   int offset = 0;
7525   asn1_ctx_t asn1_ctx;
7526   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7527   offset = dissect_x411_PAR_submission_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_submission_control_violated_PDU);
7528   return offset;
7529 }
7530 static int dissect_PAR_element_of_service_not_subscribed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7531   int offset = 0;
7532   asn1_ctx_t asn1_ctx;
7533   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7534   offset = dissect_x411_PAR_element_of_service_not_subscribed(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_element_of_service_not_subscribed_PDU);
7535   return offset;
7536 }
7537 static int dissect_PAR_deferred_delivery_cancellation_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7538   int offset = 0;
7539   asn1_ctx_t asn1_ctx;
7540   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7541   offset = dissect_x411_PAR_deferred_delivery_cancellation_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU);
7542   return offset;
7543 }
7544 static int dissect_PAR_originator_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7545   int offset = 0;
7546   asn1_ctx_t asn1_ctx;
7547   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7548   offset = dissect_x411_PAR_originator_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_originator_invalid_PDU);
7549   return offset;
7550 }
7551 static int dissect_ImproperlySpecifiedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7552   int offset = 0;
7553   asn1_ctx_t asn1_ctx;
7554   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7555   offset = dissect_x411_ImproperlySpecifiedRecipients(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ImproperlySpecifiedRecipients_PDU);
7556   return offset;
7557 }
7558 static int dissect_PAR_message_submission_identifier_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7559   int offset = 0;
7560   asn1_ctx_t asn1_ctx;
7561   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7562   offset = dissect_x411_PAR_message_submission_identifier_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_message_submission_identifier_invalid_PDU);
7563   return offset;
7564 }
7565 static int dissect_PAR_inconsistent_request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7566   int offset = 0;
7567   asn1_ctx_t asn1_ctx;
7568   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7569   offset = dissect_x411_PAR_inconsistent_request(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_inconsistent_request_PDU);
7570   return offset;
7571 }
7572 static int dissect_SecurityProblem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7573   int offset = 0;
7574   asn1_ctx_t asn1_ctx;
7575   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7576   offset = dissect_x411_SecurityProblem(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SecurityProblem_PDU);
7577   return offset;
7578 }
7579 static int dissect_PAR_unsupported_critical_function_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7580   int offset = 0;
7581   asn1_ctx_t asn1_ctx;
7582   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7583   offset = dissect_x411_PAR_unsupported_critical_function(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_unsupported_critical_function_PDU);
7584   return offset;
7585 }
7586 static int dissect_PAR_remote_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7587   int offset = 0;
7588   asn1_ctx_t asn1_ctx;
7589   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7590   offset = dissect_x411_PAR_remote_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_remote_bind_error_PDU);
7591   return offset;
7592 }
7593 static void dissect_MessageSubmissionTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7594   asn1_ctx_t asn1_ctx;
7595   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7596   dissect_x411_MessageSubmissionTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSubmissionTime_PDU);
7597 }
7598 static int dissect_MessageDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7599   int offset = 0;
7600   asn1_ctx_t asn1_ctx;
7601   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7602   offset = dissect_x411_MessageDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageDeliveryArgument_PDU);
7603   return offset;
7604 }
7605 static int dissect_MessageDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7606   int offset = 0;
7607   asn1_ctx_t asn1_ctx;
7608   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7609   offset = dissect_x411_MessageDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageDeliveryResult_PDU);
7610   return offset;
7611 }
7612 static int dissect_ReportDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7613   int offset = 0;
7614   asn1_ctx_t asn1_ctx;
7615   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7616   offset = dissect_x411_ReportDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ReportDeliveryArgument_PDU);
7617   return offset;
7618 }
7619 static int dissect_ReportDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7620   int offset = 0;
7621   asn1_ctx_t asn1_ctx;
7622   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7623   offset = dissect_x411_ReportDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ReportDeliveryResult_PDU);
7624   return offset;
7625 }
7626 static int dissect_DeliveryControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7627   int offset = 0;
7628   asn1_ctx_t asn1_ctx;
7629   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7630   offset = dissect_x411_DeliveryControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_DeliveryControlArgument_PDU);
7631   return offset;
7632 }
7633 static int dissect_DeliveryControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7634   int offset = 0;
7635   asn1_ctx_t asn1_ctx;
7636   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7637   offset = dissect_x411_DeliveryControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_DeliveryControlResult_PDU);
7638   return offset;
7639 }
7640 static int dissect_PAR_delivery_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7641   int offset = 0;
7642   asn1_ctx_t asn1_ctx;
7643   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7644   offset = dissect_x411_PAR_delivery_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_delivery_control_violated_PDU);
7645   return offset;
7646 }
7647 static int dissect_PAR_control_violates_registration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7648   int offset = 0;
7649   asn1_ctx_t asn1_ctx;
7650   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7651   offset = dissect_x411_PAR_control_violates_registration(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_control_violates_registration_PDU);
7652   return offset;
7653 }
7654 static int dissect_RefusedOperation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7655   int offset = 0;
7656   asn1_ctx_t asn1_ctx;
7657   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7658   offset = dissect_x411_RefusedOperation(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RefusedOperation_PDU);
7659   return offset;
7660 }
7661 static void dissect_RecipientCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7662   asn1_ctx_t asn1_ctx;
7663   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7664   dissect_x411_RecipientCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientCertificate_PDU);
7665 }
7666 static void dissect_ProofOfDelivery_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7667   asn1_ctx_t asn1_ctx;
7668   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7669   dissect_x411_ProofOfDelivery(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfDelivery_PDU);
7670 }
7671 static int dissect_RegisterArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7672   int offset = 0;
7673   asn1_ctx_t asn1_ctx;
7674   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7675   offset = dissect_x411_RegisterArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RegisterArgument_PDU);
7676   return offset;
7677 }
7678 static int dissect_RegisterResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7679   int offset = 0;
7680   asn1_ctx_t asn1_ctx;
7681   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7682   offset = dissect_x411_RegisterResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RegisterResult_PDU);
7683   return offset;
7684 }
7685 static int dissect_ChangeCredentialsArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7686   int offset = 0;
7687   asn1_ctx_t asn1_ctx;
7688   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7689   offset = dissect_x411_ChangeCredentialsArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ChangeCredentialsArgument_PDU);
7690   return offset;
7691 }
7692 static int dissect_RES_change_credentials_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7693   int offset = 0;
7694   asn1_ctx_t asn1_ctx;
7695   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7696   offset = dissect_x411_RES_change_credentials(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RES_change_credentials_PDU);
7697   return offset;
7698 }
7699 static int dissect_PAR_register_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7700   int offset = 0;
7701   asn1_ctx_t asn1_ctx;
7702   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7703   offset = dissect_x411_PAR_register_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_register_rejected_PDU);
7704   return offset;
7705 }
7706 static int dissect_PAR_new_credentials_unacceptable_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7707   int offset = 0;
7708   asn1_ctx_t asn1_ctx;
7709   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7710   offset = dissect_x411_PAR_new_credentials_unacceptable(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_new_credentials_unacceptable_PDU);
7711   return offset;
7712 }
7713 static int dissect_PAR_old_credentials_incorrectly_specified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7714   int offset = 0;
7715   asn1_ctx_t asn1_ctx;
7716   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7717   offset = dissect_x411_PAR_old_credentials_incorrectly_specified(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_old_credentials_incorrectly_specified_PDU);
7718   return offset;
7719 }
7720 static void dissect_MessageSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7721   asn1_ctx_t asn1_ctx;
7722   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7723   dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSubmissionEnvelope_PDU);
7724 }
7725 static void dissect_PerRecipientMessageSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7726   asn1_ctx_t asn1_ctx;
7727   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7728   dissect_x411_PerRecipientMessageSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientMessageSubmissionFields_PDU);
7729 }
7730 static void dissect_ProbeSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7731   asn1_ctx_t asn1_ctx;
7732   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7733   dissect_x411_ProbeSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProbeSubmissionEnvelope_PDU);
7734 }
7735 static void dissect_PerRecipientProbeSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7736   asn1_ctx_t asn1_ctx;
7737   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7738   dissect_x411_PerRecipientProbeSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientProbeSubmissionFields_PDU);
7739 }
7740 static void dissect_MessageDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7741   asn1_ctx_t asn1_ctx;
7742   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7743   dissect_x411_MessageDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageDeliveryEnvelope_PDU);
7744 }
7745 static void dissect_ReportDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7746   asn1_ctx_t asn1_ctx;
7747   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7748   dissect_x411_ReportDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportDeliveryEnvelope_PDU);
7749 }
7750 static void dissect_PerRecipientReportDeliveryFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7751   asn1_ctx_t asn1_ctx;
7752   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7753   dissect_x411_PerRecipientReportDeliveryFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientReportDeliveryFields_PDU);
7754 }
7755 static void dissect_ExtendedContentType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7756   asn1_ctx_t asn1_ctx;
7757   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7758   dissect_x411_ExtendedContentType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedContentType_PDU);
7759 }
7760 static void dissect_ContentIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7761   asn1_ctx_t asn1_ctx;
7762   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7763   dissect_x411_ContentIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentIdentifier_PDU);
7764 }
7765 static void dissect_PerMessageIndicators_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7766   asn1_ctx_t asn1_ctx;
7767   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7768   dissect_x411_PerMessageIndicators(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerMessageIndicators_PDU);
7769 }
7770 static void dissect_OriginatorReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7771   asn1_ctx_t asn1_ctx;
7772   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7773   dissect_x411_OriginatorReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorReportRequest_PDU);
7774 }
7775 static void dissect_DeferredDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7776   asn1_ctx_t asn1_ctx;
7777   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7778   dissect_x411_DeferredDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DeferredDeliveryTime_PDU);
7779 }
7780 static void dissect_Priority_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7781   asn1_ctx_t asn1_ctx;
7782   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7783   dissect_x411_Priority(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Priority_PDU);
7784 }
7785 static void dissect_ContentLength_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7786   asn1_ctx_t asn1_ctx;
7787   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7788   dissect_x411_ContentLength(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentLength_PDU);
7789 }
7790 static void dissect_MessageDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7791   asn1_ctx_t asn1_ctx;
7792   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7793   dissect_x411_MessageDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageDeliveryTime_PDU);
7794 }
7795 static void dissect_DeliveryFlags_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7796   asn1_ctx_t asn1_ctx;
7797   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7798   dissect_x411_DeliveryFlags(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DeliveryFlags_PDU);
7799 }
7800 static void dissect_SubjectSubmissionIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7801   asn1_ctx_t asn1_ctx;
7802   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7803   dissect_x411_SubjectSubmissionIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_SubjectSubmissionIdentifier_PDU);
7804 }
7805 static void dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7806   asn1_ctx_t asn1_ctx;
7807   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7808   dissect_x411_RecipientReassignmentProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientReassignmentProhibited_PDU);
7809 }
7810 static void dissect_OriginatorRequestedAlternateRecipient_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7811   asn1_ctx_t asn1_ctx;
7812   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7813   dissect_x411_OriginatorRequestedAlternateRecipient(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorRequestedAlternateRecipient_PDU);
7814 }
7815 static void dissect_DLExpansionProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7816   asn1_ctx_t asn1_ctx;
7817   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7818   dissect_x411_DLExpansionProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansionProhibited_PDU);
7819 }
7820 static void dissect_ConversionWithLossProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7821   asn1_ctx_t asn1_ctx;
7822   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7823   dissect_x411_ConversionWithLossProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ConversionWithLossProhibited_PDU);
7824 }
7825 static void dissect_LatestDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7826   asn1_ctx_t asn1_ctx;
7827   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7828   dissect_x411_LatestDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_LatestDeliveryTime_PDU);
7829 }
7830 static void dissect_RequestedDeliveryMethod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7831   asn1_ctx_t asn1_ctx;
7832   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7833   dissect_x411_RequestedDeliveryMethod(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RequestedDeliveryMethod_PDU);
7834 }
7835 static void dissect_PhysicalForwardingProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7836   asn1_ctx_t asn1_ctx;
7837   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7838   dissect_x411_PhysicalForwardingProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingProhibited_PDU);
7839 }
7840 static void dissect_PhysicalForwardingAddressRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7841   asn1_ctx_t asn1_ctx;
7842   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7843   dissect_x411_PhysicalForwardingAddressRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingAddressRequest_PDU);
7844 }
7845 static void dissect_PhysicalDeliveryModes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7846   asn1_ctx_t asn1_ctx;
7847   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7848   dissect_x411_PhysicalDeliveryModes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryModes_PDU);
7849 }
7850 static void dissect_RegisteredMailType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7851   asn1_ctx_t asn1_ctx;
7852   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7853   dissect_x411_RegisteredMailType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RegisteredMailType_PDU);
7854 }
7855 static void dissect_RecipientNumberForAdvice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7856   asn1_ctx_t asn1_ctx;
7857   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7858   dissect_x411_RecipientNumberForAdvice(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientNumberForAdvice_PDU);
7859 }
7860 static void dissect_PhysicalRenditionAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7861   asn1_ctx_t asn1_ctx;
7862   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7863   dissect_x411_PhysicalRenditionAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalRenditionAttributes_PDU);
7864 }
7865 static void dissect_OriginatorReturnAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7866   asn1_ctx_t asn1_ctx;
7867   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7868   dissect_x411_OriginatorReturnAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorReturnAddress_PDU);
7869 }
7870 static void dissect_PhysicalDeliveryReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7871   asn1_ctx_t asn1_ctx;
7872   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7873   dissect_x411_PhysicalDeliveryReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryReportRequest_PDU);
7874 }
7875 static void dissect_OriginatorCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7876   asn1_ctx_t asn1_ctx;
7877   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7878   dissect_x411_OriginatorCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorCertificate_PDU);
7879 }
7880 static void dissect_MessageToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7881   asn1_ctx_t asn1_ctx;
7882   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7883   dissect_x411_MessageToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageToken_PDU);
7884 }
7885 static void dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7886   asn1_ctx_t asn1_ctx;
7887   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7888   dissect_x411_ContentConfidentialityAlgorithmIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU);
7889 }
7890 static void dissect_ContentIntegrityCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7891   asn1_ctx_t asn1_ctx;
7892   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7893   dissect_x411_ContentIntegrityCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentIntegrityCheck_PDU);
7894 }
7895 static void dissect_MessageOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7896   asn1_ctx_t asn1_ctx;
7897   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7898   dissect_x411_MessageOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageOriginAuthenticationCheck_PDU);
7899 }
7900 static void dissect_MessageSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7901   asn1_ctx_t asn1_ctx;
7902   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7903   dissect_x411_MessageSecurityLabel(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSecurityLabel_PDU);
7904 }
7905 static void dissect_ProofOfSubmissionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7906   asn1_ctx_t asn1_ctx;
7907   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7908   dissect_x411_ProofOfSubmissionRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfSubmissionRequest_PDU);
7909 }
7910 static void dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7911   asn1_ctx_t asn1_ctx;
7912   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7913   dissect_x411_ProofOfDeliveryRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfDeliveryRequest_PDU);
7914 }
7915 static void dissect_ContentCorrelator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7916   asn1_ctx_t asn1_ctx;
7917   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7918   dissect_x411_ContentCorrelator(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentCorrelator_PDU);
7919 }
7920 static void dissect_ProbeOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7921   asn1_ctx_t asn1_ctx;
7922   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7923   dissect_x411_ProbeOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProbeOriginAuthenticationCheck_PDU);
7924 }
7925 static void dissect_RedirectionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7926   asn1_ctx_t asn1_ctx;
7927   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7928   dissect_x411_RedirectionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RedirectionHistory_PDU);
7929 }
7930 static void dissect_Redirection_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7931   asn1_ctx_t asn1_ctx;
7932   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7933   dissect_x411_Redirection(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Redirection_PDU);
7934 }
7935 static void dissect_DLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7936   asn1_ctx_t asn1_ctx;
7937   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7938   dissect_x411_DLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansionHistory_PDU);
7939 }
7940 static void dissect_DLExpansion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7941   asn1_ctx_t asn1_ctx;
7942   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7943   dissect_x411_DLExpansion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansion_PDU);
7944 }
7945 static void dissect_PhysicalForwardingAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7946   asn1_ctx_t asn1_ctx;
7947   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7948   dissect_x411_PhysicalForwardingAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingAddress_PDU);
7949 }
7950 static void dissect_OriginatorAndDLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7951   asn1_ctx_t asn1_ctx;
7952   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7953   dissect_x411_OriginatorAndDLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorAndDLExpansionHistory_PDU);
7954 }
7955 static void dissect_ReportingDLName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7956   asn1_ctx_t asn1_ctx;
7957   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7958   dissect_x411_ReportingDLName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingDLName_PDU);
7959 }
7960 static void dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7961   asn1_ctx_t asn1_ctx;
7962   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7963   dissect_x411_ReportingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingMTACertificate_PDU);
7964 }
7965 static void dissect_ReportOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7966   asn1_ctx_t asn1_ctx;
7967   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7968   dissect_x411_ReportOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportOriginAuthenticationCheck_PDU);
7969 }
7970 static void dissect_OriginatingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7971   asn1_ctx_t asn1_ctx;
7972   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7973   dissect_x411_OriginatingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatingMTACertificate_PDU);
7974 }
7975 static void dissect_ProofOfSubmission_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7976   asn1_ctx_t asn1_ctx;
7977   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7978   dissect_x411_ProofOfSubmission(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfSubmission_PDU);
7979 }
7980 static void dissect_ReportingMTAName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7981   asn1_ctx_t asn1_ctx;
7982   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7983   dissect_x411_ReportingMTAName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingMTAName_PDU);
7984 }
7985 static void dissect_ExtendedCertificates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7986   asn1_ctx_t asn1_ctx;
7987   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7988   dissect_x411_ExtendedCertificates(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedCertificates_PDU);
7989 }
7990 static void dissect_DLExemptedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7991   asn1_ctx_t asn1_ctx;
7992   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7993   dissect_x411_DLExemptedRecipients(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExemptedRecipients_PDU);
7994 }
7995 static void dissect_CertificateSelectors_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7996   asn1_ctx_t asn1_ctx;
7997   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7998   dissect_x411_CertificateSelectors(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_CertificateSelectors_PDU);
7999 }
8000 static void dissect_Content_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8001   asn1_ctx_t asn1_ctx;
8002   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8003   dissect_x411_Content(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Content_PDU);
8004 }
8005 static void dissect_MTSIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8006   asn1_ctx_t asn1_ctx;
8007   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8008   dissect_x411_MTSIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTSIdentifier_PDU);
8009 }
8010 static void dissect_ORName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8011   asn1_ctx_t asn1_ctx;
8012   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8013   dissect_x411_ORName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ORName_PDU);
8014 }
8015 static void dissect_ORAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8016   asn1_ctx_t asn1_ctx;
8017   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8018   dissect_x411_ORAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ORAddress_PDU);
8019 }
8020 static void dissect_CommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8021   asn1_ctx_t asn1_ctx;
8022   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8023   dissect_x411_CommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_CommonName_PDU);
8024 }
8025 static void dissect_TeletexCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8026   asn1_ctx_t asn1_ctx;
8027   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8028   dissect_x411_TeletexCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexCommonName_PDU);
8029 }
8030 static void dissect_UniversalCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8031   asn1_ctx_t asn1_ctx;
8032   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8033   dissect_x411_UniversalCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalCommonName_PDU);
8034 }
8035 static void dissect_TeletexOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8036   asn1_ctx_t asn1_ctx;
8037   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8038   dissect_x411_TeletexOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexOrganizationName_PDU);
8039 }
8040 static void dissect_UniversalOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8041   asn1_ctx_t asn1_ctx;
8042   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8043   dissect_x411_UniversalOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalOrganizationName_PDU);
8044 }
8045 static void dissect_TeletexPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8046   asn1_ctx_t asn1_ctx;
8047   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8048   dissect_x411_TeletexPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexPersonalName_PDU);
8049 }
8050 static void dissect_UniversalPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8051   asn1_ctx_t asn1_ctx;
8052   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8053   dissect_x411_UniversalPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPersonalName_PDU);
8054 }
8055 static void dissect_TeletexOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8056   asn1_ctx_t asn1_ctx;
8057   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8058   dissect_x411_TeletexOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexOrganizationalUnitNames_PDU);
8059 }
8060 static void dissect_UniversalOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8061   asn1_ctx_t asn1_ctx;
8062   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8063   dissect_x411_UniversalOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalOrganizationalUnitNames_PDU);
8064 }
8065 static void dissect_PDSName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8066   asn1_ctx_t asn1_ctx;
8067   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8068   dissect_x411_PDSName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PDSName_PDU);
8069 }
8070 static void dissect_PhysicalDeliveryCountryName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8071   asn1_ctx_t asn1_ctx;
8072   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8073   dissect_x411_PhysicalDeliveryCountryName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryCountryName_PDU);
8074 }
8075 static void dissect_PostalCode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8076   asn1_ctx_t asn1_ctx;
8077   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8078   dissect_x411_PostalCode(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PostalCode_PDU);
8079 }
8080 static void dissect_PhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8081   asn1_ctx_t asn1_ctx;
8082   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8083   dissect_x411_PhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOfficeName_PDU);
8084 }
8085 static void dissect_UniversalPhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8086   asn1_ctx_t asn1_ctx;
8087   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8088   dissect_x411_UniversalPhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOfficeName_PDU);
8089 }
8090 static void dissect_PhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8091   asn1_ctx_t asn1_ctx;
8092   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8093   dissect_x411_PhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOfficeNumber_PDU);
8094 }
8095 static void dissect_UniversalPhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8096   asn1_ctx_t asn1_ctx;
8097   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8098   dissect_x411_UniversalPhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU);
8099 }
8100 static void dissect_ExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8101   asn1_ctx_t asn1_ctx;
8102   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8103   dissect_x411_ExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtensionORAddressComponents_PDU);
8104 }
8105 static void dissect_UniversalExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8106   asn1_ctx_t asn1_ctx;
8107   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8108   dissect_x411_UniversalExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalExtensionORAddressComponents_PDU);
8109 }
8110 static void dissect_PhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8111   asn1_ctx_t asn1_ctx;
8112   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8113   dissect_x411_PhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryPersonalName_PDU);
8114 }
8115 static void dissect_UniversalPhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8116   asn1_ctx_t asn1_ctx;
8117   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8118   dissect_x411_UniversalPhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryPersonalName_PDU);
8119 }
8120 static void dissect_PhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8121   asn1_ctx_t asn1_ctx;
8122   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8123   dissect_x411_PhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOrganizationName_PDU);
8124 }
8125 static void dissect_UniversalPhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8126   asn1_ctx_t asn1_ctx;
8127   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8128   dissect_x411_UniversalPhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU);
8129 }
8130 static void dissect_ExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8131   asn1_ctx_t asn1_ctx;
8132   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8133   dissect_x411_ExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU);
8134 }
8135 static void dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8136   asn1_ctx_t asn1_ctx;
8137   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8138   dissect_x411_UniversalExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU);
8139 }
8140 static void dissect_UnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8141   asn1_ctx_t asn1_ctx;
8142   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8143   dissect_x411_UnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UnformattedPostalAddress_PDU);
8144 }
8145 static void dissect_UniversalUnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8146   asn1_ctx_t asn1_ctx;
8147   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8148   dissect_x411_UniversalUnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalUnformattedPostalAddress_PDU);
8149 }
8150 static void dissect_StreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8151   asn1_ctx_t asn1_ctx;
8152   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8153   dissect_x411_StreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_StreetAddress_PDU);
8154 }
8155 static void dissect_UniversalStreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8156   asn1_ctx_t asn1_ctx;
8157   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8158   dissect_x411_UniversalStreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalStreetAddress_PDU);
8159 }
8160 static void dissect_PostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8161   asn1_ctx_t asn1_ctx;
8162   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8163   dissect_x411_PostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PostOfficeBoxAddress_PDU);
8164 }
8165 static void dissect_UniversalPostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8166   asn1_ctx_t asn1_ctx;
8167   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8168   dissect_x411_UniversalPostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPostOfficeBoxAddress_PDU);
8169 }
8170 static void dissect_PosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8171   asn1_ctx_t asn1_ctx;
8172   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8173   dissect_x411_PosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PosteRestanteAddress_PDU);
8174 }
8175 static void dissect_UniversalPosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8176   asn1_ctx_t asn1_ctx;
8177   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8178   dissect_x411_UniversalPosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPosteRestanteAddress_PDU);
8179 }
8180 static void dissect_UniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8181   asn1_ctx_t asn1_ctx;
8182   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8183   dissect_x411_UniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniquePostalName_PDU);
8184 }
8185 static void dissect_UniversalUniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8186   asn1_ctx_t asn1_ctx;
8187   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8188   dissect_x411_UniversalUniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalUniquePostalName_PDU);
8189 }
8190 static void dissect_LocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8191   asn1_ctx_t asn1_ctx;
8192   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8193   dissect_x411_LocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_LocalPostalAttributes_PDU);
8194 }
8195 static void dissect_UniversalLocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8196   asn1_ctx_t asn1_ctx;
8197   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8198   dissect_x411_UniversalLocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalLocalPostalAttributes_PDU);
8199 }
8200 static void dissect_ExtendedNetworkAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8201   asn1_ctx_t asn1_ctx;
8202   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8203   dissect_x411_ExtendedNetworkAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedNetworkAddress_PDU);
8204 }
8205 static void dissect_TerminalType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8206   asn1_ctx_t asn1_ctx;
8207   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8208   dissect_x411_TerminalType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TerminalType_PDU);
8209 }
8210 static void dissect_TeletexDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8211   asn1_ctx_t asn1_ctx;
8212   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8213   dissect_x411_TeletexDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexDomainDefinedAttributes_PDU);
8214 }
8215 static void dissect_UniversalDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8216   asn1_ctx_t asn1_ctx;
8217   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8218   dissect_x411_UniversalDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalDomainDefinedAttributes_PDU);
8219 }
8220 static void dissect_ExtendedEncodedInformationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8221   asn1_ctx_t asn1_ctx;
8222   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8223   dissect_x411_ExtendedEncodedInformationType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedEncodedInformationType_PDU);
8224 }
8225 static void dissect_MTANameAndOptionalGDI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8226   asn1_ctx_t asn1_ctx;
8227   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8228   dissect_x411_MTANameAndOptionalGDI(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTANameAndOptionalGDI_PDU);
8229 }
8230 static void dissect_AsymmetricToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8231   asn1_ctx_t asn1_ctx;
8232   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8233   dissect_x411_AsymmetricToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_AsymmetricToken_PDU);
8234 }
8235 static void dissect_BindTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8236   asn1_ctx_t asn1_ctx;
8237   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8238   dissect_x411_BindTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_BindTokenSignedData_PDU);
8239 }
8240 static void dissect_MessageTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8241   asn1_ctx_t asn1_ctx;
8242   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8243   dissect_x411_MessageTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageTokenSignedData_PDU);
8244 }
8245 static void dissect_MessageTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8246   asn1_ctx_t asn1_ctx;
8247   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8248   dissect_x411_MessageTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageTokenEncryptedData_PDU);
8249 }
8250 static void dissect_BindTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8251   asn1_ctx_t asn1_ctx;
8252   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8253   dissect_x411_BindTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_BindTokenEncryptedData_PDU);
8254 }
8255 static void dissect_SecurityClassification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8256   asn1_ctx_t asn1_ctx;
8257   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8258   dissect_x411_SecurityClassification(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_SecurityClassification_PDU);
8259 }
8260
8261
8262 /*--- End of included file: packet-x411-fn.c ---*/
8263 #line 107 "packet-x411-template.c"
8264
8265
8266 /*--- Included file: packet-x411-table11.c ---*/
8267 #line 1 "packet-x411-table11.c"
8268
8269 static const ros_opr_t p3_opr_tab[] = {
8270   /* mts-bind */ 
8271   { op_ros_bind              ,  dissect_MTSBindArgument_PDU,    dissect_MTSBindResult_PDU }, 
8272   /* message-submission */ 
8273   { op_message_submission    ,  dissect_MessageSubmissionArgument_PDU,  dissect_MessageSubmissionResult_PDU }, 
8274   /* probe-submission */ 
8275   { op_probe_submission      ,  dissect_ProbeSubmissionArgument_PDU,    dissect_ProbeSubmissionResult_PDU }, 
8276   /* cancel-deferred-delivery */ 
8277   { op_cancel_deferred_delivery,        dissect_CancelDeferredDeliveryArgument_PDU,     dissect_CancelDeferredDeliveryResult_PDU }, 
8278   /* submission-control */ 
8279   { op_submission_control    ,  dissect_SubmissionControlArgument_PDU,  dissect_SubmissionControlResult_PDU }, 
8280   /* message-delivery */ 
8281   { op_message_delivery      ,  dissect_MessageDeliveryArgument_PDU,    dissect_MessageDeliveryResult_PDU }, 
8282   /* report-delivery */ 
8283   { op_report_delivery       ,  dissect_ReportDeliveryArgument_PDU,     dissect_ReportDeliveryResult_PDU }, 
8284   /* delivery-control */ 
8285   { op_delivery_control      ,  dissect_DeliveryControlArgument_PDU,    dissect_DeliveryControlResult_PDU }, 
8286   /* register */ 
8287   { op_register              ,  dissect_RegisterArgument_PDU,   dissect_RegisterResult_PDU }, 
8288   /* change-credentials */ 
8289   { op_change_credentials    ,  dissect_ChangeCredentialsArgument_PDU,  dissect_RES_change_credentials_PDU }, 
8290   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
8291 };
8292
8293
8294 /*--- End of included file: packet-x411-table11.c ---*/
8295 #line 109 "packet-x411-template.c"
8296
8297 /*--- Included file: packet-x411-table21.c ---*/
8298 #line 1 "packet-x411-table21.c"
8299
8300 static const ros_err_t p3_err_tab[] = {
8301   /* mts-bind-error*/ 
8302   { err_ros_bind,       dissect_PAR_mts_bind_error_PDU },
8303   /* submission-control-violated*/ 
8304   { err_submission_control_violated,    dissect_PAR_submission_control_violated_PDU },
8305   /* element-of-service-not-subscribed*/ 
8306   { err_element_of_service_not_subscribed,      dissect_PAR_element_of_service_not_subscribed_PDU },
8307   /* deferred-delivery-cancellation-rejected*/ 
8308   { err_deferred_delivery_cancellation_rejected,        dissect_PAR_deferred_delivery_cancellation_rejected_PDU },
8309   /* originator-invalid*/ 
8310   { err_originator_invalid,     dissect_PAR_originator_invalid_PDU },
8311   /* recipient-improperly-specified*/ 
8312   { err_recipient_improperly_specified, dissect_ImproperlySpecifiedRecipients_PDU },
8313   /* message-submission-identifier-invalid*/ 
8314   { err_message_submission_identifier_invalid,  dissect_PAR_message_submission_identifier_invalid_PDU },
8315   /* inconsistent-request*/ 
8316   { err_inconsistent_request,   dissect_PAR_inconsistent_request_PDU },
8317   /* security-error*/ 
8318   { err_security_error, dissect_SecurityProblem_PDU },
8319   /* unsupported-critical-function*/ 
8320   { err_unsupported_critical_function,  dissect_PAR_unsupported_critical_function_PDU },
8321   /* remote-bind-error*/ 
8322   { err_remote_bind_error,      dissect_PAR_remote_bind_error_PDU },
8323   /* delivery-control-violated*/ 
8324   { err_delivery_control_violated,      dissect_PAR_delivery_control_violated_PDU },
8325   /* control-violates-registration*/ 
8326   { err_control_violates_registration,  dissect_PAR_control_violates_registration_PDU },
8327   /* operation-refused*/ 
8328   { err_operation_refused,      dissect_RefusedOperation_PDU },
8329   /* register-rejected*/ 
8330   { err_register_rejected,      dissect_PAR_register_rejected_PDU },
8331   /* new-credentials-unacceptable*/ 
8332   { err_new_credentials_unacceptable,   dissect_PAR_new_credentials_unacceptable_PDU },
8333   /* old-credentials-incorrectly-specified*/ 
8334   { err_old_credentials_incorrectly_specified,  dissect_PAR_old_credentials_incorrectly_specified_PDU },
8335   { 0,  (new_dissector_t)(-1) },
8336 };
8337
8338
8339 /*--- End of included file: packet-x411-table21.c ---*/
8340 #line 110 "packet-x411-template.c"
8341
8342 static const ros_info_t p3_ros_info = {
8343   "P3",
8344   &proto_p3,
8345   &ett_p3,
8346   p3_opr_code_string_vals,
8347   p3_opr_tab,
8348   p3_err_code_string_vals,
8349   p3_err_tab
8350 };
8351
8352
8353 char* x411_get_last_oraddress() { return oraddress; }
8354
8355 /*
8356  * Dissect X411 MTS APDU
8357  */
8358 void
8359 dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8360 {
8361         proto_item *item=NULL;
8362         proto_tree *tree=NULL;
8363         asn1_ctx_t asn1_ctx;
8364         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8365
8366         /* save parent_tree so subdissectors can create new top nodes */
8367         top_tree=parent_tree;
8368
8369         if(parent_tree){
8370                 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
8371                 tree = proto_item_add_subtree(item, ett_x411);
8372         }
8373
8374         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8375         col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
8376
8377         dissect_x411_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTS_APDU_PDU);
8378 }
8379
8380 /*
8381 * Dissect X411 PDUs inside a PPDU.
8382 */
8383 static void
8384 dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8385 {
8386         int offset = 0;
8387         int old_offset;
8388         proto_item *item=NULL;
8389         proto_tree *tree=NULL;
8390         int (*x411_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
8391         char *x411_op_name;
8392         int hf_x411_index = -1;
8393         asn1_ctx_t asn1_ctx;
8394         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8395
8396         /* save parent_tree so subdissectors can create new top nodes */
8397         top_tree=parent_tree;
8398
8399         /* do we have operation information from the ROS dissector?  */
8400         if( !pinfo->private_data ){
8401                 if(parent_tree){
8402                         proto_tree_add_text(parent_tree, tvb, offset, -1,
8403                                 "Internal error: can't get operation information from ROS dissector.");
8404                 } 
8405                 return  ;
8406         } else {
8407                 session  = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
8408         }
8409
8410         if(parent_tree){
8411                 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
8412                 tree = proto_item_add_subtree(item, ett_x411);
8413         }
8414         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8415         if (check_col(pinfo->cinfo, COL_INFO))
8416                 col_clear(pinfo->cinfo, COL_INFO);
8417
8418         switch(session->ros_op & ROS_OP_MASK) {
8419         case (ROS_OP_BIND | ROS_OP_ARGUMENT):   /*  BindInvoke */
8420           x411_dissector = dissect_x411_MTABindArgument;
8421           x411_op_name = "Bind-Argument";
8422           hf_x411_index = hf_x411_MTABindArgument_PDU;
8423           break;
8424         case (ROS_OP_BIND | ROS_OP_RESULT):     /*  BindResult */
8425           x411_dissector = dissect_x411_MTABindResult;
8426           x411_op_name = "Bind-Result";
8427           hf_x411_index = hf_x411_MTABindResult_PDU;
8428           break;
8429         case (ROS_OP_BIND | ROS_OP_ERROR):      /*  BindError */
8430           x411_dissector = dissect_x411_MTABindError;
8431           x411_op_name = "Bind-Error";
8432           hf_x411_index = hf_x411_MTABindError_PDU;
8433           break;
8434         case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /*  Invoke Argument */
8435           x411_dissector = dissect_x411_MTS_APDU;
8436           x411_op_name = "Transfer";
8437           hf_x411_index = hf_x411_MTS_APDU_PDU;
8438           break;
8439         default:
8440           proto_tree_add_text(tree, tvb, offset, -1,"Unsupported X411 PDU");
8441           return;
8442         }
8443
8444         if (check_col(pinfo->cinfo, COL_INFO))
8445           col_set_str(pinfo->cinfo, COL_INFO, x411_op_name);
8446
8447         while (tvb_reported_length_remaining(tvb, offset) > 0){
8448                 old_offset=offset;
8449                 offset=(*x411_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_x411_index);
8450                 if(offset == old_offset){
8451                         proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte X411 PDU");
8452                         offset = tvb_length(tvb);
8453                         break;
8454                 }
8455         }
8456 }
8457
8458
8459 /*--- proto_register_x411 -------------------------------------------*/
8460 void proto_register_x411(void) {
8461
8462   /* List of fields */
8463   static hf_register_info hf[] =
8464   {
8465           /* "Created by defining PDU in .cnf */
8466     { &hf_x411_MTABindArgument_PDU,
8467       { "MTABindArgument", "x411.MTABindArgument",
8468         FT_UINT32, BASE_DEC, VALS(x411_MTABindArgument_vals), 0,
8469         "x411.MTABindArgument", HFILL }},
8470     { &hf_x411_MTABindResult_PDU,
8471       { "MTABindResult", "x411.MTABindResult",
8472         FT_UINT32, BASE_DEC, VALS(x411_MTABindResult_vals), 0,
8473         "x411.MTABindResult", HFILL }},
8474     { &hf_x411_MTABindError_PDU,
8475       { "MTABindError", "x411.MTABindError",
8476         FT_UINT32, BASE_DEC, VALS(x411_MTABindError_vals), 0,
8477         "x411.MTABindError", HFILL }},
8478     { &hf_x411_MTS_APDU_PDU,
8479       { "MTS-APDU", "x411.MTS_APDU",
8480         FT_UINT32, BASE_DEC, VALS(x411_MTS_APDU_vals), 0,
8481         "x411.MTS_APDU", HFILL }},
8482
8483
8484 /*--- Included file: packet-x411-hfarr.c ---*/
8485 #line 1 "packet-x411-hfarr.c"
8486     { &hf_x411_InternalTraceInformation_PDU,
8487       { "InternalTraceInformation", "x411.InternalTraceInformation",
8488         FT_UINT32, BASE_DEC, NULL, 0,
8489         "x411.InternalTraceInformation", HFILL }},
8490     { &hf_x411_InternalTraceInformationElement_PDU,
8491       { "InternalTraceInformationElement", "x411.InternalTraceInformationElement",
8492         FT_NONE, BASE_NONE, NULL, 0,
8493         "x411.InternalTraceInformationElement", HFILL }},
8494     { &hf_x411_TraceInformation_PDU,
8495       { "TraceInformation", "x411.TraceInformation",
8496         FT_UINT32, BASE_DEC, NULL, 0,
8497         "x411.TraceInformation", HFILL }},
8498     { &hf_x411_TraceInformationElement_PDU,
8499       { "TraceInformationElement", "x411.TraceInformationElement",
8500         FT_NONE, BASE_NONE, NULL, 0,
8501         "x411.TraceInformationElement", HFILL }},
8502     { &hf_x411_MTSBindArgument_PDU,
8503       { "MTSBindArgument", "x411.MTSBindArgument",
8504         FT_NONE, BASE_NONE, NULL, 0,
8505         "x411.MTSBindArgument", HFILL }},
8506     { &hf_x411_MTSBindResult_PDU,
8507       { "MTSBindResult", "x411.MTSBindResult",
8508         FT_NONE, BASE_NONE, NULL, 0,
8509         "x411.MTSBindResult", HFILL }},
8510     { &hf_x411_PAR_mts_bind_error_PDU,
8511       { "PAR-mts-bind-error", "x411.PAR_mts_bind_error",
8512         FT_UINT32, BASE_DEC, VALS(x411_PAR_mts_bind_error_vals), 0,
8513         "x411.PAR_mts_bind_error", HFILL }},
8514     { &hf_x411_MessageSubmissionArgument_PDU,
8515       { "MessageSubmissionArgument", "x411.MessageSubmissionArgument",
8516         FT_NONE, BASE_NONE, NULL, 0,
8517         "x411.MessageSubmissionArgument", HFILL }},
8518     { &hf_x411_MessageSubmissionResult_PDU,
8519       { "MessageSubmissionResult", "x411.MessageSubmissionResult",
8520         FT_NONE, BASE_NONE, NULL, 0,
8521         "x411.MessageSubmissionResult", HFILL }},
8522     { &hf_x411_ProbeSubmissionArgument_PDU,
8523       { "ProbeSubmissionArgument", "x411.ProbeSubmissionArgument",
8524         FT_NONE, BASE_NONE, NULL, 0,
8525         "x411.ProbeSubmissionArgument", HFILL }},
8526     { &hf_x411_ProbeSubmissionResult_PDU,
8527       { "ProbeSubmissionResult", "x411.ProbeSubmissionResult",
8528         FT_NONE, BASE_NONE, NULL, 0,
8529         "x411.ProbeSubmissionResult", HFILL }},
8530     { &hf_x411_CancelDeferredDeliveryArgument_PDU,
8531       { "CancelDeferredDeliveryArgument", "x411.CancelDeferredDeliveryArgument",
8532         FT_NONE, BASE_NONE, NULL, 0,
8533         "x411.CancelDeferredDeliveryArgument", HFILL }},
8534     { &hf_x411_CancelDeferredDeliveryResult_PDU,
8535       { "CancelDeferredDeliveryResult", "x411.CancelDeferredDeliveryResult",
8536         FT_NONE, BASE_NONE, NULL, 0,
8537         "x411.CancelDeferredDeliveryResult", HFILL }},
8538     { &hf_x411_SubmissionControlArgument_PDU,
8539       { "SubmissionControlArgument", "x411.SubmissionControlArgument",
8540         FT_NONE, BASE_NONE, NULL, 0,
8541         "x411.SubmissionControlArgument", HFILL }},
8542     { &hf_x411_SubmissionControlResult_PDU,
8543       { "SubmissionControlResult", "x411.SubmissionControlResult",
8544         FT_NONE, BASE_NONE, NULL, 0,
8545         "x411.SubmissionControlResult", HFILL }},
8546     { &hf_x411_PAR_submission_control_violated_PDU,
8547       { "PAR-submission-control-violated", "x411.PAR_submission_control_violated",
8548         FT_NONE, BASE_NONE, NULL, 0,
8549         "x411.PAR_submission_control_violated", HFILL }},
8550     { &hf_x411_PAR_element_of_service_not_subscribed_PDU,
8551       { "PAR-element-of-service-not-subscribed", "x411.PAR_element_of_service_not_subscribed",
8552         FT_NONE, BASE_NONE, NULL, 0,
8553         "x411.PAR_element_of_service_not_subscribed", HFILL }},
8554     { &hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU,
8555       { "PAR-deferred-delivery-cancellation-rejected", "x411.PAR_deferred_delivery_cancellation_rejected",
8556         FT_NONE, BASE_NONE, NULL, 0,
8557         "x411.PAR_deferred_delivery_cancellation_rejected", HFILL }},
8558     { &hf_x411_PAR_originator_invalid_PDU,
8559       { "PAR-originator-invalid", "x411.PAR_originator_invalid",
8560         FT_NONE, BASE_NONE, NULL, 0,
8561         "x411.PAR_originator_invalid", HFILL }},
8562     { &hf_x411_ImproperlySpecifiedRecipients_PDU,
8563       { "ImproperlySpecifiedRecipients", "x411.ImproperlySpecifiedRecipients",
8564         FT_UINT32, BASE_DEC, NULL, 0,
8565         "x411.ImproperlySpecifiedRecipients", HFILL }},
8566     { &hf_x411_PAR_message_submission_identifier_invalid_PDU,
8567       { "PAR-message-submission-identifier-invalid", "x411.PAR_message_submission_identifier_invalid",
8568         FT_NONE, BASE_NONE, NULL, 0,
8569         "x411.PAR_message_submission_identifier_invalid", HFILL }},
8570     { &hf_x411_PAR_inconsistent_request_PDU,
8571       { "PAR-inconsistent-request", "x411.PAR_inconsistent_request",
8572         FT_NONE, BASE_NONE, NULL, 0,
8573         "x411.PAR_inconsistent_request", HFILL }},
8574     { &hf_x411_SecurityProblem_PDU,
8575       { "SecurityProblem", "x411.SecurityProblem",
8576         FT_UINT32, BASE_DEC, VALS(x411_SecurityProblem_vals), 0,
8577         "x411.SecurityProblem", HFILL }},
8578     { &hf_x411_PAR_unsupported_critical_function_PDU,
8579       { "PAR-unsupported-critical-function", "x411.PAR_unsupported_critical_function",
8580         FT_NONE, BASE_NONE, NULL, 0,
8581         "x411.PAR_unsupported_critical_function", HFILL }},
8582     { &hf_x411_PAR_remote_bind_error_PDU,
8583       { "PAR-remote-bind-error", "x411.PAR_remote_bind_error",
8584         FT_NONE, BASE_NONE, NULL, 0,
8585         "x411.PAR_remote_bind_error", HFILL }},
8586     { &hf_x411_MessageSubmissionTime_PDU,
8587       { "MessageSubmissionTime", "x411.MessageSubmissionTime",
8588         FT_STRING, BASE_NONE, NULL, 0,
8589         "x411.MessageSubmissionTime", HFILL }},
8590     { &hf_x411_MessageDeliveryArgument_PDU,
8591       { "MessageDeliveryArgument", "x411.MessageDeliveryArgument",
8592         FT_NONE, BASE_NONE, NULL, 0,
8593         "x411.MessageDeliveryArgument", HFILL }},
8594     { &hf_x411_MessageDeliveryResult_PDU,
8595       { "MessageDeliveryResult", "x411.MessageDeliveryResult",
8596         FT_NONE, BASE_NONE, NULL, 0,
8597         "x411.MessageDeliveryResult", HFILL }},
8598     { &hf_x411_ReportDeliveryArgument_PDU,
8599       { "ReportDeliveryArgument", "x411.ReportDeliveryArgument",
8600         FT_NONE, BASE_NONE, NULL, 0,
8601         "x411.ReportDeliveryArgument", HFILL }},
8602     { &hf_x411_ReportDeliveryResult_PDU,
8603       { "ReportDeliveryResult", "x411.ReportDeliveryResult",
8604         FT_UINT32, BASE_DEC, VALS(x411_ReportDeliveryResult_vals), 0,
8605         "x411.ReportDeliveryResult", HFILL }},
8606     { &hf_x411_DeliveryControlArgument_PDU,
8607       { "DeliveryControlArgument", "x411.DeliveryControlArgument",
8608         FT_NONE, BASE_NONE, NULL, 0,
8609         "x411.DeliveryControlArgument", HFILL }},
8610     { &hf_x411_DeliveryControlResult_PDU,
8611       { "DeliveryControlResult", "x411.DeliveryControlResult",
8612         FT_NONE, BASE_NONE, NULL, 0,
8613         "x411.DeliveryControlResult", HFILL }},
8614     { &hf_x411_PAR_delivery_control_violated_PDU,
8615       { "PAR-delivery-control-violated", "x411.PAR_delivery_control_violated",
8616         FT_NONE, BASE_NONE, NULL, 0,
8617         "x411.PAR_delivery_control_violated", HFILL }},
8618     { &hf_x411_PAR_control_violates_registration_PDU,
8619       { "PAR-control-violates-registration", "x411.PAR_control_violates_registration",
8620         FT_NONE, BASE_NONE, NULL, 0,
8621         "x411.PAR_control_violates_registration", HFILL }},
8622     { &hf_x411_RefusedOperation_PDU,
8623       { "RefusedOperation", "x411.RefusedOperation",
8624         FT_NONE, BASE_NONE, NULL, 0,
8625         "x411.RefusedOperation", HFILL }},
8626     { &hf_x411_RecipientCertificate_PDU,
8627       { "RecipientCertificate", "x411.RecipientCertificate",
8628         FT_NONE, BASE_NONE, NULL, 0,
8629         "x411.RecipientCertificate", HFILL }},
8630     { &hf_x411_ProofOfDelivery_PDU,
8631       { "ProofOfDelivery", "x411.ProofOfDelivery",
8632         FT_NONE, BASE_NONE, NULL, 0,
8633         "x411.ProofOfDelivery", HFILL }},
8634     { &hf_x411_RegisterArgument_PDU,
8635       { "RegisterArgument", "x411.RegisterArgument",
8636         FT_NONE, BASE_NONE, NULL, 0,
8637         "x411.RegisterArgument", HFILL }},
8638     { &hf_x411_RegisterResult_PDU,
8639       { "RegisterResult", "x411.RegisterResult",
8640         FT_UINT32, BASE_DEC, VALS(x411_RegisterResult_vals), 0,
8641         "x411.RegisterResult", HFILL }},
8642     { &hf_x411_ChangeCredentialsArgument_PDU,
8643       { "ChangeCredentialsArgument", "x411.ChangeCredentialsArgument",
8644         FT_NONE, BASE_NONE, NULL, 0,
8645         "x411.ChangeCredentialsArgument", HFILL }},
8646     { &hf_x411_RES_change_credentials_PDU,
8647       { "RES-change-credentials", "x411.RES_change_credentials",
8648         FT_NONE, BASE_NONE, NULL, 0,
8649         "x411.RES_change_credentials", HFILL }},
8650     { &hf_x411_PAR_register_rejected_PDU,
8651       { "PAR-register-rejected", "x411.PAR_register_rejected",
8652         FT_NONE, BASE_NONE, NULL, 0,
8653         "x411.PAR_register_rejected", HFILL }},
8654     { &hf_x411_PAR_new_credentials_unacceptable_PDU,
8655       { "PAR-new-credentials-unacceptable", "x411.PAR_new_credentials_unacceptable",
8656         FT_NONE, BASE_NONE, NULL, 0,
8657         "x411.PAR_new_credentials_unacceptable", HFILL }},
8658     { &hf_x411_PAR_old_credentials_incorrectly_specified_PDU,
8659       { "PAR-old-credentials-incorrectly-specified", "x411.PAR_old_credentials_incorrectly_specified",
8660         FT_NONE, BASE_NONE, NULL, 0,
8661         "x411.PAR_old_credentials_incorrectly_specified", HFILL }},
8662     { &hf_x411_MessageSubmissionEnvelope_PDU,
8663       { "MessageSubmissionEnvelope", "x411.MessageSubmissionEnvelope",
8664         FT_NONE, BASE_NONE, NULL, 0,
8665         "x411.MessageSubmissionEnvelope", HFILL }},
8666     { &hf_x411_PerRecipientMessageSubmissionFields_PDU,
8667       { "PerRecipientMessageSubmissionFields", "x411.PerRecipientMessageSubmissionFields",
8668         FT_NONE, BASE_NONE, NULL, 0,
8669         "x411.PerRecipientMessageSubmissionFields", HFILL }},
8670     { &hf_x411_ProbeSubmissionEnvelope_PDU,
8671       { "ProbeSubmissionEnvelope", "x411.ProbeSubmissionEnvelope",
8672         FT_NONE, BASE_NONE, NULL, 0,
8673         "x411.ProbeSubmissionEnvelope", HFILL }},
8674     { &hf_x411_PerRecipientProbeSubmissionFields_PDU,
8675       { "PerRecipientProbeSubmissionFields", "x411.PerRecipientProbeSubmissionFields",
8676         FT_NONE, BASE_NONE, NULL, 0,
8677         "x411.PerRecipientProbeSubmissionFields", HFILL }},
8678     { &hf_x411_MessageDeliveryEnvelope_PDU,
8679       { "MessageDeliveryEnvelope", "x411.MessageDeliveryEnvelope",
8680         FT_NONE, BASE_NONE, NULL, 0,
8681         "x411.MessageDeliveryEnvelope", HFILL }},
8682     { &hf_x411_ReportDeliveryEnvelope_PDU,
8683       { "ReportDeliveryEnvelope", "x411.ReportDeliveryEnvelope",
8684         FT_NONE, BASE_NONE, NULL, 0,
8685         "x411.ReportDeliveryEnvelope", HFILL }},
8686     { &hf_x411_PerRecipientReportDeliveryFields_PDU,
8687       { "PerRecipientReportDeliveryFields", "x411.PerRecipientReportDeliveryFields",
8688         FT_NONE, BASE_NONE, NULL, 0,
8689         "x411.PerRecipientReportDeliveryFields", HFILL }},
8690     { &hf_x411_ExtendedContentType_PDU,
8691       { "ExtendedContentType", "x411.ExtendedContentType",
8692         FT_OID, BASE_NONE, NULL, 0,
8693         "x411.ExtendedContentType", HFILL }},
8694     { &hf_x411_ContentIdentifier_PDU,
8695       { "ContentIdentifier", "x411.ContentIdentifier",
8696         FT_STRING, BASE_NONE, NULL, 0,
8697         "x411.ContentIdentifier", HFILL }},
8698     { &hf_x411_PerMessageIndicators_PDU,
8699       { "PerMessageIndicators", "x411.PerMessageIndicators",
8700         FT_BYTES, BASE_NONE, NULL, 0,
8701         "x411.PerMessageIndicators", HFILL }},
8702     { &hf_x411_OriginatorReportRequest_PDU,
8703       { "OriginatorReportRequest", "x411.OriginatorReportRequest",
8704         FT_BYTES, BASE_NONE, NULL, 0,
8705         "x411.OriginatorReportRequest", HFILL }},
8706     { &hf_x411_DeferredDeliveryTime_PDU,
8707       { "DeferredDeliveryTime", "x411.DeferredDeliveryTime",
8708         FT_STRING, BASE_NONE, NULL, 0,
8709         "x411.DeferredDeliveryTime", HFILL }},
8710     { &hf_x411_Priority_PDU,
8711       { "Priority", "x411.Priority",
8712         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
8713         "x411.Priority", HFILL }},
8714     { &hf_x411_ContentLength_PDU,
8715       { "ContentLength", "x411.ContentLength",
8716         FT_UINT32, BASE_DEC, NULL, 0,
8717         "x411.ContentLength", HFILL }},
8718     { &hf_x411_MessageDeliveryTime_PDU,
8719       { "MessageDeliveryTime", "x411.MessageDeliveryTime",
8720         FT_STRING, BASE_NONE, NULL, 0,
8721         "x411.MessageDeliveryTime", HFILL }},
8722     { &hf_x411_DeliveryFlags_PDU,
8723       { "DeliveryFlags", "x411.DeliveryFlags",
8724         FT_BYTES, BASE_NONE, NULL, 0,
8725         "x411.DeliveryFlags", HFILL }},
8726     { &hf_x411_SubjectSubmissionIdentifier_PDU,
8727       { "SubjectSubmissionIdentifier", "x411.SubjectSubmissionIdentifier",
8728         FT_NONE, BASE_NONE, NULL, 0,
8729         "x411.SubjectSubmissionIdentifier", HFILL }},
8730     { &hf_x411_RecipientReassignmentProhibited_PDU,
8731       { "RecipientReassignmentProhibited", "x411.RecipientReassignmentProhibited",
8732         FT_UINT32, BASE_DEC, VALS(x411_RecipientReassignmentProhibited_vals), 0,
8733         "x411.RecipientReassignmentProhibited", HFILL }},
8734     { &hf_x411_OriginatorRequestedAlternateRecipient_PDU,
8735       { "OriginatorRequestedAlternateRecipient", "x411.OriginatorRequestedAlternateRecipient",
8736         FT_NONE, BASE_NONE, NULL, 0,
8737         "x411.OriginatorRequestedAlternateRecipient", HFILL }},
8738     { &hf_x411_DLExpansionProhibited_PDU,
8739       { "DLExpansionProhibited", "x411.DLExpansionProhibited",
8740         FT_UINT32, BASE_DEC, VALS(x411_DLExpansionProhibited_vals), 0,
8741         "x411.DLExpansionProhibited", HFILL }},
8742     { &hf_x411_ConversionWithLossProhibited_PDU,
8743       { "ConversionWithLossProhibited", "x411.ConversionWithLossProhibited",
8744         FT_UINT32, BASE_DEC, VALS(x411_ConversionWithLossProhibited_vals), 0,
8745         "x411.ConversionWithLossProhibited", HFILL }},
8746     { &hf_x411_LatestDeliveryTime_PDU,
8747       { "LatestDeliveryTime", "x411.LatestDeliveryTime",
8748         FT_STRING, BASE_NONE, NULL, 0,
8749         "x411.LatestDeliveryTime", HFILL }},
8750     { &hf_x411_RequestedDeliveryMethod_PDU,
8751       { "RequestedDeliveryMethod", "x411.RequestedDeliveryMethod",
8752         FT_UINT32, BASE_DEC, NULL, 0,
8753         "x411.RequestedDeliveryMethod", HFILL }},
8754     { &hf_x411_PhysicalForwardingProhibited_PDU,
8755       { "PhysicalForwardingProhibited", "x411.PhysicalForwardingProhibited",
8756         FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingProhibited_vals), 0,
8757         "x411.PhysicalForwardingProhibited", HFILL }},
8758     { &hf_x411_PhysicalForwardingAddressRequest_PDU,
8759       { "PhysicalForwardingAddressRequest", "x411.PhysicalForwardingAddressRequest",
8760         FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingAddressRequest_vals), 0,
8761         "x411.PhysicalForwardingAddressRequest", HFILL }},
8762     { &hf_x411_PhysicalDeliveryModes_PDU,
8763       { "PhysicalDeliveryModes", "x411.PhysicalDeliveryModes",
8764         FT_BYTES, BASE_NONE, NULL, 0,
8765         "x411.PhysicalDeliveryModes", HFILL }},
8766     { &hf_x411_RegisteredMailType_PDU,
8767       { "RegisteredMailType", "x411.RegisteredMailType",
8768         FT_UINT32, BASE_DEC, VALS(x411_RegisteredMailType_vals), 0,
8769         "x411.RegisteredMailType", HFILL }},
8770     { &hf_x411_RecipientNumberForAdvice_PDU,
8771       { "RecipientNumberForAdvice", "x411.RecipientNumberForAdvice",
8772         FT_STRING, BASE_NONE, NULL, 0,
8773         "x411.RecipientNumberForAdvice", HFILL }},
8774     { &hf_x411_PhysicalRenditionAttributes_PDU,
8775       { "PhysicalRenditionAttributes", "x411.PhysicalRenditionAttributes",
8776         FT_OID, BASE_NONE, NULL, 0,
8777         "x411.PhysicalRenditionAttributes", HFILL }},
8778     { &hf_x411_OriginatorReturnAddress_PDU,
8779       { "OriginatorReturnAddress", "x411.OriginatorReturnAddress",
8780         FT_NONE, BASE_NONE, NULL, 0,
8781         "x411.OriginatorReturnAddress", HFILL }},
8782     { &hf_x411_PhysicalDeliveryReportRequest_PDU,
8783       { "PhysicalDeliveryReportRequest", "x411.PhysicalDeliveryReportRequest",
8784         FT_UINT32, BASE_DEC, VALS(x411_PhysicalDeliveryReportRequest_vals), 0,
8785         "x411.PhysicalDeliveryReportRequest", HFILL }},
8786     { &hf_x411_OriginatorCertificate_PDU,
8787       { "OriginatorCertificate", "x411.OriginatorCertificate",
8788         FT_NONE, BASE_NONE, NULL, 0,
8789         "x411.OriginatorCertificate", HFILL }},
8790     { &hf_x411_MessageToken_PDU,
8791       { "MessageToken", "x411.MessageToken",
8792         FT_NONE, BASE_NONE, NULL, 0,
8793         "x411.MessageToken", HFILL }},
8794     { &hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU,
8795       { "ContentConfidentialityAlgorithmIdentifier", "x411.ContentConfidentialityAlgorithmIdentifier",
8796         FT_NONE, BASE_NONE, NULL, 0,
8797         "x411.ContentConfidentialityAlgorithmIdentifier", HFILL }},
8798     { &hf_x411_ContentIntegrityCheck_PDU,
8799       { "ContentIntegrityCheck", "x411.ContentIntegrityCheck",
8800         FT_NONE, BASE_NONE, NULL, 0,
8801         "x411.ContentIntegrityCheck", HFILL }},
8802     { &hf_x411_MessageOriginAuthenticationCheck_PDU,
8803       { "MessageOriginAuthenticationCheck", "x411.MessageOriginAuthenticationCheck",
8804         FT_NONE, BASE_NONE, NULL, 0,
8805         "x411.MessageOriginAuthenticationCheck", HFILL }},
8806     { &hf_x411_MessageSecurityLabel_PDU,
8807       { "MessageSecurityLabel", "x411.MessageSecurityLabel",
8808         FT_NONE, BASE_NONE, NULL, 0,
8809         "x411.MessageSecurityLabel", HFILL }},
8810     { &hf_x411_ProofOfSubmissionRequest_PDU,
8811       { "ProofOfSubmissionRequest", "x411.ProofOfSubmissionRequest",
8812         FT_UINT32, BASE_DEC, VALS(x411_ProofOfSubmissionRequest_vals), 0,
8813         "x411.ProofOfSubmissionRequest", HFILL }},
8814     { &hf_x411_ProofOfDeliveryRequest_PDU,
8815       { "ProofOfDeliveryRequest", "x411.ProofOfDeliveryRequest",
8816         FT_UINT32, BASE_DEC, VALS(x411_ProofOfDeliveryRequest_vals), 0,
8817         "x411.ProofOfDeliveryRequest", HFILL }},
8818     { &hf_x411_ContentCorrelator_PDU,
8819       { "ContentCorrelator", "x411.ContentCorrelator",
8820         FT_UINT32, BASE_DEC, VALS(x411_ContentCorrelator_vals), 0,
8821         "x411.ContentCorrelator", HFILL }},
8822     { &hf_x411_ProbeOriginAuthenticationCheck_PDU,
8823       { "ProbeOriginAuthenticationCheck", "x411.ProbeOriginAuthenticationCheck",
8824         FT_NONE, BASE_NONE, NULL, 0,
8825         "x411.ProbeOriginAuthenticationCheck", HFILL }},
8826     { &hf_x411_RedirectionHistory_PDU,
8827       { "RedirectionHistory", "x411.RedirectionHistory",
8828         FT_UINT32, BASE_DEC, NULL, 0,
8829         "x411.RedirectionHistory", HFILL }},
8830     { &hf_x411_Redirection_PDU,
8831       { "Redirection", "x411.Redirection",
8832         FT_NONE, BASE_NONE, NULL, 0,
8833         "x411.Redirection", HFILL }},
8834     { &hf_x411_DLExpansionHistory_PDU,
8835       { "DLExpansionHistory", "x411.DLExpansionHistory",
8836         FT_UINT32, BASE_DEC, NULL, 0,
8837         "x411.DLExpansionHistory", HFILL }},
8838     { &hf_x411_DLExpansion_PDU,
8839       { "DLExpansion", "x411.DLExpansion",
8840         FT_NONE, BASE_NONE, NULL, 0,
8841         "x411.DLExpansion", HFILL }},
8842     { &hf_x411_PhysicalForwardingAddress_PDU,
8843       { "PhysicalForwardingAddress", "x411.PhysicalForwardingAddress",
8844         FT_NONE, BASE_NONE, NULL, 0,
8845         "x411.PhysicalForwardingAddress", HFILL }},
8846     { &hf_x411_OriginatorAndDLExpansionHistory_PDU,
8847       { "OriginatorAndDLExpansionHistory", "x411.OriginatorAndDLExpansionHistory",
8848         FT_UINT32, BASE_DEC, NULL, 0,
8849         "x411.OriginatorAndDLExpansionHistory", HFILL }},
8850     { &hf_x411_ReportingDLName_PDU,
8851       { "ReportingDLName", "x411.ReportingDLName",
8852         FT_NONE, BASE_NONE, NULL, 0,
8853         "x411.ReportingDLName", HFILL }},
8854     { &hf_x411_ReportingMTACertificate_PDU,
8855       { "ReportingMTACertificate", "x411.ReportingMTACertificate",
8856         FT_NONE, BASE_NONE, NULL, 0,
8857         "x411.ReportingMTACertificate", HFILL }},
8858     { &hf_x411_ReportOriginAuthenticationCheck_PDU,
8859       { "ReportOriginAuthenticationCheck", "x411.ReportOriginAuthenticationCheck",
8860         FT_NONE, BASE_NONE, NULL, 0,
8861         "x411.ReportOriginAuthenticationCheck", HFILL }},
8862     { &hf_x411_OriginatingMTACertificate_PDU,
8863       { "OriginatingMTACertificate", "x411.OriginatingMTACertificate",
8864         FT_NONE, BASE_NONE, NULL, 0,
8865         "x411.OriginatingMTACertificate", HFILL }},
8866     { &hf_x411_ProofOfSubmission_PDU,
8867       { "ProofOfSubmission", "x411.ProofOfSubmission",
8868         FT_NONE, BASE_NONE, NULL, 0,
8869         "x411.ProofOfSubmission", HFILL }},
8870     { &hf_x411_ReportingMTAName_PDU,
8871       { "ReportingMTAName", "x411.ReportingMTAName",
8872         FT_NONE, BASE_NONE, NULL, 0,
8873         "x411.ReportingMTAName", HFILL }},
8874     { &hf_x411_ExtendedCertificates_PDU,
8875       { "ExtendedCertificates", "x411.ExtendedCertificates",
8876         FT_UINT32, BASE_DEC, NULL, 0,
8877         "x411.ExtendedCertificates", HFILL }},
8878     { &hf_x411_DLExemptedRecipients_PDU,
8879       { "DLExemptedRecipients", "x411.DLExemptedRecipients",
8880         FT_UINT32, BASE_DEC, NULL, 0,
8881         "x411.DLExemptedRecipients", HFILL }},
8882     { &hf_x411_CertificateSelectors_PDU,
8883       { "CertificateSelectors", "x411.CertificateSelectors",
8884         FT_NONE, BASE_NONE, NULL, 0,
8885         "x411.CertificateSelectors", HFILL }},
8886     { &hf_x411_Content_PDU,
8887       { "Content", "x411.Content",
8888         FT_BYTES, BASE_NONE, NULL, 0,
8889         "x411.Content", HFILL }},
8890     { &hf_x411_MTSIdentifier_PDU,
8891       { "MTSIdentifier", "x411.MTSIdentifier",
8892         FT_NONE, BASE_NONE, NULL, 0,
8893         "x411.MTSIdentifier", HFILL }},
8894     { &hf_x411_ORName_PDU,
8895       { "ORName", "x411.ORName",
8896         FT_NONE, BASE_NONE, NULL, 0,
8897         "x411.ORName", HFILL }},
8898     { &hf_x411_ORAddress_PDU,
8899       { "ORAddress", "x411.ORAddress",
8900         FT_NONE, BASE_NONE, NULL, 0,
8901         "x411.ORAddress", HFILL }},
8902     { &hf_x411_CommonName_PDU,
8903       { "CommonName", "x411.CommonName",
8904         FT_STRING, BASE_NONE, NULL, 0,
8905         "x411.CommonName", HFILL }},
8906     { &hf_x411_TeletexCommonName_PDU,
8907       { "TeletexCommonName", "x411.TeletexCommonName",
8908         FT_STRING, BASE_NONE, NULL, 0,
8909         "x411.TeletexCommonName", HFILL }},
8910     { &hf_x411_UniversalCommonName_PDU,
8911       { "UniversalCommonName", "x411.UniversalCommonName",
8912         FT_NONE, BASE_NONE, NULL, 0,
8913         "x411.UniversalCommonName", HFILL }},
8914     { &hf_x411_TeletexOrganizationName_PDU,
8915       { "TeletexOrganizationName", "x411.TeletexOrganizationName",
8916         FT_STRING, BASE_NONE, NULL, 0,
8917         "x411.TeletexOrganizationName", HFILL }},
8918     { &hf_x411_UniversalOrganizationName_PDU,
8919       { "UniversalOrganizationName", "x411.UniversalOrganizationName",
8920         FT_NONE, BASE_NONE, NULL, 0,
8921         "x411.UniversalOrganizationName", HFILL }},
8922     { &hf_x411_TeletexPersonalName_PDU,
8923       { "TeletexPersonalName", "x411.TeletexPersonalName",
8924         FT_NONE, BASE_NONE, NULL, 0,
8925         "x411.TeletexPersonalName", HFILL }},
8926     { &hf_x411_UniversalPersonalName_PDU,
8927       { "UniversalPersonalName", "x411.UniversalPersonalName",
8928         FT_NONE, BASE_NONE, NULL, 0,
8929         "x411.UniversalPersonalName", HFILL }},
8930     { &hf_x411_TeletexOrganizationalUnitNames_PDU,
8931       { "TeletexOrganizationalUnitNames", "x411.TeletexOrganizationalUnitNames",
8932         FT_UINT32, BASE_DEC, NULL, 0,
8933         "x411.TeletexOrganizationalUnitNames", HFILL }},
8934     { &hf_x411_UniversalOrganizationalUnitNames_PDU,
8935       { "UniversalOrganizationalUnitNames", "x411.UniversalOrganizationalUnitNames",
8936         FT_UINT32, BASE_DEC, NULL, 0,
8937         "x411.UniversalOrganizationalUnitNames", HFILL }},
8938     { &hf_x411_PDSName_PDU,
8939       { "PDSName", "x411.PDSName",
8940         FT_STRING, BASE_NONE, NULL, 0,
8941         "x411.PDSName", HFILL }},
8942     { &hf_x411_PhysicalDeliveryCountryName_PDU,
8943       { "PhysicalDeliveryCountryName", "x411.PhysicalDeliveryCountryName",
8944         FT_UINT32, BASE_DEC, VALS(x411_PhysicalDeliveryCountryName_vals), 0,
8945         "x411.PhysicalDeliveryCountryName", HFILL }},
8946     { &hf_x411_PostalCode_PDU,
8947       { "PostalCode", "x411.PostalCode",
8948         FT_UINT32, BASE_DEC, VALS(x411_PostalCode_vals), 0,
8949         "x411.PostalCode", HFILL }},
8950     { &hf_x411_PhysicalDeliveryOfficeName_PDU,
8951       { "PhysicalDeliveryOfficeName", "x411.PhysicalDeliveryOfficeName",
8952         FT_NONE, BASE_NONE, NULL, 0,
8953         "x411.PhysicalDeliveryOfficeName", HFILL }},
8954     { &hf_x411_UniversalPhysicalDeliveryOfficeName_PDU,
8955       { "UniversalPhysicalDeliveryOfficeName", "x411.UniversalPhysicalDeliveryOfficeName",
8956         FT_NONE, BASE_NONE, NULL, 0,
8957         "x411.UniversalPhysicalDeliveryOfficeName", HFILL }},
8958     { &hf_x411_PhysicalDeliveryOfficeNumber_PDU,
8959       { "PhysicalDeliveryOfficeNumber", "x411.PhysicalDeliveryOfficeNumber",
8960         FT_NONE, BASE_NONE, NULL, 0,
8961         "x411.PhysicalDeliveryOfficeNumber", HFILL }},
8962     { &hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU,
8963       { "UniversalPhysicalDeliveryOfficeNumber", "x411.UniversalPhysicalDeliveryOfficeNumber",
8964         FT_NONE, BASE_NONE, NULL, 0,
8965         "x411.UniversalPhysicalDeliveryOfficeNumber", HFILL }},
8966     { &hf_x411_ExtensionORAddressComponents_PDU,
8967       { "ExtensionORAddressComponents", "x411.ExtensionORAddressComponents",
8968         FT_NONE, BASE_NONE, NULL, 0,
8969         "x411.ExtensionORAddressComponents", HFILL }},
8970     { &hf_x411_UniversalExtensionORAddressComponents_PDU,
8971       { "UniversalExtensionORAddressComponents", "x411.UniversalExtensionORAddressComponents",
8972         FT_NONE, BASE_NONE, NULL, 0,
8973         "x411.UniversalExtensionORAddressComponents", HFILL }},
8974     { &hf_x411_PhysicalDeliveryPersonalName_PDU,
8975       { "PhysicalDeliveryPersonalName", "x411.PhysicalDeliveryPersonalName",
8976         FT_NONE, BASE_NONE, NULL, 0,
8977         "x411.PhysicalDeliveryPersonalName", HFILL }},
8978     { &hf_x411_UniversalPhysicalDeliveryPersonalName_PDU,
8979       { "UniversalPhysicalDeliveryPersonalName", "x411.UniversalPhysicalDeliveryPersonalName",
8980         FT_NONE, BASE_NONE, NULL, 0,
8981         "x411.UniversalPhysicalDeliveryPersonalName", HFILL }},
8982     { &hf_x411_PhysicalDeliveryOrganizationName_PDU,
8983       { "PhysicalDeliveryOrganizationName", "x411.PhysicalDeliveryOrganizationName",
8984         FT_NONE, BASE_NONE, NULL, 0,
8985         "x411.PhysicalDeliveryOrganizationName", HFILL }},
8986     { &hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU,
8987       { "UniversalPhysicalDeliveryOrganizationName", "x411.UniversalPhysicalDeliveryOrganizationName",
8988         FT_NONE, BASE_NONE, NULL, 0,
8989         "x411.UniversalPhysicalDeliveryOrganizationName", HFILL }},
8990     { &hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU,
8991       { "ExtensionPhysicalDeliveryAddressComponents", "x411.ExtensionPhysicalDeliveryAddressComponents",
8992         FT_NONE, BASE_NONE, NULL, 0,
8993         "x411.ExtensionPhysicalDeliveryAddressComponents", HFILL }},
8994     { &hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU,
8995       { "UniversalExtensionPhysicalDeliveryAddressComponents", "x411.UniversalExtensionPhysicalDeliveryAddressComponents",
8996         FT_NONE, BASE_NONE, NULL, 0,
8997         "x411.UniversalExtensionPhysicalDeliveryAddressComponents", HFILL }},
8998     { &hf_x411_UnformattedPostalAddress_PDU,
8999       { "UnformattedPostalAddress", "x411.UnformattedPostalAddress",
9000         FT_NONE, BASE_NONE, NULL, 0,
9001         "x411.UnformattedPostalAddress", HFILL }},
9002     { &hf_x411_UniversalUnformattedPostalAddress_PDU,
9003       { "UniversalUnformattedPostalAddress", "x411.UniversalUnformattedPostalAddress",
9004         FT_NONE, BASE_NONE, NULL, 0,
9005         "x411.UniversalUnformattedPostalAddress", HFILL }},
9006     { &hf_x411_StreetAddress_PDU,
9007       { "StreetAddress", "x411.StreetAddress",
9008         FT_NONE, BASE_NONE, NULL, 0,
9009         "x411.StreetAddress", HFILL }},
9010     { &hf_x411_UniversalStreetAddress_PDU,
9011       { "UniversalStreetAddress", "x411.UniversalStreetAddress",
9012         FT_NONE, BASE_NONE, NULL, 0,
9013         "x411.UniversalStreetAddress", HFILL }},
9014     { &hf_x411_PostOfficeBoxAddress_PDU,
9015       { "PostOfficeBoxAddress", "x411.PostOfficeBoxAddress",
9016         FT_NONE, BASE_NONE, NULL, 0,
9017         "x411.PostOfficeBoxAddress", HFILL }},
9018     { &hf_x411_UniversalPostOfficeBoxAddress_PDU,
9019       { "UniversalPostOfficeBoxAddress", "x411.UniversalPostOfficeBoxAddress",
9020         FT_NONE, BASE_NONE, NULL, 0,
9021         "x411.UniversalPostOfficeBoxAddress", HFILL }},
9022     { &hf_x411_PosteRestanteAddress_PDU,
9023       { "PosteRestanteAddress", "x411.PosteRestanteAddress",
9024         FT_NONE, BASE_NONE, NULL, 0,
9025         "x411.PosteRestanteAddress", HFILL }},
9026     { &hf_x411_UniversalPosteRestanteAddress_PDU,
9027       { "UniversalPosteRestanteAddress", "x411.UniversalPosteRestanteAddress",
9028         FT_NONE, BASE_NONE, NULL, 0,
9029         "x411.UniversalPosteRestanteAddress", HFILL }},
9030     { &hf_x411_UniquePostalName_PDU,
9031       { "UniquePostalName", "x411.UniquePostalName",
9032         FT_NONE, BASE_NONE, NULL, 0,
9033         "x411.UniquePostalName", HFILL }},
9034     { &hf_x411_UniversalUniquePostalName_PDU,
9035       { "UniversalUniquePostalName", "x411.UniversalUniquePostalName",
9036         FT_NONE, BASE_NONE, NULL, 0,
9037         "x411.UniversalUniquePostalName", HFILL }},
9038     { &hf_x411_LocalPostalAttributes_PDU,
9039       { "LocalPostalAttributes", "x411.LocalPostalAttributes",
9040         FT_NONE, BASE_NONE, NULL, 0,
9041         "x411.LocalPostalAttributes", HFILL }},
9042     { &hf_x411_UniversalLocalPostalAttributes_PDU,
9043       { "UniversalLocalPostalAttributes", "x411.UniversalLocalPostalAttributes",
9044         FT_NONE, BASE_NONE, NULL, 0,
9045         "x411.UniversalLocalPostalAttributes", HFILL }},
9046     { &hf_x411_ExtendedNetworkAddress_PDU,
9047       { "ExtendedNetworkAddress", "x411.ExtendedNetworkAddress",
9048         FT_UINT32, BASE_DEC, VALS(x411_ExtendedNetworkAddress_vals), 0,
9049         "x411.ExtendedNetworkAddress", HFILL }},
9050     { &hf_x411_TerminalType_PDU,
9051       { "TerminalType", "x411.TerminalType",
9052         FT_UINT32, BASE_DEC, VALS(x411_TerminalType_vals), 0,
9053         "x411.TerminalType", HFILL }},
9054     { &hf_x411_TeletexDomainDefinedAttributes_PDU,
9055       { "TeletexDomainDefinedAttributes", "x411.TeletexDomainDefinedAttributes",
9056         FT_UINT32, BASE_DEC, NULL, 0,
9057         "x411.TeletexDomainDefinedAttributes", HFILL }},
9058     { &hf_x411_UniversalDomainDefinedAttributes_PDU,
9059       { "UniversalDomainDefinedAttributes", "x411.UniversalDomainDefinedAttributes",
9060         FT_UINT32, BASE_DEC, NULL, 0,
9061         "x411.UniversalDomainDefinedAttributes", HFILL }},
9062     { &hf_x411_ExtendedEncodedInformationType_PDU,
9063       { "ExtendedEncodedInformationType", "x411.ExtendedEncodedInformationType",
9064         FT_OID, BASE_NONE, NULL, 0,
9065         "x411.ExtendedEncodedInformationType", HFILL }},
9066     { &hf_x411_MTANameAndOptionalGDI_PDU,
9067       { "MTANameAndOptionalGDI", "x411.MTANameAndOptionalGDI",
9068         FT_NONE, BASE_NONE, NULL, 0,
9069         "x411.MTANameAndOptionalGDI", HFILL }},
9070     { &hf_x411_AsymmetricToken_PDU,
9071       { "AsymmetricToken", "x411.AsymmetricToken",
9072         FT_NONE, BASE_NONE, NULL, 0,
9073         "x411.AsymmetricToken", HFILL }},
9074     { &hf_x411_BindTokenSignedData_PDU,
9075       { "BindTokenSignedData", "x411.BindTokenSignedData",
9076         FT_BYTES, BASE_NONE, NULL, 0,
9077         "x411.BindTokenSignedData", HFILL }},
9078     { &hf_x411_MessageTokenSignedData_PDU,
9079       { "MessageTokenSignedData", "x411.MessageTokenSignedData",
9080         FT_NONE, BASE_NONE, NULL, 0,
9081         "x411.MessageTokenSignedData", HFILL }},
9082     { &hf_x411_MessageTokenEncryptedData_PDU,
9083       { "MessageTokenEncryptedData", "x411.MessageTokenEncryptedData",
9084         FT_NONE, BASE_NONE, NULL, 0,
9085         "x411.MessageTokenEncryptedData", HFILL }},
9086     { &hf_x411_BindTokenEncryptedData_PDU,
9087       { "BindTokenEncryptedData", "x411.BindTokenEncryptedData",
9088         FT_NONE, BASE_NONE, NULL, 0,
9089         "x411.BindTokenEncryptedData", HFILL }},
9090     { &hf_x411_SecurityClassification_PDU,
9091       { "SecurityClassification", "x411.SecurityClassification",
9092         FT_UINT32, BASE_DEC, VALS(x411_SecurityClassification_vals), 0,
9093         "x411.SecurityClassification", HFILL }},
9094     { &hf_x411_unauthenticated,
9095       { "unauthenticated", "x411.unauthenticated",
9096         FT_NONE, BASE_NONE, NULL, 0,
9097         "x411.NULL", HFILL }},
9098     { &hf_x411_authenticated_argument,
9099       { "authenticated", "x411.authenticated",
9100         FT_NONE, BASE_NONE, NULL, 0,
9101         "x411.AuthenticatedArgument", HFILL }},
9102     { &hf_x411_authenticated_initiator_name,
9103       { "initiator-name", "x411.initiator_name",
9104         FT_STRING, BASE_NONE, NULL, 0,
9105         "x411.MTAName", HFILL }},
9106     { &hf_x411_initiator_credentials,
9107       { "initiator-credentials", "x411.initiator_credentials",
9108         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9109         "x411.InitiatorCredentials", HFILL }},
9110     { &hf_x411_security_context,
9111       { "security-context", "x411.security_context",
9112         FT_UINT32, BASE_DEC, NULL, 0,
9113         "x411.SecurityContext", HFILL }},
9114     { &hf_x411_authenticated_result,
9115       { "authenticated", "x411.authenticated",
9116         FT_NONE, BASE_NONE, NULL, 0,
9117         "x411.AuthenticatedResult", HFILL }},
9118     { &hf_x411_authenticated_responder_name,
9119       { "responder-name", "x411.responder_name",
9120         FT_STRING, BASE_NONE, NULL, 0,
9121         "x411.MTAName", HFILL }},
9122     { &hf_x411_responder_credentials,
9123       { "responder-credentials", "x411.responder_credentials",
9124         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9125         "x411.ResponderCredentials", HFILL }},
9126     { &hf_x411_message,
9127       { "message", "x411.message",
9128         FT_NONE, BASE_NONE, NULL, 0,
9129         "x411.Message", HFILL }},
9130     { &hf_x411_probe,
9131       { "probe", "x411.probe",
9132         FT_NONE, BASE_NONE, NULL, 0,
9133         "x411.Probe", HFILL }},
9134     { &hf_x411_report,
9135       { "report", "x411.report",
9136         FT_NONE, BASE_NONE, NULL, 0,
9137         "x411.Report", HFILL }},
9138     { &hf_x411_message_envelope,
9139       { "envelope", "x411.envelope",
9140         FT_NONE, BASE_NONE, NULL, 0,
9141         "x411.MessageTransferEnvelope", HFILL }},
9142     { &hf_x411_content,
9143       { "content", "x411.content",
9144         FT_BYTES, BASE_NONE, NULL, 0,
9145         "x411.Content", HFILL }},
9146     { &hf_x411_report_envelope,
9147       { "envelope", "x411.envelope",
9148         FT_NONE, BASE_NONE, NULL, 0,
9149         "x411.ReportTransferEnvelope", HFILL }},
9150     { &hf_x411_report_content,
9151       { "content", "x411.content",
9152         FT_NONE, BASE_NONE, NULL, 0,
9153         "x411.ReportTransferContent", HFILL }},
9154     { &hf_x411_message_identifier,
9155       { "message-identifier", "x411.message_identifier",
9156         FT_NONE, BASE_NONE, NULL, 0,
9157         "x411.MessageIdentifier", HFILL }},
9158     { &hf_x411_originator_name,
9159       { "originator-name", "x411.originator_name",
9160         FT_NONE, BASE_NONE, NULL, 0,
9161         "x411.MTAOriginatorName", HFILL }},
9162     { &hf_x411_original_encoded_information_types,
9163       { "original-encoded-information-types", "x411.original_encoded_information_types",
9164         FT_NONE, BASE_NONE, NULL, 0,
9165         "x411.OriginalEncodedInformationTypes", HFILL }},
9166     { &hf_x411_content_type,
9167       { "content-type", "x411.content_type",
9168         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
9169         "x411.ContentType", HFILL }},
9170     { &hf_x411_content_identifier,
9171       { "content-identifier", "x411.content_identifier",
9172         FT_STRING, BASE_NONE, NULL, 0,
9173         "x411.ContentIdentifier", HFILL }},
9174     { &hf_x411_priority,
9175       { "priority", "x411.priority",
9176         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9177         "x411.Priority", HFILL }},
9178     { &hf_x411_per_message_indicators,
9179       { "per-message-indicators", "x411.per_message_indicators",
9180         FT_BYTES, BASE_NONE, NULL, 0,
9181         "x411.PerMessageIndicators", HFILL }},
9182     { &hf_x411_deferred_delivery_time,
9183       { "deferred-delivery-time", "x411.deferred_delivery_time",
9184         FT_STRING, BASE_NONE, NULL, 0,
9185         "x411.DeferredDeliveryTime", HFILL }},
9186     { &hf_x411_per_domain_bilateral_information,
9187       { "per-domain-bilateral-information", "x411.per_domain_bilateral_information",
9188         FT_UINT32, BASE_DEC, NULL, 0,
9189         "x411.SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation", HFILL }},
9190     { &hf_x411_per_domain_bilateral_information_item,
9191       { "PerDomainBilateralInformation", "x411.PerDomainBilateralInformation",
9192         FT_NONE, BASE_NONE, NULL, 0,
9193         "x411.PerDomainBilateralInformation", HFILL }},
9194     { &hf_x411_trace_information,
9195       { "trace-information", "x411.trace_information",
9196         FT_UINT32, BASE_DEC, NULL, 0,
9197         "x411.TraceInformation", HFILL }},
9198     { &hf_x411_extensions,
9199       { "extensions", "x411.extensions",
9200         FT_UINT32, BASE_DEC, NULL, 0,
9201         "x411.SET_OF_ExtensionField", HFILL }},
9202     { &hf_x411_extensions_item,
9203       { "ExtensionField", "x411.ExtensionField",
9204         FT_NONE, BASE_NONE, NULL, 0,
9205         "x411.ExtensionField", HFILL }},
9206     { &hf_x411_recipient_name,
9207       { "recipient-name", "x411.recipient_name",
9208         FT_NONE, BASE_NONE, NULL, 0,
9209         "x411.MTARecipientName", HFILL }},
9210     { &hf_x411_originally_specified_recipient_number,
9211       { "originally-specified-recipient-number", "x411.originally_specified_recipient_number",
9212         FT_UINT32, BASE_DEC, NULL, 0,
9213         "x411.OriginallySpecifiedRecipientNumber", HFILL }},
9214     { &hf_x411_per_recipient_indicators,
9215       { "per-recipient-indicators", "x411.per_recipient_indicators",
9216         FT_BYTES, BASE_NONE, NULL, 0,
9217         "x411.PerRecipientIndicators", HFILL }},
9218     { &hf_x411_explicit_conversion,
9219       { "explicit-conversion", "x411.explicit_conversion",
9220         FT_UINT32, BASE_DEC, VALS(x411_ExplicitConversion_vals), 0,
9221         "x411.ExplicitConversion", HFILL }},
9222     { &hf_x411_probe_identifier,
9223       { "probe-identifier", "x411.probe_identifier",
9224         FT_NONE, BASE_NONE, NULL, 0,
9225         "x411.ProbeIdentifier", HFILL }},
9226     { &hf_x411_content_length,
9227       { "content-length", "x411.content_length",
9228         FT_UINT32, BASE_DEC, NULL, 0,
9229         "x411.ContentLength", HFILL }},
9230     { &hf_x411_report_identifier,
9231       { "report-identifier", "x411.report_identifier",
9232         FT_NONE, BASE_NONE, NULL, 0,
9233         "x411.ReportIdentifier", HFILL }},
9234     { &hf_x411_report_destination_name,
9235       { "report-destination-name", "x411.report_destination_name",
9236         FT_NONE, BASE_NONE, NULL, 0,
9237         "x411.ReportDestinationName", HFILL }},
9238     { &hf_x411_subject_identifier,
9239       { "subject-identifier", "x411.subject_identifier",
9240         FT_NONE, BASE_NONE, NULL, 0,
9241         "x411.SubjectIdentifier", HFILL }},
9242     { &hf_x411_subject_intermediate_trace_information,
9243       { "subject-intermediate-trace-information", "x411.subject_intermediate_trace_information",
9244         FT_UINT32, BASE_DEC, NULL, 0,
9245         "x411.SubjectIntermediateTraceInformation", HFILL }},
9246     { &hf_x411_returned_content,
9247       { "returned-content", "x411.returned_content",
9248         FT_BYTES, BASE_NONE, NULL, 0,
9249         "x411.Content", HFILL }},
9250     { &hf_x411_additional_information,
9251       { "additional-information", "x411.additional_information",
9252         FT_NONE, BASE_NONE, NULL, 0,
9253         "x411.AdditionalInformation", HFILL }},
9254     { &hf_x411_mta_actual_recipient_name,
9255       { "actual-recipient-name", "x411.actual_recipient_name",
9256         FT_NONE, BASE_NONE, NULL, 0,
9257         "x411.MTAActualRecipientName", HFILL }},
9258     { &hf_x411_last_trace_information,
9259       { "last-trace-information", "x411.last_trace_information",
9260         FT_NONE, BASE_NONE, NULL, 0,
9261         "x411.LastTraceInformation", HFILL }},
9262     { &hf_x411_report_originally_intended_recipient_name,
9263       { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
9264         FT_NONE, BASE_NONE, NULL, 0,
9265         "x411.OriginallyIntendedRecipientName", HFILL }},
9266     { &hf_x411_supplementary_information,
9267       { "supplementary-information", "x411.supplementary_information",
9268         FT_STRING, BASE_NONE, NULL, 0,
9269         "x411.SupplementaryInformation", HFILL }},
9270     { &hf_x411_country_name,
9271       { "country-name", "x411.country_name",
9272         FT_UINT32, BASE_DEC, VALS(x411_CountryName_U_vals), 0,
9273         "x411.CountryName", HFILL }},
9274     { &hf_x411_bilateral_domain,
9275       { "domain", "x411.domain",
9276         FT_UINT32, BASE_DEC, VALS(x411_T_bilateral_domain_vals), 0,
9277         "x411.T_bilateral_domain", HFILL }},
9278     { &hf_x411_administration_domain_name,
9279       { "administration-domain-name", "x411.administration_domain_name",
9280         FT_UINT32, BASE_DEC, VALS(x411_AdministrationDomainName_U_vals), 0,
9281         "x411.AdministrationDomainName", HFILL }},
9282     { &hf_x411_private_domain,
9283       { "private-domain", "x411.private_domain",
9284         FT_NONE, BASE_NONE, NULL, 0,
9285         "x411.T_private_domain", HFILL }},
9286     { &hf_x411_private_domain_identifier,
9287       { "private-domain-identifier", "x411.private_domain_identifier",
9288         FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainIdentifier_vals), 0,
9289         "x411.PrivateDomainIdentifier", HFILL }},
9290     { &hf_x411_bilateral_information,
9291       { "bilateral-information", "x411.bilateral_information",
9292         FT_NONE, BASE_NONE, NULL, 0,
9293         "x411.T_bilateral_information", HFILL }},
9294     { &hf_x411_domain,
9295       { "domain", "x411.domain",
9296         FT_UINT32, BASE_DEC, VALS(x411_T_domain_vals), 0,
9297         "x411.T_domain", HFILL }},
9298     { &hf_x411_private_domain_01,
9299       { "private-domain", "x411.private_domain",
9300         FT_NONE, BASE_NONE, NULL, 0,
9301         "x411.T_private_domain_01", HFILL }},
9302     { &hf_x411_arrival_time,
9303       { "arrival-time", "x411.arrival_time",
9304         FT_STRING, BASE_NONE, NULL, 0,
9305         "x411.ArrivalTime", HFILL }},
9306     { &hf_x411_converted_encoded_information_types,
9307       { "converted-encoded-information-types", "x411.converted_encoded_information_types",
9308         FT_NONE, BASE_NONE, NULL, 0,
9309         "x411.ConvertedEncodedInformationTypes", HFILL }},
9310     { &hf_x411_trace_report_type,
9311       { "report-type", "x411.report_type",
9312         FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
9313         "x411.ReportType", HFILL }},
9314     { &hf_x411_InternalTraceInformation_item,
9315       { "InternalTraceInformationElement", "x411.InternalTraceInformationElement",
9316         FT_NONE, BASE_NONE, NULL, 0,
9317         "x411.InternalTraceInformationElement", HFILL }},
9318     { &hf_x411_global_domain_identifier,
9319       { "global-domain-identifier", "x411.global_domain_identifier",
9320         FT_NONE, BASE_NONE, NULL, 0,
9321         "x411.GlobalDomainIdentifier", HFILL }},
9322     { &hf_x411_mta_name,
9323       { "mta-name", "x411.mta_name",
9324         FT_STRING, BASE_NONE, NULL, 0,
9325         "x411.MTAName", HFILL }},
9326     { &hf_x411_mta_supplied_information,
9327       { "mta-supplied-information", "x411.mta_supplied_information",
9328         FT_NONE, BASE_NONE, NULL, 0,
9329         "x411.MTASuppliedInformation", HFILL }},
9330     { &hf_x411__untag_item,
9331       { "TraceInformationElement", "x411.TraceInformationElement",
9332         FT_NONE, BASE_NONE, NULL, 0,
9333         "x411.TraceInformationElement", HFILL }},
9334     { &hf_x411_domain_supplied_information,
9335       { "domain-supplied-information", "x411.domain_supplied_information",
9336         FT_NONE, BASE_NONE, NULL, 0,
9337         "x411.DomainSuppliedInformation", HFILL }},
9338     { &hf_x411_deferred_time,
9339       { "deferred-time", "x411.deferred_time",
9340         FT_STRING, BASE_NONE, NULL, 0,
9341         "x411.DeferredTime", HFILL }},
9342     { &hf_x411_other_actions,
9343       { "other-actions", "x411.other_actions",
9344         FT_BYTES, BASE_NONE, NULL, 0,
9345         "x411.OtherActions", HFILL }},
9346     { &hf_x411_initiator_name,
9347       { "initiator-name", "x411.initiator_name",
9348         FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
9349         "x411.ObjectName", HFILL }},
9350     { &hf_x411_messages_waiting,
9351       { "messages-waiting", "x411.messages_waiting",
9352         FT_NONE, BASE_NONE, NULL, 0,
9353         "x411.MessagesWaiting", HFILL }},
9354     { &hf_x411_responder_name,
9355       { "responder-name", "x411.responder_name",
9356         FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
9357         "x411.ObjectName", HFILL }},
9358     { &hf_x411_user_agent,
9359       { "user-agent", "x411.user_agent",
9360         FT_NONE, BASE_NONE, NULL, 0,
9361         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9362     { &hf_x411_mTA,
9363       { "mTA", "x411.mTA",
9364         FT_STRING, BASE_NONE, NULL, 0,
9365         "x411.MTAName", HFILL }},
9366     { &hf_x411_message_store,
9367       { "message-store", "x411.message_store",
9368         FT_NONE, BASE_NONE, NULL, 0,
9369         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9370     { &hf_x411_urgent,
9371       { "urgent", "x411.urgent",
9372         FT_NONE, BASE_NONE, NULL, 0,
9373         "x411.DeliveryQueue", HFILL }},
9374     { &hf_x411_normal,
9375       { "normal", "x411.normal",
9376         FT_NONE, BASE_NONE, NULL, 0,
9377         "x411.DeliveryQueue", HFILL }},
9378     { &hf_x411_non_urgent,
9379       { "non-urgent", "x411.non_urgent",
9380         FT_NONE, BASE_NONE, NULL, 0,
9381         "x411.DeliveryQueue", HFILL }},
9382     { &hf_x411_messages,
9383       { "messages", "x411.messages",
9384         FT_UINT32, BASE_DEC, NULL, 0,
9385         "x411.INTEGER_0_ub_queue_size", HFILL }},
9386     { &hf_x411_delivery_queue_octets,
9387       { "octets", "x411.octets",
9388         FT_UINT32, BASE_DEC, NULL, 0,
9389         "x411.INTEGER_0_ub_content_length", HFILL }},
9390     { &hf_x411_simple,
9391       { "simple", "x411.simple",
9392         FT_UINT32, BASE_DEC, VALS(x411_Password_vals), 0,
9393         "x411.Password", HFILL }},
9394     { &hf_x411_strong,
9395       { "strong", "x411.strong",
9396         FT_NONE, BASE_NONE, NULL, 0,
9397         "x411.StrongCredentials", HFILL }},
9398     { &hf_x411_protected,
9399       { "protected", "x411.protected",
9400         FT_NONE, BASE_NONE, NULL, 0,
9401         "x411.ProtectedPassword", HFILL }},
9402     { &hf_x411_ia5_string,
9403       { "ia5-string", "x411.ia5_string",
9404         FT_STRING, BASE_NONE, NULL, 0,
9405         "x411.IA5String_SIZE_0_ub_password_length", HFILL }},
9406     { &hf_x411_octet_string,
9407       { "octet-string", "x411.octet_string",
9408         FT_BYTES, BASE_NONE, NULL, 0,
9409         "x411.OCTET_STRING_SIZE_0_ub_password_length", HFILL }},
9410     { &hf_x411_bind_token,
9411       { "bind-token", "x411.bind_token",
9412         FT_NONE, BASE_NONE, NULL, 0,
9413         "x411.Token", HFILL }},
9414     { &hf_x411_certificate,
9415       { "certificate", "x411.certificate",
9416         FT_NONE, BASE_NONE, NULL, 0,
9417         "x509af.Certificates", HFILL }},
9418     { &hf_x411_certificate_selector,
9419       { "certificate-selector", "x411.certificate_selector",
9420         FT_NONE, BASE_NONE, NULL, 0,
9421         "x509ce.CertificateAssertion", HFILL }},
9422     { &hf_x411_signature,
9423       { "signature", "x411.signature",
9424         FT_NONE, BASE_NONE, NULL, 0,
9425         "x411.Signature", HFILL }},
9426     { &hf_x411_time1,
9427       { "time1", "x411.time1",
9428         FT_STRING, BASE_NONE, NULL, 0,
9429         "x411.UTCTime", HFILL }},
9430     { &hf_x411_time2,
9431       { "time2", "x411.time2",
9432         FT_STRING, BASE_NONE, NULL, 0,
9433         "x411.UTCTime", HFILL }},
9434     { &hf_x411_random1,
9435       { "random1", "x411.random1",
9436         FT_BYTES, BASE_NONE, NULL, 0,
9437         "x411.BIT_STRING", HFILL }},
9438     { &hf_x411_random2,
9439       { "random2", "x411.random2",
9440         FT_BYTES, BASE_NONE, NULL, 0,
9441         "x411.BIT_STRING", HFILL }},
9442     { &hf_x411_algorithmIdentifier,
9443       { "algorithmIdentifier", "x411.algorithmIdentifier",
9444         FT_NONE, BASE_NONE, NULL, 0,
9445         "x509af.AlgorithmIdentifier", HFILL }},
9446     { &hf_x411_encrypted,
9447       { "encrypted", "x411.encrypted",
9448         FT_BYTES, BASE_NONE, NULL, 0,
9449         "x411.BIT_STRING", HFILL }},
9450     { &hf_x411_SecurityContext_item,
9451       { "SecurityLabel", "x411.SecurityLabel",
9452         FT_NONE, BASE_NONE, NULL, 0,
9453         "x411.SecurityLabel", HFILL }},
9454     { &hf_x411_message_submission_envelope,
9455       { "envelope", "x411.envelope",
9456         FT_NONE, BASE_NONE, NULL, 0,
9457         "x411.MessageSubmissionEnvelope", HFILL }},
9458     { &hf_x411_message_submission_identifier,
9459       { "message-submission-identifier", "x411.message_submission_identifier",
9460         FT_NONE, BASE_NONE, NULL, 0,
9461         "x411.MessageSubmissionIdentifier", HFILL }},
9462     { &hf_x411_message_submission_time,
9463       { "message-submission-time", "x411.message_submission_time",
9464         FT_STRING, BASE_NONE, NULL, 0,
9465         "x411.MessageSubmissionTime", HFILL }},
9466     { &hf_x411_probe_submission_identifier,
9467       { "probe-submission-identifier", "x411.probe_submission_identifier",
9468         FT_NONE, BASE_NONE, NULL, 0,
9469         "x411.ProbeSubmissionIdentifier", HFILL }},
9470     { &hf_x411_probe_submission_time,
9471       { "probe-submission-time", "x411.probe_submission_time",
9472         FT_STRING, BASE_NONE, NULL, 0,
9473         "x411.ProbeSubmissionTime", HFILL }},
9474     { &hf_x411_ImproperlySpecifiedRecipients_item,
9475       { "RecipientName", "x411.RecipientName",
9476         FT_NONE, BASE_NONE, NULL, 0,
9477         "x411.RecipientName", HFILL }},
9478     { &hf_x411_waiting_operations,
9479       { "waiting-operations", "x411.waiting_operations",
9480         FT_BYTES, BASE_NONE, NULL, 0,
9481         "x411.Operations", HFILL }},
9482     { &hf_x411_waiting_messages,
9483       { "waiting-messages", "x411.waiting_messages",
9484         FT_BYTES, BASE_NONE, NULL, 0,
9485         "x411.WaitingMessages", HFILL }},
9486     { &hf_x411_waiting_content_types,
9487       { "waiting-content-types", "x411.waiting_content_types",
9488         FT_UINT32, BASE_DEC, NULL, 0,
9489         "x411.SET_SIZE_0_ub_content_types_OF_ContentType", HFILL }},
9490     { &hf_x411_waiting_content_types_item,
9491       { "ContentType", "x411.ContentType",
9492         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
9493         "x411.ContentType", HFILL }},
9494     { &hf_x411_waiting_encoded_information_types,
9495       { "waiting-encoded-information-types", "x411.waiting_encoded_information_types",
9496         FT_NONE, BASE_NONE, NULL, 0,
9497         "x411.EncodedInformationTypes", HFILL }},
9498     { &hf_x411_recipient_certificate,
9499       { "recipient-certificate", "x411.recipient_certificate",
9500         FT_NONE, BASE_NONE, NULL, 0,
9501         "x411.RecipientCertificate", HFILL }},
9502     { &hf_x411_proof_of_delivery,
9503       { "proof-of-delivery", "x411.proof_of_delivery",
9504         FT_NONE, BASE_NONE, NULL, 0,
9505         "x411.ProofOfDelivery", HFILL }},
9506     { &hf_x411_empty_result,
9507       { "empty-result", "x411.empty_result",
9508         FT_NONE, BASE_NONE, NULL, 0,
9509         "x411.NULL", HFILL }},
9510     { &hf_x411_max_extensions,
9511       { "extensions", "x411.extensions",
9512         FT_UINT32, BASE_DEC, NULL, 0,
9513         "x411.SET_SIZE_1_MAX_OF_ExtensionField", HFILL }},
9514     { &hf_x411_max_extensions_item,
9515       { "ExtensionField", "x411.ExtensionField",
9516         FT_NONE, BASE_NONE, NULL, 0,
9517         "x411.ExtensionField", HFILL }},
9518     { &hf_x411_restrict,
9519       { "restrict", "x411.restrict",
9520         FT_BOOLEAN, BASE_NONE, NULL, 0,
9521         "x411.BOOLEAN", HFILL }},
9522     { &hf_x411_permissible_operations,
9523       { "permissible-operations", "x411.permissible_operations",
9524         FT_BYTES, BASE_NONE, NULL, 0,
9525         "x411.Operations", HFILL }},
9526     { &hf_x411_permissible_maximum_content_length,
9527       { "permissible-maximum-content-length", "x411.permissible_maximum_content_length",
9528         FT_UINT32, BASE_DEC, NULL, 0,
9529         "x411.ContentLength", HFILL }},
9530     { &hf_x411_permissible_lowest_priority,
9531       { "permissible-lowest-priority", "x411.permissible_lowest_priority",
9532         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9533         "x411.Priority", HFILL }},
9534     { &hf_x411_permissible_content_types,
9535       { "permissible-content-types", "x411.permissible_content_types",
9536         FT_UINT32, BASE_DEC, NULL, 0,
9537         "x411.ContentTypes", HFILL }},
9538     { &hf_x411_permissible_encoded_information_types,
9539       { "permissible-encoded-information-types", "x411.permissible_encoded_information_types",
9540         FT_NONE, BASE_NONE, NULL, 0,
9541         "x411.PermissibleEncodedInformationTypes", HFILL }},
9542     { &hf_x411_permissible_security_context,
9543       { "permissible-security-context", "x411.permissible_security_context",
9544         FT_UINT32, BASE_DEC, NULL, 0,
9545         "x411.SecurityContext", HFILL }},
9546     { &hf_x411_refused_argument,
9547       { "refused-argument", "x411.refused_argument",
9548         FT_UINT32, BASE_DEC, VALS(x411_T_refused_argument_vals), 0,
9549         "x411.T_refused_argument", HFILL }},
9550     { &hf_x411_built_in_argument,
9551       { "built-in-argument", "x411.built_in_argument",
9552         FT_UINT32, BASE_DEC, VALS(x411_RefusedArgument_vals), 0,
9553         "x411.RefusedArgument", HFILL }},
9554     { &hf_x411_refused_extension,
9555       { "refused-extension", "x411.refused_extension",
9556         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
9557         "x411.T_refused_extension", HFILL }},
9558     { &hf_x411_refusal_reason,
9559       { "refusal-reason", "x411.refusal_reason",
9560         FT_UINT32, BASE_DEC, VALS(x411_RefusalReason_vals), 0,
9561         "x411.RefusalReason", HFILL }},
9562     { &hf_x411_user_name,
9563       { "user-name", "x411.user_name",
9564         FT_NONE, BASE_NONE, NULL, 0,
9565         "x411.UserName", HFILL }},
9566     { &hf_x411_user_address,
9567       { "user-address", "x411.user_address",
9568         FT_UINT32, BASE_DEC, VALS(x411_UserAddress_vals), 0,
9569         "x411.UserAddress", HFILL }},
9570     { &hf_x411_deliverable_class,
9571       { "deliverable-class", "x411.deliverable_class",
9572         FT_UINT32, BASE_DEC, NULL, 0,
9573         "x411.SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass", HFILL }},
9574     { &hf_x411_deliverable_class_item,
9575       { "DeliverableClass", "x411.DeliverableClass",
9576         FT_NONE, BASE_NONE, NULL, 0,
9577         "x411.DeliverableClass", HFILL }},
9578     { &hf_x411_default_delivery_controls,
9579       { "default-delivery-controls", "x411.default_delivery_controls",
9580         FT_NONE, BASE_NONE, NULL, 0,
9581         "x411.DefaultDeliveryControls", HFILL }},
9582     { &hf_x411_redirections,
9583       { "redirections", "x411.redirections",
9584         FT_UINT32, BASE_DEC, NULL, 0,
9585         "x411.Redirections", HFILL }},
9586     { &hf_x411_restricted_delivery,
9587       { "restricted-delivery", "x411.restricted_delivery",
9588         FT_UINT32, BASE_DEC, NULL, 0,
9589         "x411.RestrictedDelivery", HFILL }},
9590     { &hf_x411_retrieve_registrations,
9591       { "retrieve-registrations", "x411.retrieve_registrations",
9592         FT_NONE, BASE_NONE, NULL, 0,
9593         "x411.RegistrationTypes", HFILL }},
9594     { &hf_x411_non_empty_result,
9595       { "non-empty-result", "x411.non_empty_result",
9596         FT_NONE, BASE_NONE, NULL, 0,
9597         "x411.T_non_empty_result", HFILL }},
9598     { &hf_x411_registered_information,
9599       { "registered-information", "x411.registered_information",
9600         FT_NONE, BASE_NONE, NULL, 0,
9601         "x411.RegisterArgument", HFILL }},
9602     { &hf_x411_old_credentials,
9603       { "old-credentials", "x411.old_credentials",
9604         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9605         "x411.Credentials", HFILL }},
9606     { &hf_x411_new_credentials,
9607       { "new-credentials", "x411.new_credentials",
9608         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9609         "x411.Credentials", HFILL }},
9610     { &hf_x411_x121,
9611       { "x121", "x411.x121",
9612         FT_NONE, BASE_NONE, NULL, 0,
9613         "x411.T_x121", HFILL }},
9614     { &hf_x411_x121_address,
9615       { "x121-address", "x411.x121_address",
9616         FT_STRING, BASE_NONE, NULL, 0,
9617         "x411.AddrNumericString", HFILL }},
9618     { &hf_x411_tsap_id,
9619       { "tsap-id", "x411.tsap_id",
9620         FT_STRING, BASE_NONE, NULL, 0,
9621         "x411.PrintableString_SIZE_1_ub_tsap_id_length", HFILL }},
9622     { &hf_x411_presentation,
9623       { "presentation", "x411.presentation",
9624         FT_NONE, BASE_NONE, NULL, 0,
9625         "x411.PSAPAddress", HFILL }},
9626     { &hf_x411_Redirections_item,
9627       { "RecipientRedirection", "x411.RecipientRedirection",
9628         FT_NONE, BASE_NONE, NULL, 0,
9629         "x411.RecipientRedirection", HFILL }},
9630     { &hf_x411_redirection_classes,
9631       { "redirection-classes", "x411.redirection_classes",
9632         FT_UINT32, BASE_DEC, NULL, 0,
9633         "x411.SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass", HFILL }},
9634     { &hf_x411_redirection_classes_item,
9635       { "RedirectionClass", "x411.RedirectionClass",
9636         FT_NONE, BASE_NONE, NULL, 0,
9637         "x411.RedirectionClass", HFILL }},
9638     { &hf_x411_recipient_assigned_alternate_recipient,
9639       { "recipient-assigned-alternate-recipient", "x411.recipient_assigned_alternate_recipient",
9640         FT_NONE, BASE_NONE, NULL, 0,
9641         "x411.RecipientAssignedAlternateRecipient", HFILL }},
9642     { &hf_x411_content_types,
9643       { "content-types", "x411.content_types",
9644         FT_UINT32, BASE_DEC, NULL, 0,
9645         "x411.ContentTypes", HFILL }},
9646     { &hf_x411_maximum_content_length,
9647       { "maximum-content-length", "x411.maximum_content_length",
9648         FT_UINT32, BASE_DEC, NULL, 0,
9649         "x411.ContentLength", HFILL }},
9650     { &hf_x411_encoded_information_types_constraints,
9651       { "encoded-information-types-constraints", "x411.encoded_information_types_constraints",
9652         FT_NONE, BASE_NONE, NULL, 0,
9653         "x411.EncodedInformationTypesConstraints", HFILL }},
9654     { &hf_x411_security_labels,
9655       { "security-labels", "x411.security_labels",
9656         FT_UINT32, BASE_DEC, NULL, 0,
9657         "x411.SecurityContext", HFILL }},
9658     { &hf_x411_class_priority,
9659       { "priority", "x411.priority",
9660         FT_UINT32, BASE_DEC, NULL, 0,
9661         "x411.SET_OF_Priority", HFILL }},
9662     { &hf_x411_class_priority_item,
9663       { "Priority", "x411.Priority",
9664         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9665         "x411.Priority", HFILL }},
9666     { &hf_x411_objects,
9667       { "objects", "x411.objects",
9668         FT_UINT32, BASE_DEC, VALS(x411_T_objects_vals), 0,
9669         "x411.T_objects", HFILL }},
9670     { &hf_x411_applies_only_to,
9671       { "applies-only-to", "x411.applies_only_to",
9672         FT_UINT32, BASE_DEC, NULL, 0,
9673         "x411.SEQUENCE_OF_Restriction", HFILL }},
9674     { &hf_x411_applies_only_to_item,
9675       { "Restriction", "x411.Restriction",
9676         FT_NONE, BASE_NONE, NULL, 0,
9677         "x411.Restriction", HFILL }},
9678     { &hf_x411_unacceptable_eits,
9679       { "unacceptable-eits", "x411.unacceptable_eits",
9680         FT_UINT32, BASE_DEC, NULL, 0,
9681         "x411.ExtendedEncodedInformationTypes", HFILL }},
9682     { &hf_x411_acceptable_eits,
9683       { "acceptable-eits", "x411.acceptable_eits",
9684         FT_UINT32, BASE_DEC, NULL, 0,
9685         "x411.ExtendedEncodedInformationTypes", HFILL }},
9686     { &hf_x411_exclusively_acceptable_eits,
9687       { "exclusively-acceptable-eits", "x411.exclusively_acceptable_eits",
9688         FT_UINT32, BASE_DEC, NULL, 0,
9689         "x411.ExtendedEncodedInformationTypes", HFILL }},
9690     { &hf_x411_RestrictedDelivery_item,
9691       { "Restriction", "x411.Restriction",
9692         FT_NONE, BASE_NONE, NULL, 0,
9693         "x411.Restriction", HFILL }},
9694     { &hf_x411_permitted,
9695       { "permitted", "x411.permitted",
9696         FT_BOOLEAN, BASE_NONE, NULL, 0,
9697         "x411.BOOLEAN", HFILL }},
9698     { &hf_x411_source_type,
9699       { "source-type", "x411.source_type",
9700         FT_BYTES, BASE_NONE, NULL, 0,
9701         "x411.T_source_type", HFILL }},
9702     { &hf_x411_source_name,
9703       { "source-name", "x411.source_name",
9704         FT_UINT32, BASE_DEC, VALS(x411_ExactOrPattern_vals), 0,
9705         "x411.ExactOrPattern", HFILL }},
9706     { &hf_x411_exact_match,
9707       { "exact-match", "x411.exact_match",
9708         FT_NONE, BASE_NONE, NULL, 0,
9709         "x411.ORName", HFILL }},
9710     { &hf_x411_pattern_match,
9711       { "pattern-match", "x411.pattern_match",
9712         FT_NONE, BASE_NONE, NULL, 0,
9713         "x411.ORName", HFILL }},
9714     { &hf_x411_standard_parameters,
9715       { "standard-parameters", "x411.standard_parameters",
9716         FT_BYTES, BASE_NONE, NULL, 0,
9717         "x411.T_standard_parameters", HFILL }},
9718     { &hf_x411_type_extensions,
9719       { "extensions", "x411.extensions",
9720         FT_UINT32, BASE_DEC, NULL, 0,
9721         "x411.T_type_extensions", HFILL }},
9722     { &hf_x411_type_extensions_item,
9723       { "extensions item", "x411.extensions_item",
9724         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
9725         "x411.T_type_extensions_item", HFILL }},
9726     { &hf_x411_originator_name_01,
9727       { "originator-name", "x411.originator_name",
9728         FT_NONE, BASE_NONE, NULL, 0,
9729         "x411.OriginatorName", HFILL }},
9730     { &hf_x411_submission_recipient_name,
9731       { "recipient-name", "x411.recipient_name",
9732         FT_NONE, BASE_NONE, NULL, 0,
9733         "x411.RecipientName", HFILL }},
9734     { &hf_x411_originator_report_request,
9735       { "originator-report-request", "x411.originator_report_request",
9736         FT_BYTES, BASE_NONE, NULL, 0,
9737         "x411.OriginatorReportRequest", HFILL }},
9738     { &hf_x411_probe_recipient_name,
9739       { "recipient-name", "x411.recipient_name",
9740         FT_NONE, BASE_NONE, NULL, 0,
9741         "x411.RecipientName", HFILL }},
9742     { &hf_x411_message_delivery_identifier,
9743       { "message-delivery-identifier", "x411.message_delivery_identifier",
9744         FT_NONE, BASE_NONE, NULL, 0,
9745         "x411.MessageDeliveryIdentifier", HFILL }},
9746     { &hf_x411_message_delivery_time,
9747       { "message-delivery-time", "x411.message_delivery_time",
9748         FT_STRING, BASE_NONE, NULL, 0,
9749         "x411.MessageDeliveryTime", HFILL }},
9750     { &hf_x411_other_fields,
9751       { "other-fields", "x411.other_fields",
9752         FT_NONE, BASE_NONE, NULL, 0,
9753         "x411.OtherMessageDeliveryFields", HFILL }},
9754     { &hf_x411_delivered_content_type,
9755       { "content-type", "x411.content_type",
9756         FT_UINT32, BASE_DEC, VALS(x411_DeliveredContentType_vals), 0,
9757         "x411.DeliveredContentType", HFILL }},
9758     { &hf_x411_delivered_originator_name,
9759       { "originator-name", "x411.originator_name",
9760         FT_NONE, BASE_NONE, NULL, 0,
9761         "x411.DeliveredOriginatorName", HFILL }},
9762     { &hf_x411_delivery_flags,
9763       { "delivery-flags", "x411.delivery_flags",
9764         FT_BYTES, BASE_NONE, NULL, 0,
9765         "x411.DeliveryFlags", HFILL }},
9766     { &hf_x411_other_recipient_names,
9767       { "other-recipient-names", "x411.other_recipient_names",
9768         FT_UINT32, BASE_DEC, NULL, 0,
9769         "x411.OtherRecipientNames", HFILL }},
9770     { &hf_x411_this_recipient_name,
9771       { "this-recipient-name", "x411.this_recipient_name",
9772         FT_NONE, BASE_NONE, NULL, 0,
9773         "x411.ThisRecipientName", HFILL }},
9774     { &hf_x411_originally_intended_recipient_name,
9775       { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
9776         FT_NONE, BASE_NONE, NULL, 0,
9777         "x411.OriginallyIntendedRecipientName", HFILL }},
9778     { &hf_x411_subject_submission_identifier,
9779       { "subject-submission-identifier", "x411.subject_submission_identifier",
9780         FT_NONE, BASE_NONE, NULL, 0,
9781         "x411.SubjectSubmissionIdentifier", HFILL }},
9782     { &hf_x411_actual_recipient_name,
9783       { "actual-recipient-name", "x411.actual_recipient_name",
9784         FT_NONE, BASE_NONE, NULL, 0,
9785         "x411.ActualRecipientName", HFILL }},
9786     { &hf_x411_delivery_report_type,
9787       { "report-type", "x411.report_type",
9788         FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
9789         "x411.ReportType", HFILL }},
9790     { &hf_x411_delivery,
9791       { "delivery", "x411.delivery",
9792         FT_NONE, BASE_NONE, NULL, 0,
9793         "x411.DeliveryReport", HFILL }},
9794     { &hf_x411_non_delivery,
9795       { "non-delivery", "x411.non_delivery",
9796         FT_NONE, BASE_NONE, NULL, 0,
9797         "x411.NonDeliveryReport", HFILL }},
9798     { &hf_x411_type_of_MTS_user,
9799       { "type-of-MTS-user", "x411.type_of_MTS_user",
9800         FT_UINT32, BASE_DEC, VALS(x411_TypeOfMTSUser_vals), 0,
9801         "x411.TypeOfMTSUser", HFILL }},
9802     { &hf_x411_non_delivery_reason_code,
9803       { "non-delivery-reason-code", "x411.non_delivery_reason_code",
9804         FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryReasonCode_vals), 0,
9805         "x411.NonDeliveryReasonCode", HFILL }},
9806     { &hf_x411_non_delivery_diagnostic_code,
9807       { "non-delivery-diagnostic-code", "x411.non_delivery_diagnostic_code",
9808         FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryDiagnosticCode_vals), 0,
9809         "x411.NonDeliveryDiagnosticCode", HFILL }},
9810     { &hf_x411_ContentTypes_item,
9811       { "ContentType", "x411.ContentType",
9812         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
9813         "x411.ContentType", HFILL }},
9814     { &hf_x411_built_in,
9815       { "built-in", "x411.built_in",
9816         FT_UINT32, BASE_DEC, VALS(x411_BuiltInContentType_U_vals), 0,
9817         "x411.BuiltInContentType", HFILL }},
9818     { &hf_x411_extended,
9819       { "extended", "x411.extended",
9820         FT_OID, BASE_NONE, NULL, 0,
9821         "x411.ExtendedContentType", HFILL }},
9822     { &hf_x411_OtherRecipientNames_item,
9823       { "OtherRecipientName", "x411.OtherRecipientName",
9824         FT_NONE, BASE_NONE, NULL, 0,
9825         "x411.OtherRecipientName", HFILL }},
9826     { &hf_x411_standard_extension,
9827       { "standard-extension", "x411.standard_extension",
9828         FT_INT32, BASE_DEC, VALS(x411_StandardExtension_vals), 0,
9829         "x411.StandardExtension", HFILL }},
9830     { &hf_x411_private_extension,
9831       { "private-extension", "x411.private_extension",
9832         FT_OID, BASE_NONE, NULL, 0,
9833         "x411.T_private_extension", HFILL }},
9834     { &hf_x411_extension_type,
9835       { "type", "x411.type",
9836         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
9837         "x411.ExtensionType", HFILL }},
9838     { &hf_x411_criticality,
9839       { "criticality", "x411.criticality",
9840         FT_BYTES, BASE_NONE, NULL, 0,
9841         "x411.Criticality", HFILL }},
9842     { &hf_x411_extension_value,
9843       { "value", "x411.value",
9844         FT_NONE, BASE_NONE, NULL, 0,
9845         "x411.ExtensionValue", HFILL }},
9846     { &hf_x411_RequestedDeliveryMethod_item,
9847       { "RequestedDeliveryMethod item", "x411.RequestedDeliveryMethod_item",
9848         FT_UINT32, BASE_DEC, VALS(x411_RequestedDeliveryMethod_item_vals), 0,
9849         "x411.RequestedDeliveryMethod_item", HFILL }},
9850     { &hf_x411_ia5text,
9851       { "ia5text", "x411.ia5text",
9852         FT_STRING, BASE_NONE, NULL, 0,
9853         "x411.IA5String", HFILL }},
9854     { &hf_x411_octets,
9855       { "octets", "x411.octets",
9856         FT_BYTES, BASE_NONE, NULL, 0,
9857         "x411.OCTET_STRING", HFILL }},
9858     { &hf_x411_RedirectionHistory_item,
9859       { "Redirection", "x411.Redirection",
9860         FT_NONE, BASE_NONE, NULL, 0,
9861         "x411.Redirection", HFILL }},
9862     { &hf_x411_intended_recipient_name,
9863       { "intended-recipient-name", "x411.intended_recipient_name",
9864         FT_NONE, BASE_NONE, NULL, 0,
9865         "x411.IntendedRecipientName", HFILL }},
9866     { &hf_x411_redirection_reason,
9867       { "redirection-reason", "x411.redirection_reason",
9868         FT_UINT32, BASE_DEC, VALS(x411_RedirectionReason_vals), 0,
9869         "x411.RedirectionReason", HFILL }},
9870     { &hf_x411_intended_recipient,
9871       { "intended-recipient", "x411.intended_recipient",
9872         FT_NONE, BASE_NONE, NULL, 0,
9873         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9874     { &hf_x411_redirection_time,
9875       { "redirection-time", "x411.redirection_time",
9876         FT_STRING, BASE_NONE, NULL, 0,
9877         "x411.Time", HFILL }},
9878     { &hf_x411_DLExpansionHistory_item,
9879       { "DLExpansion", "x411.DLExpansion",
9880         FT_NONE, BASE_NONE, NULL, 0,
9881         "x411.DLExpansion", HFILL }},
9882     { &hf_x411_dl,
9883       { "dl", "x411.dl",
9884         FT_NONE, BASE_NONE, NULL, 0,
9885         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9886     { &hf_x411_dl_expansion_time,
9887       { "dl-expansion-time", "x411.dl_expansion_time",
9888         FT_STRING, BASE_NONE, NULL, 0,
9889         "x411.Time", HFILL }},
9890     { &hf_x411_OriginatorAndDLExpansionHistory_item,
9891       { "OriginatorAndDLExpansion", "x411.OriginatorAndDLExpansion",
9892         FT_NONE, BASE_NONE, NULL, 0,
9893         "x411.OriginatorAndDLExpansion", HFILL }},
9894     { &hf_x411_originator_or_dl_name,
9895       { "originator-or-dl-name", "x411.originator_or_dl_name",
9896         FT_NONE, BASE_NONE, NULL, 0,
9897         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9898     { &hf_x411_origination_or_expansion_time,
9899       { "origination-or-expansion-time", "x411.origination_or_expansion_time",
9900         FT_STRING, BASE_NONE, NULL, 0,
9901         "x411.Time", HFILL }},
9902     { &hf_x411_report_type,
9903       { "report-type", "x411.report_type",
9904         FT_UINT32, BASE_DEC, VALS(x411_T_report_type_vals), 0,
9905         "x411.T_report_type", HFILL }},
9906     { &hf_x411_report_type_delivery,
9907       { "delivery", "x411.delivery",
9908         FT_NONE, BASE_NONE, NULL, 0,
9909         "x411.PerRecipientDeliveryReportFields", HFILL }},
9910     { &hf_x411_non_delivery_report,
9911       { "non-delivery", "x411.non_delivery",
9912         FT_NONE, BASE_NONE, NULL, 0,
9913         "x411.PerRecipientNonDeliveryReportFields", HFILL }},
9914     { &hf_x411_domain_01,
9915       { "domain", "x411.domain",
9916         FT_NONE, BASE_NONE, NULL, 0,
9917         "x411.GlobalDomainIdentifier", HFILL }},
9918     { &hf_x411_mta_directory_name,
9919       { "mta-directory-name", "x411.mta_directory_name",
9920         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9921         "x509if.Name", HFILL }},
9922     { &hf_x411_ExtendedCertificates_item,
9923       { "ExtendedCertificate", "x411.ExtendedCertificate",
9924         FT_UINT32, BASE_DEC, VALS(x411_ExtendedCertificate_vals), 0,
9925         "x411.ExtendedCertificate", HFILL }},
9926     { &hf_x411_directory_entry,
9927       { "directory-entry", "x411.directory_entry",
9928         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9929         "x509if.Name", HFILL }},
9930     { &hf_x411_DLExemptedRecipients_item,
9931       { "ORAddressAndOrDirectoryName", "x411.ORAddressAndOrDirectoryName",
9932         FT_NONE, BASE_NONE, NULL, 0,
9933         "x411.ORAddressAndOrDirectoryName", HFILL }},
9934     { &hf_x411_encryption_recipient,
9935       { "encryption-recipient", "x411.encryption_recipient",
9936         FT_NONE, BASE_NONE, NULL, 0,
9937         "x509ce.CertificateAssertion", HFILL }},
9938     { &hf_x411_encryption_originator,
9939       { "encryption-originator", "x411.encryption_originator",
9940         FT_NONE, BASE_NONE, NULL, 0,
9941         "x509ce.CertificateAssertion", HFILL }},
9942     { &hf_x411_selectors_content_integrity_check,
9943       { "content-integrity-check", "x411.content_integrity_check",
9944         FT_NONE, BASE_NONE, NULL, 0,
9945         "x509ce.CertificateAssertion", HFILL }},
9946     { &hf_x411_token_signature,
9947       { "token-signature", "x411.token_signature",
9948         FT_NONE, BASE_NONE, NULL, 0,
9949         "x509ce.CertificateAssertion", HFILL }},
9950     { &hf_x411_message_origin_authentication,
9951       { "message-origin-authentication", "x411.message_origin_authentication",
9952         FT_NONE, BASE_NONE, NULL, 0,
9953         "x509ce.CertificateAssertion", HFILL }},
9954     { &hf_x411_local_identifier,
9955       { "local-identifier", "x411.local_identifier",
9956         FT_STRING, BASE_NONE, NULL, 0,
9957         "x411.LocalIdentifier", HFILL }},
9958     { &hf_x411_numeric_private_domain_identifier,
9959       { "numeric", "x411.numeric",
9960         FT_STRING, BASE_NONE, NULL, 0,
9961         "x411.AddrNumericString", HFILL }},
9962     { &hf_x411_printable_private_domain_identifier,
9963       { "printable", "x411.printable",
9964         FT_STRING, BASE_NONE, NULL, 0,
9965         "x411.AddrPrintableString", HFILL }},
9966     { &hf_x411_built_in_standard_attributes,
9967       { "built-in-standard-attributes", "x411.built_in_standard_attributes",
9968         FT_NONE, BASE_NONE, NULL, 0,
9969         "x411.BuiltInStandardAttributes", HFILL }},
9970     { &hf_x411_built_in_domain_defined_attributes,
9971       { "built-in-domain-defined-attributes", "x411.built_in_domain_defined_attributes",
9972         FT_UINT32, BASE_DEC, NULL, 0,
9973         "x411.BuiltInDomainDefinedAttributes", HFILL }},
9974     { &hf_x411_extension_attributes,
9975       { "extension-attributes", "x411.extension_attributes",
9976         FT_UINT32, BASE_DEC, NULL, 0,
9977         "x411.ExtensionAttributes", HFILL }},
9978     { &hf_x411_network_address,
9979       { "network-address", "x411.network_address",
9980         FT_STRING, BASE_NONE, NULL, 0,
9981         "x411.NetworkAddress", HFILL }},
9982     { &hf_x411_terminal_identifier,
9983       { "terminal-identifier", "x411.terminal_identifier",
9984         FT_STRING, BASE_NONE, NULL, 0,
9985         "x411.TerminalIdentifier", HFILL }},
9986     { &hf_x411_private_domain_name,
9987       { "private-domain-name", "x411.private_domain_name",
9988         FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainName_vals), 0,
9989         "x411.PrivateDomainName", HFILL }},
9990     { &hf_x411_organization_name,
9991       { "organization-name", "x411.organization_name",
9992         FT_STRING, BASE_NONE, NULL, 0,
9993         "x411.OrganizationName", HFILL }},
9994     { &hf_x411_numeric_user_identifier,
9995       { "numeric-user-identifier", "x411.numeric_user_identifier",
9996         FT_STRING, BASE_NONE, NULL, 0,
9997         "x411.NumericUserIdentifier", HFILL }},
9998     { &hf_x411_personal_name,
9999       { "personal-name", "x411.personal_name",
10000         FT_NONE, BASE_NONE, NULL, 0,
10001         "x411.PersonalName", HFILL }},
10002     { &hf_x411_organizational_unit_names,
10003       { "organizational-unit-names", "x411.organizational_unit_names",
10004         FT_UINT32, BASE_DEC, NULL, 0,
10005         "x411.OrganizationalUnitNames", HFILL }},
10006     { &hf_x411_x121_dcc_code,
10007       { "x121-dcc-code", "x411.x121_dcc_code",
10008         FT_STRING, BASE_NONE, NULL, 0,
10009         "x411.AddrNumericString", HFILL }},
10010     { &hf_x411_iso_3166_alpha2_code,
10011       { "iso-3166-alpha2-code", "x411.iso_3166_alpha2_code",
10012         FT_STRING, BASE_NONE, NULL, 0,
10013         "x411.AddrPrintableString", HFILL }},
10014     { &hf_x411_numeric,
10015       { "numeric", "x411.numeric",
10016         FT_STRING, BASE_NONE, NULL, 0,
10017         "x411.AddrNumericString", HFILL }},
10018     { &hf_x411_printable,
10019       { "printable", "x411.printable",
10020         FT_STRING, BASE_NONE, NULL, 0,
10021         "x411.AddrPrintableString", HFILL }},
10022     { &hf_x411_numeric_private_domain_name,
10023       { "numeric", "x411.numeric",
10024         FT_STRING, BASE_NONE, NULL, 0,
10025         "x411.AddrNumericString", HFILL }},
10026     { &hf_x411_printable_private_domain_name,
10027       { "printable", "x411.printable",
10028         FT_STRING, BASE_NONE, NULL, 0,
10029         "x411.AddrPrintableString", HFILL }},
10030     { &hf_x411_printable_surname,
10031       { "surname", "x411.surname",
10032         FT_STRING, BASE_NONE, NULL, 0,
10033         "x411.T_printable_surname", HFILL }},
10034     { &hf_x411_printable_given_name,
10035       { "given-name", "x411.given_name",
10036         FT_STRING, BASE_NONE, NULL, 0,
10037         "x411.T_printable_given_name", HFILL }},
10038     { &hf_x411_printable_initials,
10039       { "initials", "x411.initials",
10040         FT_STRING, BASE_NONE, NULL, 0,
10041         "x411.T_printable_initials", HFILL }},
10042     { &hf_x411_printable_generation_qualifier,
10043       { "generation-qualifier", "x411.generation_qualifier",
10044         FT_STRING, BASE_NONE, NULL, 0,
10045         "x411.T_printable_generation_qualifier", HFILL }},
10046     { &hf_x411_OrganizationalUnitNames_item,
10047       { "OrganizationalUnitName", "x411.OrganizationalUnitName",
10048         FT_STRING, BASE_NONE, NULL, 0,
10049         "x411.OrganizationalUnitName", HFILL }},
10050     { &hf_x411_BuiltInDomainDefinedAttributes_item,
10051       { "BuiltInDomainDefinedAttribute", "x411.BuiltInDomainDefinedAttribute",
10052         FT_NONE, BASE_NONE, NULL, 0,
10053         "x411.BuiltInDomainDefinedAttribute", HFILL }},
10054     { &hf_x411_printable_type,
10055       { "type", "x411.type",
10056         FT_STRING, BASE_NONE, NULL, 0,
10057         "x411.T_printable_type", HFILL }},
10058     { &hf_x411_printable_value,
10059       { "value", "x411.value",
10060         FT_STRING, BASE_NONE, NULL, 0,
10061         "x411.T_printable_value", HFILL }},
10062     { &hf_x411_ExtensionAttributes_item,
10063       { "ExtensionAttribute", "x411.ExtensionAttribute",
10064         FT_NONE, BASE_NONE, NULL, 0,
10065         "x411.ExtensionAttribute", HFILL }},
10066     { &hf_x411_extension_attribute_type,
10067       { "extension-attribute-type", "x411.extension_attribute_type",
10068         FT_INT32, BASE_DEC, VALS(x411_ExtensionAttributeType_vals), 0,
10069         "x411.ExtensionAttributeType", HFILL }},
10070     { &hf_x411_extension_attribute_value,
10071       { "extension-attribute-value", "x411.extension_attribute_value",
10072         FT_NONE, BASE_NONE, NULL, 0,
10073         "x411.T_extension_attribute_value", HFILL }},
10074     { &hf_x411_teletex_surname,
10075       { "surname", "x411.surname",
10076         FT_STRING, BASE_NONE, NULL, 0,
10077         "x411.AddrTeletexString", HFILL }},
10078     { &hf_x411_teletex_given_name,
10079       { "given-name", "x411.given_name",
10080         FT_STRING, BASE_NONE, NULL, 0,
10081         "x411.AddrTeletexString", HFILL }},
10082     { &hf_x411_teletex_initials,
10083       { "initials", "x411.initials",
10084         FT_STRING, BASE_NONE, NULL, 0,
10085         "x411.AddrTeletexString", HFILL }},
10086     { &hf_x411_teletex_generation_qualifier,
10087       { "generation-qualifier", "x411.generation_qualifier",
10088         FT_STRING, BASE_NONE, NULL, 0,
10089         "x411.AddrTeletexString", HFILL }},
10090     { &hf_x411_universal_surname,
10091       { "surname", "x411.surname",
10092         FT_NONE, BASE_NONE, NULL, 0,
10093         "x411.UniversalOrBMPString", HFILL }},
10094     { &hf_x411_universal_given_name,
10095       { "given-name", "x411.given_name",
10096         FT_NONE, BASE_NONE, NULL, 0,
10097         "x411.UniversalOrBMPString", HFILL }},
10098     { &hf_x411_universal_initials,
10099       { "initials", "x411.initials",
10100         FT_NONE, BASE_NONE, NULL, 0,
10101         "x411.UniversalOrBMPString", HFILL }},
10102     { &hf_x411_universal_generation_qualifier,
10103       { "generation-qualifier", "x411.generation_qualifier",
10104         FT_NONE, BASE_NONE, NULL, 0,
10105         "x411.UniversalOrBMPString", HFILL }},
10106     { &hf_x411_TeletexOrganizationalUnitNames_item,
10107       { "TeletexOrganizationalUnitName", "x411.TeletexOrganizationalUnitName",
10108         FT_STRING, BASE_NONE, NULL, 0,
10109         "x411.TeletexOrganizationalUnitName", HFILL }},
10110     { &hf_x411_UniversalOrganizationalUnitNames_item,
10111       { "UniversalOrganizationalUnitName", "x411.UniversalOrganizationalUnitName",
10112         FT_NONE, BASE_NONE, NULL, 0,
10113         "x411.UniversalOrganizationalUnitName", HFILL }},
10114     { &hf_x411_character_encoding,
10115       { "character-encoding", "x411.character_encoding",
10116         FT_UINT32, BASE_DEC, VALS(x411_T_character_encoding_vals), 0,
10117         "x411.T_character_encoding", HFILL }},
10118     { &hf_x411_two_octets,
10119       { "two-octets", "x411.two_octets",
10120         FT_STRING, BASE_NONE, NULL, 0,
10121         "x411.BMPString_SIZE_1_ub_string_length", HFILL }},
10122     { &hf_x411_four_octets,
10123       { "four-octets", "x411.four_octets",
10124         FT_STRING, BASE_NONE, NULL, 0,
10125         "x411.UniversalString_SIZE_1_ub_string_length", HFILL }},
10126     { &hf_x411_iso_639_language_code,
10127       { "iso-639-language-code", "x411.iso_639_language_code",
10128         FT_STRING, BASE_NONE, NULL, 0,
10129         "x411.PrintableString_SIZE_CONSTR5416640", HFILL }},
10130     { &hf_x411_numeric_code,
10131       { "numeric-code", "x411.numeric_code",
10132         FT_STRING, BASE_NONE, NULL, 0,
10133         "x411.AddrNumericString", HFILL }},
10134     { &hf_x411_printable_code,
10135       { "printable-code", "x411.printable_code",
10136         FT_STRING, BASE_NONE, NULL, 0,
10137         "x411.PrintableString_SIZE_1_ub_postal_code_length", HFILL }},
10138     { &hf_x411_printable_address,
10139       { "printable-address", "x411.printable_address",
10140         FT_UINT32, BASE_DEC, NULL, 0,
10141         "x411.T_printable_address", HFILL }},
10142     { &hf_x411_printable_address_item,
10143       { "printable-address item", "x411.printable_address_item",
10144         FT_STRING, BASE_NONE, NULL, 0,
10145         "x411.PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10146     { &hf_x411_teletex_string,
10147       { "teletex-string", "x411.teletex_string",
10148         FT_STRING, BASE_NONE, NULL, 0,
10149         "x411.TeletexString_SIZE_1_ub_unformatted_address_length", HFILL }},
10150     { &hf_x411_printable_string,
10151       { "printable-string", "x411.printable_string",
10152         FT_STRING, BASE_NONE, NULL, 0,
10153         "x411.PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10154     { &hf_x411_pds_teletex_string,
10155       { "teletex-string", "x411.teletex_string",
10156         FT_STRING, BASE_NONE, NULL, 0,
10157         "x411.TeletexString_SIZE_1_ub_pds_parameter_length", HFILL }},
10158     { &hf_x411_e163_4_address,
10159       { "e163-4-address", "x411.e163_4_address",
10160         FT_NONE, BASE_NONE, NULL, 0,
10161         "x411.T_e163_4_address", HFILL }},
10162     { &hf_x411_number,
10163       { "number", "x411.number",
10164         FT_STRING, BASE_NONE, NULL, 0,
10165         "x411.NumericString_SIZE_1_ub_e163_4_number_length", HFILL }},
10166     { &hf_x411_sub_address,
10167       { "sub-address", "x411.sub_address",
10168         FT_STRING, BASE_NONE, NULL, 0,
10169         "x411.NumericString_SIZE_1_ub_e163_4_sub_address_length", HFILL }},
10170     { &hf_x411_psap_address,
10171       { "psap-address", "x411.psap_address",
10172         FT_NONE, BASE_NONE, NULL, 0,
10173         "x509sat.PresentationAddress", HFILL }},
10174     { &hf_x411_TeletexDomainDefinedAttributes_item,
10175       { "TeletexDomainDefinedAttribute", "x411.TeletexDomainDefinedAttribute",
10176         FT_NONE, BASE_NONE, NULL, 0,
10177         "x411.TeletexDomainDefinedAttribute", HFILL }},
10178     { &hf_x411_type,
10179       { "type", "x411.type",
10180         FT_STRING, BASE_NONE, NULL, 0,
10181         "x411.AddrTeletexString", HFILL }},
10182     { &hf_x411_teletex_value,
10183       { "value", "x411.value",
10184         FT_STRING, BASE_NONE, NULL, 0,
10185         "x411.AddrTeletexString", HFILL }},
10186     { &hf_x411_UniversalDomainDefinedAttributes_item,
10187       { "UniversalDomainDefinedAttribute", "x411.UniversalDomainDefinedAttribute",
10188         FT_NONE, BASE_NONE, NULL, 0,
10189         "x411.UniversalDomainDefinedAttribute", HFILL }},
10190     { &hf_x411_universal_type,
10191       { "type", "x411.type",
10192         FT_NONE, BASE_NONE, NULL, 0,
10193         "x411.UniversalOrBMPString", HFILL }},
10194     { &hf_x411_universal_value,
10195       { "value", "x411.value",
10196         FT_NONE, BASE_NONE, NULL, 0,
10197         "x411.UniversalOrBMPString", HFILL }},
10198     { &hf_x411_ExtendedEncodedInformationTypes_item,
10199       { "ExtendedEncodedInformationType", "x411.ExtendedEncodedInformationType",
10200         FT_OID, BASE_NONE, NULL, 0,
10201         "x411.ExtendedEncodedInformationType", HFILL }},
10202     { &hf_x411_g3_facsimile,
10203       { "g3-facsimile", "x411.g3_facsimile",
10204         FT_BYTES, BASE_NONE, NULL, 0,
10205         "x411.G3FacsimileNonBasicParameters", HFILL }},
10206     { &hf_x411_teletex,
10207       { "teletex", "x411.teletex",
10208         FT_NONE, BASE_NONE, NULL, 0,
10209         "x411.TeletexNonBasicParameters", HFILL }},
10210     { &hf_x411_graphic_character_sets,
10211       { "graphic-character-sets", "x411.graphic_character_sets",
10212         FT_STRING, BASE_NONE, NULL, 0,
10213         "x411.TeletexString", HFILL }},
10214     { &hf_x411_control_character_sets,
10215       { "control-character-sets", "x411.control_character_sets",
10216         FT_STRING, BASE_NONE, NULL, 0,
10217         "x411.TeletexString", HFILL }},
10218     { &hf_x411_page_formats,
10219       { "page-formats", "x411.page_formats",
10220         FT_BYTES, BASE_NONE, NULL, 0,
10221         "x411.OCTET_STRING", HFILL }},
10222     { &hf_x411_miscellaneous_terminal_capabilities,
10223       { "miscellaneous-terminal-capabilities", "x411.miscellaneous_terminal_capabilities",
10224         FT_STRING, BASE_NONE, NULL, 0,
10225         "x411.TeletexString", HFILL }},
10226     { &hf_x411_private_use,
10227       { "private-use", "x411.private_use",
10228         FT_BYTES, BASE_NONE, NULL, 0,
10229         "x411.OCTET_STRING", HFILL }},
10230     { &hf_x411_token_type_identifier,
10231       { "token-type-identifier", "x411.token_type_identifier",
10232         FT_OID, BASE_NONE, NULL, 0,
10233         "x411.TokenTypeIdentifier", HFILL }},
10234     { &hf_x411_token,
10235       { "token", "x411.token",
10236         FT_NONE, BASE_NONE, NULL, 0,
10237         "x411.TokenTypeData", HFILL }},
10238     { &hf_x411_signature_algorithm_identifier,
10239       { "signature-algorithm-identifier", "x411.signature_algorithm_identifier",
10240         FT_NONE, BASE_NONE, NULL, 0,
10241         "x509af.AlgorithmIdentifier", HFILL }},
10242     { &hf_x411_name,
10243       { "name", "x411.name",
10244         FT_UINT32, BASE_DEC, VALS(x411_T_name_vals), 0,
10245         "x411.T_name", HFILL }},
10246     { &hf_x411_token_recipient_name,
10247       { "recipient-name", "x411.recipient_name",
10248         FT_NONE, BASE_NONE, NULL, 0,
10249         "x411.RecipientName", HFILL }},
10250     { &hf_x411_token_mta,
10251       { "mta", "x411.mta",
10252         FT_NONE, BASE_NONE, NULL, 0,
10253         "x411.MTANameAndOptionalGDI", HFILL }},
10254     { &hf_x411_time,
10255       { "time", "x411.time",
10256         FT_STRING, BASE_NONE, NULL, 0,
10257         "x411.Time", HFILL }},
10258     { &hf_x411_signed_data,
10259       { "signed-data", "x411.signed_data",
10260         FT_NONE, BASE_NONE, NULL, 0,
10261         "x411.TokenData", HFILL }},
10262     { &hf_x411_encryption_algorithm_identifier,
10263       { "encryption-algorithm-identifier", "x411.encryption_algorithm_identifier",
10264         FT_NONE, BASE_NONE, NULL, 0,
10265         "x509af.AlgorithmIdentifier", HFILL }},
10266     { &hf_x411_encrypted_data,
10267       { "encrypted-data", "x411.encrypted_data",
10268         FT_BYTES, BASE_NONE, NULL, 0,
10269         "x411.BIT_STRING", HFILL }},
10270     { &hf_x411_asymmetric_token_data,
10271       { "asymmetric-token-data", "x411.asymmetric_token_data",
10272         FT_NONE, BASE_NONE, NULL, 0,
10273         "x411.AsymmetricTokenData", HFILL }},
10274     { &hf_x411_algorithm_identifier,
10275       { "algorithm-identifier", "x411.algorithm_identifier",
10276         FT_NONE, BASE_NONE, NULL, 0,
10277         "x509af.AlgorithmIdentifier", HFILL }},
10278     { &hf_x411_token_data_type,
10279       { "type", "x411.type",
10280         FT_INT32, BASE_DEC, VALS(x411_TokenDataType_vals), 0,
10281         "x411.TokenDataType", HFILL }},
10282     { &hf_x411_value,
10283       { "value", "x411.value",
10284         FT_NONE, BASE_NONE, NULL, 0,
10285         "x411.T_value", HFILL }},
10286     { &hf_x411_content_confidentiality_algorithm_identifier,
10287       { "content-confidentiality-algorithm-identifier", "x411.content_confidentiality_algorithm_identifier",
10288         FT_NONE, BASE_NONE, NULL, 0,
10289         "x411.ContentConfidentialityAlgorithmIdentifier", HFILL }},
10290     { &hf_x411_content_integrity_check,
10291       { "content-integrity-check", "x411.content_integrity_check",
10292         FT_NONE, BASE_NONE, NULL, 0,
10293         "x411.ContentIntegrityCheck", HFILL }},
10294     { &hf_x411_message_security_label,
10295       { "message-security-label", "x411.message_security_label",
10296         FT_NONE, BASE_NONE, NULL, 0,
10297         "x411.MessageSecurityLabel", HFILL }},
10298     { &hf_x411_proof_of_delivery_request,
10299       { "proof-of-delivery-request", "x411.proof_of_delivery_request",
10300         FT_UINT32, BASE_DEC, VALS(x411_ProofOfDeliveryRequest_vals), 0,
10301         "x411.ProofOfDeliveryRequest", HFILL }},
10302     { &hf_x411_message_sequence_number,
10303       { "message-sequence-number", "x411.message_sequence_number",
10304         FT_INT32, BASE_DEC, NULL, 0,
10305         "x411.INTEGER", HFILL }},
10306     { &hf_x411_content_confidentiality_key,
10307       { "content-confidentiality-key", "x411.content_confidentiality_key",
10308         FT_BYTES, BASE_NONE, NULL, 0,
10309         "x411.EncryptionKey", HFILL }},
10310     { &hf_x411_content_integrity_key,
10311       { "content-integrity-key", "x411.content_integrity_key",
10312         FT_BYTES, BASE_NONE, NULL, 0,
10313         "x411.EncryptionKey", HFILL }},
10314     { &hf_x411_security_policy_identifier,
10315       { "security-policy-identifier", "x411.security_policy_identifier",
10316         FT_OID, BASE_NONE, NULL, 0,
10317         "x411.SecurityPolicyIdentifier", HFILL }},
10318     { &hf_x411_security_classification,
10319       { "security-classification", "x411.security_classification",
10320         FT_UINT32, BASE_DEC, VALS(x411_SecurityClassification_vals), 0,
10321         "x411.SecurityClassification", HFILL }},
10322     { &hf_x411_privacy_mark,
10323       { "privacy-mark", "x411.privacy_mark",
10324         FT_STRING, BASE_NONE, NULL, 0,
10325         "x411.PrivacyMark", HFILL }},
10326     { &hf_x411_security_categories,
10327       { "security-categories", "x411.security_categories",
10328         FT_UINT32, BASE_DEC, NULL, 0,
10329         "x411.SecurityCategories", HFILL }},
10330     { &hf_x411_SecurityCategories_item,
10331       { "SecurityCategory", "x411.SecurityCategory",
10332         FT_NONE, BASE_NONE, NULL, 0,
10333         "x411.SecurityCategory", HFILL }},
10334     { &hf_x411_category_type,
10335       { "type", "x411.type",
10336         FT_OID, BASE_NONE, NULL, 0,
10337         "x411.SecurityCategoryIdentifier", HFILL }},
10338     { &hf_x411_category_value,
10339       { "value", "x411.value",
10340         FT_NONE, BASE_NONE, NULL, 0,
10341         "x411.CategoryValue", HFILL }},
10342     { &hf_x411_rtorq_apdu,
10343       { "rtorq-apdu", "x411.rtorq_apdu",
10344         FT_NONE, BASE_NONE, NULL, 0,
10345         "rtse.RTORQapdu", HFILL }},
10346     { &hf_x411_rtoac_apdu,
10347       { "rtoac-apdu", "x411.rtoac_apdu",
10348         FT_NONE, BASE_NONE, NULL, 0,
10349         "rtse.RTOACapdu", HFILL }},
10350     { &hf_x411_rtorj_apdu,
10351       { "rtorj-apdu", "x411.rtorj_apdu",
10352         FT_NONE, BASE_NONE, NULL, 0,
10353         "rtse.RTORJapdu", HFILL }},
10354     { &hf_x411_rttp_apdu,
10355       { "rttp-apdu", "x411.rttp_apdu",
10356         FT_INT32, BASE_DEC, NULL, 0,
10357         "x411.RTTPapdu", HFILL }},
10358     { &hf_x411_rttr_apdu,
10359       { "rttr-apdu", "x411.rttr_apdu",
10360         FT_BYTES, BASE_NONE, NULL, 0,
10361         "x411.RTTRapdu", HFILL }},
10362     { &hf_x411_rtab_apdu,
10363       { "rtab-apdu", "x411.rtab_apdu",
10364         FT_NONE, BASE_NONE, NULL, 0,
10365         "x411.RTABapdu", HFILL }},
10366     { &hf_x411_abortReason,
10367       { "abortReason", "x411.abortReason",
10368         FT_INT32, BASE_DEC, VALS(x411_AbortReason_vals), 0,
10369         "x411.AbortReason", HFILL }},
10370     { &hf_x411_reflectedParameter,
10371       { "reflectedParameter", "x411.reflectedParameter",
10372         FT_BYTES, BASE_NONE, NULL, 0,
10373         "x411.BIT_STRING", HFILL }},
10374     { &hf_x411_userdataAB,
10375       { "userdataAB", "x411.userdataAB",
10376         FT_OID, BASE_NONE, NULL, 0,
10377         "x411.OBJECT_IDENTIFIER", HFILL }},
10378     { &hf_x411_mta_originator_name,
10379       { "originator-name", "x411.originator_name",
10380         FT_NONE, BASE_NONE, NULL, 0,
10381         "x411.MTAOriginatorName", HFILL }},
10382     { &hf_x411_per_recipient_message_fields,
10383       { "per-recipient-fields", "x411.per_recipient_fields",
10384         FT_UINT32, BASE_DEC, NULL, 0,
10385         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields", HFILL }},
10386     { &hf_x411_per_recipient_message_fields_item,
10387       { "PerRecipientMessageTransferFields", "x411.PerRecipientMessageTransferFields",
10388         FT_NONE, BASE_NONE, NULL, 0,
10389         "x411.PerRecipientMessageTransferFields", HFILL }},
10390     { &hf_x411_per_recipient_probe_transfer_fields,
10391       { "per-recipient-fields", "x411.per_recipient_fields",
10392         FT_UINT32, BASE_DEC, NULL, 0,
10393         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields", HFILL }},
10394     { &hf_x411_per_recipient_probe_transfer_fields_item,
10395       { "PerRecipientProbeTransferFields", "x411.PerRecipientProbeTransferFields",
10396         FT_NONE, BASE_NONE, NULL, 0,
10397         "x411.PerRecipientProbeTransferFields", HFILL }},
10398     { &hf_x411_per_recipient_report_fields,
10399       { "per-recipient-fields", "x411.per_recipient_fields",
10400         FT_UINT32, BASE_DEC, NULL, 0,
10401         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields", HFILL }},
10402     { &hf_x411_per_recipient_report_fields_item,
10403       { "PerRecipientReportTransferFields", "x411.PerRecipientReportTransferFields",
10404         FT_NONE, BASE_NONE, NULL, 0,
10405         "x411.PerRecipientReportTransferFields", HFILL }},
10406     { &hf_x411_routing_action,
10407       { "routing-action", "x411.routing_action",
10408         FT_UINT32, BASE_DEC, VALS(x411_RoutingAction_vals), 0,
10409         "x411.RoutingAction", HFILL }},
10410     { &hf_x411_attempted,
10411       { "attempted", "x411.attempted",
10412         FT_UINT32, BASE_DEC, VALS(x411_T_attempted_vals), 0,
10413         "x411.T_attempted", HFILL }},
10414     { &hf_x411_mta,
10415       { "mta", "x411.mta",
10416         FT_STRING, BASE_NONE, NULL, 0,
10417         "x411.MTAName", HFILL }},
10418     { &hf_x411_attempted_domain,
10419       { "attempted-domain", "x411.attempted_domain",
10420         FT_NONE, BASE_NONE, NULL, 0,
10421         "x411.GlobalDomainIdentifier", HFILL }},
10422     { &hf_x411_per_recipient_report_delivery_fields,
10423       { "per-recipient-fields", "x411.per_recipient_fields",
10424         FT_UINT32, BASE_DEC, NULL, 0,
10425         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields", HFILL }},
10426     { &hf_x411_per_recipient_report_delivery_fields_item,
10427       { "PerRecipientReportDeliveryFields", "x411.PerRecipientReportDeliveryFields",
10428         FT_NONE, BASE_NONE, NULL, 0,
10429         "x411.PerRecipientReportDeliveryFields", HFILL }},
10430     { &hf_x411_mts_originator_name,
10431       { "originator-name", "x411.originator_name",
10432         FT_NONE, BASE_NONE, NULL, 0,
10433         "x411.OriginatorName", HFILL }},
10434     { &hf_x411_per_recipient_message_submission_fields,
10435       { "per-recipient-fields", "x411.per_recipient_fields",
10436         FT_UINT32, BASE_DEC, NULL, 0,
10437         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields", HFILL }},
10438     { &hf_x411_per_recipient_message_submission_fields_item,
10439       { "PerRecipientMessageSubmissionFields", "x411.PerRecipientMessageSubmissionFields",
10440         FT_NONE, BASE_NONE, NULL, 0,
10441         "x411.PerRecipientMessageSubmissionFields", HFILL }},
10442     { &hf_x411_per_recipient_probe_submission_fields,
10443       { "per-recipient-fields", "x411.per_recipient_fields",
10444         FT_UINT32, BASE_DEC, NULL, 0,
10445         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields", HFILL }},
10446     { &hf_x411_per_recipient_probe_submission_fields_item,
10447       { "PerRecipientProbeSubmissionFields", "x411.PerRecipientProbeSubmissionFields",
10448         FT_NONE, BASE_NONE, NULL, 0,
10449         "x411.PerRecipientProbeSubmissionFields", HFILL }},
10450     { &hf_x411_directory_name,
10451       { "directory-name", "x411.directory_name",
10452         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10453         "x509if.Name", HFILL }},
10454     { &hf_x411_built_in_encoded_information_types,
10455       { "built-in-encoded-information-types", "x411.built_in_encoded_information_types",
10456         FT_BYTES, BASE_NONE, NULL, 0,
10457         "x411.BuiltInEncodedInformationTypes", HFILL }},
10458     { &hf_x411_extended_encoded_information_types,
10459       { "extended-encoded-information-types", "x411.extended_encoded_information_types",
10460         FT_UINT32, BASE_DEC, NULL, 0,
10461         "x411.ExtendedEncodedInformationTypes", HFILL }},
10462     { &hf_x411_PerRecipientIndicators_responsibility,
10463       { "responsibility", "x411.responsibility",
10464         FT_BOOLEAN, 8, NULL, 0x80,
10465         NULL, HFILL }},
10466     { &hf_x411_PerRecipientIndicators_originating_MTA_report,
10467       { "originating-MTA-report", "x411.originating-MTA-report",
10468         FT_BOOLEAN, 8, NULL, 0x40,
10469         NULL, HFILL }},
10470     { &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report,
10471       { "originating-MTA-non-delivery-report", "x411.originating-MTA-non-delivery-report",
10472         FT_BOOLEAN, 8, NULL, 0x20,
10473         NULL, HFILL }},
10474     { &hf_x411_PerRecipientIndicators_originator_report,
10475       { "originator-report", "x411.originator-report",
10476         FT_BOOLEAN, 8, NULL, 0x10,
10477         NULL, HFILL }},
10478     { &hf_x411_PerRecipientIndicators_originator_non_delivery_report,
10479       { "originator-non-delivery-report", "x411.originator-non-delivery-report",
10480         FT_BOOLEAN, 8, NULL, 0x08,
10481         NULL, HFILL }},
10482     { &hf_x411_PerRecipientIndicators_reserved_5,
10483       { "reserved-5", "x411.reserved-5",
10484         FT_BOOLEAN, 8, NULL, 0x04,
10485         NULL, HFILL }},
10486     { &hf_x411_PerRecipientIndicators_reserved_6,
10487       { "reserved-6", "x411.reserved-6",
10488         FT_BOOLEAN, 8, NULL, 0x02,
10489         NULL, HFILL }},
10490     { &hf_x411_PerRecipientIndicators_reserved_7,
10491       { "reserved-7", "x411.reserved-7",
10492         FT_BOOLEAN, 8, NULL, 0x01,
10493         NULL, HFILL }},
10494     { &hf_x411_OtherActions_redirected,
10495       { "redirected", "x411.redirected",
10496         FT_BOOLEAN, 8, NULL, 0x80,
10497         NULL, HFILL }},
10498     { &hf_x411_OtherActions_dl_operation,
10499       { "dl-operation", "x411.dl-operation",
10500         FT_BOOLEAN, 8, NULL, 0x40,
10501         NULL, HFILL }},
10502     { &hf_x411_Operations_probe_submission_or_report_delivery,
10503       { "probe-submission-or-report-delivery", "x411.probe-submission-or-report-delivery",
10504         FT_BOOLEAN, 8, NULL, 0x80,
10505         NULL, HFILL }},
10506     { &hf_x411_Operations_message_submission_or_message_delivery,
10507       { "message-submission-or-message-delivery", "x411.message-submission-or-message-delivery",
10508         FT_BOOLEAN, 8, NULL, 0x40,
10509         NULL, HFILL }},
10510     { &hf_x411_WaitingMessages_long_content,
10511       { "long-content", "x411.long-content",
10512         FT_BOOLEAN, 8, NULL, 0x80,
10513         NULL, HFILL }},
10514     { &hf_x411_WaitingMessages_low_priority,
10515       { "low-priority", "x411.low-priority",
10516         FT_BOOLEAN, 8, NULL, 0x40,
10517         NULL, HFILL }},
10518     { &hf_x411_WaitingMessages_other_security_labels,
10519       { "other-security-labels", "x411.other-security-labels",
10520         FT_BOOLEAN, 8, NULL, 0x20,
10521         NULL, HFILL }},
10522     { &hf_x411_T_source_type_originated_by,
10523       { "originated-by", "x411.originated-by",
10524         FT_BOOLEAN, 8, NULL, 0x80,
10525         NULL, HFILL }},
10526     { &hf_x411_T_source_type_redirected_by,
10527       { "redirected-by", "x411.redirected-by",
10528         FT_BOOLEAN, 8, NULL, 0x40,
10529         NULL, HFILL }},
10530     { &hf_x411_T_source_type_dl_expanded_by,
10531       { "dl-expanded-by", "x411.dl-expanded-by",
10532         FT_BOOLEAN, 8, NULL, 0x20,
10533         NULL, HFILL }},
10534     { &hf_x411_T_standard_parameters_user_name,
10535       { "user-name", "x411.user-name",
10536         FT_BOOLEAN, 8, NULL, 0x80,
10537         NULL, HFILL }},
10538     { &hf_x411_T_standard_parameters_user_address,
10539       { "user-address", "x411.user-address",
10540         FT_BOOLEAN, 8, NULL, 0x40,
10541         NULL, HFILL }},
10542     { &hf_x411_T_standard_parameters_deliverable_class,
10543       { "deliverable-class", "x411.deliverable-class",
10544         FT_BOOLEAN, 8, NULL, 0x20,
10545         NULL, HFILL }},
10546     { &hf_x411_T_standard_parameters_default_delivery_controls,
10547       { "default-delivery-controls", "x411.default-delivery-controls",
10548         FT_BOOLEAN, 8, NULL, 0x10,
10549         NULL, HFILL }},
10550     { &hf_x411_T_standard_parameters_redirections,
10551       { "redirections", "x411.redirections",
10552         FT_BOOLEAN, 8, NULL, 0x08,
10553         NULL, HFILL }},
10554     { &hf_x411_T_standard_parameters_restricted_delivery,
10555       { "restricted-delivery", "x411.restricted-delivery",
10556         FT_BOOLEAN, 8, NULL, 0x04,
10557         NULL, HFILL }},
10558     { &hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients,
10559       { "disclosure-of-other-recipients", "x411.disclosure-of-other-recipients",
10560         FT_BOOLEAN, 8, NULL, 0x80,
10561         NULL, HFILL }},
10562     { &hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited,
10563       { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
10564         FT_BOOLEAN, 8, NULL, 0x40,
10565         NULL, HFILL }},
10566     { &hf_x411_PerMessageIndicators_U_alternate_recipient_allowed,
10567       { "alternate-recipient-allowed", "x411.alternate-recipient-allowed",
10568         FT_BOOLEAN, 8, NULL, 0x20,
10569         NULL, HFILL }},
10570     { &hf_x411_PerMessageIndicators_U_content_return_request,
10571       { "content-return-request", "x411.content-return-request",
10572         FT_BOOLEAN, 8, NULL, 0x10,
10573         NULL, HFILL }},
10574     { &hf_x411_PerMessageIndicators_U_reserved,
10575       { "reserved", "x411.reserved",
10576         FT_BOOLEAN, 8, NULL, 0x08,
10577         NULL, HFILL }},
10578     { &hf_x411_PerMessageIndicators_U_bit_5,
10579       { "bit-5", "x411.bit-5",
10580         FT_BOOLEAN, 8, NULL, 0x04,
10581         NULL, HFILL }},
10582     { &hf_x411_PerMessageIndicators_U_bit_6,
10583       { "bit-6", "x411.bit-6",
10584         FT_BOOLEAN, 8, NULL, 0x02,
10585         NULL, HFILL }},
10586     { &hf_x411_PerMessageIndicators_U_service_message,
10587       { "service-message", "x411.service-message",
10588         FT_BOOLEAN, 8, NULL, 0x01,
10589         NULL, HFILL }},
10590     { &hf_x411_OriginatorReportRequest_report,
10591       { "report", "x411.report",
10592         FT_BOOLEAN, 8, NULL, 0x10,
10593         NULL, HFILL }},
10594     { &hf_x411_OriginatorReportRequest_non_delivery_report,
10595       { "non-delivery-report", "x411.non-delivery-report",
10596         FT_BOOLEAN, 8, NULL, 0x08,
10597         NULL, HFILL }},
10598     { &hf_x411_DeliveryFlags_implicit_conversion_prohibited,
10599       { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
10600         FT_BOOLEAN, 8, NULL, 0x40,
10601         NULL, HFILL }},
10602     { &hf_x411_Criticality_for_submission,
10603       { "for-submission", "x411.for-submission",
10604         FT_BOOLEAN, 8, NULL, 0x80,
10605         NULL, HFILL }},
10606     { &hf_x411_Criticality_for_transfer,
10607       { "for-transfer", "x411.for-transfer",
10608         FT_BOOLEAN, 8, NULL, 0x40,
10609         NULL, HFILL }},
10610     { &hf_x411_Criticality_for_delivery,
10611       { "for-delivery", "x411.for-delivery",
10612         FT_BOOLEAN, 8, NULL, 0x20,
10613         NULL, HFILL }},
10614     { &hf_x411_PhysicalDeliveryModes_ordinary_mail,
10615       { "ordinary-mail", "x411.ordinary-mail",
10616         FT_BOOLEAN, 8, NULL, 0x80,
10617         NULL, HFILL }},
10618     { &hf_x411_PhysicalDeliveryModes_special_delivery,
10619       { "special-delivery", "x411.special-delivery",
10620         FT_BOOLEAN, 8, NULL, 0x40,
10621         NULL, HFILL }},
10622     { &hf_x411_PhysicalDeliveryModes_express_mail,
10623       { "express-mail", "x411.express-mail",
10624         FT_BOOLEAN, 8, NULL, 0x20,
10625         NULL, HFILL }},
10626     { &hf_x411_PhysicalDeliveryModes_counter_collection,
10627       { "counter-collection", "x411.counter-collection",
10628         FT_BOOLEAN, 8, NULL, 0x10,
10629         NULL, HFILL }},
10630     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
10631       { "counter-collection-with-telephone-advice", "x411.counter-collection-with-telephone-advice",
10632         FT_BOOLEAN, 8, NULL, 0x08,
10633         NULL, HFILL }},
10634     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice,
10635       { "counter-collection-with-telex-advice", "x411.counter-collection-with-telex-advice",
10636         FT_BOOLEAN, 8, NULL, 0x04,
10637         NULL, HFILL }},
10638     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
10639       { "counter-collection-with-teletex-advice", "x411.counter-collection-with-teletex-advice",
10640         FT_BOOLEAN, 8, NULL, 0x02,
10641         NULL, HFILL }},
10642     { &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery,
10643       { "bureau-fax-delivery", "x411.bureau-fax-delivery",
10644         FT_BOOLEAN, 8, NULL, 0x01,
10645         NULL, HFILL }},
10646     { &hf_x411_BuiltInEncodedInformationTypes_unknown,
10647       { "unknown", "x411.unknown",
10648         FT_BOOLEAN, 8, NULL, 0x80,
10649         NULL, HFILL }},
10650     { &hf_x411_BuiltInEncodedInformationTypes_ia5_text,
10651       { "ia5-text", "x411.ia5-text",
10652         FT_BOOLEAN, 8, NULL, 0x20,
10653         NULL, HFILL }},
10654     { &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile,
10655       { "g3-facsimile", "x411.g3-facsimile",
10656         FT_BOOLEAN, 8, NULL, 0x10,
10657         NULL, HFILL }},
10658     { &hf_x411_BuiltInEncodedInformationTypes_g4_class_1,
10659       { "g4-class-1", "x411.g4-class-1",
10660         FT_BOOLEAN, 8, NULL, 0x08,
10661         NULL, HFILL }},
10662     { &hf_x411_BuiltInEncodedInformationTypes_teletex,
10663       { "teletex", "x411.teletex",
10664         FT_BOOLEAN, 8, NULL, 0x04,
10665         NULL, HFILL }},
10666     { &hf_x411_BuiltInEncodedInformationTypes_videotex,
10667       { "videotex", "x411.videotex",
10668         FT_BOOLEAN, 8, NULL, 0x02,
10669         NULL, HFILL }},
10670     { &hf_x411_BuiltInEncodedInformationTypes_voice,
10671       { "voice", "x411.voice",
10672         FT_BOOLEAN, 8, NULL, 0x01,
10673         NULL, HFILL }},
10674     { &hf_x411_BuiltInEncodedInformationTypes_sfd,
10675       { "sfd", "x411.sfd",
10676         FT_BOOLEAN, 8, NULL, 0x80,
10677         NULL, HFILL }},
10678     { &hf_x411_BuiltInEncodedInformationTypes_mixed_mode,
10679       { "mixed-mode", "x411.mixed-mode",
10680         FT_BOOLEAN, 8, NULL, 0x40,
10681         NULL, HFILL }},
10682     { &hf_x411_G3FacsimileNonBasicParameters_two_dimensional,
10683       { "two-dimensional", "x411.two-dimensional",
10684         FT_BOOLEAN, 8, NULL, 0x80,
10685         NULL, HFILL }},
10686     { &hf_x411_G3FacsimileNonBasicParameters_fine_resolution,
10687       { "fine-resolution", "x411.fine-resolution",
10688         FT_BOOLEAN, 8, NULL, 0x40,
10689         NULL, HFILL }},
10690     { &hf_x411_G3FacsimileNonBasicParameters_unlimited_length,
10691       { "unlimited-length", "x411.unlimited-length",
10692         FT_BOOLEAN, 8, NULL, 0x08,
10693         NULL, HFILL }},
10694     { &hf_x411_G3FacsimileNonBasicParameters_b4_length,
10695       { "b4-length", "x411.b4-length",
10696         FT_BOOLEAN, 8, NULL, 0x04,
10697         NULL, HFILL }},
10698     { &hf_x411_G3FacsimileNonBasicParameters_a3_width,
10699       { "a3-width", "x411.a3-width",
10700         FT_BOOLEAN, 8, NULL, 0x02,
10701         NULL, HFILL }},
10702     { &hf_x411_G3FacsimileNonBasicParameters_b4_width,
10703       { "b4-width", "x411.b4-width",
10704         FT_BOOLEAN, 8, NULL, 0x01,
10705         NULL, HFILL }},
10706     { &hf_x411_G3FacsimileNonBasicParameters_t6_coding,
10707       { "t6-coding", "x411.t6-coding",
10708         FT_BOOLEAN, 8, NULL, 0x40,
10709         NULL, HFILL }},
10710     { &hf_x411_G3FacsimileNonBasicParameters_uncompressed,
10711       { "uncompressed", "x411.uncompressed",
10712         FT_BOOLEAN, 8, NULL, 0x02,
10713         NULL, HFILL }},
10714     { &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
10715       { "width-middle-864-of-1728", "x411.width-middle-864-of-1728",
10716         FT_BOOLEAN, 8, NULL, 0x04,
10717         NULL, HFILL }},
10718     { &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
10719       { "width-middle-1216-of-1728", "x411.width-middle-1216-of-1728",
10720         FT_BOOLEAN, 8, NULL, 0x02,
10721         NULL, HFILL }},
10722     { &hf_x411_G3FacsimileNonBasicParameters_resolution_type,
10723       { "resolution-type", "x411.resolution-type",
10724         FT_BOOLEAN, 8, NULL, 0x08,
10725         NULL, HFILL }},
10726     { &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400,
10727       { "resolution-400x400", "x411.resolution-400x400",
10728         FT_BOOLEAN, 8, NULL, 0x04,
10729         NULL, HFILL }},
10730     { &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300,
10731       { "resolution-300x300", "x411.resolution-300x300",
10732         FT_BOOLEAN, 8, NULL, 0x02,
10733         NULL, HFILL }},
10734     { &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15,
10735       { "resolution-8x15", "x411.resolution-8x15",
10736         FT_BOOLEAN, 8, NULL, 0x01,
10737         NULL, HFILL }},
10738     { &hf_x411_G3FacsimileNonBasicParameters_edi,
10739       { "edi", "x411.edi",
10740         FT_BOOLEAN, 8, NULL, 0x40,
10741         NULL, HFILL }},
10742     { &hf_x411_G3FacsimileNonBasicParameters_dtm,
10743       { "dtm", "x411.dtm",
10744         FT_BOOLEAN, 8, NULL, 0x20,
10745         NULL, HFILL }},
10746     { &hf_x411_G3FacsimileNonBasicParameters_bft,
10747       { "bft", "x411.bft",
10748         FT_BOOLEAN, 8, NULL, 0x10,
10749         NULL, HFILL }},
10750     { &hf_x411_G3FacsimileNonBasicParameters_mixed_mode,
10751       { "mixed-mode", "x411.mixed-mode",
10752         FT_BOOLEAN, 8, NULL, 0x20,
10753         NULL, HFILL }},
10754     { &hf_x411_G3FacsimileNonBasicParameters_character_mode,
10755       { "character-mode", "x411.character-mode",
10756         FT_BOOLEAN, 8, NULL, 0x08,
10757         NULL, HFILL }},
10758     { &hf_x411_G3FacsimileNonBasicParameters_twelve_bits,
10759       { "twelve-bits", "x411.twelve-bits",
10760         FT_BOOLEAN, 8, NULL, 0x40,
10761         NULL, HFILL }},
10762     { &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann,
10763       { "preferred-huffmann", "x411.preferred-huffmann",
10764         FT_BOOLEAN, 8, NULL, 0x20,
10765         NULL, HFILL }},
10766     { &hf_x411_G3FacsimileNonBasicParameters_full_colour,
10767       { "full-colour", "x411.full-colour",
10768         FT_BOOLEAN, 8, NULL, 0x10,
10769         NULL, HFILL }},
10770     { &hf_x411_G3FacsimileNonBasicParameters_jpeg,
10771       { "jpeg", "x411.jpeg",
10772         FT_BOOLEAN, 8, NULL, 0x08,
10773         NULL, HFILL }},
10774     { &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26,
10775       { "processable-mode-26", "x411.processable-mode-26",
10776         FT_BOOLEAN, 8, NULL, 0x01,
10777         NULL, HFILL }},
10778
10779 /*--- End of included file: packet-x411-hfarr.c ---*/
10780 #line 256 "packet-x411-template.c"
10781   };
10782
10783   /* List of subtrees */
10784   static gint *ett[] = {
10785     &ett_x411,
10786     &ett_p3,
10787     &ett_x411_content_unknown,
10788     &ett_x411_bilateral_information,
10789     &ett_x411_additional_information,
10790     &ett_x411_unknown_standard_extension,
10791     &ett_x411_unknown_extension_attribute_type,
10792     &ett_x411_unknown_tokendata_type,
10793
10794 /*--- Included file: packet-x411-ettarr.c ---*/
10795 #line 1 "packet-x411-ettarr.c"
10796     &ett_x411_MTABindArgument,
10797     &ett_x411_AuthenticatedArgument,
10798     &ett_x411_MTABindResult,
10799     &ett_x411_AuthenticatedResult,
10800     &ett_x411_MTS_APDU,
10801     &ett_x411_Message,
10802     &ett_x411_Report,
10803     &ett_x411_MessageTransferEnvelope,
10804     &ett_x411_PerMessageTransferFields,
10805     &ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation,
10806     &ett_x411_SET_OF_ExtensionField,
10807     &ett_x411_PerRecipientMessageTransferFields,
10808     &ett_x411_ProbeTransferEnvelope,
10809     &ett_x411_PerProbeTransferFields,
10810     &ett_x411_PerRecipientProbeTransferFields,
10811     &ett_x411_ReportTransferEnvelope,
10812     &ett_x411_ReportTransferContent,
10813     &ett_x411_PerReportTransferFields,
10814     &ett_x411_PerRecipientReportTransferFields,
10815     &ett_x411_PerDomainBilateralInformation,
10816     &ett_x411_T_bilateral_domain,
10817     &ett_x411_T_private_domain,
10818     &ett_x411_BilateralDomain,
10819     &ett_x411_T_domain,
10820     &ett_x411_T_private_domain_01,
10821     &ett_x411_PerRecipientIndicators,
10822     &ett_x411_LastTraceInformation,
10823     &ett_x411_InternalTraceInformation,
10824     &ett_x411_InternalTraceInformationElement,
10825     &ett_x411_MTASuppliedInformation,
10826     &ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement,
10827     &ett_x411_TraceInformationElement,
10828     &ett_x411_DomainSuppliedInformation,
10829     &ett_x411_AdditionalActions,
10830     &ett_x411_OtherActions,
10831     &ett_x411_MTSBindArgument,
10832     &ett_x411_MTSBindResult,
10833     &ett_x411_ObjectName,
10834     &ett_x411_MessagesWaiting,
10835     &ett_x411_DeliveryQueue,
10836     &ett_x411_Credentials,
10837     &ett_x411_Password,
10838     &ett_x411_StrongCredentials,
10839     &ett_x411_ProtectedPassword,
10840     &ett_x411_Signature,
10841     &ett_x411_SecurityContext,
10842     &ett_x411_MessageSubmissionArgument,
10843     &ett_x411_MessageSubmissionResult,
10844     &ett_x411_ProbeSubmissionResult,
10845     &ett_x411_ImproperlySpecifiedRecipients,
10846     &ett_x411_Waiting,
10847     &ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType,
10848     &ett_x411_Operations,
10849     &ett_x411_WaitingMessages,
10850     &ett_x411_MessageDeliveryArgument,
10851     &ett_x411_MessageDeliveryResult,
10852     &ett_x411_ReportDeliveryArgument,
10853     &ett_x411_ReportDeliveryResult,
10854     &ett_x411_SET_SIZE_1_MAX_OF_ExtensionField,
10855     &ett_x411_DeliveryControlArgument,
10856     &ett_x411_DeliveryControlResult,
10857     &ett_x411_RefusedOperation,
10858     &ett_x411_T_refused_argument,
10859     &ett_x411_Controls,
10860     &ett_x411_RegisterArgument,
10861     &ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass,
10862     &ett_x411_RegisterResult,
10863     &ett_x411_T_non_empty_result,
10864     &ett_x411_ChangeCredentialsArgument,
10865     &ett_x411_UserAddress,
10866     &ett_x411_T_x121,
10867     &ett_x411_Redirections,
10868     &ett_x411_RecipientRedirection,
10869     &ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass,
10870     &ett_x411_MessageClass,
10871     &ett_x411_SET_OF_Priority,
10872     &ett_x411_SEQUENCE_OF_Restriction,
10873     &ett_x411_EncodedInformationTypesConstraints,
10874     &ett_x411_RestrictedDelivery,
10875     &ett_x411_Restriction,
10876     &ett_x411_T_source_type,
10877     &ett_x411_ExactOrPattern,
10878     &ett_x411_RegistrationTypes,
10879     &ett_x411_T_standard_parameters,
10880     &ett_x411_T_type_extensions,
10881     &ett_x411_MessageSubmissionEnvelope,
10882     &ett_x411_PerMessageSubmissionFields,
10883     &ett_x411_PerRecipientMessageSubmissionFields,
10884     &ett_x411_ProbeSubmissionEnvelope,
10885     &ett_x411_PerProbeSubmissionFields,
10886     &ett_x411_PerRecipientProbeSubmissionFields,
10887     &ett_x411_MessageDeliveryEnvelope,
10888     &ett_x411_OtherMessageDeliveryFields,
10889     &ett_x411_ReportDeliveryEnvelope,
10890     &ett_x411_PerReportDeliveryFields,
10891     &ett_x411_PerRecipientReportDeliveryFields,
10892     &ett_x411_ReportType,
10893     &ett_x411_DeliveryReport,
10894     &ett_x411_NonDeliveryReport,
10895     &ett_x411_ContentTypes,
10896     &ett_x411_ContentType,
10897     &ett_x411_DeliveredContentType,
10898     &ett_x411_PerMessageIndicators_U,
10899     &ett_x411_OriginatorReportRequest,
10900     &ett_x411_DeliveryFlags,
10901     &ett_x411_OtherRecipientNames,
10902     &ett_x411_ExtensionType,
10903     &ett_x411_Criticality,
10904     &ett_x411_ExtensionField,
10905     &ett_x411_RequestedDeliveryMethod,
10906     &ett_x411_PhysicalDeliveryModes,
10907     &ett_x411_ContentCorrelator,
10908     &ett_x411_RedirectionHistory,
10909     &ett_x411_Redirection,
10910     &ett_x411_IntendedRecipientName,
10911     &ett_x411_DLExpansionHistory,
10912     &ett_x411_DLExpansion,
10913     &ett_x411_OriginatorAndDLExpansionHistory,
10914     &ett_x411_OriginatorAndDLExpansion,
10915     &ett_x411_PerRecipientReportFields,
10916     &ett_x411_T_report_type,
10917     &ett_x411_PerRecipientDeliveryReportFields,
10918     &ett_x411_PerRecipientNonDeliveryReportFields,
10919     &ett_x411_ReportingMTAName,
10920     &ett_x411_ExtendedCertificates,
10921     &ett_x411_ExtendedCertificate,
10922     &ett_x411_DLExemptedRecipients,
10923     &ett_x411_CertificateSelectors,
10924     &ett_x411_MTSIdentifier_U,
10925     &ett_x411_GlobalDomainIdentifier_U,
10926     &ett_x411_PrivateDomainIdentifier,
10927     &ett_x411_ORName_U,
10928     &ett_x411_ORAddress,
10929     &ett_x411_BuiltInStandardAttributes,
10930     &ett_x411_CountryName_U,
10931     &ett_x411_AdministrationDomainName_U,
10932     &ett_x411_PrivateDomainName,
10933     &ett_x411_PersonalName,
10934     &ett_x411_OrganizationalUnitNames,
10935     &ett_x411_BuiltInDomainDefinedAttributes,
10936     &ett_x411_BuiltInDomainDefinedAttribute,
10937     &ett_x411_ExtensionAttributes,
10938     &ett_x411_ExtensionAttribute,
10939     &ett_x411_TeletexPersonalName,
10940     &ett_x411_UniversalPersonalName,
10941     &ett_x411_TeletexOrganizationalUnitNames,
10942     &ett_x411_UniversalOrganizationalUnitNames,
10943     &ett_x411_UniversalOrBMPString,
10944     &ett_x411_T_character_encoding,
10945     &ett_x411_PhysicalDeliveryCountryName,
10946     &ett_x411_PostalCode,
10947     &ett_x411_UnformattedPostalAddress,
10948     &ett_x411_T_printable_address,
10949     &ett_x411_PDSParameter,
10950     &ett_x411_ExtendedNetworkAddress,
10951     &ett_x411_T_e163_4_address,
10952     &ett_x411_TeletexDomainDefinedAttributes,
10953     &ett_x411_TeletexDomainDefinedAttribute,
10954     &ett_x411_UniversalDomainDefinedAttributes,
10955     &ett_x411_UniversalDomainDefinedAttribute,
10956     &ett_x411_EncodedInformationTypes_U,
10957     &ett_x411_BuiltInEncodedInformationTypes,
10958     &ett_x411_ExtendedEncodedInformationTypes,
10959     &ett_x411_NonBasicParameters,
10960     &ett_x411_G3FacsimileNonBasicParameters,
10961     &ett_x411_TeletexNonBasicParameters,
10962     &ett_x411_Token,
10963     &ett_x411_AsymmetricTokenData,
10964     &ett_x411_T_name,
10965     &ett_x411_MTANameAndOptionalGDI,
10966     &ett_x411_AsymmetricToken,
10967     &ett_x411_TokenData,
10968     &ett_x411_MessageTokenSignedData,
10969     &ett_x411_MessageTokenEncryptedData,
10970     &ett_x411_SecurityLabel,
10971     &ett_x411_SecurityCategories,
10972     &ett_x411_SecurityCategory,
10973     &ett_x411_RTSE_apdus,
10974     &ett_x411_RTABapdu,
10975     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields,
10976     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields,
10977     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields,
10978     &ett_x411_T_attempted,
10979     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields,
10980     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields,
10981     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields,
10982
10983 /*--- End of included file: packet-x411-ettarr.c ---*/
10984 #line 269 "packet-x411-template.c"
10985   };
10986
10987   module_t *x411_module;
10988
10989   /* Register protocol */
10990   proto_x411 = proto_register_protocol(PNAME, PSNAME, PFNAME);
10991   register_dissector("x411", dissect_x411, proto_x411);
10992
10993   proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
10994
10995   /* Register fields and subtrees */
10996   proto_register_field_array(proto_x411, hf, array_length(hf));
10997   proto_register_subtree_array(ett, array_length(ett));
10998
10999   x411_extension_dissector_table = register_dissector_table("x411.extension", "X411-EXTENSION", FT_UINT32, BASE_DEC);
11000   x411_extension_attribute_dissector_table = register_dissector_table("x411.extension-attribute", "X411-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC);
11001   x411_tokendata_dissector_table = register_dissector_table("x411.tokendata", "X411-TOKENDATA", FT_UINT32, BASE_DEC);
11002
11003   /* Register our configuration options for X411, particularly our port */
11004
11005   x411_module = prefs_register_protocol_subtree("OSI/X.400", proto_x411, prefs_register_x411);
11006
11007   prefs_register_uint_preference(x411_module, "tcp.port", "X.411 TCP Port",
11008                                  "Set the port for P1 operations (if other"
11009                                  " than the default of 102)",
11010                                  10, &global_x411_tcp_port);
11011
11012 }
11013
11014
11015 /*--- proto_reg_handoff_x411 --- */
11016 void proto_reg_handoff_x411(void) {
11017   dissector_handle_t x411_handle;
11018
11019
11020 /*--- Included file: packet-x411-dis-tab.c ---*/
11021 #line 1 "packet-x411-dis-tab.c"
11022   dissector_add("x411.extension", 1, create_dissector_handle(dissect_RecipientReassignmentProhibited_PDU, proto_x411));
11023   dissector_add("x411.extension", 2, create_dissector_handle(dissect_OriginatorRequestedAlternateRecipient_PDU, proto_x411));
11024   dissector_add("x411.extension", 3, create_dissector_handle(dissect_DLExpansionProhibited_PDU, proto_x411));
11025   dissector_add("x411.extension", 4, create_dissector_handle(dissect_ConversionWithLossProhibited_PDU, proto_x411));
11026   dissector_add("x411.extension", 5, create_dissector_handle(dissect_LatestDeliveryTime_PDU, proto_x411));
11027   dissector_add("x411.extension", 6, create_dissector_handle(dissect_RequestedDeliveryMethod_PDU, proto_x411));
11028   dissector_add("x411.extension", 7, create_dissector_handle(dissect_PhysicalForwardingProhibited_PDU, proto_x411));
11029   dissector_add("x411.extension", 8, create_dissector_handle(dissect_PhysicalForwardingAddressRequest_PDU, proto_x411));
11030   dissector_add("x411.extension", 9, create_dissector_handle(dissect_PhysicalDeliveryModes_PDU, proto_x411));
11031   dissector_add("x411.extension", 10, create_dissector_handle(dissect_RegisteredMailType_PDU, proto_x411));
11032   dissector_add("x411.extension", 11, create_dissector_handle(dissect_RecipientNumberForAdvice_PDU, proto_x411));
11033   dissector_add("x411.extension", 12, create_dissector_handle(dissect_PhysicalRenditionAttributes_PDU, proto_x411));
11034   dissector_add("x411.extension", 13, create_dissector_handle(dissect_OriginatorReturnAddress_PDU, proto_x411));
11035   dissector_add("x411.extension", 14, create_dissector_handle(dissect_PhysicalDeliveryReportRequest_PDU, proto_x411));
11036   dissector_add("x411.extension", 15, create_dissector_handle(dissect_OriginatorCertificate_PDU, proto_x411));
11037   dissector_add("x411.extension", 16, create_dissector_handle(dissect_MessageToken_PDU, proto_x411));
11038   dissector_add("x411.extension", 17, create_dissector_handle(dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_x411));
11039   dissector_add("x411.extension", 18, create_dissector_handle(dissect_ContentIntegrityCheck_PDU, proto_x411));
11040   dissector_add("x411.extension", 19, create_dissector_handle(dissect_MessageOriginAuthenticationCheck_PDU, proto_x411));
11041   dissector_add("x411.extension", 20, create_dissector_handle(dissect_MessageSecurityLabel_PDU, proto_x411));
11042   dissector_add("x411.extension", 21, create_dissector_handle(dissect_ProofOfSubmissionRequest_PDU, proto_x411));
11043   dissector_add("x411.extension", 22, create_dissector_handle(dissect_ProofOfDeliveryRequest_PDU, proto_x411));
11044   dissector_add("x411.extension", 23, create_dissector_handle(dissect_ContentCorrelator_PDU, proto_x411));
11045   dissector_add("x411.extension", 24, create_dissector_handle(dissect_ProbeOriginAuthenticationCheck_PDU, proto_x411));
11046   dissector_add("x411.extension", 25, create_dissector_handle(dissect_RedirectionHistory_PDU, proto_x411));
11047   dissector_add("x411.extension", 26, create_dissector_handle(dissect_DLExpansionHistory_PDU, proto_x411));
11048   dissector_add("x411.extension", 27, create_dissector_handle(dissect_PhysicalForwardingAddress_PDU, proto_x411));
11049   dissector_add("x411.extension", 28, create_dissector_handle(dissect_RecipientCertificate_PDU, proto_x411));
11050   dissector_add("x411.extension", 29, create_dissector_handle(dissect_ProofOfDelivery_PDU, proto_x411));
11051   dissector_add("x411.extension", 30, create_dissector_handle(dissect_OriginatorAndDLExpansionHistory_PDU, proto_x411));
11052   dissector_add("x411.extension", 31, create_dissector_handle(dissect_ReportingDLName_PDU, proto_x411));
11053   dissector_add("x411.extension", 32, create_dissector_handle(dissect_ReportingMTACertificate_PDU, proto_x411));
11054   dissector_add("x411.extension", 33, create_dissector_handle(dissect_ReportOriginAuthenticationCheck_PDU, proto_x411));
11055   dissector_add("x411.extension", 35, create_dissector_handle(dissect_ProofOfSubmission_PDU, proto_x411));
11056   dissector_add("x411.extension", 37, create_dissector_handle(dissect_TraceInformation_PDU, proto_x411));
11057   dissector_add("x411.extension", 38, create_dissector_handle(dissect_InternalTraceInformation_PDU, proto_x411));
11058   dissector_add("x411.extension", 39, create_dissector_handle(dissect_ReportingMTAName_PDU, proto_x411));
11059   dissector_add("x411.extension", 40, create_dissector_handle(dissect_ExtendedCertificates_PDU, proto_x411));
11060   dissector_add("x411.extension", 42, create_dissector_handle(dissect_DLExemptedRecipients_PDU, proto_x411));
11061   dissector_add("x411.extension", 45, create_dissector_handle(dissect_CertificateSelectors_PDU, proto_x411));
11062   dissector_add("x411.extension-attribute", 1, create_dissector_handle(dissect_CommonName_PDU, proto_x411));
11063   dissector_add("x411.extension-attribute", 2, create_dissector_handle(dissect_TeletexCommonName_PDU, proto_x411));
11064   dissector_add("x411.extension-attribute", 3, create_dissector_handle(dissect_TeletexOrganizationName_PDU, proto_x411));
11065   dissector_add("x411.extension-attribute", 4, create_dissector_handle(dissect_TeletexPersonalName_PDU, proto_x411));
11066   dissector_add("x411.extension-attribute", 5, create_dissector_handle(dissect_TeletexOrganizationalUnitNames_PDU, proto_x411));
11067   dissector_add("x411.extension-attribute", 6, create_dissector_handle(dissect_TeletexDomainDefinedAttributes_PDU, proto_x411));
11068   dissector_add("x411.extension-attribute", 7, create_dissector_handle(dissect_PDSName_PDU, proto_x411));
11069   dissector_add("x411.extension-attribute", 8, create_dissector_handle(dissect_PhysicalDeliveryCountryName_PDU, proto_x411));
11070   dissector_add("x411.extension-attribute", 9, create_dissector_handle(dissect_PostalCode_PDU, proto_x411));
11071   dissector_add("x411.extension-attribute", 10, create_dissector_handle(dissect_PhysicalDeliveryOfficeName_PDU, proto_x411));
11072   dissector_add("x411.extension-attribute", 11, create_dissector_handle(dissect_PhysicalDeliveryOfficeNumber_PDU, proto_x411));
11073   dissector_add("x411.extension-attribute", 12, create_dissector_handle(dissect_ExtensionORAddressComponents_PDU, proto_x411));
11074   dissector_add("x411.extension-attribute", 13, create_dissector_handle(dissect_PhysicalDeliveryPersonalName_PDU, proto_x411));
11075   dissector_add("x411.extension-attribute", 14, create_dissector_handle(dissect_PhysicalDeliveryOrganizationName_PDU, proto_x411));
11076   dissector_add("x411.extension-attribute", 15, create_dissector_handle(dissect_ExtensionPhysicalDeliveryAddressComponents_PDU, proto_x411));
11077   dissector_add("x411.extension-attribute", 16, create_dissector_handle(dissect_UnformattedPostalAddress_PDU, proto_x411));
11078   dissector_add("x411.extension-attribute", 17, create_dissector_handle(dissect_StreetAddress_PDU, proto_x411));
11079   dissector_add("x411.extension-attribute", 18, create_dissector_handle(dissect_PostOfficeBoxAddress_PDU, proto_x411));
11080   dissector_add("x411.extension-attribute", 19, create_dissector_handle(dissect_PosteRestanteAddress_PDU, proto_x411));
11081   dissector_add("x411.extension-attribute", 20, create_dissector_handle(dissect_UniquePostalName_PDU, proto_x411));
11082   dissector_add("x411.extension-attribute", 21, create_dissector_handle(dissect_LocalPostalAttributes_PDU, proto_x411));
11083   dissector_add("x411.extension-attribute", 22, create_dissector_handle(dissect_ExtendedNetworkAddress_PDU, proto_x411));
11084   dissector_add("x411.extension-attribute", 23, create_dissector_handle(dissect_TerminalType_PDU, proto_x411));
11085   dissector_add("x411.extension-attribute", 24, create_dissector_handle(dissect_UniversalCommonName_PDU, proto_x411));
11086   dissector_add("x411.extension-attribute", 25, create_dissector_handle(dissect_UniversalOrganizationName_PDU, proto_x411));
11087   dissector_add("x411.extension-attribute", 26, create_dissector_handle(dissect_UniversalPersonalName_PDU, proto_x411));
11088   dissector_add("x411.extension-attribute", 27, create_dissector_handle(dissect_UniversalOrganizationalUnitNames_PDU, proto_x411));
11089   dissector_add("x411.extension-attribute", 28, create_dissector_handle(dissect_UniversalDomainDefinedAttributes_PDU, proto_x411));
11090   dissector_add("x411.extension-attribute", 29, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeName_PDU, proto_x411));
11091   dissector_add("x411.extension-attribute", 30, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeNumber_PDU, proto_x411));
11092   dissector_add("x411.extension-attribute", 31, create_dissector_handle(dissect_UniversalExtensionORAddressComponents_PDU, proto_x411));
11093   dissector_add("x411.extension-attribute", 32, create_dissector_handle(dissect_UniversalPhysicalDeliveryPersonalName_PDU, proto_x411));
11094   dissector_add("x411.extension-attribute", 33, create_dissector_handle(dissect_UniversalPhysicalDeliveryOrganizationName_PDU, proto_x411));
11095   dissector_add("x411.extension-attribute", 34, create_dissector_handle(dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU, proto_x411));
11096   dissector_add("x411.extension-attribute", 35, create_dissector_handle(dissect_UniversalUnformattedPostalAddress_PDU, proto_x411));
11097   dissector_add("x411.extension-attribute", 36, create_dissector_handle(dissect_UniversalStreetAddress_PDU, proto_x411));
11098   dissector_add("x411.extension-attribute", 37, create_dissector_handle(dissect_UniversalPostOfficeBoxAddress_PDU, proto_x411));
11099   dissector_add("x411.extension-attribute", 38, create_dissector_handle(dissect_UniversalPosteRestanteAddress_PDU, proto_x411));
11100   dissector_add("x411.extension-attribute", 39, create_dissector_handle(dissect_UniversalUniquePostalName_PDU, proto_x411));
11101   dissector_add("x411.extension-attribute", 40, create_dissector_handle(dissect_UniversalLocalPostalAttributes_PDU, proto_x411));
11102   register_ber_oid_dissector("2.6.3.6.0", dissect_AsymmetricToken_PDU, proto_x411, "id-tok-asymmetricToken");
11103   register_ber_oid_dissector("2.6.5.6.0", dissect_MTANameAndOptionalGDI_PDU, proto_x411, "id-on-mtaName");
11104   dissector_add("x411.tokendata", 1, create_dissector_handle(dissect_BindTokenSignedData_PDU, proto_x411));
11105   dissector_add("x411.tokendata", 2, create_dissector_handle(dissect_MessageTokenSignedData_PDU, proto_x411));
11106   dissector_add("x411.tokendata", 3, create_dissector_handle(dissect_MessageTokenEncryptedData_PDU, proto_x411));
11107   dissector_add("x411.tokendata", 4, create_dissector_handle(dissect_BindTokenEncryptedData_PDU, proto_x411));
11108   register_ber_oid_dissector("2.6.5.2.0", dissect_ContentLength_PDU, proto_x411, "id-at-mhs-maximum-content-length");
11109   register_ber_oid_dissector("2.6.5.2.1", dissect_ExtendedContentType_PDU, proto_x411, "id-at-mhs-deliverable-content-types");
11110   register_ber_oid_dissector("2.6.5.2.2", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-exclusively-acceptable-eits");
11111   register_ber_oid_dissector("2.6.5.2.3", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-members");
11112   register_ber_oid_dissector("2.6.5.2.6", dissect_ORAddress_PDU, proto_x411, "id-at-mhs-or-addresses");
11113   register_ber_oid_dissector("2.6.5.2.9", dissect_ExtendedContentType_PDU, proto_x411, "id-at-mhs-supported-content-types");
11114   register_ber_oid_dissector("2.6.5.2.12", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-archive-service");
11115   register_ber_oid_dissector("2.6.5.2.15", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-subscription-service");
11116   register_ber_oid_dissector("2.6.5.2.17", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-acceptable-eits");
11117   register_ber_oid_dissector("2.6.5.2.18", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-unacceptable-eits");
11118   register_ber_oid_dissector("2.16.840.1.101.2.1.5.47", dissect_ORName_PDU, proto_x411, "id-at-aLExemptedAddressProcessor");
11119   register_ber_oid_dissector("2.16.840.1.101.2.2.1.134.1", dissect_ORAddress_PDU, proto_x411, "id-at-collective-mhs-or-addresses");
11120   register_ber_oid_dissector("2.6.4.3.80", dissect_CertificateSelectors_PDU, proto_x411, "id-att-certificate-selectors");
11121   register_ber_oid_dissector("2.6.4.3.1", dissect_Content_PDU, proto_x411, "id-att-content");
11122   register_ber_oid_dissector("2.6.4.3.3", dissect_ContentCorrelator_PDU, proto_x411, "id-att-content-correlator");
11123   register_ber_oid_dissector("2.6.4.3.4", dissect_ContentIdentifier_PDU, proto_x411, "id-att-content-identifier");
11124   register_ber_oid_dissector("2.6.4.3.5", dissect_ContentIntegrityCheck_PDU, proto_x411, "id-att-content-inetgrity-check");
11125   register_ber_oid_dissector("2.6.4.3.6", dissect_ContentLength_PDU, proto_x411, "id-att-content-length");
11126   register_ber_oid_dissector("2.6.4.3.8", dissect_ExtendedContentType_PDU, proto_x411, "id-att-content-type");
11127   register_ber_oid_dissector("2.6.4.3.9", dissect_ConversionWithLossProhibited_PDU, proto_x411, "id-att-conversion-with-loss-prohibited");
11128   register_ber_oid_dissector("2.6.4.3.51", dissect_DeferredDeliveryTime_PDU, proto_x411, "id-att-deferred-delivery-time");
11129   register_ber_oid_dissector("2.6.4.3.13", dissect_DeliveryFlags_PDU, proto_x411, "id-att-delivery-flags");
11130   register_ber_oid_dissector("2.6.4.3.78", dissect_ORName_PDU, proto_x411, "id-att-dl-exempted-recipients");
11131   register_ber_oid_dissector("2.6.4.3.14", dissect_DLExpansion_PDU, proto_x411, "id-att-dl-expansion-history");
11132   register_ber_oid_dissector("2.6.4.3.53", dissect_DLExpansionProhibited_PDU, proto_x411, "id-att-dl-expansion-prohibited");
11133   register_ber_oid_dissector("2.6.4.3.54", dissect_InternalTraceInformationElement_PDU, proto_x411, "id-att-internal-trace-information");
11134   register_ber_oid_dissector("2.6.4.3.55", dissect_LatestDeliveryTime_PDU, proto_x411, "id-att-latest-delivery-time");
11135   register_ber_oid_dissector("2.6.4.3.18", dissect_MessageDeliveryEnvelope_PDU, proto_x411, "id-att-message-delivery-envelope");
11136   register_ber_oid_dissector("2.6.4.3.20", dissect_MessageDeliveryTime_PDU, proto_x411, "id-att-message-delivery-time");
11137   register_ber_oid_dissector("2.6.4.3.19", dissect_MTSIdentifier_PDU, proto_x411, "id-att-message-identifier");
11138   register_ber_oid_dissector("2.6.4.3.21", dissect_MessageOriginAuthenticationCheck_PDU, proto_x411, "id-at-message-orgin-authentication-check");
11139   register_ber_oid_dissector("2.6.4.3.22", dissect_MessageSecurityLabel_PDU, proto_x411, "id-att-message-security-label");
11140   register_ber_oid_dissector("2.6.4.3.59", dissect_MessageSubmissionEnvelope_PDU, proto_x411, "id-att-message-submission-envelope");
11141   register_ber_oid_dissector("2.6.4.3.23", dissect_MessageSubmissionTime_PDU, proto_x411, "id-att-message-submission-time");
11142   register_ber_oid_dissector("2.6.4.3.24", dissect_MessageToken_PDU, proto_x411, "id-att-message-token");
11143   register_ber_oid_dissector("2.6.4.3.81", dissect_ExtendedCertificates_PDU, proto_x411, "id-att-multiple-originator-certificates");
11144   register_ber_oid_dissector("2.6.4.3.17", dissect_ORName_PDU, proto_x411, "id-att-originally-intended-recipient-name");
11145   register_ber_oid_dissector("2.6.4.3.62", dissect_OriginatingMTACertificate_PDU, proto_x411, "id-att-originating-MTA-certificate");
11146   register_ber_oid_dissector("2.6.4.3.26", dissect_OriginatorCertificate_PDU, proto_x411, "id-att-originator-certificate");
11147   register_ber_oid_dissector("2.6.4.3.27", dissect_ORName_PDU, proto_x411, "id-att-originator-name");
11148   register_ber_oid_dissector("2.6.4.3.63", dissect_OriginatorReportRequest_PDU, proto_x411, "id-att-originator-report-request");
11149   register_ber_oid_dissector("2.6.4.3.64", dissect_OriginatorReturnAddress_PDU, proto_x411, "id-att-originator-return-address");
11150   register_ber_oid_dissector("2.6.4.3.28", dissect_ORName_PDU, proto_x411, "id-att-other-recipient-names");
11151   register_ber_oid_dissector("2.6.4.3.65", dissect_PerMessageIndicators_PDU, proto_x411, "id-att-per-message-indicators");
11152   register_ber_oid_dissector("2.6.4.3.66", dissect_PerRecipientMessageSubmissionFields_PDU, proto_x411, "id-att-per-recipient-message-submission-fields");
11153   register_ber_oid_dissector("2.6.4.3.67", dissect_PerRecipientProbeSubmissionFields_PDU, proto_x411, "id-att-per-recipient-probe-submission-fields");
11154   register_ber_oid_dissector("2.6.4.3.30", dissect_PerRecipientReportDeliveryFields_PDU, proto_x411, "id-att-per-recipient-report-delivery-fields");
11155   register_ber_oid_dissector("2.6.4.3.31", dissect_Priority_PDU, proto_x411, "id-att-priority");
11156   register_ber_oid_dissector("2.6.4.3.68", dissect_ProbeOriginAuthenticationCheck_PDU, proto_x411, "id-att-probe-origin-authentication-check");
11157   register_ber_oid_dissector("2.6.4.3.69", dissect_ProbeSubmissionEnvelope_PDU, proto_x411, "id-att-probe-submission-envelope");
11158   register_ber_oid_dissector("2.6.4.3.32", dissect_ProofOfDeliveryRequest_PDU, proto_x411, "id-att-proof-of-delivery-request");
11159   register_ber_oid_dissector("2.6.4.3.70", dissect_ProofOfSubmission_PDU, proto_x411, "id-att-proof-of-submission");
11160   register_ber_oid_dissector("2.6.4.3.82", dissect_ExtendedCertificates_PDU, proto_x411, "id-att-recipient-certificate");
11161   register_ber_oid_dissector("2.6.4.3.71", dissect_ORName_PDU, proto_x411, "id-att-recipient-names");
11162   register_ber_oid_dissector("2.6.4.3.72", dissect_RecipientReassignmentProhibited_PDU, proto_x411, "id-att-recipient-reassignment-prohibited");
11163   register_ber_oid_dissector("2.6.4.3.33", dissect_Redirection_PDU, proto_x411, "id-at-redirection-history");
11164   register_ber_oid_dissector("2.6.4.3.34", dissect_ReportDeliveryEnvelope_PDU, proto_x411, "id-att-report-delivery-envelope");
11165   register_ber_oid_dissector("2.6.4.3.35", dissect_ReportingDLName_PDU, proto_x411, "id-att-reporting-DL-name");
11166   register_ber_oid_dissector("2.6.4.3.36", dissect_ReportingMTACertificate_PDU, proto_x411, "id-att-reporting-MTA-certificate");
11167   register_ber_oid_dissector("2.6.4.3.37", dissect_ReportOriginAuthenticationCheck_PDU, proto_x411, "id-att-report-origin-authentication-check");
11168   register_ber_oid_dissector("2.6.4.3.38", dissect_SecurityClassification_PDU, proto_x411, "id-att-security-classification");
11169   register_ber_oid_dissector("2.6.4.3.40", dissect_SubjectSubmissionIdentifier_PDU, proto_x411, "id-att-subject-submission-identifier");
11170   register_ber_oid_dissector("2.6.4.3.41", dissect_ORName_PDU, proto_x411, "id-att-this-recipient-name");
11171   register_ber_oid_dissector("2.6.4.3.75", dissect_TraceInformationElement_PDU, proto_x411, "id-att-trace-information");
11172   register_ber_oid_dissector("2.6.1.7.36", dissect_MessageToken_PDU, proto_x411, "id-hat-forwarded-token");
11173
11174
11175 /*--- End of included file: packet-x411-dis-tab.c ---*/
11176 #line 304 "packet-x411-template.c"
11177
11178   /* APPLICATION CONTEXT */
11179
11180   oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
11181
11182   /* ABSTRACT SYNTAXES */
11183
11184   x411_handle = find_dissector("x411");
11185   register_rtse_oid_dissector_handle("2.6.0.2.12", x411_handle, 0, "id-as-mta-rtse", TRUE); 
11186   register_rtse_oid_dissector_handle("2.6.0.2.7", x411_handle, 0, "id-as-mtse", FALSE);
11187
11188   register_ber_syntax_dissector("X.411 Message", proto_x411, dissect_x411_mts_apdu);
11189   register_rtse_oid_dissector_handle("applicationProtocol.1", x411_handle, 0, "mts-transfer-protocol-1984", FALSE);
11190   register_rtse_oid_dissector_handle("applicationProtocol.12", x411_handle, 0, "mta-transfer-protocol", FALSE);
11191
11192   /* remember the tpkt handler for change in preferences */
11193   tpkt_handle = find_dissector("tpkt");
11194
11195   /* APPLICATION CONTEXT */
11196
11197   oid_add_from_string("id-ac-mts-access-88", id_ac_mts_access_88);
11198   oid_add_from_string("id-ac-mts-forced-access-88", id_ac_mts_forced_access_88);
11199   oid_add_from_string("id-ac-mts-access-94", id_ac_mts_access_94);
11200   oid_add_from_string("id-ac-mts-forced-access-94", id_ac_mts_forced_access_94);
11201
11202
11203   /* Register P3 with ROS */
11204   register_ros_protocol_info(id_as_msse, &p3_ros_info, 0, "id-as-msse", FALSE); 
11205
11206   register_ros_protocol_info(id_as_mdse_88, &p3_ros_info, 0, "id-as-mdse-88", FALSE); 
11207   register_ros_protocol_info(id_as_mdse_94, &p3_ros_info, 0, "id-as-mdse-94", FALSE); 
11208
11209   register_ros_protocol_info(id_as_mase_88, &p3_ros_info, 0, "id-as-mase-88", FALSE); 
11210   register_ros_protocol_info(id_as_mase_94, &p3_ros_info, 0, "id-as-mase-94", FALSE); 
11211
11212   register_ros_protocol_info(id_as_mts, &p3_ros_info, 0, "id-as-mts", FALSE); 
11213
11214 }
11215
11216 void prefs_register_x411(void) {
11217   static guint tcp_port = 0;
11218
11219   /* de-register the old port */
11220   /* port 102 is registered by TPKT - don't undo this! */
11221   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11222     dissector_delete("tcp.port", tcp_port, tpkt_handle);
11223
11224   /* Set our port number for future use */
11225   tcp_port = global_x411_tcp_port;
11226
11227   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11228     dissector_add("tcp.port", tcp_port, tpkt_handle);
11229
11230 }