#include <string.h> and/or #include <stdio.h> not needed.
[obnox/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 -C -p x411 -c ./x411.cnf -s ./packet-x411-template -D . MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.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 "packet-ber.h"
46 #include "packet-acse.h"
47 #include "packet-ros.h"
48 #include "packet-rtse.h"
49
50 #include "packet-x509af.h"
51 #include "packet-x509ce.h"
52 #include "packet-x509if.h"
53 #include "packet-x509sat.h"
54
55 #include "packet-x411.h"
56 #include <epan/strutil.h>
57
58 #define PNAME  "X.411 Message Transfer Service"
59 #define PSNAME "X411"
60 #define PFNAME "x411"
61
62 static guint global_x411_tcp_port = 102;
63 static dissector_handle_t tpkt_handle;
64 void prefs_register_x411(void); /* forward declaration for use in preferences registration */
65
66 /* Initialize the protocol and registered fields */
67 static int proto_x411 = -1;
68 static int proto_p3 = -1;
69
70 static struct SESSION_DATA_STRUCTURE* session = NULL;
71 static int extension_id = -1; /* integer extension id */
72 static const char *object_identifier_id = NULL; /* extensions identifier */
73 static const char *content_type_id = NULL; /* content type identifier */
74
75 #define MAX_ORA_STR_LEN     256
76 static char *oraddress = NULL;
77 static char *ddatype = NULL;
78 static gboolean doing_address=FALSE;
79 static gboolean doing_subjectid=FALSE;
80 static proto_item *address_item = NULL;
81
82 static proto_tree *top_tree=NULL;
83
84 static int hf_x411_MTS_APDU_PDU = -1;
85 static int hf_x411_MTABindArgument_PDU = -1;
86 static int hf_x411_MTABindResult_PDU = -1;
87 static int hf_x411_MTABindError_PDU = -1;
88
89
90 /*--- Included file: packet-x411-hf.c ---*/
91 #line 1 "packet-x411-hf.c"
92 static int hf_x411_InternalTraceInformation_PDU = -1;  /* InternalTraceInformation */
93 static int hf_x411_InternalTraceInformationElement_PDU = -1;  /* InternalTraceInformationElement */
94 static int hf_x411_TraceInformation_PDU = -1;     /* TraceInformation */
95 static int hf_x411_TraceInformationElement_PDU = -1;  /* TraceInformationElement */
96 static int hf_x411_MTSBindArgument_PDU = -1;      /* MTSBindArgument */
97 static int hf_x411_MTSBindResult_PDU = -1;        /* MTSBindResult */
98 static int hf_x411_PAR_mts_bind_error_PDU = -1;   /* PAR_mts_bind_error */
99 static int hf_x411_MessageSubmissionArgument_PDU = -1;  /* MessageSubmissionArgument */
100 static int hf_x411_MessageSubmissionResult_PDU = -1;  /* MessageSubmissionResult */
101 static int hf_x411_ProbeSubmissionArgument_PDU = -1;  /* ProbeSubmissionArgument */
102 static int hf_x411_ProbeSubmissionResult_PDU = -1;  /* ProbeSubmissionResult */
103 static int hf_x411_CancelDeferredDeliveryArgument_PDU = -1;  /* CancelDeferredDeliveryArgument */
104 static int hf_x411_CancelDeferredDeliveryResult_PDU = -1;  /* CancelDeferredDeliveryResult */
105 static int hf_x411_SubmissionControlArgument_PDU = -1;  /* SubmissionControlArgument */
106 static int hf_x411_SubmissionControlResult_PDU = -1;  /* SubmissionControlResult */
107 static int hf_x411_PAR_submission_control_violated_PDU = -1;  /* PAR_submission_control_violated */
108 static int hf_x411_PAR_element_of_service_not_subscribed_PDU = -1;  /* PAR_element_of_service_not_subscribed */
109 static int hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU = -1;  /* PAR_deferred_delivery_cancellation_rejected */
110 static int hf_x411_PAR_originator_invalid_PDU = -1;  /* PAR_originator_invalid */
111 static int hf_x411_ImproperlySpecifiedRecipients_PDU = -1;  /* ImproperlySpecifiedRecipients */
112 static int hf_x411_PAR_message_submission_identifier_invalid_PDU = -1;  /* PAR_message_submission_identifier_invalid */
113 static int hf_x411_PAR_inconsistent_request_PDU = -1;  /* PAR_inconsistent_request */
114 static int hf_x411_SecurityProblem_PDU = -1;      /* SecurityProblem */
115 static int hf_x411_PAR_unsupported_critical_function_PDU = -1;  /* PAR_unsupported_critical_function */
116 static int hf_x411_PAR_remote_bind_error_PDU = -1;  /* PAR_remote_bind_error */
117 static int hf_x411_MessageSubmissionTime_PDU = -1;  /* MessageSubmissionTime */
118 static int hf_x411_MessageDeliveryArgument_PDU = -1;  /* MessageDeliveryArgument */
119 static int hf_x411_MessageDeliveryResult_PDU = -1;  /* MessageDeliveryResult */
120 static int hf_x411_ReportDeliveryArgument_PDU = -1;  /* ReportDeliveryArgument */
121 static int hf_x411_ReportDeliveryResult_PDU = -1;  /* ReportDeliveryResult */
122 static int hf_x411_DeliveryControlArgument_PDU = -1;  /* DeliveryControlArgument */
123 static int hf_x411_DeliveryControlResult_PDU = -1;  /* DeliveryControlResult */
124 static int hf_x411_PAR_delivery_control_violated_PDU = -1;  /* PAR_delivery_control_violated */
125 static int hf_x411_PAR_control_violates_registration_PDU = -1;  /* PAR_control_violates_registration */
126 static int hf_x411_RefusedOperation_PDU = -1;     /* RefusedOperation */
127 static int hf_x411_RecipientCertificate_PDU = -1;  /* RecipientCertificate */
128 static int hf_x411_ProofOfDelivery_PDU = -1;      /* ProofOfDelivery */
129 static int hf_x411_RegisterArgument_PDU = -1;     /* RegisterArgument */
130 static int hf_x411_RegisterResult_PDU = -1;       /* RegisterResult */
131 static int hf_x411_ChangeCredentialsArgument_PDU = -1;  /* ChangeCredentialsArgument */
132 static int hf_x411_RES_change_credentials_PDU = -1;  /* RES_change_credentials */
133 static int hf_x411_PAR_register_rejected_PDU = -1;  /* PAR_register_rejected */
134 static int hf_x411_PAR_new_credentials_unacceptable_PDU = -1;  /* PAR_new_credentials_unacceptable */
135 static int hf_x411_PAR_old_credentials_incorrectly_specified_PDU = -1;  /* PAR_old_credentials_incorrectly_specified */
136 static int hf_x411_MessageSubmissionEnvelope_PDU = -1;  /* MessageSubmissionEnvelope */
137 static int hf_x411_PerRecipientMessageSubmissionFields_PDU = -1;  /* PerRecipientMessageSubmissionFields */
138 static int hf_x411_ProbeSubmissionEnvelope_PDU = -1;  /* ProbeSubmissionEnvelope */
139 static int hf_x411_PerRecipientProbeSubmissionFields_PDU = -1;  /* PerRecipientProbeSubmissionFields */
140 static int hf_x411_MessageDeliveryEnvelope_PDU = -1;  /* MessageDeliveryEnvelope */
141 static int hf_x411_ReportDeliveryEnvelope_PDU = -1;  /* ReportDeliveryEnvelope */
142 static int hf_x411_PerRecipientReportDeliveryFields_PDU = -1;  /* PerRecipientReportDeliveryFields */
143 static int hf_x411_ExtendedContentType_PDU = -1;  /* ExtendedContentType */
144 static int hf_x411_ContentIdentifier_PDU = -1;    /* ContentIdentifier */
145 static int hf_x411_PerMessageIndicators_PDU = -1;  /* PerMessageIndicators */
146 static int hf_x411_OriginatorReportRequest_PDU = -1;  /* OriginatorReportRequest */
147 static int hf_x411_DeferredDeliveryTime_PDU = -1;  /* DeferredDeliveryTime */
148 static int hf_x411_Priority_PDU = -1;             /* Priority */
149 static int hf_x411_ContentLength_PDU = -1;        /* ContentLength */
150 static int hf_x411_MessageDeliveryTime_PDU = -1;  /* MessageDeliveryTime */
151 static int hf_x411_DeliveryFlags_PDU = -1;        /* DeliveryFlags */
152 static int hf_x411_SubjectSubmissionIdentifier_PDU = -1;  /* SubjectSubmissionIdentifier */
153 static int hf_x411_RecipientReassignmentProhibited_PDU = -1;  /* RecipientReassignmentProhibited */
154 static int hf_x411_OriginatorRequestedAlternateRecipient_PDU = -1;  /* OriginatorRequestedAlternateRecipient */
155 static int hf_x411_DLExpansionProhibited_PDU = -1;  /* DLExpansionProhibited */
156 static int hf_x411_ConversionWithLossProhibited_PDU = -1;  /* ConversionWithLossProhibited */
157 static int hf_x411_LatestDeliveryTime_PDU = -1;   /* LatestDeliveryTime */
158 static int hf_x411_RequestedDeliveryMethod_PDU = -1;  /* RequestedDeliveryMethod */
159 static int hf_x411_PhysicalForwardingProhibited_PDU = -1;  /* PhysicalForwardingProhibited */
160 static int hf_x411_PhysicalForwardingAddressRequest_PDU = -1;  /* PhysicalForwardingAddressRequest */
161 static int hf_x411_PhysicalDeliveryModes_PDU = -1;  /* PhysicalDeliveryModes */
162 static int hf_x411_RegisteredMailType_PDU = -1;   /* RegisteredMailType */
163 static int hf_x411_RecipientNumberForAdvice_PDU = -1;  /* RecipientNumberForAdvice */
164 static int hf_x411_PhysicalRenditionAttributes_PDU = -1;  /* PhysicalRenditionAttributes */
165 static int hf_x411_OriginatorReturnAddress_PDU = -1;  /* OriginatorReturnAddress */
166 static int hf_x411_PhysicalDeliveryReportRequest_PDU = -1;  /* PhysicalDeliveryReportRequest */
167 static int hf_x411_OriginatorCertificate_PDU = -1;  /* OriginatorCertificate */
168 static int hf_x411_MessageToken_PDU = -1;         /* MessageToken */
169 static int hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU = -1;  /* ContentConfidentialityAlgorithmIdentifier */
170 static int hf_x411_ContentIntegrityCheck_PDU = -1;  /* ContentIntegrityCheck */
171 static int hf_x411_MessageOriginAuthenticationCheck_PDU = -1;  /* MessageOriginAuthenticationCheck */
172 static int hf_x411_MessageSecurityLabel_PDU = -1;  /* MessageSecurityLabel */
173 static int hf_x411_ProofOfSubmissionRequest_PDU = -1;  /* ProofOfSubmissionRequest */
174 static int hf_x411_ProofOfDeliveryRequest_PDU = -1;  /* ProofOfDeliveryRequest */
175 static int hf_x411_ContentCorrelator_PDU = -1;    /* ContentCorrelator */
176 static int hf_x411_ProbeOriginAuthenticationCheck_PDU = -1;  /* ProbeOriginAuthenticationCheck */
177 static int hf_x411_RedirectionHistory_PDU = -1;   /* RedirectionHistory */
178 static int hf_x411_Redirection_PDU = -1;          /* Redirection */
179 static int hf_x411_DLExpansionHistory_PDU = -1;   /* DLExpansionHistory */
180 static int hf_x411_DLExpansion_PDU = -1;          /* DLExpansion */
181 static int hf_x411_PhysicalForwardingAddress_PDU = -1;  /* PhysicalForwardingAddress */
182 static int hf_x411_OriginatorAndDLExpansionHistory_PDU = -1;  /* OriginatorAndDLExpansionHistory */
183 static int hf_x411_ReportingDLName_PDU = -1;      /* ReportingDLName */
184 static int hf_x411_ReportingMTACertificate_PDU = -1;  /* ReportingMTACertificate */
185 static int hf_x411_ReportOriginAuthenticationCheck_PDU = -1;  /* ReportOriginAuthenticationCheck */
186 static int hf_x411_OriginatingMTACertificate_PDU = -1;  /* OriginatingMTACertificate */
187 static int hf_x411_ProofOfSubmission_PDU = -1;    /* ProofOfSubmission */
188 static int hf_x411_ReportingMTAName_PDU = -1;     /* ReportingMTAName */
189 static int hf_x411_ExtendedCertificates_PDU = -1;  /* ExtendedCertificates */
190 static int hf_x411_DLExemptedRecipients_PDU = -1;  /* DLExemptedRecipients */
191 static int hf_x411_CertificateSelectors_PDU = -1;  /* CertificateSelectors */
192 static int hf_x411_Content_PDU = -1;              /* Content */
193 static int hf_x411_MTSIdentifier_PDU = -1;        /* MTSIdentifier */
194 static int hf_x411_ORName_PDU = -1;               /* ORName */
195 static int hf_x411_ORAddress_PDU = -1;            /* ORAddress */
196 static int hf_x411_CommonName_PDU = -1;           /* CommonName */
197 static int hf_x411_TeletexCommonName_PDU = -1;    /* TeletexCommonName */
198 static int hf_x411_UniversalCommonName_PDU = -1;  /* UniversalCommonName */
199 static int hf_x411_TeletexOrganizationName_PDU = -1;  /* TeletexOrganizationName */
200 static int hf_x411_UniversalOrganizationName_PDU = -1;  /* UniversalOrganizationName */
201 static int hf_x411_TeletexPersonalName_PDU = -1;  /* TeletexPersonalName */
202 static int hf_x411_UniversalPersonalName_PDU = -1;  /* UniversalPersonalName */
203 static int hf_x411_TeletexOrganizationalUnitNames_PDU = -1;  /* TeletexOrganizationalUnitNames */
204 static int hf_x411_UniversalOrganizationalUnitNames_PDU = -1;  /* UniversalOrganizationalUnitNames */
205 static int hf_x411_PDSName_PDU = -1;              /* PDSName */
206 static int hf_x411_PhysicalDeliveryCountryName_PDU = -1;  /* PhysicalDeliveryCountryName */
207 static int hf_x411_PostalCode_PDU = -1;           /* PostalCode */
208 static int hf_x411_PhysicalDeliveryOfficeName_PDU = -1;  /* PhysicalDeliveryOfficeName */
209 static int hf_x411_UniversalPhysicalDeliveryOfficeName_PDU = -1;  /* UniversalPhysicalDeliveryOfficeName */
210 static int hf_x411_PhysicalDeliveryOfficeNumber_PDU = -1;  /* PhysicalDeliveryOfficeNumber */
211 static int hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU = -1;  /* UniversalPhysicalDeliveryOfficeNumber */
212 static int hf_x411_ExtensionORAddressComponents_PDU = -1;  /* ExtensionORAddressComponents */
213 static int hf_x411_UniversalExtensionORAddressComponents_PDU = -1;  /* UniversalExtensionORAddressComponents */
214 static int hf_x411_PhysicalDeliveryPersonalName_PDU = -1;  /* PhysicalDeliveryPersonalName */
215 static int hf_x411_UniversalPhysicalDeliveryPersonalName_PDU = -1;  /* UniversalPhysicalDeliveryPersonalName */
216 static int hf_x411_PhysicalDeliveryOrganizationName_PDU = -1;  /* PhysicalDeliveryOrganizationName */
217 static int hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU = -1;  /* UniversalPhysicalDeliveryOrganizationName */
218 static int hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* ExtensionPhysicalDeliveryAddressComponents */
219 static int hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* UniversalExtensionPhysicalDeliveryAddressComponents */
220 static int hf_x411_UnformattedPostalAddress_PDU = -1;  /* UnformattedPostalAddress */
221 static int hf_x411_UniversalUnformattedPostalAddress_PDU = -1;  /* UniversalUnformattedPostalAddress */
222 static int hf_x411_StreetAddress_PDU = -1;        /* StreetAddress */
223 static int hf_x411_UniversalStreetAddress_PDU = -1;  /* UniversalStreetAddress */
224 static int hf_x411_PostOfficeBoxAddress_PDU = -1;  /* PostOfficeBoxAddress */
225 static int hf_x411_UniversalPostOfficeBoxAddress_PDU = -1;  /* UniversalPostOfficeBoxAddress */
226 static int hf_x411_PosteRestanteAddress_PDU = -1;  /* PosteRestanteAddress */
227 static int hf_x411_UniversalPosteRestanteAddress_PDU = -1;  /* UniversalPosteRestanteAddress */
228 static int hf_x411_UniquePostalName_PDU = -1;     /* UniquePostalName */
229 static int hf_x411_UniversalUniquePostalName_PDU = -1;  /* UniversalUniquePostalName */
230 static int hf_x411_LocalPostalAttributes_PDU = -1;  /* LocalPostalAttributes */
231 static int hf_x411_UniversalLocalPostalAttributes_PDU = -1;  /* UniversalLocalPostalAttributes */
232 static int hf_x411_ExtendedNetworkAddress_PDU = -1;  /* ExtendedNetworkAddress */
233 static int hf_x411_TerminalType_PDU = -1;         /* TerminalType */
234 static int hf_x411_TeletexDomainDefinedAttributes_PDU = -1;  /* TeletexDomainDefinedAttributes */
235 static int hf_x411_UniversalDomainDefinedAttributes_PDU = -1;  /* UniversalDomainDefinedAttributes */
236 static int hf_x411_ExtendedEncodedInformationType_PDU = -1;  /* ExtendedEncodedInformationType */
237 static int hf_x411_MTANameAndOptionalGDI_PDU = -1;  /* MTANameAndOptionalGDI */
238 static int hf_x411_AsymmetricToken_PDU = -1;      /* AsymmetricToken */
239 static int hf_x411_BindTokenSignedData_PDU = -1;  /* BindTokenSignedData */
240 static int hf_x411_MessageTokenSignedData_PDU = -1;  /* MessageTokenSignedData */
241 static int hf_x411_MessageTokenEncryptedData_PDU = -1;  /* MessageTokenEncryptedData */
242 static int hf_x411_BindTokenEncryptedData_PDU = -1;  /* BindTokenEncryptedData */
243 static int hf_x411_SecurityClassification_PDU = -1;  /* SecurityClassification */
244 static int hf_x411_unauthenticated = -1;          /* NULL */
245 static int hf_x411_authenticated_argument = -1;   /* AuthenticatedArgument */
246 static int hf_x411_authenticated_initiator_name = -1;  /* MTAName */
247 static int hf_x411_initiator_credentials = -1;    /* InitiatorCredentials */
248 static int hf_x411_security_context = -1;         /* SecurityContext */
249 static int hf_x411_authenticated_result = -1;     /* AuthenticatedResult */
250 static int hf_x411_authenticated_responder_name = -1;  /* MTAName */
251 static int hf_x411_responder_credentials = -1;    /* ResponderCredentials */
252 static int hf_x411_message = -1;                  /* Message */
253 static int hf_x411_probe = -1;                    /* Probe */
254 static int hf_x411_report = -1;                   /* Report */
255 static int hf_x411_message_envelope = -1;         /* MessageTransferEnvelope */
256 static int hf_x411_content = -1;                  /* Content */
257 static int hf_x411_report_envelope = -1;          /* ReportTransferEnvelope */
258 static int hf_x411_report_content = -1;           /* ReportTransferContent */
259 static int hf_x411_message_identifier = -1;       /* MessageIdentifier */
260 static int hf_x411_originator_name = -1;          /* MTAOriginatorName */
261 static int hf_x411_original_encoded_information_types = -1;  /* OriginalEncodedInformationTypes */
262 static int hf_x411_content_type = -1;             /* ContentType */
263 static int hf_x411_content_identifier = -1;       /* ContentIdentifier */
264 static int hf_x411_priority = -1;                 /* Priority */
265 static int hf_x411_per_message_indicators = -1;   /* PerMessageIndicators */
266 static int hf_x411_deferred_delivery_time = -1;   /* DeferredDeliveryTime */
267 static int hf_x411_per_domain_bilateral_information = -1;  /* SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation */
268 static int hf_x411_per_domain_bilateral_information_item = -1;  /* PerDomainBilateralInformation */
269 static int hf_x411_trace_information = -1;        /* TraceInformation */
270 static int hf_x411_extensions = -1;               /* SET_OF_ExtensionField */
271 static int hf_x411_extensions_item = -1;          /* ExtensionField */
272 static int hf_x411_recipient_name = -1;           /* MTARecipientName */
273 static int hf_x411_originally_specified_recipient_number = -1;  /* OriginallySpecifiedRecipientNumber */
274 static int hf_x411_per_recipient_indicators = -1;  /* PerRecipientIndicators */
275 static int hf_x411_explicit_conversion = -1;      /* ExplicitConversion */
276 static int hf_x411_probe_identifier = -1;         /* ProbeIdentifier */
277 static int hf_x411_content_length = -1;           /* ContentLength */
278 static int hf_x411_report_identifier = -1;        /* ReportIdentifier */
279 static int hf_x411_report_destination_name = -1;  /* ReportDestinationName */
280 static int hf_x411_subject_identifier = -1;       /* SubjectIdentifier */
281 static int hf_x411_subject_intermediate_trace_information = -1;  /* SubjectIntermediateTraceInformation */
282 static int hf_x411_returned_content = -1;         /* Content */
283 static int hf_x411_additional_information = -1;   /* AdditionalInformation */
284 static int hf_x411_mta_actual_recipient_name = -1;  /* MTAActualRecipientName */
285 static int hf_x411_last_trace_information = -1;   /* LastTraceInformation */
286 static int hf_x411_report_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
287 static int hf_x411_supplementary_information = -1;  /* SupplementaryInformation */
288 static int hf_x411_country_name = -1;             /* CountryName */
289 static int hf_x411_bilateral_domain = -1;         /* T_bilateral_domain */
290 static int hf_x411_administration_domain_name = -1;  /* AdministrationDomainName */
291 static int hf_x411_private_domain = -1;           /* T_private_domain */
292 static int hf_x411_private_domain_identifier = -1;  /* PrivateDomainIdentifier */
293 static int hf_x411_bilateral_information = -1;    /* T_bilateral_information */
294 static int hf_x411_domain = -1;                   /* T_domain */
295 static int hf_x411_private_domain_01 = -1;        /* T_private_domain_01 */
296 static int hf_x411_arrival_time = -1;             /* ArrivalTime */
297 static int hf_x411_converted_encoded_information_types = -1;  /* ConvertedEncodedInformationTypes */
298 static int hf_x411_trace_report_type = -1;        /* ReportType */
299 static int hf_x411_InternalTraceInformation_item = -1;  /* InternalTraceInformationElement */
300 static int hf_x411_global_domain_identifier = -1;  /* GlobalDomainIdentifier */
301 static int hf_x411_mta_name = -1;                 /* MTAName */
302 static int hf_x411_mta_supplied_information = -1;  /* MTASuppliedInformation */
303 static int hf_x411__untag_item = -1;              /* TraceInformationElement */
304 static int hf_x411_domain_supplied_information = -1;  /* DomainSuppliedInformation */
305 static int hf_x411_deferred_time = -1;            /* DeferredTime */
306 static int hf_x411_other_actions = -1;            /* OtherActions */
307 static int hf_x411_initiator_name = -1;           /* ObjectName */
308 static int hf_x411_messages_waiting = -1;         /* MessagesWaiting */
309 static int hf_x411_responder_name = -1;           /* ObjectName */
310 static int hf_x411_user_agent = -1;               /* ORAddressAndOptionalDirectoryName */
311 static int hf_x411_mTA = -1;                      /* MTAName */
312 static int hf_x411_message_store = -1;            /* ORAddressAndOptionalDirectoryName */
313 static int hf_x411_urgent = -1;                   /* DeliveryQueue */
314 static int hf_x411_normal = -1;                   /* DeliveryQueue */
315 static int hf_x411_non_urgent = -1;               /* DeliveryQueue */
316 static int hf_x411_messages = -1;                 /* INTEGER_0_ub_queue_size */
317 static int hf_x411_delivery_queue_octets = -1;    /* INTEGER_0_ub_content_length */
318 static int hf_x411_simple = -1;                   /* Password */
319 static int hf_x411_strong = -1;                   /* StrongCredentials */
320 static int hf_x411_protected = -1;                /* ProtectedPassword */
321 static int hf_x411_ia5_string = -1;               /* IA5String_SIZE_0_ub_password_length */
322 static int hf_x411_octet_string = -1;             /* OCTET_STRING_SIZE_0_ub_password_length */
323 static int hf_x411_bind_token = -1;               /* Token */
324 static int hf_x411_certificate = -1;              /* Certificates */
325 static int hf_x411_certificate_selector = -1;     /* CertificateAssertion */
326 static int hf_x411_signature = -1;                /* Signature */
327 static int hf_x411_time1 = -1;                    /* UTCTime */
328 static int hf_x411_time2 = -1;                    /* UTCTime */
329 static int hf_x411_random1 = -1;                  /* BIT_STRING */
330 static int hf_x411_random2 = -1;                  /* BIT_STRING */
331 static int hf_x411_algorithmIdentifier = -1;      /* AlgorithmIdentifier */
332 static int hf_x411_encrypted = -1;                /* BIT_STRING */
333 static int hf_x411_SecurityContext_item = -1;     /* SecurityLabel */
334 static int hf_x411_message_submission_envelope = -1;  /* MessageSubmissionEnvelope */
335 static int hf_x411_message_submission_identifier = -1;  /* MessageSubmissionIdentifier */
336 static int hf_x411_message_submission_time = -1;  /* MessageSubmissionTime */
337 static int hf_x411_probe_submission_identifier = -1;  /* ProbeSubmissionIdentifier */
338 static int hf_x411_probe_submission_time = -1;    /* ProbeSubmissionTime */
339 static int hf_x411_ImproperlySpecifiedRecipients_item = -1;  /* RecipientName */
340 static int hf_x411_waiting_operations = -1;       /* Operations */
341 static int hf_x411_waiting_messages = -1;         /* WaitingMessages */
342 static int hf_x411_waiting_content_types = -1;    /* SET_SIZE_0_ub_content_types_OF_ContentType */
343 static int hf_x411_waiting_content_types_item = -1;  /* ContentType */
344 static int hf_x411_waiting_encoded_information_types = -1;  /* EncodedInformationTypes */
345 static int hf_x411_recipient_certificate = -1;    /* RecipientCertificate */
346 static int hf_x411_proof_of_delivery = -1;        /* ProofOfDelivery */
347 static int hf_x411_empty_result = -1;             /* NULL */
348 static int hf_x411_max_extensions = -1;           /* SET_SIZE_1_MAX_OF_ExtensionField */
349 static int hf_x411_max_extensions_item = -1;      /* ExtensionField */
350 static int hf_x411_restrict = -1;                 /* BOOLEAN */
351 static int hf_x411_permissible_operations = -1;   /* Operations */
352 static int hf_x411_permissible_maximum_content_length = -1;  /* ContentLength */
353 static int hf_x411_permissible_lowest_priority = -1;  /* Priority */
354 static int hf_x411_permissible_content_types = -1;  /* ContentTypes */
355 static int hf_x411_permissible_encoded_information_types = -1;  /* PermissibleEncodedInformationTypes */
356 static int hf_x411_permissible_security_context = -1;  /* SecurityContext */
357 static int hf_x411_refused_argument = -1;         /* T_refused_argument */
358 static int hf_x411_built_in_argument = -1;        /* RefusedArgument */
359 static int hf_x411_refused_extension = -1;        /* T_refused_extension */
360 static int hf_x411_refusal_reason = -1;           /* RefusalReason */
361 static int hf_x411_user_name = -1;                /* UserName */
362 static int hf_x411_user_address = -1;             /* UserAddress */
363 static int hf_x411_deliverable_class = -1;        /* SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass */
364 static int hf_x411_deliverable_class_item = -1;   /* DeliverableClass */
365 static int hf_x411_default_delivery_controls = -1;  /* DefaultDeliveryControls */
366 static int hf_x411_redirections = -1;             /* Redirections */
367 static int hf_x411_restricted_delivery = -1;      /* RestrictedDelivery */
368 static int hf_x411_retrieve_registrations = -1;   /* RegistrationTypes */
369 static int hf_x411_non_empty_result = -1;         /* T_non_empty_result */
370 static int hf_x411_registered_information = -1;   /* RegisterArgument */
371 static int hf_x411_old_credentials = -1;          /* Credentials */
372 static int hf_x411_new_credentials = -1;          /* Credentials */
373 static int hf_x411_x121 = -1;                     /* T_x121 */
374 static int hf_x411_x121_address = -1;             /* T_x121_address */
375 static int hf_x411_tsap_id = -1;                  /* PrintableString_SIZE_1_ub_tsap_id_length */
376 static int hf_x411_presentation = -1;             /* PSAPAddress */
377 static int hf_x411_Redirections_item = -1;        /* RecipientRedirection */
378 static int hf_x411_redirection_classes = -1;      /* SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass */
379 static int hf_x411_redirection_classes_item = -1;  /* RedirectionClass */
380 static int hf_x411_recipient_assigned_alternate_recipient = -1;  /* RecipientAssignedAlternateRecipient */
381 static int hf_x411_content_types = -1;            /* ContentTypes */
382 static int hf_x411_maximum_content_length = -1;   /* ContentLength */
383 static int hf_x411_encoded_information_types_constraints = -1;  /* EncodedInformationTypesConstraints */
384 static int hf_x411_security_labels = -1;          /* SecurityContext */
385 static int hf_x411_class_priority = -1;           /* SET_OF_Priority */
386 static int hf_x411_class_priority_item = -1;      /* Priority */
387 static int hf_x411_objects = -1;                  /* T_objects */
388 static int hf_x411_applies_only_to = -1;          /* SEQUENCE_OF_Restriction */
389 static int hf_x411_applies_only_to_item = -1;     /* Restriction */
390 static int hf_x411_unacceptable_eits = -1;        /* ExtendedEncodedInformationTypes */
391 static int hf_x411_acceptable_eits = -1;          /* ExtendedEncodedInformationTypes */
392 static int hf_x411_exclusively_acceptable_eits = -1;  /* ExtendedEncodedInformationTypes */
393 static int hf_x411_RestrictedDelivery_item = -1;  /* Restriction */
394 static int hf_x411_permitted = -1;                /* BOOLEAN */
395 static int hf_x411_source_type = -1;              /* T_source_type */
396 static int hf_x411_source_name = -1;              /* ExactOrPattern */
397 static int hf_x411_exact_match = -1;              /* ORName */
398 static int hf_x411_pattern_match = -1;            /* ORName */
399 static int hf_x411_standard_parameters = -1;      /* T_standard_parameters */
400 static int hf_x411_type_extensions = -1;          /* T_type_extensions */
401 static int hf_x411_type_extensions_item = -1;     /* T_type_extensions_item */
402 static int hf_x411_originator_name_01 = -1;       /* OriginatorName */
403 static int hf_x411_submission_recipient_name = -1;  /* RecipientName */
404 static int hf_x411_originator_report_request = -1;  /* OriginatorReportRequest */
405 static int hf_x411_probe_recipient_name = -1;     /* RecipientName */
406 static int hf_x411_message_delivery_identifier = -1;  /* MessageDeliveryIdentifier */
407 static int hf_x411_message_delivery_time = -1;    /* MessageDeliveryTime */
408 static int hf_x411_other_fields = -1;             /* OtherMessageDeliveryFields */
409 static int hf_x411_delivered_content_type = -1;   /* DeliveredContentType */
410 static int hf_x411_delivered_originator_name = -1;  /* DeliveredOriginatorName */
411 static int hf_x411_delivery_flags = -1;           /* DeliveryFlags */
412 static int hf_x411_other_recipient_names = -1;    /* OtherRecipientNames */
413 static int hf_x411_this_recipient_name = -1;      /* ThisRecipientName */
414 static int hf_x411_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
415 static int hf_x411_subject_submission_identifier = -1;  /* SubjectSubmissionIdentifier */
416 static int hf_x411_actual_recipient_name = -1;    /* ActualRecipientName */
417 static int hf_x411_delivery_report_type = -1;     /* ReportType */
418 static int hf_x411_delivery = -1;                 /* DeliveryReport */
419 static int hf_x411_non_delivery = -1;             /* NonDeliveryReport */
420 static int hf_x411_type_of_MTS_user = -1;         /* TypeOfMTSUser */
421 static int hf_x411_non_delivery_reason_code = -1;  /* NonDeliveryReasonCode */
422 static int hf_x411_non_delivery_diagnostic_code = -1;  /* NonDeliveryDiagnosticCode */
423 static int hf_x411_ContentTypes_item = -1;        /* ContentType */
424 static int hf_x411_built_in = -1;                 /* BuiltInContentType */
425 static int hf_x411_extended = -1;                 /* ExtendedContentType */
426 static int hf_x411_OtherRecipientNames_item = -1;  /* OtherRecipientName */
427 static int hf_x411_standard_extension = -1;       /* StandardExtension */
428 static int hf_x411_private_extension = -1;        /* T_private_extension */
429 static int hf_x411_extension_type = -1;           /* ExtensionType */
430 static int hf_x411_criticality = -1;              /* Criticality */
431 static int hf_x411_extension_value = -1;          /* ExtensionValue */
432 static int hf_x411_RequestedDeliveryMethod_item = -1;  /* RequestedDeliveryMethod_item */
433 static int hf_x411_ia5text = -1;                  /* IA5String */
434 static int hf_x411_octets = -1;                   /* OCTET_STRING */
435 static int hf_x411_RedirectionHistory_item = -1;  /* Redirection */
436 static int hf_x411_intended_recipient_name = -1;  /* IntendedRecipientName */
437 static int hf_x411_redirection_reason = -1;       /* RedirectionReason */
438 static int hf_x411_intended_recipient = -1;       /* ORAddressAndOptionalDirectoryName */
439 static int hf_x411_redirection_time = -1;         /* Time */
440 static int hf_x411_DLExpansionHistory_item = -1;  /* DLExpansion */
441 static int hf_x411_dl = -1;                       /* ORAddressAndOptionalDirectoryName */
442 static int hf_x411_dl_expansion_time = -1;        /* Time */
443 static int hf_x411_OriginatorAndDLExpansionHistory_item = -1;  /* OriginatorAndDLExpansion */
444 static int hf_x411_originator_or_dl_name = -1;    /* ORAddressAndOptionalDirectoryName */
445 static int hf_x411_origination_or_expansion_time = -1;  /* Time */
446 static int hf_x411_report_type = -1;              /* T_report_type */
447 static int hf_x411_report_type_delivery = -1;     /* PerRecipientDeliveryReportFields */
448 static int hf_x411_non_delivery_report = -1;      /* PerRecipientNonDeliveryReportFields */
449 static int hf_x411_domain_01 = -1;                /* GlobalDomainIdentifier */
450 static int hf_x411_mta_directory_name = -1;       /* Name */
451 static int hf_x411_ExtendedCertificates_item = -1;  /* ExtendedCertificate */
452 static int hf_x411_directory_entry = -1;          /* Name */
453 static int hf_x411_DLExemptedRecipients_item = -1;  /* ORAddressAndOrDirectoryName */
454 static int hf_x411_encryption_recipient = -1;     /* CertificateAssertion */
455 static int hf_x411_encryption_originator = -1;    /* CertificateAssertion */
456 static int hf_x411_selectors_content_integrity_check = -1;  /* CertificateAssertion */
457 static int hf_x411_token_signature = -1;          /* CertificateAssertion */
458 static int hf_x411_message_origin_authentication = -1;  /* CertificateAssertion */
459 static int hf_x411_local_identifier = -1;         /* LocalIdentifier */
460 static int hf_x411_numeric_private_domain_identifier = -1;  /* T_numeric_private_domain_identifier */
461 static int hf_x411_printable_private_domain_identifier = -1;  /* T_printable_private_domain_identifier */
462 static int hf_x411_built_in_standard_attributes = -1;  /* BuiltInStandardAttributes */
463 static int hf_x411_built_in_domain_defined_attributes = -1;  /* BuiltInDomainDefinedAttributes */
464 static int hf_x411_extension_attributes = -1;     /* ExtensionAttributes */
465 static int hf_x411_network_address = -1;          /* NetworkAddress */
466 static int hf_x411_terminal_identifier = -1;      /* TerminalIdentifier */
467 static int hf_x411_private_domain_name = -1;      /* PrivateDomainName */
468 static int hf_x411_organization_name = -1;        /* OrganizationName */
469 static int hf_x411_numeric_user_identifier = -1;  /* NumericUserIdentifier */
470 static int hf_x411_personal_name = -1;            /* PersonalName */
471 static int hf_x411_organizational_unit_names = -1;  /* OrganizationalUnitNames */
472 static int hf_x411_x121_dcc_code = -1;            /* T_x121_dcc_code */
473 static int hf_x411_iso_3166_alpha2_code = -1;     /* T_iso_3166_alpha2_code */
474 static int hf_x411_numeric = -1;                  /* T_numeric */
475 static int hf_x411_printable = -1;                /* T_printable */
476 static int hf_x411_numeric_private_domain_name = -1;  /* T_numeric_private_domain_name */
477 static int hf_x411_printable_private_domain_name = -1;  /* T_printable_private_domain_name */
478 static int hf_x411_printable_surname = -1;        /* T_printable_surname */
479 static int hf_x411_printable_given_name = -1;     /* T_printable_given_name */
480 static int hf_x411_printable_initials = -1;       /* T_printable_initials */
481 static int hf_x411_printable_generation_qualifier = -1;  /* T_printable_generation_qualifier */
482 static int hf_x411_OrganizationalUnitNames_item = -1;  /* OrganizationalUnitName */
483 static int hf_x411_BuiltInDomainDefinedAttributes_item = -1;  /* BuiltInDomainDefinedAttribute */
484 static int hf_x411_printable_type = -1;           /* T_printable_type */
485 static int hf_x411_printable_value = -1;          /* T_printable_value */
486 static int hf_x411_ExtensionAttributes_item = -1;  /* ExtensionAttribute */
487 static int hf_x411_extension_attribute_type = -1;  /* ExtensionAttributeType */
488 static int hf_x411_extension_attribute_value = -1;  /* T_extension_attribute_value */
489 static int hf_x411_teletex_surname = -1;          /* T_teletex_surname */
490 static int hf_x411_teletex_given_name = -1;       /* T_teletex_given_name */
491 static int hf_x411_teletex_initials = -1;         /* T_teletex_initials */
492 static int hf_x411_teletex_generation_qualifier = -1;  /* T_teletex_generation_qualifier */
493 static int hf_x411_universal_surname = -1;        /* UniversalOrBMPString */
494 static int hf_x411_universal_given_name = -1;     /* UniversalOrBMPString */
495 static int hf_x411_universal_initials = -1;       /* UniversalOrBMPString */
496 static int hf_x411_universal_generation_qualifier = -1;  /* UniversalOrBMPString */
497 static int hf_x411_TeletexOrganizationalUnitNames_item = -1;  /* TeletexOrganizationalUnitName */
498 static int hf_x411_UniversalOrganizationalUnitNames_item = -1;  /* UniversalOrganizationalUnitName */
499 static int hf_x411_character_encoding = -1;       /* T_character_encoding */
500 static int hf_x411_two_octets = -1;               /* BMPString_SIZE_1_ub_string_length */
501 static int hf_x411_four_octets = -1;              /* UniversalString_SIZE_1_ub_string_length */
502 static int hf_x411_iso_639_language_code = -1;    /* PrintableString_SIZE_CONSTR32534896 */
503 static int hf_x411_x121_dcc_code_01 = -1;         /* T_x121_dcc_code_01 */
504 static int hf_x411_iso_3166_alpha2_code_01 = -1;  /* T_iso_3166_alpha2_code_01 */
505 static int hf_x411_numeric_code = -1;             /* T_numeric_code */
506 static int hf_x411_printable_code = -1;           /* PrintableString_SIZE_1_ub_postal_code_length */
507 static int hf_x411_printable_address = -1;        /* T_printable_address */
508 static int hf_x411_printable_address_item = -1;   /* PrintableString_SIZE_1_ub_pds_parameter_length */
509 static int hf_x411_teletex_string = -1;           /* TeletexString_SIZE_1_ub_unformatted_address_length */
510 static int hf_x411_printable_string = -1;         /* PrintableString_SIZE_1_ub_pds_parameter_length */
511 static int hf_x411_pds_teletex_string = -1;       /* TeletexString_SIZE_1_ub_pds_parameter_length */
512 static int hf_x411_e163_4_address = -1;           /* T_e163_4_address */
513 static int hf_x411_number = -1;                   /* NumericString_SIZE_1_ub_e163_4_number_length */
514 static int hf_x411_sub_address = -1;              /* NumericString_SIZE_1_ub_e163_4_sub_address_length */
515 static int hf_x411_psap_address = -1;             /* PresentationAddress */
516 static int hf_x411_TeletexDomainDefinedAttributes_item = -1;  /* TeletexDomainDefinedAttribute */
517 static int hf_x411_type = -1;                     /* T_type */
518 static int hf_x411_teletex_value = -1;            /* T_teletex_value */
519 static int hf_x411_UniversalDomainDefinedAttributes_item = -1;  /* UniversalDomainDefinedAttribute */
520 static int hf_x411_universal_type = -1;           /* UniversalOrBMPString */
521 static int hf_x411_universal_value = -1;          /* UniversalOrBMPString */
522 static int hf_x411_ExtendedEncodedInformationTypes_item = -1;  /* ExtendedEncodedInformationType */
523 static int hf_x411_g3_facsimile = -1;             /* G3FacsimileNonBasicParameters */
524 static int hf_x411_teletex = -1;                  /* TeletexNonBasicParameters */
525 static int hf_x411_graphic_character_sets = -1;   /* TeletexString */
526 static int hf_x411_control_character_sets = -1;   /* TeletexString */
527 static int hf_x411_page_formats = -1;             /* OCTET_STRING */
528 static int hf_x411_miscellaneous_terminal_capabilities = -1;  /* TeletexString */
529 static int hf_x411_private_use = -1;              /* OCTET_STRING */
530 static int hf_x411_token_type_identifier = -1;    /* TokenTypeIdentifier */
531 static int hf_x411_token = -1;                    /* TokenTypeData */
532 static int hf_x411_signature_algorithm_identifier = -1;  /* AlgorithmIdentifier */
533 static int hf_x411_name = -1;                     /* T_name */
534 static int hf_x411_token_recipient_name = -1;     /* RecipientName */
535 static int hf_x411_token_mta = -1;                /* MTANameAndOptionalGDI */
536 static int hf_x411_time = -1;                     /* Time */
537 static int hf_x411_signed_data = -1;              /* TokenData */
538 static int hf_x411_encryption_algorithm_identifier = -1;  /* AlgorithmIdentifier */
539 static int hf_x411_encrypted_data = -1;           /* BIT_STRING */
540 static int hf_x411_asymmetric_token_data = -1;    /* AsymmetricTokenData */
541 static int hf_x411_algorithm_identifier = -1;     /* AlgorithmIdentifier */
542 static int hf_x411_token_data_type = -1;          /* TokenDataType */
543 static int hf_x411_value = -1;                    /* T_value */
544 static int hf_x411_content_confidentiality_algorithm_identifier = -1;  /* ContentConfidentialityAlgorithmIdentifier */
545 static int hf_x411_content_integrity_check = -1;  /* ContentIntegrityCheck */
546 static int hf_x411_message_security_label = -1;   /* MessageSecurityLabel */
547 static int hf_x411_proof_of_delivery_request = -1;  /* ProofOfDeliveryRequest */
548 static int hf_x411_message_sequence_number = -1;  /* INTEGER */
549 static int hf_x411_content_confidentiality_key = -1;  /* EncryptionKey */
550 static int hf_x411_content_integrity_key = -1;    /* EncryptionKey */
551 static int hf_x411_security_policy_identifier = -1;  /* SecurityPolicyIdentifier */
552 static int hf_x411_security_classification = -1;  /* SecurityClassification */
553 static int hf_x411_privacy_mark = -1;             /* PrivacyMark */
554 static int hf_x411_security_categories = -1;      /* SecurityCategories */
555 static int hf_x411_SecurityCategories_item = -1;  /* SecurityCategory */
556 static int hf_x411_category_type = -1;            /* SecurityCategoryIdentifier */
557 static int hf_x411_category_value = -1;           /* CategoryValue */
558 static int hf_x411_rtorq_apdu = -1;               /* RTORQapdu */
559 static int hf_x411_rtoac_apdu = -1;               /* RTOACapdu */
560 static int hf_x411_rtorj_apdu = -1;               /* RTORJapdu */
561 static int hf_x411_rttp_apdu = -1;                /* RTTPapdu */
562 static int hf_x411_rttr_apdu = -1;                /* RTTRapdu */
563 static int hf_x411_rtab_apdu = -1;                /* RTABapdu */
564 static int hf_x411_abortReason = -1;              /* AbortReason */
565 static int hf_x411_reflectedParameter = -1;       /* BIT_STRING */
566 static int hf_x411_userdataAB = -1;               /* OBJECT_IDENTIFIER */
567 static int hf_x411_mta_originator_name = -1;      /* MTAOriginatorName */
568 static int hf_x411_per_recipient_message_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields */
569 static int hf_x411_per_recipient_message_fields_item = -1;  /* PerRecipientMessageTransferFields */
570 static int hf_x411_per_recipient_probe_transfer_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields */
571 static int hf_x411_per_recipient_probe_transfer_fields_item = -1;  /* PerRecipientProbeTransferFields */
572 static int hf_x411_per_recipient_report_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields */
573 static int hf_x411_per_recipient_report_fields_item = -1;  /* PerRecipientReportTransferFields */
574 static int hf_x411_routing_action = -1;           /* RoutingAction */
575 static int hf_x411_attempted = -1;                /* T_attempted */
576 static int hf_x411_mta = -1;                      /* MTAName */
577 static int hf_x411_attempted_domain = -1;         /* GlobalDomainIdentifier */
578 static int hf_x411_per_recipient_report_delivery_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields */
579 static int hf_x411_per_recipient_report_delivery_fields_item = -1;  /* PerRecipientReportDeliveryFields */
580 static int hf_x411_mts_originator_name = -1;      /* OriginatorName */
581 static int hf_x411_per_recipient_message_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields */
582 static int hf_x411_per_recipient_message_submission_fields_item = -1;  /* PerRecipientMessageSubmissionFields */
583 static int hf_x411_per_recipient_probe_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields */
584 static int hf_x411_per_recipient_probe_submission_fields_item = -1;  /* PerRecipientProbeSubmissionFields */
585 static int hf_x411_directory_name = -1;           /* Name */
586 static int hf_x411_built_in_encoded_information_types = -1;  /* BuiltInEncodedInformationTypes */
587 static int hf_x411_extended_encoded_information_types = -1;  /* ExtendedEncodedInformationTypes */
588 /* named bits */
589 static int hf_x411_PerRecipientIndicators_responsibility = -1;
590 static int hf_x411_PerRecipientIndicators_originating_MTA_report = -1;
591 static int hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report = -1;
592 static int hf_x411_PerRecipientIndicators_originator_report = -1;
593 static int hf_x411_PerRecipientIndicators_originator_non_delivery_report = -1;
594 static int hf_x411_PerRecipientIndicators_reserved_5 = -1;
595 static int hf_x411_PerRecipientIndicators_reserved_6 = -1;
596 static int hf_x411_PerRecipientIndicators_reserved_7 = -1;
597 static int hf_x411_OtherActions_redirected = -1;
598 static int hf_x411_OtherActions_dl_operation = -1;
599 static int hf_x411_Operations_probe_submission_or_report_delivery = -1;
600 static int hf_x411_Operations_message_submission_or_message_delivery = -1;
601 static int hf_x411_WaitingMessages_long_content = -1;
602 static int hf_x411_WaitingMessages_low_priority = -1;
603 static int hf_x411_WaitingMessages_other_security_labels = -1;
604 static int hf_x411_T_source_type_originated_by = -1;
605 static int hf_x411_T_source_type_redirected_by = -1;
606 static int hf_x411_T_source_type_dl_expanded_by = -1;
607 static int hf_x411_T_standard_parameters_user_name = -1;
608 static int hf_x411_T_standard_parameters_user_address = -1;
609 static int hf_x411_T_standard_parameters_deliverable_class = -1;
610 static int hf_x411_T_standard_parameters_default_delivery_controls = -1;
611 static int hf_x411_T_standard_parameters_redirections = -1;
612 static int hf_x411_T_standard_parameters_restricted_delivery = -1;
613 static int hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients = -1;
614 static int hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited = -1;
615 static int hf_x411_PerMessageIndicators_U_alternate_recipient_allowed = -1;
616 static int hf_x411_PerMessageIndicators_U_content_return_request = -1;
617 static int hf_x411_PerMessageIndicators_U_reserved = -1;
618 static int hf_x411_PerMessageIndicators_U_bit_5 = -1;
619 static int hf_x411_PerMessageIndicators_U_bit_6 = -1;
620 static int hf_x411_PerMessageIndicators_U_service_message = -1;
621 static int hf_x411_OriginatorReportRequest_report = -1;
622 static int hf_x411_OriginatorReportRequest_non_delivery_report = -1;
623 static int hf_x411_DeliveryFlags_implicit_conversion_prohibited = -1;
624 static int hf_x411_Criticality_for_submission = -1;
625 static int hf_x411_Criticality_for_transfer = -1;
626 static int hf_x411_Criticality_for_delivery = -1;
627 static int hf_x411_PhysicalDeliveryModes_ordinary_mail = -1;
628 static int hf_x411_PhysicalDeliveryModes_special_delivery = -1;
629 static int hf_x411_PhysicalDeliveryModes_express_mail = -1;
630 static int hf_x411_PhysicalDeliveryModes_counter_collection = -1;
631 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice = -1;
632 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice = -1;
633 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice = -1;
634 static int hf_x411_PhysicalDeliveryModes_bureau_fax_delivery = -1;
635 static int hf_x411_BuiltInEncodedInformationTypes_unknown = -1;
636 static int hf_x411_BuiltInEncodedInformationTypes_ia5_text = -1;
637 static int hf_x411_BuiltInEncodedInformationTypes_g3_facsimile = -1;
638 static int hf_x411_BuiltInEncodedInformationTypes_g4_class_1 = -1;
639 static int hf_x411_BuiltInEncodedInformationTypes_teletex = -1;
640 static int hf_x411_BuiltInEncodedInformationTypes_videotex = -1;
641 static int hf_x411_BuiltInEncodedInformationTypes_voice = -1;
642 static int hf_x411_BuiltInEncodedInformationTypes_sfd = -1;
643 static int hf_x411_BuiltInEncodedInformationTypes_mixed_mode = -1;
644 static int hf_x411_G3FacsimileNonBasicParameters_two_dimensional = -1;
645 static int hf_x411_G3FacsimileNonBasicParameters_fine_resolution = -1;
646 static int hf_x411_G3FacsimileNonBasicParameters_unlimited_length = -1;
647 static int hf_x411_G3FacsimileNonBasicParameters_b4_length = -1;
648 static int hf_x411_G3FacsimileNonBasicParameters_a3_width = -1;
649 static int hf_x411_G3FacsimileNonBasicParameters_b4_width = -1;
650 static int hf_x411_G3FacsimileNonBasicParameters_t6_coding = -1;
651 static int hf_x411_G3FacsimileNonBasicParameters_uncompressed = -1;
652 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728 = -1;
653 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728 = -1;
654 static int hf_x411_G3FacsimileNonBasicParameters_resolution_type = -1;
655 static int hf_x411_G3FacsimileNonBasicParameters_resolution_400x400 = -1;
656 static int hf_x411_G3FacsimileNonBasicParameters_resolution_300x300 = -1;
657 static int hf_x411_G3FacsimileNonBasicParameters_resolution_8x15 = -1;
658 static int hf_x411_G3FacsimileNonBasicParameters_edi = -1;
659 static int hf_x411_G3FacsimileNonBasicParameters_dtm = -1;
660 static int hf_x411_G3FacsimileNonBasicParameters_bft = -1;
661 static int hf_x411_G3FacsimileNonBasicParameters_mixed_mode = -1;
662 static int hf_x411_G3FacsimileNonBasicParameters_character_mode = -1;
663 static int hf_x411_G3FacsimileNonBasicParameters_twelve_bits = -1;
664 static int hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann = -1;
665 static int hf_x411_G3FacsimileNonBasicParameters_full_colour = -1;
666 static int hf_x411_G3FacsimileNonBasicParameters_jpeg = -1;
667 static int hf_x411_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
668
669 /*--- End of included file: packet-x411-hf.c ---*/
670 #line 82 "packet-x411-template.c"
671
672 /* Initialize the subtree pointers */
673 static gint ett_x411 = -1;
674 static gint ett_p3 = -1;
675 static gint ett_x411_content_unknown = -1;
676 static gint ett_x411_bilateral_information = -1;
677 static gint ett_x411_additional_information = -1;
678 static gint ett_x411_unknown_standard_extension = -1;
679 static gint ett_x411_unknown_extension_attribute_type = -1;
680 static gint ett_x411_unknown_tokendata_type = -1;
681
682 /*--- Included file: packet-x411-ett.c ---*/
683 #line 1 "packet-x411-ett.c"
684 static gint ett_x411_MTABindArgument = -1;
685 static gint ett_x411_AuthenticatedArgument = -1;
686 static gint ett_x411_MTABindResult = -1;
687 static gint ett_x411_AuthenticatedResult = -1;
688 static gint ett_x411_MTS_APDU = -1;
689 static gint ett_x411_Message = -1;
690 static gint ett_x411_Report = -1;
691 static gint ett_x411_MessageTransferEnvelope = -1;
692 static gint ett_x411_PerMessageTransferFields = -1;
693 static gint ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation = -1;
694 static gint ett_x411_SET_OF_ExtensionField = -1;
695 static gint ett_x411_PerRecipientMessageTransferFields = -1;
696 static gint ett_x411_ProbeTransferEnvelope = -1;
697 static gint ett_x411_PerProbeTransferFields = -1;
698 static gint ett_x411_PerRecipientProbeTransferFields = -1;
699 static gint ett_x411_ReportTransferEnvelope = -1;
700 static gint ett_x411_ReportTransferContent = -1;
701 static gint ett_x411_PerReportTransferFields = -1;
702 static gint ett_x411_PerRecipientReportTransferFields = -1;
703 static gint ett_x411_PerDomainBilateralInformation = -1;
704 static gint ett_x411_T_bilateral_domain = -1;
705 static gint ett_x411_T_private_domain = -1;
706 static gint ett_x411_BilateralDomain = -1;
707 static gint ett_x411_T_domain = -1;
708 static gint ett_x411_T_private_domain_01 = -1;
709 static gint ett_x411_PerRecipientIndicators = -1;
710 static gint ett_x411_LastTraceInformation = -1;
711 static gint ett_x411_InternalTraceInformation = -1;
712 static gint ett_x411_InternalTraceInformationElement = -1;
713 static gint ett_x411_MTASuppliedInformation = -1;
714 static gint ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement = -1;
715 static gint ett_x411_TraceInformationElement = -1;
716 static gint ett_x411_DomainSuppliedInformation = -1;
717 static gint ett_x411_AdditionalActions = -1;
718 static gint ett_x411_OtherActions = -1;
719 static gint ett_x411_MTSBindArgument = -1;
720 static gint ett_x411_MTSBindResult = -1;
721 static gint ett_x411_ObjectName = -1;
722 static gint ett_x411_MessagesWaiting = -1;
723 static gint ett_x411_DeliveryQueue = -1;
724 static gint ett_x411_Credentials = -1;
725 static gint ett_x411_Password = -1;
726 static gint ett_x411_StrongCredentials = -1;
727 static gint ett_x411_ProtectedPassword = -1;
728 static gint ett_x411_Signature = -1;
729 static gint ett_x411_SecurityContext = -1;
730 static gint ett_x411_MessageSubmissionArgument = -1;
731 static gint ett_x411_MessageSubmissionResult = -1;
732 static gint ett_x411_ProbeSubmissionResult = -1;
733 static gint ett_x411_ImproperlySpecifiedRecipients = -1;
734 static gint ett_x411_Waiting = -1;
735 static gint ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType = -1;
736 static gint ett_x411_Operations = -1;
737 static gint ett_x411_WaitingMessages = -1;
738 static gint ett_x411_MessageDeliveryArgument = -1;
739 static gint ett_x411_MessageDeliveryResult = -1;
740 static gint ett_x411_ReportDeliveryArgument = -1;
741 static gint ett_x411_ReportDeliveryResult = -1;
742 static gint ett_x411_SET_SIZE_1_MAX_OF_ExtensionField = -1;
743 static gint ett_x411_DeliveryControlArgument = -1;
744 static gint ett_x411_DeliveryControlResult = -1;
745 static gint ett_x411_RefusedOperation = -1;
746 static gint ett_x411_T_refused_argument = -1;
747 static gint ett_x411_Controls = -1;
748 static gint ett_x411_RegisterArgument = -1;
749 static gint ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass = -1;
750 static gint ett_x411_RegisterResult = -1;
751 static gint ett_x411_T_non_empty_result = -1;
752 static gint ett_x411_ChangeCredentialsArgument = -1;
753 static gint ett_x411_UserAddress = -1;
754 static gint ett_x411_T_x121 = -1;
755 static gint ett_x411_Redirections = -1;
756 static gint ett_x411_RecipientRedirection = -1;
757 static gint ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass = -1;
758 static gint ett_x411_MessageClass = -1;
759 static gint ett_x411_SET_OF_Priority = -1;
760 static gint ett_x411_SEQUENCE_OF_Restriction = -1;
761 static gint ett_x411_EncodedInformationTypesConstraints = -1;
762 static gint ett_x411_RestrictedDelivery = -1;
763 static gint ett_x411_Restriction = -1;
764 static gint ett_x411_T_source_type = -1;
765 static gint ett_x411_ExactOrPattern = -1;
766 static gint ett_x411_RegistrationTypes = -1;
767 static gint ett_x411_T_standard_parameters = -1;
768 static gint ett_x411_T_type_extensions = -1;
769 static gint ett_x411_MessageSubmissionEnvelope = -1;
770 static gint ett_x411_PerMessageSubmissionFields = -1;
771 static gint ett_x411_PerRecipientMessageSubmissionFields = -1;
772 static gint ett_x411_ProbeSubmissionEnvelope = -1;
773 static gint ett_x411_PerProbeSubmissionFields = -1;
774 static gint ett_x411_PerRecipientProbeSubmissionFields = -1;
775 static gint ett_x411_MessageDeliveryEnvelope = -1;
776 static gint ett_x411_OtherMessageDeliveryFields = -1;
777 static gint ett_x411_ReportDeliveryEnvelope = -1;
778 static gint ett_x411_PerReportDeliveryFields = -1;
779 static gint ett_x411_PerRecipientReportDeliveryFields = -1;
780 static gint ett_x411_ReportType = -1;
781 static gint ett_x411_DeliveryReport = -1;
782 static gint ett_x411_NonDeliveryReport = -1;
783 static gint ett_x411_ContentTypes = -1;
784 static gint ett_x411_ContentType = -1;
785 static gint ett_x411_DeliveredContentType = -1;
786 static gint ett_x411_PerMessageIndicators_U = -1;
787 static gint ett_x411_OriginatorReportRequest = -1;
788 static gint ett_x411_DeliveryFlags = -1;
789 static gint ett_x411_OtherRecipientNames = -1;
790 static gint ett_x411_ExtensionType = -1;
791 static gint ett_x411_Criticality = -1;
792 static gint ett_x411_ExtensionField = -1;
793 static gint ett_x411_RequestedDeliveryMethod = -1;
794 static gint ett_x411_PhysicalDeliveryModes = -1;
795 static gint ett_x411_ContentCorrelator = -1;
796 static gint ett_x411_RedirectionHistory = -1;
797 static gint ett_x411_Redirection = -1;
798 static gint ett_x411_IntendedRecipientName = -1;
799 static gint ett_x411_DLExpansionHistory = -1;
800 static gint ett_x411_DLExpansion = -1;
801 static gint ett_x411_OriginatorAndDLExpansionHistory = -1;
802 static gint ett_x411_OriginatorAndDLExpansion = -1;
803 static gint ett_x411_PerRecipientReportFields = -1;
804 static gint ett_x411_T_report_type = -1;
805 static gint ett_x411_PerRecipientDeliveryReportFields = -1;
806 static gint ett_x411_PerRecipientNonDeliveryReportFields = -1;
807 static gint ett_x411_ReportingMTAName = -1;
808 static gint ett_x411_ExtendedCertificates = -1;
809 static gint ett_x411_ExtendedCertificate = -1;
810 static gint ett_x411_DLExemptedRecipients = -1;
811 static gint ett_x411_CertificateSelectors = -1;
812 static gint ett_x411_MTSIdentifier_U = -1;
813 static gint ett_x411_GlobalDomainIdentifier_U = -1;
814 static gint ett_x411_PrivateDomainIdentifier = -1;
815 static gint ett_x411_ORName_U = -1;
816 static gint ett_x411_ORAddress = -1;
817 static gint ett_x411_BuiltInStandardAttributes = -1;
818 static gint ett_x411_CountryName_U = -1;
819 static gint ett_x411_AdministrationDomainName_U = -1;
820 static gint ett_x411_PrivateDomainName = -1;
821 static gint ett_x411_PersonalName = -1;
822 static gint ett_x411_OrganizationalUnitNames = -1;
823 static gint ett_x411_BuiltInDomainDefinedAttributes = -1;
824 static gint ett_x411_BuiltInDomainDefinedAttribute = -1;
825 static gint ett_x411_ExtensionAttributes = -1;
826 static gint ett_x411_ExtensionAttribute = -1;
827 static gint ett_x411_TeletexPersonalName = -1;
828 static gint ett_x411_UniversalPersonalName = -1;
829 static gint ett_x411_TeletexOrganizationalUnitNames = -1;
830 static gint ett_x411_UniversalOrganizationalUnitNames = -1;
831 static gint ett_x411_UniversalOrBMPString = -1;
832 static gint ett_x411_T_character_encoding = -1;
833 static gint ett_x411_PhysicalDeliveryCountryName = -1;
834 static gint ett_x411_PostalCode = -1;
835 static gint ett_x411_UnformattedPostalAddress = -1;
836 static gint ett_x411_T_printable_address = -1;
837 static gint ett_x411_PDSParameter = -1;
838 static gint ett_x411_ExtendedNetworkAddress = -1;
839 static gint ett_x411_T_e163_4_address = -1;
840 static gint ett_x411_TeletexDomainDefinedAttributes = -1;
841 static gint ett_x411_TeletexDomainDefinedAttribute = -1;
842 static gint ett_x411_UniversalDomainDefinedAttributes = -1;
843 static gint ett_x411_UniversalDomainDefinedAttribute = -1;
844 static gint ett_x411_EncodedInformationTypes_U = -1;
845 static gint ett_x411_BuiltInEncodedInformationTypes = -1;
846 static gint ett_x411_ExtendedEncodedInformationTypes = -1;
847 static gint ett_x411_NonBasicParameters = -1;
848 static gint ett_x411_G3FacsimileNonBasicParameters = -1;
849 static gint ett_x411_TeletexNonBasicParameters = -1;
850 static gint ett_x411_Token = -1;
851 static gint ett_x411_AsymmetricTokenData = -1;
852 static gint ett_x411_T_name = -1;
853 static gint ett_x411_MTANameAndOptionalGDI = -1;
854 static gint ett_x411_AsymmetricToken = -1;
855 static gint ett_x411_TokenData = -1;
856 static gint ett_x411_MessageTokenSignedData = -1;
857 static gint ett_x411_MessageTokenEncryptedData = -1;
858 static gint ett_x411_SecurityLabel = -1;
859 static gint ett_x411_SecurityCategories = -1;
860 static gint ett_x411_SecurityCategory = -1;
861 static gint ett_x411_RTSE_apdus = -1;
862 static gint ett_x411_RTABapdu = -1;
863 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields = -1;
864 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields = -1;
865 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields = -1;
866 static gint ett_x411_T_attempted = -1;
867 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields = -1;
868 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields = -1;
869 static gint ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields = -1;
870
871 /*--- End of included file: packet-x411-ett.c ---*/
872 #line 93 "packet-x411-template.c"
873
874 /* Dissector tables */
875 static dissector_table_t x411_extension_dissector_table;
876 static dissector_table_t x411_extension_attribute_dissector_table;
877 static dissector_table_t x411_tokendata_dissector_table;
878
879
880 /*--- Included file: packet-x411-table.c ---*/
881 #line 1 "packet-x411-table.c"
882
883 /* P3 ABSTRACT-OPERATIONS */
884 const value_string p3_opr_code_string_vals[] = {
885         { op_ros_bind, "mts_bind" },
886         { op_message_submission, "message_submission" },
887         { op_probe_submission, "probe_submission" },
888         { op_cancel_deferred_delivery, "cancel_deferred_delivery" },
889         { op_submission_control, "submission_control" },
890         { op_message_delivery, "message_delivery" },
891         { op_report_delivery, "report_delivery" },
892         { op_delivery_control, "delivery_control" },
893         { op_register, "register" },
894         { op_change_credentials, "change_credentials" },
895         { 0, NULL }
896 };
897
898
899 /* P3 ERRORS */
900 static const value_string p3_err_code_string_vals[] = {
901         { err_ros_bind, "mts_bind_error" },  
902         { err_submission_control_violated, "submission_control_violated" },  
903         { err_element_of_service_not_subscribed, "element_of_service_not_subscribed" },  
904         { err_deferred_delivery_cancellation_rejected, "deferred_delivery_cancellation_rejected" },  
905         { err_originator_invalid, "originator_invalid" },  
906         { err_recipient_improperly_specified, "recipient_improperly_specified" },  
907         { err_message_submission_identifier_invalid, "message_submission_identifier_invalid" },  
908         { err_inconsistent_request, "inconsistent_request" },  
909         { err_security_error, "security_error" },  
910         { err_unsupported_critical_function, "unsupported_critical_function" },  
911         { err_remote_bind_error, "remote_bind_error" },  
912         { err_delivery_control_violated, "delivery_control_violated" },  
913         { err_control_violates_registration, "control_violates_registration" },  
914         { err_operation_refused, "operation_refused" },  
915         { err_register_rejected, "register_rejected" },  
916         { err_new_credentials_unacceptable, "new_credentials_unacceptable" },  
917         { err_old_credentials_incorrectly_specified, "old_credentials_incorrectly_specified" },  
918           { 0, NULL }
919 };
920
921
922 /*--- End of included file: packet-x411-table.c ---*/
923 #line 100 "packet-x411-template.c"
924
925
926 /*--- Included file: packet-x411-fn.c ---*/
927 #line 1 "packet-x411-fn.c"
928
929
930 static int
931 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_) {
932   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
933
934   return offset;
935 }
936
937
938
939 static int
940 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_) {
941 #line 645 "x411.cnf"
942         tvbuff_t        *mtaname = NULL;
943
944           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
945                                                         actx, tree, tvb, offset,
946                                                         1, ub_mta_name_length, hf_index, &mtaname);
947
948
949         if(doing_address) {
950
951                 proto_item_append_text(address_item, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
952
953         } else {
954
955         if (check_col(actx->pinfo->cinfo, COL_INFO) && mtaname) {
956                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
957         }
958
959         }
960
961
962
963   return offset;
964 }
965
966
967
968 static int
969 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_) {
970   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
971                                                         actx, tree, tvb, offset,
972                                                         0, ub_password_length, hf_index, NULL);
973
974   return offset;
975 }
976
977
978
979 static int
980 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_) {
981   offset = dissect_ber_constrained_octet_string(implicit_tag, actx, tree, tvb, offset,
982                                                    0, ub_password_length, hf_index, NULL);
983
984   return offset;
985 }
986
987
988 static const value_string x411_Password_vals[] = {
989   {   0, "ia5-string" },
990   {   1, "octet-string" },
991   { 0, NULL }
992 };
993
994 static const ber_choice_t Password_choice[] = {
995   {   0, &hf_x411_ia5_string     , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_IA5String_SIZE_0_ub_password_length },
996   {   1, &hf_x411_octet_string   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_OCTET_STRING_SIZE_0_ub_password_length },
997   { 0, NULL, 0, 0, 0, NULL }
998 };
999
1000 static int
1001 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_) {
1002   offset = dissect_ber_choice(actx, tree, tvb, offset,
1003                                  Password_choice, hf_index, ett_x411_Password,
1004                                  NULL);
1005
1006   return offset;
1007 }
1008
1009
1010
1011 static int
1012 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_) {
1013   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
1014
1015   return offset;
1016 }
1017
1018
1019
1020 static int
1021 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_) {
1022 #line 1179 "x411.cnf"
1023         
1024         if(object_identifier_id) 
1025            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1026
1027
1028
1029   return offset;
1030 }
1031
1032
1033 static const ber_sequence_t Token_sequence[] = {
1034   { &hf_x411_token_type_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_TokenTypeIdentifier },
1035   { &hf_x411_token          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_TokenTypeData },
1036   { NULL, 0, 0, 0, NULL }
1037 };
1038
1039 static int
1040 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_) {
1041   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1042                                    Token_sequence, hf_index, ett_x411_Token);
1043
1044   return offset;
1045 }
1046
1047
1048 static const ber_sequence_t StrongCredentials_set[] = {
1049   { &hf_x411_bind_token     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Token },
1050   { &hf_x411_certificate    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
1051   { &hf_x411_certificate_selector, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1052   { NULL, 0, 0, 0, NULL }
1053 };
1054
1055 static int
1056 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_) {
1057   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1058                               StrongCredentials_set, hf_index, ett_x411_StrongCredentials);
1059
1060   return offset;
1061 }
1062
1063
1064
1065 static int
1066 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_) {
1067   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1068                                     NULL, hf_index, -1,
1069                                     NULL);
1070
1071   return offset;
1072 }
1073
1074
1075 static const ber_sequence_t Signature_sequence[] = {
1076   { &hf_x411_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1077   { &hf_x411_encrypted      , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_BIT_STRING },
1078   { NULL, 0, 0, 0, NULL }
1079 };
1080
1081 static int
1082 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_) {
1083   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1084                                    Signature_sequence, hf_index, ett_x411_Signature);
1085
1086   return offset;
1087 }
1088
1089
1090
1091 static int
1092 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_) {
1093   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1094
1095   return offset;
1096 }
1097
1098
1099 static const ber_sequence_t ProtectedPassword_set[] = {
1100   { &hf_x411_signature      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_Signature },
1101   { &hf_x411_time1          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UTCTime },
1102   { &hf_x411_time2          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UTCTime },
1103   { &hf_x411_random1        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
1104   { &hf_x411_random2        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
1105   { NULL, 0, 0, 0, NULL }
1106 };
1107
1108 static int
1109 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_) {
1110   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1111                               ProtectedPassword_set, hf_index, ett_x411_ProtectedPassword);
1112
1113   return offset;
1114 }
1115
1116
1117 const value_string x411_Credentials_vals[] = {
1118   {   0, "simple" },
1119   {   1, "strong" },
1120   {   2, "protected" },
1121   { 0, NULL }
1122 };
1123
1124 static const ber_choice_t Credentials_choice[] = {
1125   {   0, &hf_x411_simple         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_Password },
1126   {   1, &hf_x411_strong         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_StrongCredentials },
1127   {   2, &hf_x411_protected      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_ProtectedPassword },
1128   { 0, NULL, 0, 0, 0, NULL }
1129 };
1130
1131 int
1132 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_) {
1133 #line 1187 "x411.cnf"
1134   gint credentials = -1;
1135
1136     offset = dissect_ber_choice(actx, tree, tvb, offset,
1137                                  Credentials_choice, hf_index, ett_x411_Credentials,
1138                                  &credentials);
1139
1140
1141   if( (credentials!=-1) && x411_Credentials_vals[credentials].strptr ){
1142     if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1143       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_Credentials_vals[credentials].strptr);
1144     }
1145   }
1146
1147
1148
1149   return offset;
1150 }
1151
1152
1153
1154 int
1155 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_) {
1156   offset = dissect_x411_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1157
1158   return offset;
1159 }
1160
1161
1162
1163 static int
1164 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_) {
1165   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1166
1167   return offset;
1168 }
1169
1170
1171 static const value_string x411_SecurityClassification_vals[] = {
1172   {   0, "unmarked" },
1173   {   1, "unclassified" },
1174   {   2, "restricted" },
1175   {   3, "confidential" },
1176   {   4, "secret" },
1177   {   5, "top-secret" },
1178   { 0, NULL }
1179 };
1180
1181
1182 static int
1183 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_) {
1184   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1185                                                             0U, ub_integer_options, hf_index, NULL);
1186
1187   return offset;
1188 }
1189
1190
1191
1192 static int
1193 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_) {
1194   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1195                                                         actx, tree, tvb, offset,
1196                                                         1, ub_privacy_mark_length, hf_index, NULL);
1197
1198   return offset;
1199 }
1200
1201
1202
1203 static int
1204 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_) {
1205   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
1206
1207   return offset;
1208 }
1209
1210
1211
1212 static int
1213 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_) {
1214 #line 528 "x411.cnf"
1215         const char *name;
1216
1217         if (object_identifier_id) {
1218                 offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1219                 name = oid_resolved_from_string(object_identifier_id);
1220                 proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id); 
1221         } else {
1222                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1223         }
1224
1225
1226
1227   return offset;
1228 }
1229
1230
1231
1232 static int
1233 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_) {
1234   offset = dissect_x411_SecurityCategoryValue(implicit_tag, tvb, offset, actx, tree, hf_index);
1235
1236   return offset;
1237 }
1238
1239
1240 static const ber_sequence_t SecurityCategory_sequence[] = {
1241   { &hf_x411_category_type  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_SecurityCategoryIdentifier },
1242   { &hf_x411_category_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_CategoryValue },
1243   { NULL, 0, 0, 0, NULL }
1244 };
1245
1246 static int
1247 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_) {
1248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1249                                    SecurityCategory_sequence, hf_index, ett_x411_SecurityCategory);
1250
1251   return offset;
1252 }
1253
1254
1255 static const ber_sequence_t SecurityCategories_set_of[1] = {
1256   { &hf_x411_SecurityCategories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_SecurityCategory },
1257 };
1258
1259 static int
1260 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_) {
1261   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1262                                              1, ub_security_categories, SecurityCategories_set_of, hf_index, ett_x411_SecurityCategories);
1263
1264   return offset;
1265 }
1266
1267
1268 static const ber_sequence_t SecurityLabel_set[] = {
1269   { &hf_x411_security_policy_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityPolicyIdentifier },
1270   { &hf_x411_security_classification, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityClassification },
1271   { &hf_x411_privacy_mark   , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrivacyMark },
1272   { &hf_x411_security_categories, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SecurityCategories },
1273   { NULL, 0, 0, 0, NULL }
1274 };
1275
1276 int
1277 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_) {
1278   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1279                               SecurityLabel_set, hf_index, ett_x411_SecurityLabel);
1280
1281   return offset;
1282 }
1283
1284
1285 static const ber_sequence_t SecurityContext_set_of[1] = {
1286   { &hf_x411_SecurityContext_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_SecurityLabel },
1287 };
1288
1289 int
1290 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_) {
1291   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1292                                              1, ub_security_labels, SecurityContext_set_of, hf_index, ett_x411_SecurityContext);
1293
1294   return offset;
1295 }
1296
1297
1298 static const ber_sequence_t AuthenticatedArgument_set[] = {
1299   { &hf_x411_authenticated_initiator_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
1300   { &hf_x411_initiator_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_InitiatorCredentials },
1301   { &hf_x411_security_context, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
1302   { NULL, 0, 0, 0, NULL }
1303 };
1304
1305 static int
1306 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_) {
1307   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1308                               AuthenticatedArgument_set, hf_index, ett_x411_AuthenticatedArgument);
1309
1310   return offset;
1311 }
1312
1313
1314 static const value_string x411_MTABindArgument_vals[] = {
1315   {   0, "unauthenticated" },
1316   {   1, "authenticated" },
1317   { 0, NULL }
1318 };
1319
1320 static const ber_choice_t MTABindArgument_choice[] = {
1321   {   0, &hf_x411_unauthenticated, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
1322   {   1, &hf_x411_authenticated_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_AuthenticatedArgument },
1323   { 0, NULL, 0, 0, 0, NULL }
1324 };
1325
1326 static int
1327 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_) {
1328   offset = dissect_ber_choice(actx, tree, tvb, offset,
1329                                  MTABindArgument_choice, hf_index, ett_x411_MTABindArgument,
1330                                  NULL);
1331
1332   return offset;
1333 }
1334
1335
1336
1337 int
1338 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_) {
1339   offset = dissect_x411_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1340
1341   return offset;
1342 }
1343
1344
1345 static const ber_sequence_t AuthenticatedResult_set[] = {
1346   { &hf_x411_authenticated_responder_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
1347   { &hf_x411_responder_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ResponderCredentials },
1348   { NULL, 0, 0, 0, NULL }
1349 };
1350
1351 static int
1352 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_) {
1353   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1354                               AuthenticatedResult_set, hf_index, ett_x411_AuthenticatedResult);
1355
1356   return offset;
1357 }
1358
1359
1360 static const value_string x411_MTABindResult_vals[] = {
1361   {   0, "unauthenticated" },
1362   {   1, "authenticated" },
1363   { 0, NULL }
1364 };
1365
1366 static const ber_choice_t MTABindResult_choice[] = {
1367   {   0, &hf_x411_unauthenticated, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
1368   {   1, &hf_x411_authenticated_result, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_AuthenticatedResult },
1369   { 0, NULL, 0, 0, 0, NULL }
1370 };
1371
1372 static int
1373 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_) {
1374   offset = dissect_ber_choice(actx, tree, tvb, offset,
1375                                  MTABindResult_choice, hf_index, ett_x411_MTABindResult,
1376                                  NULL);
1377
1378   return offset;
1379 }
1380
1381
1382 static const value_string x411_MTABindError_vals[] = {
1383   {   0, "busy" },
1384   {   2, "authentication-error" },
1385   {   3, "unacceptable-dialogue-mode" },
1386   {   4, "unacceptable-security-context" },
1387   {   5, "inadequate-association-confidentiality" },
1388   { 0, NULL }
1389 };
1390
1391
1392 static int
1393 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_) {
1394 #line 1170 "x411.cnf"
1395   int error = -1;
1396     offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1397                                                             0U, ub_integer_options, hf_index, &error);
1398
1399   if((error != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
1400     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, x411_MTABindError_vals, "error(%d)"));
1401
1402
1403
1404   return offset;
1405 }
1406
1407
1408
1409 static int
1410 dissect_x411_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1411 #line 829 "x411.cnf"
1412         tvbuff_t        *nstring = NULL;
1413
1414           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1415                                                         actx, tree, tvb, offset,
1416                                                         ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
1417
1418
1419         if(doing_address && nstring)
1420                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1421
1422
1423
1424   return offset;
1425 }
1426
1427
1428
1429 static int
1430 dissect_x411_T_iso_3166_alpha2_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1431 #line 781 "x411.cnf"
1432         tvbuff_t        *nstring = NULL;
1433
1434           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1435                                                         actx, tree, tvb, offset,
1436                                                         ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
1437
1438
1439         if(doing_address && nstring)
1440                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1441
1442
1443
1444   return offset;
1445 }
1446
1447
1448 static const value_string x411_CountryName_U_vals[] = {
1449   {   0, "x121-dcc-code" },
1450   {   1, "iso-3166-alpha2-code" },
1451   { 0, NULL }
1452 };
1453
1454 static const ber_choice_t CountryName_U_choice[] = {
1455   {   0, &hf_x411_x121_dcc_code  , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_x121_dcc_code },
1456   {   1, &hf_x411_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_iso_3166_alpha2_code },
1457   { 0, NULL, 0, 0, 0, NULL }
1458 };
1459
1460 static int
1461 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_) {
1462   offset = dissect_ber_choice(actx, tree, tvb, offset,
1463                                  CountryName_U_choice, hf_index, ett_x411_CountryName_U,
1464                                  NULL);
1465
1466   return offset;
1467 }
1468
1469
1470
1471 static int
1472 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_) {
1473 #line 562 "x411.cnf"
1474  if(doing_address)
1475     g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
1476  
1477    offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1478                                       hf_index, BER_CLASS_APP, 1, TRUE, dissect_x411_CountryName_U);
1479
1480
1481
1482
1483
1484   return offset;
1485 }
1486
1487
1488
1489 static int
1490 dissect_x411_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491 #line 837 "x411.cnf"
1492         tvbuff_t        *nstring = NULL;
1493
1494           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1495                                                         actx, tree, tvb, offset,
1496                                                         0, ub_domain_name_length, hf_index, &nstring);
1497
1498
1499         if(doing_address && nstring)
1500                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1501
1502
1503
1504   return offset;
1505 }
1506
1507
1508
1509 static int
1510 dissect_x411_T_printable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1511 #line 789 "x411.cnf"
1512         tvbuff_t        *nstring = NULL;
1513
1514           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1515                                                         actx, tree, tvb, offset,
1516                                                         0, ub_domain_name_length, hf_index, &nstring);
1517
1518
1519         if(doing_address && nstring)
1520                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1521
1522
1523
1524   return offset;
1525 }
1526
1527
1528 static const value_string x411_AdministrationDomainName_U_vals[] = {
1529   {   0, "numeric" },
1530   {   1, "printable" },
1531   { 0, NULL }
1532 };
1533
1534 static const ber_choice_t AdministrationDomainName_U_choice[] = {
1535   {   0, &hf_x411_numeric        , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_numeric },
1536   {   1, &hf_x411_printable      , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable },
1537   { 0, NULL, 0, 0, 0, NULL }
1538 };
1539
1540 static int
1541 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_) {
1542   offset = dissect_ber_choice(actx, tree, tvb, offset,
1543                                  AdministrationDomainName_U_choice, hf_index, ett_x411_AdministrationDomainName_U,
1544                                  NULL);
1545
1546   return offset;
1547 }
1548
1549
1550
1551 static int
1552 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_) {
1553 #line 569 "x411.cnf"
1554   if(doing_address)
1555     g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
1556
1557    offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1558                                       hf_index, BER_CLASS_APP, 2, TRUE, dissect_x411_AdministrationDomainName_U);
1559
1560
1561
1562
1563
1564   return offset;
1565 }
1566
1567
1568
1569 static int
1570 dissect_x411_T_numeric_private_domain_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_) {
1571 #line 853 "x411.cnf"
1572         tvbuff_t        *nstring = NULL;
1573
1574           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1575                                                         actx, tree, tvb, offset,
1576                                                         1, ub_domain_name_length, hf_index, &nstring);
1577
1578
1579         if(doing_address && nstring)
1580                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1581
1582
1583
1584   return offset;
1585 }
1586
1587
1588
1589 static int
1590 dissect_x411_T_printable_private_domain_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_) {
1591 #line 805 "x411.cnf"
1592         tvbuff_t        *nstring = NULL;
1593
1594           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1595                                                         actx, tree, tvb, offset,
1596                                                         1, ub_domain_name_length, hf_index, &nstring);
1597
1598
1599         if(doing_address && nstring)
1600                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1601
1602
1603
1604   return offset;
1605 }
1606
1607
1608 static const value_string x411_PrivateDomainIdentifier_vals[] = {
1609   {   0, "numeric" },
1610   {   1, "printable" },
1611   { 0, NULL }
1612 };
1613
1614 static const ber_choice_t PrivateDomainIdentifier_choice[] = {
1615   {   0, &hf_x411_numeric_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_numeric_private_domain_identifier },
1616   {   1, &hf_x411_printable_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_private_domain_identifier },
1617   { 0, NULL, 0, 0, 0, NULL }
1618 };
1619
1620 static int
1621 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_) {
1622 #line 696 "x411.cnf"
1623
1624         if(doing_address)
1625                 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1626
1627           offset = dissect_ber_choice(actx, tree, tvb, offset,
1628                                  PrivateDomainIdentifier_choice, hf_index, ett_x411_PrivateDomainIdentifier,
1629                                  NULL);
1630
1631
1632
1633
1634   return offset;
1635 }
1636
1637
1638 static const ber_sequence_t GlobalDomainIdentifier_U_sequence[] = {
1639   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
1640   { &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
1641   { &hf_x411_private_domain_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
1642   { NULL, 0, 0, 0, NULL }
1643 };
1644
1645 static int
1646 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_) {
1647   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1648                                    GlobalDomainIdentifier_U_sequence, hf_index, ett_x411_GlobalDomainIdentifier_U);
1649
1650   return offset;
1651 }
1652
1653
1654
1655 static int
1656 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_) {
1657 #line 1050 "x411.cnf"
1658         
1659         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
1660         address_item = tree;
1661
1662           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1663                                       hf_index, BER_CLASS_APP, 3, TRUE, dissect_x411_GlobalDomainIdentifier_U);
1664
1665
1666         if(*oraddress) {
1667                 proto_item_append_text(address_item, " (%s/", oraddress);
1668
1669                 if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) {
1670                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s/", oraddress);
1671                 }
1672         }
1673
1674
1675
1676
1677   return offset;
1678 }
1679
1680
1681
1682 static int
1683 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_) {
1684 #line 1069 "x411.cnf"
1685         tvbuff_t        *id = NULL;
1686         
1687           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1688                                                         actx, tree, tvb, offset,
1689                                                         1, ub_local_id_length, hf_index, &id);
1690
1691         
1692         if(id) {
1693           if(doing_address) 
1694                   proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1695
1696           if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) 
1697                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1698         }
1699
1700
1701
1702   return offset;
1703 }
1704
1705
1706 static const ber_sequence_t MTSIdentifier_U_sequence[] = {
1707   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
1708   { &hf_x411_local_identifier, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_LocalIdentifier },
1709   { NULL, 0, 0, 0, NULL }
1710 };
1711
1712 static int
1713 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_) {
1714   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1715                                    MTSIdentifier_U_sequence, hf_index, ett_x411_MTSIdentifier_U);
1716
1717   return offset;
1718 }
1719
1720
1721
1722 static int
1723 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_) {
1724 #line 1082 "x411.cnf"
1725
1726         doing_address = TRUE;
1727
1728         if(hf_index == hf_x411_subject_identifier)
1729                 doing_subjectid = TRUE;
1730
1731           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1732                                       hf_index, BER_CLASS_APP, 4, TRUE, dissect_x411_MTSIdentifier_U);
1733
1734
1735         doing_address = FALSE;
1736
1737         if(hf_index == hf_x411_subject_identifier)
1738                 doing_subjectid = FALSE;
1739
1740
1741
1742
1743   return offset;
1744 }
1745
1746
1747
1748 static int
1749 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_) {
1750 #line 1044 "x411.cnf"
1751
1752         address_item = NULL;
1753
1754           offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
1755
1756
1757
1758
1759   return offset;
1760 }
1761
1762
1763
1764 static int
1765 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_) {
1766 #line 665 "x411.cnf"
1767         tvbuff_t        *string = NULL;
1768
1769           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1770                                                         actx, tree, tvb, offset,
1771                                                         1, ub_x121_address_length, hf_index, &string);
1772
1773
1774         if(doing_address && string) {
1775                 g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
1776                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1777         }
1778
1779
1780
1781
1782   return offset;
1783 }
1784
1785
1786
1787 static int
1788 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_) {
1789   offset = dissect_x411_X121Address(implicit_tag, tvb, offset, actx, tree, hf_index);
1790
1791   return offset;
1792 }
1793
1794
1795
1796 static int
1797 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_) {
1798 #line 679 "x411.cnf"
1799         tvbuff_t        *string = NULL;
1800
1801           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1802                                                         actx, tree, tvb, offset,
1803                                                         1, ub_terminal_id_length, hf_index, &string);
1804
1805
1806         if(doing_address && string) {
1807                 g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
1808                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1809         }
1810
1811
1812
1813   return offset;
1814 }
1815
1816
1817
1818 static int
1819 dissect_x411_T_numeric_private_domain_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_) {
1820 #line 845 "x411.cnf"
1821         tvbuff_t        *nstring = NULL;
1822
1823           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1824                                                         actx, tree, tvb, offset,
1825                                                         1, ub_domain_name_length, hf_index, &nstring);
1826
1827
1828         if(doing_address && nstring)
1829                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1830
1831
1832
1833   return offset;
1834 }
1835
1836
1837
1838 static int
1839 dissect_x411_T_printable_private_domain_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_) {
1840 #line 797 "x411.cnf"
1841         tvbuff_t        *nstring = NULL;
1842
1843           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1844                                                         actx, tree, tvb, offset,
1845                                                         1, ub_domain_name_length, hf_index, &nstring);
1846
1847
1848         if(doing_address && nstring)
1849                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1850
1851
1852
1853   return offset;
1854 }
1855
1856
1857 static const value_string x411_PrivateDomainName_vals[] = {
1858   {   0, "numeric" },
1859   {   1, "printable" },
1860   { 0, NULL }
1861 };
1862
1863 static const ber_choice_t PrivateDomainName_choice[] = {
1864   {   0, &hf_x411_numeric_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_numeric_private_domain_name },
1865   {   1, &hf_x411_printable_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_private_domain_name },
1866   { 0, NULL, 0, 0, 0, NULL }
1867 };
1868
1869 static int
1870 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_) {
1871 #line 689 "x411.cnf"
1872
1873         if(doing_address)
1874                 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1875
1876           offset = dissect_ber_choice(actx, tree, tvb, offset,
1877                                  PrivateDomainName_choice, hf_index, ett_x411_PrivateDomainName,
1878                                  NULL);
1879
1880
1881
1882
1883   return offset;
1884 }
1885
1886
1887
1888 static int
1889 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_) {
1890 #line 706 "x411.cnf"
1891         tvbuff_t        *string = NULL;
1892
1893           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1894                                                         actx, tree, tvb, offset,
1895                                                         1, ub_organization_name_length, hf_index, &string);
1896
1897
1898         if(doing_address && string) {
1899                 g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
1900                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1901         }
1902
1903
1904
1905   return offset;
1906 }
1907
1908
1909
1910 static int
1911 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_) {
1912   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1913                                                         actx, tree, tvb, offset,
1914                                                         1, ub_numeric_user_id_length, hf_index, NULL);
1915
1916   return offset;
1917 }
1918
1919
1920
1921 static int
1922 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_) {
1923 #line 909 "x411.cnf"
1924         tvbuff_t        *pstring = NULL;
1925
1926           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1927                                                         actx, tree, tvb, offset,
1928                                                         1, ub_surname_length, hf_index, &pstring);
1929
1930
1931         if(doing_address && pstring) {
1932             g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
1933           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1934         }
1935
1936
1937
1938   return offset;
1939 }
1940
1941
1942
1943 static int
1944 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_) {
1945 #line 919 "x411.cnf"
1946         tvbuff_t        *pstring = NULL;
1947
1948           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1949                                                         actx, tree, tvb, offset,
1950                                                         1, ub_given_name_length, hf_index, &pstring);
1951
1952
1953         if(doing_address && pstring) {
1954             g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
1955           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1956         }
1957
1958
1959
1960   return offset;
1961 }
1962
1963
1964
1965 static int
1966 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_) {
1967 #line 929 "x411.cnf"
1968         tvbuff_t        *pstring = NULL;
1969
1970           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1971                                                         actx, tree, tvb, offset,
1972                                                         1, ub_initials_length, hf_index, &pstring);
1973
1974
1975         if(doing_address && pstring) {
1976             g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
1977           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1978         }
1979
1980
1981
1982   return offset;
1983 }
1984
1985
1986
1987 static int
1988 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_) {
1989 #line 939 "x411.cnf"
1990         tvbuff_t        *pstring = NULL;
1991
1992           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1993                                                         actx, tree, tvb, offset,
1994                                                         1, ub_generation_qualifier_length, hf_index, &pstring);
1995
1996
1997         if(doing_address && pstring) {
1998             g_strlcat(oraddress, "/Q=", MAX_ORA_STR_LEN);
1999           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2000         }
2001
2002
2003
2004   return offset;
2005 }
2006
2007
2008 static const ber_sequence_t PersonalName_set[] = {
2009   { &hf_x411_printable_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_T_printable_surname },
2010   { &hf_x411_printable_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_given_name },
2011   { &hf_x411_printable_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_initials },
2012   { &hf_x411_printable_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_printable_generation_qualifier },
2013   { NULL, 0, 0, 0, NULL }
2014 };
2015
2016 static int
2017 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_) {
2018   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2019                               PersonalName_set, hf_index, ett_x411_PersonalName);
2020
2021   return offset;
2022 }
2023
2024
2025
2026 static int
2027 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_) {
2028 #line 732 "x411.cnf"
2029         tvbuff_t        *string = NULL;
2030
2031           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2032                                                         actx, tree, tvb, offset,
2033                                                         1, ub_organizational_unit_name_length, hf_index, &string);
2034
2035
2036         if(doing_address && string) {
2037                 g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
2038                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
2039         }
2040
2041
2042
2043   return offset;
2044 }
2045
2046
2047 static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
2048   { &hf_x411_OrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_OrganizationalUnitName },
2049 };
2050
2051 static int
2052 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_) {
2053   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2054                                                   1, ub_organizational_units, OrganizationalUnitNames_sequence_of, hf_index, ett_x411_OrganizationalUnitNames);
2055
2056   return offset;
2057 }
2058
2059
2060 static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
2061   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
2062   { &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
2063   { &hf_x411_network_address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NetworkAddress },
2064   { &hf_x411_terminal_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TerminalIdentifier },
2065   { &hf_x411_private_domain_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainName },
2066   { &hf_x411_organization_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OrganizationName },
2067   { &hf_x411_numeric_user_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NumericUserIdentifier },
2068   { &hf_x411_personal_name  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_PersonalName },
2069   { &hf_x411_organizational_unit_names, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OrganizationalUnitNames },
2070   { NULL, 0, 0, 0, NULL }
2071 };
2072
2073 static int
2074 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_) {
2075 #line 1106 "x411.cnf"
2076
2077         address_item = tree;    
2078
2079           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2080                                    BuiltInStandardAttributes_sequence, hf_index, ett_x411_BuiltInStandardAttributes);
2081
2082
2083
2084
2085   return offset;
2086 }
2087
2088
2089
2090 static int
2091 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_) {
2092 #line 989 "x411.cnf"
2093         tvbuff_t        *pstring = NULL;
2094
2095           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2096                                                         actx, tree, tvb, offset,
2097                                                         1, ub_domain_defined_attribute_type_length, hf_index, &pstring);
2098
2099
2100         if(doing_address && pstring) {
2101             g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
2102             g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2103             g_strlcat(ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2104         }
2105         
2106
2107
2108   return offset;
2109 }
2110
2111
2112
2113 static int
2114 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_) {
2115 #line 1000 "x411.cnf"
2116         tvbuff_t        *pstring = NULL;
2117
2118           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2119                                                         actx, tree, tvb, offset,
2120                                                         1, ub_domain_defined_attribute_value_length, hf_index, &pstring);
2121
2122
2123         if(doing_address && pstring) {
2124             g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
2125             g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
2126             if (*ddatype) {
2127                proto_item_append_text (tree, " (%s=%s)", ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)));
2128             }
2129         }
2130         
2131
2132
2133   return offset;
2134 }
2135
2136
2137 static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
2138   { &hf_x411_printable_type , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_type },
2139   { &hf_x411_printable_value, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_value },
2140   { NULL, 0, 0, 0, NULL }
2141 };
2142
2143 static int
2144 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_) {
2145 #line 1013 "x411.cnf"
2146         ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
2147
2148           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2149                                    BuiltInDomainDefinedAttribute_sequence, hf_index, ett_x411_BuiltInDomainDefinedAttribute);
2150
2151
2152
2153
2154   return offset;
2155 }
2156
2157
2158 static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
2159   { &hf_x411_BuiltInDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttribute },
2160 };
2161
2162 static int
2163 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_) {
2164   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2165                                                   1, ub_domain_defined_attributes, BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_x411_BuiltInDomainDefinedAttributes);
2166
2167   return offset;
2168 }
2169
2170
2171 static const value_string x411_ExtensionAttributeType_vals[] = {
2172   {   1, "common-name" },
2173   {   2, "teletex-common-name" },
2174   {   3, "teletex-organization-name" },
2175   {   4, "teletex-personal-name" },
2176   {   5, "teletex-organizational-unit-names" },
2177   {   6, "teletex-domain-defined-attributes" },
2178   {   7, "pds-name" },
2179   {   8, "physical-delivery-country-name" },
2180   {   9, "postal-code" },
2181   {  10, "physical-delivery-office-name" },
2182   {  11, "physical-delivery-office-number" },
2183   {  12, "extension-OR-address-components" },
2184   {  13, "physical-delivery-personal-name" },
2185   {  14, "physical-delivery-organization-name" },
2186   {  15, "extension-physical-delivery-address-components" },
2187   {  16, "unformatted-postal-address" },
2188   {  17, "street-address" },
2189   {  18, "post-office-box-address" },
2190   {  19, "poste-restante-address" },
2191   {  20, "unique-postal-name" },
2192   {  21, "local-postal-attributes" },
2193   {  22, "extended-network-address" },
2194   {  23, "terminal-type" },
2195   {  24, "universal-common-name" },
2196   {  25, "universal-organization-name" },
2197   {  26, "universal-personal-name" },
2198   {  27, "universal-organizational-unit-names" },
2199   {  28, "universal-domain-defined-attributes" },
2200   {  29, "universal-physical-delivery-office-name" },
2201   {  30, "universal-physical-delivery-office-number" },
2202   {  31, "universal-extension-OR-address-components" },
2203   {  32, "universal-physical-delivery-personal-name" },
2204   {  33, "universal-physical-delivery-organization-name" },
2205   {  34, "universal-extension-physical-delivery-address-components" },
2206   {  35, "universal-unformatted-postal-address" },
2207   {  36, "universal-street-address" },
2208   {  37, "universal-post-office-box-address" },
2209   {  38, "universal-poste-restante-address" },
2210   {  39, "universal-unique-postal-name" },
2211   {  40, "universal-local-postal-attributes" },
2212   { 0, NULL }
2213 };
2214
2215
2216 static int
2217 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_) {
2218   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2219                                                 &extension_id);
2220
2221   return offset;
2222 }
2223
2224
2225
2226 static int
2227 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_) {
2228 #line 542 "x411.cnf"
2229
2230         proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_ExtensionAttributeType_vals, "extension-attribute-type %d")); 
2231         if (dissector_try_port(x411_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
2232                 offset =tvb_length(tvb);
2233         } else {
2234                 proto_item *item = NULL;
2235                 proto_tree *next_tree = NULL;
2236
2237                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
2238                         "Dissector for extension-attribute-type %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
2239                 next_tree = proto_item_add_subtree(item, ett_x411_unknown_extension_attribute_type);
2240                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
2241                 expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type");
2242         }
2243
2244
2245
2246
2247   return offset;
2248 }
2249
2250
2251 static const ber_sequence_t ExtensionAttribute_sequence[] = {
2252   { &hf_x411_extension_attribute_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ExtensionAttributeType },
2253   { &hf_x411_extension_attribute_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_T_extension_attribute_value },
2254   { NULL, 0, 0, 0, NULL }
2255 };
2256
2257 static int
2258 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_) {
2259   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2260                                    ExtensionAttribute_sequence, hf_index, ett_x411_ExtensionAttribute);
2261
2262   return offset;
2263 }
2264
2265
2266 static const ber_sequence_t ExtensionAttributes_set_of[1] = {
2267   { &hf_x411_ExtensionAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttribute },
2268 };
2269
2270 static int
2271 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_) {
2272   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2273                                              1, ub_extension_attributes, ExtensionAttributes_set_of, hf_index, ett_x411_ExtensionAttributes);
2274
2275   return offset;
2276 }
2277
2278
2279 static const ber_sequence_t ORName_U_sequence[] = {
2280   { &hf_x411_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInStandardAttributes },
2281   { &hf_x411_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttributes },
2282   { &hf_x411_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttributes },
2283   { &hf_x411_directory_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
2284   { NULL, 0, 0, 0, NULL }
2285 };
2286
2287 static int
2288 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_) {
2289   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2290                                    ORName_U_sequence, hf_index, ett_x411_ORName_U);
2291
2292   return offset;
2293 }
2294
2295
2296
2297 int
2298 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_) {
2299 #line 1031 "x411.cnf"
2300         
2301         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
2302         address_item = NULL;
2303         doing_address = TRUE;
2304
2305           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2306                                       hf_index, BER_CLASS_APP, 0, TRUE, dissect_x411_ORName_U);
2307
2308
2309         if(*oraddress && address_item)
2310                 proto_item_append_text(address_item, " (%s/)", oraddress);
2311
2312         doing_address = FALSE;
2313
2314
2315
2316   return offset;
2317 }
2318
2319
2320
2321 static int
2322 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_) {
2323   offset = dissect_x411_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
2324
2325   return offset;
2326 }
2327
2328
2329
2330 static int
2331 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_) {
2332   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
2333
2334   return offset;
2335 }
2336
2337
2338 static const asn_namedbit BuiltInEncodedInformationTypes_bits[] = {
2339   {  0, &hf_x411_BuiltInEncodedInformationTypes_unknown, -1, -1, "unknown", NULL },
2340   {  2, &hf_x411_BuiltInEncodedInformationTypes_ia5_text, -1, -1, "ia5-text", NULL },
2341   {  3, &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile, -1, -1, "g3-facsimile", NULL },
2342   {  4, &hf_x411_BuiltInEncodedInformationTypes_g4_class_1, -1, -1, "g4-class-1", NULL },
2343   {  5, &hf_x411_BuiltInEncodedInformationTypes_teletex, -1, -1, "teletex", NULL },
2344   {  6, &hf_x411_BuiltInEncodedInformationTypes_videotex, -1, -1, "videotex", NULL },
2345   {  7, &hf_x411_BuiltInEncodedInformationTypes_voice, -1, -1, "voice", NULL },
2346   {  8, &hf_x411_BuiltInEncodedInformationTypes_sfd, -1, -1, "sfd", NULL },
2347   {  9, &hf_x411_BuiltInEncodedInformationTypes_mixed_mode, -1, -1, "mixed-mode", NULL },
2348   { 0, NULL, 0, 0, NULL, NULL }
2349 };
2350
2351 static int
2352 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_) {
2353   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2354                                                 0, ub_built_in_encoded_information_types, BuiltInEncodedInformationTypes_bits, hf_index, ett_x411_BuiltInEncodedInformationTypes,
2355                                                 NULL);
2356
2357   return offset;
2358 }
2359
2360
2361 static const asn_namedbit G3FacsimileNonBasicParameters_bits[] = {
2362   {  8, &hf_x411_G3FacsimileNonBasicParameters_two_dimensional, -1, -1, "two-dimensional", NULL },
2363   {  9, &hf_x411_G3FacsimileNonBasicParameters_fine_resolution, -1, -1, "fine-resolution", NULL },
2364   { 20, &hf_x411_G3FacsimileNonBasicParameters_unlimited_length, -1, -1, "unlimited-length", NULL },
2365   { 21, &hf_x411_G3FacsimileNonBasicParameters_b4_length, -1, -1, "b4-length", NULL },
2366   { 22, &hf_x411_G3FacsimileNonBasicParameters_a3_width, -1, -1, "a3-width", NULL },
2367   { 23, &hf_x411_G3FacsimileNonBasicParameters_b4_width, -1, -1, "b4-width", NULL },
2368   { 25, &hf_x411_G3FacsimileNonBasicParameters_t6_coding, -1, -1, "t6-coding", NULL },
2369   { 30, &hf_x411_G3FacsimileNonBasicParameters_uncompressed, -1, -1, "uncompressed", NULL },
2370   { 37, &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728, -1, -1, "width-middle-864-of-1728", NULL },
2371   { 38, &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728, -1, -1, "width-middle-1216-of-1728", NULL },
2372   { 44, &hf_x411_G3FacsimileNonBasicParameters_resolution_type, -1, -1, "resolution-type", NULL },
2373   { 45, &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400, -1, -1, "resolution-400x400", NULL },
2374   { 46, &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300, -1, -1, "resolution-300x300", NULL },
2375   { 47, &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15, -1, -1, "resolution-8x15", NULL },
2376   { 49, &hf_x411_G3FacsimileNonBasicParameters_edi, -1, -1, "edi", NULL },
2377   { 50, &hf_x411_G3FacsimileNonBasicParameters_dtm, -1, -1, "dtm", NULL },
2378   { 51, &hf_x411_G3FacsimileNonBasicParameters_bft, -1, -1, "bft", NULL },
2379   { 58, &hf_x411_G3FacsimileNonBasicParameters_mixed_mode, -1, -1, "mixed-mode", NULL },
2380   { 60, &hf_x411_G3FacsimileNonBasicParameters_character_mode, -1, -1, "character-mode", NULL },
2381   { 65, &hf_x411_G3FacsimileNonBasicParameters_twelve_bits, -1, -1, "twelve-bits", NULL },
2382   { 66, &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann, -1, -1, "preferred-huffmann", NULL },
2383   { 67, &hf_x411_G3FacsimileNonBasicParameters_full_colour, -1, -1, "full-colour", NULL },
2384   { 68, &hf_x411_G3FacsimileNonBasicParameters_jpeg, -1, -1, "jpeg", NULL },
2385   { 71, &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26, -1, -1, "processable-mode-26", NULL },
2386   { 0, NULL, 0, 0, NULL, NULL }
2387 };
2388
2389 int
2390 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_) {
2391   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2392                                     G3FacsimileNonBasicParameters_bits, hf_index, ett_x411_G3FacsimileNonBasicParameters,
2393                                     NULL);
2394
2395   return offset;
2396 }
2397
2398
2399
2400 static int
2401 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_) {
2402   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
2403                                             actx, tree, tvb, offset, hf_index,
2404                                             NULL);
2405
2406   return offset;
2407 }
2408
2409
2410
2411 static int
2412 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_) {
2413   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2414                                        NULL);
2415
2416   return offset;
2417 }
2418
2419
2420 static const ber_sequence_t TeletexNonBasicParameters_set[] = {
2421   { &hf_x411_graphic_character_sets, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2422   { &hf_x411_control_character_sets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2423   { &hf_x411_page_formats   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OCTET_STRING },
2424   { &hf_x411_miscellaneous_terminal_capabilities, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexString },
2425   { &hf_x411_private_use    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OCTET_STRING },
2426   { NULL, 0, 0, 0, NULL }
2427 };
2428
2429 int
2430 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_) {
2431   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2432                               TeletexNonBasicParameters_set, hf_index, ett_x411_TeletexNonBasicParameters);
2433
2434   return offset;
2435 }
2436
2437
2438
2439 static int
2440 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_) {
2441   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2442
2443   return offset;
2444 }
2445
2446
2447 static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
2448   { &hf_x411_ExtendedEncodedInformationTypes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedEncodedInformationType },
2449 };
2450
2451 static int
2452 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_) {
2453   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2454                                              1, ub_encoded_information_types, ExtendedEncodedInformationTypes_set_of, hf_index, ett_x411_ExtendedEncodedInformationTypes);
2455
2456   return offset;
2457 }
2458
2459
2460 static const ber_sequence_t EncodedInformationTypes_U_set[] = {
2461   { &hf_x411_built_in_encoded_information_types, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_BuiltInEncodedInformationTypes },
2462   { &hf_x411_g3_facsimile   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_G3FacsimileNonBasicParameters },
2463   { &hf_x411_teletex        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexNonBasicParameters },
2464   { &hf_x411_extended_encoded_information_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
2465   { NULL, 0, 0, 0, NULL }
2466 };
2467
2468 static int
2469 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_) {
2470   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2471                               EncodedInformationTypes_U_set, hf_index, ett_x411_EncodedInformationTypes_U);
2472
2473   return offset;
2474 }
2475
2476
2477
2478 int
2479 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_) {
2480   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2481                                       hf_index, BER_CLASS_APP, 5, TRUE, dissect_x411_EncodedInformationTypes_U);
2482
2483   return offset;
2484 }
2485
2486
2487
2488 int
2489 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_) {
2490   offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2491
2492   return offset;
2493 }
2494
2495
2496 static const value_string x411_BuiltInContentType_U_vals[] = {
2497   {   0, "unidentified" },
2498   {   1, "external" },
2499   {   2, "interpersonal-messaging-1984" },
2500   {  22, "interpersonal-messaging-1988" },
2501   {  35, "edi-messaging" },
2502   {  40, "voice-messaging" },
2503   { 0, NULL }
2504 };
2505
2506
2507 static int
2508 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_) {
2509 #line 602 "x411.cnf"
2510   static guint32        ict = -1;       
2511
2512     offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
2513                                                             0U, ub_built_in_content_type, hf_index, &ict);
2514
2515
2516   /* convert integer content type to oid for dispatch when the content is found */
2517   switch(ict) {
2518         case 2:
2519         content_type_id = ep_strdup("2.6.1.10.0");
2520         break;
2521         case 22:
2522         content_type_id = ep_strdup("2.6.1.10.1");
2523         break;
2524         default:
2525         content_type_id = NULL;
2526         break;
2527         }
2528
2529
2530
2531   return offset;
2532 }
2533
2534
2535
2536 static int
2537 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_) {
2538   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2539                                       hf_index, BER_CLASS_APP, 6, TRUE, dissect_x411_BuiltInContentType_U);
2540
2541   return offset;
2542 }
2543
2544
2545
2546 int
2547 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_) {
2548 #line 587 "x411.cnf"
2549         const char *name = NULL;
2550
2551           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &content_type_id);
2552
2553
2554         if(content_type_id) {
2555           name = oid_resolved_from_string(content_type_id);
2556
2557           if(!name) name = content_type_id;
2558
2559           proto_item_append_text(tree, " (%s)", name);
2560         }
2561
2562
2563
2564   return offset;
2565 }
2566
2567
2568 const value_string x411_ContentType_vals[] = {
2569   {   0, "built-in" },
2570   {   1, "extended" },
2571   { 0, NULL }
2572 };
2573
2574 static const ber_choice_t ContentType_choice[] = {
2575   {   0, &hf_x411_built_in       , BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInContentType },
2576   {   1, &hf_x411_extended       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedContentType },
2577   { 0, NULL, 0, 0, 0, NULL }
2578 };
2579
2580 int
2581 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_) {
2582   offset = dissect_ber_choice(actx, tree, tvb, offset,
2583                                  ContentType_choice, hf_index, ett_x411_ContentType,
2584                                  NULL);
2585
2586   return offset;
2587 }
2588
2589
2590
2591 static int
2592 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_) {
2593   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2594                                                         actx, tree, tvb, offset,
2595                                                         1, ub_content_id_length, hf_index, NULL);
2596
2597   return offset;
2598 }
2599
2600
2601
2602 int
2603 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_) {
2604   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2605                                       hf_index, BER_CLASS_APP, 10, TRUE, dissect_x411_PrintableString_SIZE_1_ub_content_id_length);
2606
2607   return offset;
2608 }
2609
2610
2611 static const value_string x411_Priority_U_vals[] = {
2612   {   0, "normal" },
2613   {   1, "non-urgent" },
2614   {   2, "urgent" },
2615   { 0, NULL }
2616 };
2617
2618
2619 static int
2620 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_) {
2621   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2622                                   NULL);
2623
2624   return offset;
2625 }
2626
2627
2628
2629 static int
2630 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_) {
2631   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2632                                       hf_index, BER_CLASS_APP, 7, TRUE, dissect_x411_Priority_U);
2633
2634   return offset;
2635 }
2636
2637
2638 static const asn_namedbit PerMessageIndicators_U_bits[] = {
2639   {  0, &hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients, -1, -1, "disclosure-of-other-recipients", NULL },
2640   {  1, &hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
2641   {  2, &hf_x411_PerMessageIndicators_U_alternate_recipient_allowed, -1, -1, "alternate-recipient-allowed", NULL },
2642   {  3, &hf_x411_PerMessageIndicators_U_content_return_request, -1, -1, "content-return-request", NULL },
2643   {  4, &hf_x411_PerMessageIndicators_U_reserved, -1, -1, "reserved", NULL },
2644   {  5, &hf_x411_PerMessageIndicators_U_bit_5, -1, -1, "bit-5", NULL },
2645   {  6, &hf_x411_PerMessageIndicators_U_bit_6, -1, -1, "bit-6", NULL },
2646   {  7, &hf_x411_PerMessageIndicators_U_service_message, -1, -1, "service-message", NULL },
2647   { 0, NULL, 0, 0, NULL, NULL }
2648 };
2649
2650 static int
2651 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_) {
2652   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2653                                                 0, ub_bit_options, PerMessageIndicators_U_bits, hf_index, ett_x411_PerMessageIndicators_U,
2654                                                 NULL);
2655
2656   return offset;
2657 }
2658
2659
2660
2661 int
2662 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_) {
2663   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2664                                       hf_index, BER_CLASS_APP, 8, TRUE, dissect_x411_PerMessageIndicators_U);
2665
2666   return offset;
2667 }
2668
2669
2670
2671 static int
2672 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_) {
2673 #line 1149 "x411.cnf"
2674         tvbuff_t *arrival = NULL;
2675
2676           offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
2677
2678
2679         if(arrival && doing_address)
2680                 proto_item_append_text(address_item, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
2681
2682
2683
2684   return offset;
2685 }
2686
2687
2688
2689 static int
2690 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_) {
2691   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2692
2693   return offset;
2694 }
2695
2696
2697 static const ber_sequence_t T_private_domain_sequence[] = {
2698   { &hf_x411_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_AdministrationDomainName },
2699   { &hf_x411_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
2700   { NULL, 0, 0, 0, NULL }
2701 };
2702
2703 static int
2704 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_) {
2705   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2706                                    T_private_domain_sequence, hf_index, ett_x411_T_private_domain);
2707
2708   return offset;
2709 }
2710
2711
2712 static const value_string x411_T_bilateral_domain_vals[] = {
2713   {   0, "administration-domain-name" },
2714   {   1, "private-domain" },
2715   { 0, NULL }
2716 };
2717
2718 static const ber_choice_t T_bilateral_domain_choice[] = {
2719   {   0, &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
2720   {   1, &hf_x411_private_domain , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_private_domain },
2721   { 0, NULL, 0, 0, 0, NULL }
2722 };
2723
2724 static int
2725 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_) {
2726   offset = dissect_ber_choice(actx, tree, tvb, offset,
2727                                  T_bilateral_domain_choice, hf_index, ett_x411_T_bilateral_domain,
2728                                  NULL);
2729
2730   return offset;
2731 }
2732
2733
2734
2735 static int
2736 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_) {
2737 #line 1217 "x411.cnf"
2738         proto_item *item = NULL;
2739         int         loffset = 0;
2740         guint32     len = 0;
2741
2742         /* work out the length */
2743         loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
2744         (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
2745
2746         /* create some structure so we can tell what this unknown ASN.1 represents */   
2747         item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
2748         tree = proto_item_add_subtree(item, ett_x411_bilateral_information);
2749
2750         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
2751
2752
2753
2754   return offset;
2755 }
2756
2757
2758 static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
2759   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
2760   { &hf_x411_bilateral_domain, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_bilateral_domain },
2761   { &hf_x411_bilateral_information, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x411_T_bilateral_information },
2762   { NULL, 0, 0, 0, NULL }
2763 };
2764
2765 static int
2766 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_) {
2767   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2768                                    PerDomainBilateralInformation_sequence, hf_index, ett_x411_PerDomainBilateralInformation);
2769
2770   return offset;
2771 }
2772
2773
2774 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of[1] = {
2775   { &hf_x411_per_domain_bilateral_information_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_PerDomainBilateralInformation },
2776 };
2777
2778 static int
2779 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_) {
2780   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2781                                                   1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation);
2782
2783   return offset;
2784 }
2785
2786
2787
2788 static int
2789 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_) {
2790   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2791
2792   return offset;
2793 }
2794
2795
2796 static const value_string x411_RoutingAction_vals[] = {
2797   {   0, "relayed" },
2798   {   1, "rerouted" },
2799   { 0, NULL }
2800 };
2801
2802
2803 static int
2804 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_) {
2805 #line 1160 "x411.cnf"
2806         int action = 0;
2807
2808           offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2809                                   &action);
2810
2811
2812         proto_item_append_text(address_item, " %s", val_to_str(action, x411_RoutingAction_vals, "action(%d)"));
2813
2814
2815
2816   return offset;
2817 }
2818
2819
2820
2821 static int
2822 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_) {
2823   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2824
2825   return offset;
2826 }
2827
2828
2829
2830 static int
2831 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_) {
2832   offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2833
2834   return offset;
2835 }
2836
2837
2838 static const asn_namedbit OtherActions_bits[] = {
2839   {  0, &hf_x411_OtherActions_redirected, -1, -1, "redirected", NULL },
2840   {  1, &hf_x411_OtherActions_dl_operation, -1, -1, "dl-operation", NULL },
2841   { 0, NULL, 0, 0, NULL, NULL }
2842 };
2843
2844 static int
2845 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_) {
2846   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2847                                                 0, ub_bit_options, OtherActions_bits, hf_index, ett_x411_OtherActions,
2848                                                 NULL);
2849
2850   return offset;
2851 }
2852
2853
2854 static const ber_sequence_t DomainSuppliedInformation_set[] = {
2855   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
2856   { &hf_x411_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RoutingAction },
2857   { &hf_x411_attempted_domain, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
2858   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
2859   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
2860   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
2861   { NULL, 0, 0, 0, NULL }
2862 };
2863
2864 static int
2865 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_) {
2866 #line 1128 "x411.cnf"
2867
2868         doing_address = FALSE;
2869
2870           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2871                               DomainSuppliedInformation_set, hf_index, ett_x411_DomainSuppliedInformation);
2872
2873
2874         doing_address = TRUE;
2875         proto_item_append_text(tree, ")");
2876
2877
2878
2879   return offset;
2880 }
2881
2882
2883 static const ber_sequence_t TraceInformationElement_sequence[] = {
2884   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
2885   { &hf_x411_domain_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_DomainSuppliedInformation },
2886   { NULL, 0, 0, 0, NULL }
2887 };
2888
2889 static int
2890 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_) {
2891 #line 1112 "x411.cnf"
2892
2893         doing_address = TRUE;
2894
2895           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2896                                    TraceInformationElement_sequence, hf_index, ett_x411_TraceInformationElement);
2897
2898
2899         doing_address = FALSE;
2900
2901
2902
2903   return offset;
2904 }
2905
2906
2907 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of[1] = {
2908   { &hf_x411__untag_item    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformationElement },
2909 };
2910
2911 static int
2912 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_) {
2913   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2914                                                   1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2915
2916   return offset;
2917 }
2918
2919
2920
2921 static int
2922 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_) {
2923   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2924                                       hf_index, BER_CLASS_APP, 9, TRUE, dissect_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2925
2926   return offset;
2927 }
2928
2929
2930 static const value_string x411_StandardExtension_vals[] = {
2931   {   1, "recipient-reassignment-prohibited" },
2932   {   2, "originator-requested-alternate-recipient" },
2933   {   3, "dl-expansion-prohibited" },
2934   {   4, "conversion-with-loss-prohibited" },
2935   {   5, "latest-delivery-time" },
2936   {   6, "requested-delivery-method" },
2937   {   7, "physical-forwarding-prohibited" },
2938   {   8, "physical-forwarding-address-request" },
2939   {   9, "physical-delivery-modes" },
2940   {  10, "registered-mail-type" },
2941   {  11, "recipient-number-for-advice" },
2942   {  12, "physical-rendition-attributes" },
2943   {  13, "originator-return-address" },
2944   {  14, "physical-delivery-report-request" },
2945   {  15, "originator-certificate" },
2946   {  16, "message-token" },
2947   {  17, "content-confidentiality-algorithm-identifier" },
2948   {  18, "content-integrity-check" },
2949   {  19, "message-origin-authentication-check" },
2950   {  20, "message-security-label" },
2951   {  21, "proof-of-submission-request" },
2952   {  22, "proof-of-delivery-request" },
2953   {  23, "content-correlator" },
2954   {  24, "probe-origin-authentication-check" },
2955   {  25, "redirection-history" },
2956   {  26, "dl-expansion-history" },
2957   {  27, "physical-forwarding-address" },
2958   {  28, "recipient-certificate" },
2959   {  29, "proof-of-delivery" },
2960   {  30, "originator-and-DL-expansion-history" },
2961   {  31, "reporting-DL-name" },
2962   {  32, "reporting-MTA-certificate" },
2963   {  33, "report-origin-authentication-check" },
2964   {  34, "originating-MTA-certificate" },
2965   {  35, "proof-of-submission" },
2966   {  36, "forwarding-request" },
2967   {  37, "trace-information" },
2968   {  38, "internal-trace-information" },
2969   {  39, "reporting-MTA-name" },
2970   {  40, "multiple-originator-certificates" },
2971   {  41, "blind-copy-recipients" },
2972   {  42, "dl-exempted-recipients" },
2973   {  43, "body-part-encryption-token" },
2974   {  44, "forwarded-content-token" },
2975   {  45, "certificate-selectors" },
2976   { 0, NULL }
2977 };
2978
2979
2980 static int
2981 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_) {
2982   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2983                                                 &extension_id);
2984
2985   return offset;
2986 }
2987
2988
2989
2990 static int
2991 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_) {
2992 #line 579 "x411.cnf"
2993
2994           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
2995
2996         extension_id = -1;
2997
2998
2999
3000   return offset;
3001 }
3002
3003
3004 static const value_string x411_ExtensionType_vals[] = {
3005   {   0, "standard-extension" },
3006   {   3, "private-extension" },
3007   { 0, NULL }
3008 };
3009
3010 static const ber_choice_t ExtensionType_choice[] = {
3011   {   0, &hf_x411_standard_extension, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_StandardExtension },
3012   {   3, &hf_x411_private_extension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_T_private_extension },
3013   { 0, NULL, 0, 0, 0, NULL }
3014 };
3015
3016 static int
3017 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_) {
3018   offset = dissect_ber_choice(actx, tree, tvb, offset,
3019                                  ExtensionType_choice, hf_index, ett_x411_ExtensionType,
3020                                  NULL);
3021
3022   return offset;
3023 }
3024
3025
3026 static const asn_namedbit Criticality_bits[] = {
3027   {  0, &hf_x411_Criticality_for_submission, -1, -1, "for-submission", NULL },
3028   {  1, &hf_x411_Criticality_for_transfer, -1, -1, "for-transfer", NULL },
3029   {  2, &hf_x411_Criticality_for_delivery, -1, -1, "for-delivery", NULL },
3030   { 0, NULL, 0, 0, NULL, NULL }
3031 };
3032
3033 static int
3034 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_) {
3035   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3036                                                 0, ub_bit_options, Criticality_bits, hf_index, ett_x411_Criticality,
3037                                                 NULL);
3038
3039   return offset;
3040 }
3041
3042
3043
3044 static int
3045 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_) {
3046 #line 501 "x411.cnf"
3047         const char *name;
3048
3049         if(extension_id != -1) {
3050                 proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_StandardExtension_vals, "standard-extension %d")); 
3051                 if (dissector_try_port(x411_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
3052                         offset = tvb_length(tvb);
3053                 } else {
3054                         proto_item *item = NULL;
3055                         proto_tree *next_tree = NULL;
3056
3057                         item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
3058                                 "Dissector for standard-extension %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
3059                         next_tree = proto_item_add_subtree(item, ett_x411_unknown_standard_extension);
3060                         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
3061                         expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown standard-extension");
3062                 }
3063         } else if (object_identifier_id) {
3064                 offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
3065                 name = oid_resolved_from_string(object_identifier_id);
3066                 proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id); 
3067         }
3068                 
3069
3070
3071
3072   return offset;
3073 }
3074
3075
3076 static const ber_sequence_t ExtensionField_sequence[] = {
3077   { &hf_x411_extension_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExtensionType },
3078   { &hf_x411_criticality    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Criticality },
3079   { &hf_x411_extension_value, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtensionValue },
3080   { NULL, 0, 0, 0, NULL }
3081 };
3082
3083 int
3084 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_) {
3085   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3086                                    ExtensionField_sequence, hf_index, ett_x411_ExtensionField);
3087
3088   return offset;
3089 }
3090
3091
3092 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
3093   { &hf_x411_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionField },
3094 };
3095
3096 static int
3097 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_) {
3098   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3099                                  SET_OF_ExtensionField_set_of, hf_index, ett_x411_SET_OF_ExtensionField);
3100
3101   return offset;
3102 }
3103
3104
3105
3106 static int
3107 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_) {
3108   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3109
3110   return offset;
3111 }
3112
3113
3114
3115 static int
3116 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_) {
3117   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3118                                                             1U, ub_recipients, hf_index, NULL);
3119
3120   return offset;
3121 }
3122
3123
3124 static const asn_namedbit PerRecipientIndicators_bits[] = {
3125   {  0, &hf_x411_PerRecipientIndicators_responsibility, -1, -1, "responsibility", NULL },
3126   {  1, &hf_x411_PerRecipientIndicators_originating_MTA_report, -1, -1, "originating-MTA-report", NULL },
3127   {  2, &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report, -1, -1, "originating-MTA-non-delivery-report", NULL },
3128   {  3, &hf_x411_PerRecipientIndicators_originator_report, -1, -1, "originator-report", NULL },
3129   {  4, &hf_x411_PerRecipientIndicators_originator_non_delivery_report, -1, -1, "originator-non-delivery-report", NULL },
3130   {  5, &hf_x411_PerRecipientIndicators_reserved_5, -1, -1, "reserved-5", NULL },
3131   {  6, &hf_x411_PerRecipientIndicators_reserved_6, -1, -1, "reserved-6", NULL },
3132   {  7, &hf_x411_PerRecipientIndicators_reserved_7, -1, -1, "reserved-7", NULL },
3133   { 0, NULL, 0, 0, NULL, NULL }
3134 };
3135
3136 static int
3137 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_) {
3138   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3139                                                 8, ub_bit_options, PerRecipientIndicators_bits, hf_index, ett_x411_PerRecipientIndicators,
3140                                                 NULL);
3141
3142   return offset;
3143 }
3144
3145
3146 static const value_string x411_ExplicitConversion_vals[] = {
3147   {   0, "ia5-text-to-teletex" },
3148   {   8, "ia5-text-to-g3-facsimile" },
3149   {   9, "ia5-text-to-g4-class-1" },
3150   {  10, "ia5-text-to-videotex" },
3151   {  11, "teletex-to-ia5-text" },
3152   {  12, "teletex-to-g3-facsimile" },
3153   {  13, "teletex-to-g4-class-1" },
3154   {  14, "teletex-to-videotex" },
3155   {  16, "videotex-to-ia5-text" },
3156   {  17, "videotex-to-teletex" },
3157   { 0, NULL }
3158 };
3159
3160
3161 static int
3162 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_) {
3163   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3164                                                             0U, ub_integer_options, hf_index, NULL);
3165
3166   return offset;
3167 }
3168
3169
3170 static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
3171   { &hf_x411_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTARecipientName },
3172   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3173   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3174   { &hf_x411_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
3175   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3176   { NULL, 0, 0, 0, NULL }
3177 };
3178
3179 static int
3180 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_) {
3181   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3182                               PerRecipientMessageTransferFields_set, hf_index, ett_x411_PerRecipientMessageTransferFields);
3183
3184   return offset;
3185 }
3186
3187
3188 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
3189   { &hf_x411_per_recipient_message_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientMessageTransferFields },
3190 };
3191
3192 static int
3193 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_) {
3194   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3195                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields);
3196
3197   return offset;
3198 }
3199
3200
3201 static const ber_sequence_t MessageTransferEnvelope_set[] = {
3202   { &hf_x411_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageIdentifier },
3203   { &hf_x411_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3204   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3205   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3206   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3207   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
3208   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3209   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
3210   { &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 },
3211   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3212   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3213   { &hf_x411_per_recipient_message_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields },
3214   { NULL, 0, 0, 0, NULL }
3215 };
3216
3217 static int
3218 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_) {
3219   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3220                               MessageTransferEnvelope_set, hf_index, ett_x411_MessageTransferEnvelope);
3221
3222   return offset;
3223 }
3224
3225
3226
3227 int
3228 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_) {
3229 #line 620 "x411.cnf"
3230   tvbuff_t *next_tvb;
3231
3232   /* we can do this now constructed octet strings are supported */
3233   offset = dissect_ber_octet_string(FALSE, actx, NULL, tvb, offset, hf_index, &next_tvb);
3234
3235   if (next_tvb) {
3236     if (content_type_id) {
3237       (void) call_ber_oid_callback(content_type_id, next_tvb, 0, actx->pinfo, top_tree ? top_tree : tree);
3238     } else {
3239       proto_item *item = NULL;
3240       proto_tree *next_tree = NULL;
3241
3242       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)");
3243       expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown built-in content-type");
3244       if (item) {
3245         next_tree=proto_item_add_subtree(item, ett_x411_content_unknown);
3246       }
3247       dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
3248     }
3249   }
3250
3251
3252
3253   return offset;
3254 }
3255
3256
3257 static const ber_sequence_t Message_sequence[] = {
3258   { &hf_x411_message_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MessageTransferEnvelope },
3259   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
3260   { NULL, 0, 0, 0, NULL }
3261 };
3262
3263 static int
3264 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_) {
3265   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3266                                    Message_sequence, hf_index, ett_x411_Message);
3267
3268   return offset;
3269 }
3270
3271
3272
3273 static int
3274 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_) {
3275   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3276
3277   return offset;
3278 }
3279
3280
3281
3282 int
3283 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_) {
3284   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3285                                                             0U, ub_content_length, hf_index, NULL);
3286
3287   return offset;
3288 }
3289
3290
3291 static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
3292   { &hf_x411_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTARecipientName },
3293   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3294   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3295   { &hf_x411_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
3296   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3297   { NULL, 0, 0, 0, NULL }
3298 };
3299
3300 static int
3301 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_) {
3302   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3303                               PerRecipientProbeTransferFields_set, hf_index, ett_x411_PerRecipientProbeTransferFields);
3304
3305   return offset;
3306 }
3307
3308
3309 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
3310   { &hf_x411_per_recipient_probe_transfer_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientProbeTransferFields },
3311 };
3312
3313 static int
3314 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_) {
3315   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3316                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields);
3317
3318   return offset;
3319 }
3320
3321
3322 static const ber_sequence_t ProbeTransferEnvelope_set[] = {
3323   { &hf_x411_probe_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeIdentifier },
3324   { &hf_x411_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3325   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3326   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3327   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3328   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
3329   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3330   { &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 },
3331   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3332   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3333   { &hf_x411_per_recipient_probe_transfer_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields },
3334   { NULL, 0, 0, 0, NULL }
3335 };
3336
3337 static int
3338 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_) {
3339   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3340                               ProbeTransferEnvelope_set, hf_index, ett_x411_ProbeTransferEnvelope);
3341
3342   return offset;
3343 }
3344
3345
3346
3347 static int
3348 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_) {
3349   offset = dissect_x411_ProbeTransferEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
3350
3351   return offset;
3352 }
3353
3354
3355
3356 static int
3357 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_) {
3358   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3359
3360   return offset;
3361 }
3362
3363
3364
3365 static int
3366 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_) {
3367   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3368
3369   return offset;
3370 }
3371
3372
3373 static const ber_sequence_t ReportTransferEnvelope_set[] = {
3374   { &hf_x411_report_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ReportIdentifier },
3375   { &hf_x411_report_destination_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ReportDestinationName },
3376   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3377   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3378   { NULL, 0, 0, 0, NULL }
3379 };
3380
3381 static int
3382 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_) {
3383   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3384                               ReportTransferEnvelope_set, hf_index, ett_x411_ReportTransferEnvelope);
3385
3386   return offset;
3387 }
3388
3389
3390
3391 static int
3392 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_) {
3393   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3394
3395   return offset;
3396 }
3397
3398
3399
3400 static int
3401 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_) {
3402   offset = dissect_x411_MessageOrProbeIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3403
3404   return offset;
3405 }
3406
3407
3408
3409 static int
3410 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_) {
3411   offset = dissect_x411_TraceInformation(implicit_tag, tvb, offset, actx, tree, hf_index);
3412
3413   return offset;
3414 }
3415
3416
3417
3418 static int
3419 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_) {
3420 #line 483 "x411.cnf"
3421    proto_item *item = NULL;
3422    int         loffset = 0;
3423    guint32     len = 0;
3424
3425    /* work out the length */
3426    loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
3427    (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
3428
3429    item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
3430    tree = proto_item_add_subtree(item, ett_x411_additional_information);
3431    proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)"); 
3432
3433    offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
3434
3435
3436
3437   return offset;
3438 }
3439
3440
3441
3442 static int
3443 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_) {
3444   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3445
3446   return offset;
3447 }
3448
3449
3450
3451 int
3452 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_) {
3453   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
3454
3455   return offset;
3456 }
3457
3458
3459 static const value_string x411_TypeOfMTSUser_vals[] = {
3460   {   0, "public" },
3461   {   1, "private" },
3462   {   2, "ms" },
3463   {   3, "dl" },
3464   {   4, "pdau" },
3465   {   5, "physical-recipient" },
3466   {   6, "other" },
3467   { 0, NULL }
3468 };
3469
3470
3471 static int
3472 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_) {
3473   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3474                                                             0U, ub_mts_user_types, hf_index, NULL);
3475
3476   return offset;
3477 }
3478
3479
3480 static const ber_sequence_t DeliveryReport_set[] = {
3481   { &hf_x411_message_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MessageDeliveryTime },
3482   { &hf_x411_type_of_MTS_user, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TypeOfMTSUser },
3483   { NULL, 0, 0, 0, NULL }
3484 };
3485
3486 static int
3487 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_) {
3488   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3489                               DeliveryReport_set, hf_index, ett_x411_DeliveryReport);
3490
3491   return offset;
3492 }
3493
3494
3495 const value_string x411_NonDeliveryReasonCode_vals[] = {
3496   {   0, "transfer-failure" },
3497   {   1, "unable-to-transfer" },
3498   {   2, "conversion-not-performed" },
3499   {   3, "physical-rendition-not-performed" },
3500   {   4, "physical-delivery-not-performed" },
3501   {   5, "restricted-delivery" },
3502   {   6, "directory-operation-unsuccessful" },
3503   {   7, "deferred-delivery-not-performed" },
3504   {   8, "transfer-failure-for-security-reason" },
3505   { 0, NULL }
3506 };
3507
3508
3509 int
3510 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_) {
3511   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3512                                                             0U, ub_reason_codes, hf_index, NULL);
3513
3514   return offset;
3515 }
3516
3517
3518 const value_string x411_NonDeliveryDiagnosticCode_vals[] = {
3519   {   0, "unrecognised-OR-name" },
3520   {   1, "ambiguous-OR-name" },
3521   {   2, "mts-congestion" },
3522   {   3, "loop-detected" },
3523   {   4, "recipient-unavailable" },
3524   {   5, "maximum-time-expired" },
3525   {   6, "encoded-information-types-unsupported" },
3526   {   7, "content-too-long" },
3527   {   8, "conversion-impractical" },
3528   {   9, "implicit-conversion-prohibited" },
3529   {  10, "implicit-conversion-not-subscribed" },
3530   {  11, "invalid-arguments" },
3531   {  12, "content-syntax-error" },
3532   {  13, "size-constraint-violation" },
3533   {  14, "protocol-violation" },
3534   {  15, "content-type-not-supported" },
3535   {  16, "too-many-recipients" },
3536   {  17, "no-bilateral-agreement" },
3537   {  18, "unsupported-critical-function" },
3538   {  19, "conversion-with-loss-prohibited" },
3539   {  20, "line-too-long" },
3540   {  21, "page-split" },
3541   {  22, "pictorial-symbol-loss" },
3542   {  23, "punctuation-symbol-loss" },
3543   {  24, "alphabetic-character-loss" },
3544   {  25, "multiple-information-loss" },
3545   {  26, "recipient-reassignment-prohibited" },
3546   {  27, "redirection-loop-detected" },
3547   {  28, "dl-expansion-prohibited" },
3548   {  29, "no-dl-submit-permission" },
3549   {  30, "dl-expansion-failure" },
3550   {  31, "physical-rendition-attributes-not-supported" },
3551   {  32, "undeliverable-mail-physical-delivery-address-incorrect" },
3552   {  33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
3553   {  34, "undeliverable-mail-physical-delivery-address-incomplete" },
3554   {  35, "undeliverable-mail-recipient-unknown" },
3555   {  36, "undeliverable-mail-recipient-deceased" },
3556   {  37, "undeliverable-mail-organization-expired" },
3557   {  38, "undeliverable-mail-recipient-refused-to-accept" },
3558   {  39, "undeliverable-mail-recipient-did-not-claim" },
3559   {  40, "undeliverable-mail-recipient-changed-address-permanently" },
3560   {  41, "undeliverable-mail-recipient-changed-address-temporarily" },
3561   {  42, "undeliverable-mail-recipient-changed-temporary-address" },
3562   {  43, "undeliverable-mail-new-address-unknown" },
3563   {  44, "undeliverable-mail-recipient-did-not-want-forwarding" },
3564   {  45, "undeliverable-mail-originator-prohibited-forwarding" },
3565   {  46, "secure-messaging-error" },
3566   {  47, "unable-to-downgrade" },
3567   {  48, "unable-to-complete-transfer" },
3568   {  49, "transfer-attempts-limit-reached" },
3569   {  50, "incorrect-notification-type" },
3570   {  51, "dl-expansion-prohibited-by-security-policy" },
3571   {  52, "forbidden-alternate-recipient" },
3572   {  53, "security-policy-violation" },
3573   {  54, "security-services-refusal" },
3574   {  55, "unauthorised-dl-member" },
3575   {  56, "unauthorised-dl-name" },
3576   {  57, "unauthorised-originally-intended-recipient-name" },
3577   {  58, "unauthorised-originator-name" },
3578   {  59, "unauthorised-recipient-name" },
3579   {  60, "unreliable-system" },
3580   {  61, "authentication-failure-on-subject-message" },
3581   {  62, "decryption-failed" },
3582   {  63, "decryption-key-unobtainable" },
3583   {  64, "double-envelope-creation-failure" },
3584   {  65, "double-enveloping-message-restoring-failure" },
3585   {  66, "failure-of-proof-of-message" },
3586   {  67, "integrity-failure-on-subject-message" },
3587   {  68, "invalid-security-label" },
3588   {  69, "key-failure" },
3589   {  70, "mandatory-parameter-absence" },
3590   {  71, "operation-security-failure" },
3591   {  72, "repudiation-failure-of-message" },
3592   {  73, "security-context-failure" },
3593   {  74, "token-decryption-failed" },
3594   {  75, "token-error" },
3595   {  76, "unknown-security-label" },
3596   {  77, "unsupported-algorithm-identifier" },
3597   {  78, "unsupported-security-policy" },
3598   { 0, NULL }
3599 };
3600
3601
3602 int
3603 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_) {
3604   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3605                                                             0U, ub_diagnostic_codes, hf_index, NULL);
3606
3607   return offset;
3608 }
3609
3610
3611 static const ber_sequence_t NonDeliveryReport_set[] = {
3612   { &hf_x411_non_delivery_reason_code, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryReasonCode },
3613   { &hf_x411_non_delivery_diagnostic_code, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryDiagnosticCode },
3614   { NULL, 0, 0, 0, NULL }
3615 };
3616
3617 static int
3618 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_) {
3619   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3620                               NonDeliveryReport_set, hf_index, ett_x411_NonDeliveryReport);
3621
3622   return offset;
3623 }
3624
3625
3626 static const value_string x411_ReportType_vals[] = {
3627   {   0, "delivery" },
3628   {   1, "non-delivery" },
3629   { 0, NULL }
3630 };
3631
3632 static const ber_choice_t ReportType_choice[] = {
3633   {   0, &hf_x411_delivery       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryReport },
3634   {   1, &hf_x411_non_delivery   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_NonDeliveryReport },
3635   { 0, NULL, 0, 0, 0, NULL }
3636 };
3637
3638 static int
3639 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_) {
3640 #line 1249 "x411.cnf"
3641         gint report = -1;
3642
3643           offset = dissect_ber_choice(actx, tree, tvb, offset,
3644                                  ReportType_choice, hf_index, ett_x411_ReportType,
3645                                  &report);
3646
3647         
3648         if( (report!=-1) && x411_ReportType_vals[report].strptr ){
3649                 if(check_col(actx->pinfo->cinfo, COL_INFO)) {
3650                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_ReportType_vals[report].strptr);
3651                 }
3652         }
3653
3654
3655
3656   return offset;
3657 }
3658
3659
3660 static const ber_sequence_t LastTraceInformation_set[] = {
3661   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
3662   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
3663   { &hf_x411_trace_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ReportType },
3664   { NULL, 0, 0, 0, NULL }
3665 };
3666
3667 static int
3668 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_) {
3669   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3670                               LastTraceInformation_set, hf_index, ett_x411_LastTraceInformation);
3671
3672   return offset;
3673 }
3674
3675
3676
3677 static int
3678 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_) {
3679   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3680
3681   return offset;
3682 }
3683
3684
3685
3686 int
3687 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_) {
3688   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
3689                                                         actx, tree, tvb, offset,
3690                                                         1, ub_supplementary_info_length, hf_index, NULL);
3691
3692   return offset;
3693 }
3694
3695
3696 static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
3697   { &hf_x411_mta_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAActualRecipientName },
3698   { &hf_x411_originally_specified_recipient_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_OriginallySpecifiedRecipientNumber },
3699   { &hf_x411_per_recipient_indicators, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientIndicators },
3700   { &hf_x411_last_trace_information, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_LastTraceInformation },
3701   { &hf_x411_report_originally_intended_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
3702   { &hf_x411_supplementary_information, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SupplementaryInformation },
3703   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3704   { NULL, 0, 0, 0, NULL }
3705 };
3706
3707 static int
3708 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_) {
3709   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3710                               PerRecipientReportTransferFields_set, hf_index, ett_x411_PerRecipientReportTransferFields);
3711
3712   return offset;
3713 }
3714
3715
3716 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of[1] = {
3717   { &hf_x411_per_recipient_report_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientReportTransferFields },
3718 };
3719
3720 static int
3721 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_) {
3722   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3723                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields);
3724
3725   return offset;
3726 }
3727
3728
3729 static const ber_sequence_t ReportTransferContent_set[] = {
3730   { &hf_x411_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIdentifier },
3731   { &hf_x411_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIntermediateTraceInformation },
3732   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3733   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3734   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3735   { &hf_x411_returned_content, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
3736   { &hf_x411_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AdditionalInformation },
3737   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3738   { &hf_x411_per_recipient_report_fields, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields },
3739   { NULL, 0, 0, 0, NULL }
3740 };
3741
3742 static int
3743 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_) {
3744   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3745                               ReportTransferContent_set, hf_index, ett_x411_ReportTransferContent);
3746
3747   return offset;
3748 }
3749
3750
3751 static const ber_sequence_t Report_sequence[] = {
3752   { &hf_x411_report_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_ReportTransferEnvelope },
3753   { &hf_x411_report_content , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_ReportTransferContent },
3754   { NULL, 0, 0, 0, NULL }
3755 };
3756
3757 static int
3758 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_) {
3759   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3760                                    Report_sequence, hf_index, ett_x411_Report);
3761
3762   return offset;
3763 }
3764
3765
3766 static const value_string x411_MTS_APDU_vals[] = {
3767   {   0, "message" },
3768   {   2, "probe" },
3769   {   1, "report" },
3770   { 0, NULL }
3771 };
3772
3773 static const ber_choice_t MTS_APDU_choice[] = {
3774   {   0, &hf_x411_message        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_Message },
3775   {   2, &hf_x411_probe          , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_Probe },
3776   {   1, &hf_x411_report         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_Report },
3777   { 0, NULL, 0, 0, 0, NULL }
3778 };
3779
3780 static int
3781 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_) {
3782 #line 1235 "x411.cnf"
3783         gint apdu = -1;
3784
3785           offset = dissect_ber_choice(actx, tree, tvb, offset,
3786                                  MTS_APDU_choice, hf_index, ett_x411_MTS_APDU,
3787                                  &apdu);
3788
3789         
3790         if( (apdu!=-1) && x411_MTS_APDU_vals[apdu].strptr ){
3791                 if(check_col(actx->pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
3792                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x411_MTS_APDU_vals[apdu].strptr);
3793                 }
3794         }
3795
3796
3797
3798   return offset;
3799 }
3800
3801
3802 static const ber_sequence_t PerMessageTransferFields_set[] = {
3803   { &hf_x411_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageIdentifier },
3804   { &hf_x411_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3805   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3806   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3807   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3808   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
3809   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3810   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
3811   { &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 },
3812   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3813   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3814   { NULL, 0, 0, 0, NULL }
3815 };
3816
3817 static int
3818 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_) {
3819   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3820                               PerMessageTransferFields_set, hf_index, ett_x411_PerMessageTransferFields);
3821
3822   return offset;
3823 }
3824
3825
3826 static const ber_sequence_t PerProbeTransferFields_set[] = {
3827   { &hf_x411_probe_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeIdentifier },
3828   { &hf_x411_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTAOriginatorName },
3829   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3830   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3831   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3832   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
3833   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
3834   { &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 },
3835   { &hf_x411_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_x411_TraceInformation },
3836   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3837   { NULL, 0, 0, 0, NULL }
3838 };
3839
3840 static int
3841 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_) {
3842   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3843                               PerProbeTransferFields_set, hf_index, ett_x411_PerProbeTransferFields);
3844
3845   return offset;
3846 }
3847
3848
3849 static const ber_sequence_t PerReportTransferFields_set[] = {
3850   { &hf_x411_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIdentifier },
3851   { &hf_x411_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_SubjectIntermediateTraceInformation },
3852   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
3853   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
3854   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
3855   { &hf_x411_returned_content, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
3856   { &hf_x411_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AdditionalInformation },
3857   { &hf_x411_extensions     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
3858   { NULL, 0, 0, 0, NULL }
3859 };
3860
3861 static int
3862 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_) {
3863   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3864                               PerReportTransferFields_set, hf_index, ett_x411_PerReportTransferFields);
3865
3866   return offset;
3867 }
3868
3869
3870 static const ber_sequence_t T_private_domain_01_sequence[] = {
3871   { &hf_x411_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_AdministrationDomainName },
3872   { &hf_x411_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_PrivateDomainIdentifier },
3873   { NULL, 0, 0, 0, NULL }
3874 };
3875
3876 static int
3877 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_) {
3878   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3879                                    T_private_domain_01_sequence, hf_index, ett_x411_T_private_domain_01);
3880
3881   return offset;
3882 }
3883
3884
3885 static const value_string x411_T_domain_vals[] = {
3886   {   0, "administration-domain-name" },
3887   {   1, "private-domain" },
3888   { 0, NULL }
3889 };
3890
3891 static const ber_choice_t T_domain_choice[] = {
3892   {   0, &hf_x411_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_x411_AdministrationDomainName },
3893   {   1, &hf_x411_private_domain_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_private_domain_01 },
3894   { 0, NULL, 0, 0, 0, NULL }
3895 };
3896
3897 static int
3898 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_) {
3899   offset = dissect_ber_choice(actx, tree, tvb, offset,
3900                                  T_domain_choice, hf_index, ett_x411_T_domain,
3901                                  NULL);
3902
3903   return offset;
3904 }
3905
3906
3907 static const ber_sequence_t BilateralDomain_sequence[] = {
3908   { &hf_x411_country_name   , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_x411_CountryName },
3909   { &hf_x411_domain         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_domain },
3910   { NULL, 0, 0, 0, NULL }
3911 };
3912
3913 static int
3914 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_) {
3915   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3916                                    BilateralDomain_sequence, hf_index, ett_x411_BilateralDomain);
3917
3918   return offset;
3919 }
3920
3921
3922 static const value_string x411_T_attempted_vals[] = {
3923   {   0, "mta" },
3924   {   1, "domain" },
3925   { 0, NULL }
3926 };
3927
3928 static const ber_choice_t T_attempted_choice[] = {
3929   {   0, &hf_x411_mta            , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
3930   {   1, &hf_x411_domain_01      , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
3931   { 0, NULL, 0, 0, 0, NULL }
3932 };
3933
3934 static int
3935 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_) {
3936   offset = dissect_ber_choice(actx, tree, tvb, offset,
3937                                  T_attempted_choice, hf_index, ett_x411_T_attempted,
3938                                  NULL);
3939
3940   return offset;
3941 }
3942
3943
3944 static const ber_sequence_t MTASuppliedInformation_set[] = {
3945   { &hf_x411_arrival_time   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ArrivalTime },
3946   { &hf_x411_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RoutingAction },
3947   { &hf_x411_attempted      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_attempted },
3948   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
3949   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
3950   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
3951   { NULL, 0, 0, 0, NULL }
3952 };
3953
3954 static int
3955 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_) {
3956 #line 1137 "x411.cnf"
3957
3958         doing_address = FALSE;
3959
3960           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3961                               MTASuppliedInformation_set, hf_index, ett_x411_MTASuppliedInformation);
3962
3963
3964         doing_address = TRUE;
3965         proto_item_append_text(tree, ")");
3966
3967
3968
3969   return offset;
3970 }
3971
3972
3973 static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
3974   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
3975   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
3976   { &hf_x411_mta_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MTASuppliedInformation },
3977   { NULL, 0, 0, 0, NULL }
3978 };
3979
3980 static int
3981 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_) {
3982 #line 1120 "x411.cnf"
3983
3984         doing_address = TRUE;
3985
3986           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3987                                    InternalTraceInformationElement_sequence, hf_index, ett_x411_InternalTraceInformationElement);
3988
3989
3990         doing_address = FALSE;
3991
3992
3993
3994   return offset;
3995 }
3996
3997
3998 static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
3999   { &hf_x411_InternalTraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_InternalTraceInformationElement },
4000 };
4001
4002 static int
4003 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_) {
4004   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4005                                                   1, ub_transfers, InternalTraceInformation_sequence_of, hf_index, ett_x411_InternalTraceInformation);
4006
4007   return offset;
4008 }
4009
4010
4011 static const ber_sequence_t AdditionalActions_set[] = {
4012   { &hf_x411_deferred_time  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredTime },
4013   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
4014   { &hf_x411_other_actions  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherActions },
4015   { NULL, 0, 0, 0, NULL }
4016 };
4017
4018 static int
4019 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_) {
4020   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4021                               AdditionalActions_set, hf_index, ett_x411_AdditionalActions);
4022
4023   return offset;
4024 }
4025
4026
4027
4028 static int
4029 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_) {
4030   offset = dissect_x411_AdditionalActions(implicit_tag, tvb, offset, actx, tree, hf_index);
4031
4032   return offset;
4033 }
4034
4035
4036 static const value_string x411_ObjectName_vals[] = {
4037   {   0, "user-agent" },
4038   {   1, "mTA" },
4039   {   2, "message-store" },
4040   { 0, NULL }
4041 };
4042
4043 static const ber_choice_t ObjectName_choice[] = {
4044   {   0, &hf_x411_user_agent     , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
4045   {   1, &hf_x411_mTA            , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MTAName },
4046   {   2, &hf_x411_message_store  , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
4047   { 0, NULL, 0, 0, 0, NULL }
4048 };
4049
4050 static int
4051 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_) {
4052   offset = dissect_ber_choice(actx, tree, tvb, offset,
4053                                  ObjectName_choice, hf_index, ett_x411_ObjectName,
4054                                  NULL);
4055
4056   return offset;
4057 }
4058
4059
4060
4061 static int
4062 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_) {
4063   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4064                                                             0U, ub_queue_size, hf_index, NULL);
4065
4066   return offset;
4067 }
4068
4069
4070
4071 static int
4072 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_) {
4073   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4074                                                             0U, ub_content_length, hf_index, NULL);
4075
4076   return offset;
4077 }
4078
4079
4080 static const ber_sequence_t DeliveryQueue_set[] = {
4081   { &hf_x411_messages       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_INTEGER_0_ub_queue_size },
4082   { &hf_x411_delivery_queue_octets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER_0_ub_content_length },
4083   { NULL, 0, 0, 0, NULL }
4084 };
4085
4086 static int
4087 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_) {
4088   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4089                               DeliveryQueue_set, hf_index, ett_x411_DeliveryQueue);
4090
4091   return offset;
4092 }
4093
4094
4095 static const ber_sequence_t MessagesWaiting_set[] = {
4096   { &hf_x411_urgent         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4097   { &hf_x411_normal         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4098   { &hf_x411_non_urgent     , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_DeliveryQueue },
4099   { NULL, 0, 0, 0, NULL }
4100 };
4101
4102 static int
4103 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_) {
4104   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4105                               MessagesWaiting_set, hf_index, ett_x411_MessagesWaiting);
4106
4107   return offset;
4108 }
4109
4110
4111 static const ber_sequence_t MTSBindArgument_set[] = {
4112   { &hf_x411_initiator_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ObjectName },
4113   { &hf_x411_messages_waiting, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x411_MessagesWaiting },
4114   { &hf_x411_initiator_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_InitiatorCredentials },
4115   { &hf_x411_security_context, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4116   { &hf_x411_extensions     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4117   { NULL, 0, 0, 0, NULL }
4118 };
4119
4120 static int
4121 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_) {
4122   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4123                               MTSBindArgument_set, hf_index, ett_x411_MTSBindArgument);
4124
4125   return offset;
4126 }
4127
4128
4129 static const ber_sequence_t MTSBindResult_set[] = {
4130   { &hf_x411_responder_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ObjectName },
4131   { &hf_x411_messages_waiting, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x411_MessagesWaiting },
4132   { &hf_x411_responder_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ResponderCredentials },
4133   { &hf_x411_extensions     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4134   { NULL, 0, 0, 0, NULL }
4135 };
4136
4137 static int
4138 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_) {
4139   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4140                               MTSBindResult_set, hf_index, ett_x411_MTSBindResult);
4141
4142   return offset;
4143 }
4144
4145
4146 static const value_string x411_PAR_mts_bind_error_vals[] = {
4147   {   0, "busy" },
4148   {   2, "authentication-error" },
4149   {   3, "unacceptable-dialogue-mode" },
4150   {   4, "unacceptable-security-context" },
4151   {   5, "inadequate-association-confidentiality" },
4152   { 0, NULL }
4153 };
4154
4155
4156 static int
4157 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_) {
4158   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4159                                                             0U, ub_integer_options, hf_index, NULL);
4160
4161   return offset;
4162 }
4163
4164
4165
4166 int
4167 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_) {
4168   offset = dissect_x411_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
4169
4170   return offset;
4171 }
4172
4173
4174
4175 int
4176 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_) {
4177   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4178
4179   return offset;
4180 }
4181
4182
4183
4184 static int
4185 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_) {
4186   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4187
4188   return offset;
4189 }
4190
4191
4192 static const asn_namedbit OriginatorReportRequest_bits[] = {
4193   {  3, &hf_x411_OriginatorReportRequest_report, -1, -1, "report", NULL },
4194   {  4, &hf_x411_OriginatorReportRequest_non_delivery_report, -1, -1, "non-delivery-report", NULL },
4195   { 0, NULL, 0, 0, NULL, NULL }
4196 };
4197
4198 static int
4199 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_) {
4200   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4201                                                 0, ub_bit_options, OriginatorReportRequest_bits, hf_index, ett_x411_OriginatorReportRequest,
4202                                                 NULL);
4203
4204   return offset;
4205 }
4206
4207
4208 static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
4209   { &hf_x411_submission_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4210   { &hf_x411_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginatorReportRequest },
4211   { &hf_x411_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
4212   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4213   { NULL, 0, 0, 0, NULL }
4214 };
4215
4216 static int
4217 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_) {
4218   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4219                               PerRecipientMessageSubmissionFields_set, hf_index, ett_x411_PerRecipientMessageSubmissionFields);
4220
4221   return offset;
4222 }
4223
4224
4225 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
4226   { &hf_x411_per_recipient_message_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientMessageSubmissionFields },
4227 };
4228
4229 static int
4230 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_) {
4231   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4232                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields);
4233
4234   return offset;
4235 }
4236
4237
4238 static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
4239   { &hf_x411_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
4240   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4241   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4242   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4243   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4244   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
4245   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
4246   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4247   { &hf_x411_per_recipient_message_submission_fields, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields },
4248   { NULL, 0, 0, 0, NULL }
4249 };
4250
4251 int
4252 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_) {
4253   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4254                               MessageSubmissionEnvelope_set, hf_index, ett_x411_MessageSubmissionEnvelope);
4255
4256   return offset;
4257 }
4258
4259
4260 static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
4261   { &hf_x411_message_submission_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionEnvelope },
4262   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
4263   { NULL, 0, 0, 0, NULL }
4264 };
4265
4266 static int
4267 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_) {
4268   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4269                                    MessageSubmissionArgument_sequence, hf_index, ett_x411_MessageSubmissionArgument);
4270
4271   return offset;
4272 }
4273
4274
4275
4276 int
4277 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_) {
4278   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4279
4280   return offset;
4281 }
4282
4283
4284
4285 int
4286 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_) {
4287   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4288
4289   return offset;
4290 }
4291
4292
4293 static const ber_sequence_t MessageSubmissionResult_set[] = {
4294   { &hf_x411_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionIdentifier },
4295   { &hf_x411_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MessageSubmissionTime },
4296   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4297   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4298   { NULL, 0, 0, 0, NULL }
4299 };
4300
4301 static int
4302 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_) {
4303   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4304                               MessageSubmissionResult_set, hf_index, ett_x411_MessageSubmissionResult);
4305
4306   return offset;
4307 }
4308
4309
4310 static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
4311   { &hf_x411_probe_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4312   { &hf_x411_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_OriginatorReportRequest },
4313   { &hf_x411_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExplicitConversion },
4314   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4315   { NULL, 0, 0, 0, NULL }
4316 };
4317
4318 int
4319 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_) {
4320   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4321                               PerRecipientProbeSubmissionFields_set, hf_index, ett_x411_PerRecipientProbeSubmissionFields);
4322
4323   return offset;
4324 }
4325
4326
4327 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
4328   { &hf_x411_per_recipient_probe_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientProbeSubmissionFields },
4329 };
4330
4331 static int
4332 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_) {
4333   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4334                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields);
4335
4336   return offset;
4337 }
4338
4339
4340 static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
4341   { &hf_x411_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
4342   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4343   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4344   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4345   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4346   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
4347   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4348   { &hf_x411_per_recipient_probe_submission_fields, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields },
4349   { NULL, 0, 0, 0, NULL }
4350 };
4351
4352 int
4353 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_) {
4354   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4355                               ProbeSubmissionEnvelope_set, hf_index, ett_x411_ProbeSubmissionEnvelope);
4356
4357   return offset;
4358 }
4359
4360
4361
4362 static int
4363 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_) {
4364   offset = dissect_x411_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
4365
4366   return offset;
4367 }
4368
4369
4370
4371 int
4372 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_) {
4373   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4374
4375   return offset;
4376 }
4377
4378
4379
4380 int
4381 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_) {
4382   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4383
4384   return offset;
4385 }
4386
4387
4388 static const ber_sequence_t ProbeSubmissionResult_set[] = {
4389   { &hf_x411_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeSubmissionIdentifier },
4390   { &hf_x411_probe_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ProbeSubmissionTime },
4391   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4392   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4393   { NULL, 0, 0, 0, NULL }
4394 };
4395
4396 static int
4397 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_) {
4398   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4399                               ProbeSubmissionResult_set, hf_index, ett_x411_ProbeSubmissionResult);
4400
4401   return offset;
4402 }
4403
4404
4405
4406 static int
4407 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_) {
4408   offset = dissect_x411_MessageSubmissionIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4409
4410   return offset;
4411 }
4412
4413
4414
4415 static int
4416 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_) {
4417   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4418
4419   return offset;
4420 }
4421
4422
4423
4424 static int
4425 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_) {
4426   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4427
4428   return offset;
4429 }
4430
4431
4432 static const asn_namedbit Operations_bits[] = {
4433   {  0, &hf_x411_Operations_probe_submission_or_report_delivery, -1, -1, "probe-submission-or-report-delivery", NULL },
4434   {  1, &hf_x411_Operations_message_submission_or_message_delivery, -1, -1, "message-submission-or-message-delivery", NULL },
4435   { 0, NULL, 0, 0, NULL, NULL }
4436 };
4437
4438 static int
4439 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_) {
4440   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4441                                                 0, ub_bit_options, Operations_bits, hf_index, ett_x411_Operations,
4442                                                 NULL);
4443
4444   return offset;
4445 }
4446
4447
4448 static const ber_sequence_t ContentTypes_set_of[1] = {
4449   { &hf_x411_ContentTypes_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4450 };
4451
4452 static int
4453 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_) {
4454   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4455                                              1, ub_content_types, ContentTypes_set_of, hf_index, ett_x411_ContentTypes);
4456
4457   return offset;
4458 }
4459
4460
4461 static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
4462   { &hf_x411_unacceptable_eits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4463   { &hf_x411_acceptable_eits, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4464   { &hf_x411_exclusively_acceptable_eits, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ExtendedEncodedInformationTypes },
4465   { NULL, 0, 0, 0, NULL }
4466 };
4467
4468 int
4469 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_) {
4470   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4471                                    EncodedInformationTypesConstraints_sequence, hf_index, ett_x411_EncodedInformationTypesConstraints);
4472
4473   return offset;
4474 }
4475
4476
4477
4478 static int
4479 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_) {
4480   offset = dissect_x411_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, actx, tree, hf_index);
4481
4482   return offset;
4483 }
4484
4485
4486 static const ber_sequence_t Controls_set[] = {
4487   { &hf_x411_restrict       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BOOLEAN },
4488   { &hf_x411_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4489   { &hf_x411_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4490   { &hf_x411_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4491   { &hf_x411_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
4492   { &hf_x411_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PermissibleEncodedInformationTypes },
4493   { &hf_x411_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4494   { NULL, 0, 0, 0, NULL }
4495 };
4496
4497 static int
4498 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_) {
4499   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4500                               Controls_set, hf_index, ett_x411_Controls);
4501
4502   return offset;
4503 }
4504
4505
4506
4507 static int
4508 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_) {
4509   offset = dissect_x411_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
4510
4511   return offset;
4512 }
4513
4514
4515
4516 static int
4517 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_) {
4518   offset = dissect_x411_SubmissionControls(implicit_tag, tvb, offset, actx, tree, hf_index);
4519
4520   return offset;
4521 }
4522
4523
4524 static const asn_namedbit WaitingMessages_bits[] = {
4525   {  0, &hf_x411_WaitingMessages_long_content, -1, -1, "long-content", NULL },
4526   {  1, &hf_x411_WaitingMessages_low_priority, -1, -1, "low-priority", NULL },
4527   {  2, &hf_x411_WaitingMessages_other_security_labels, -1, -1, "other-security-labels", NULL },
4528   { 0, NULL, 0, 0, NULL, NULL }
4529 };
4530
4531 static int
4532 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_) {
4533   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4534                                                 0, ub_bit_options, WaitingMessages_bits, hf_index, ett_x411_WaitingMessages,
4535                                                 NULL);
4536
4537   return offset;
4538 }
4539
4540
4541 static const ber_sequence_t SET_SIZE_0_ub_content_types_OF_ContentType_set_of[1] = {
4542   { &hf_x411_waiting_content_types_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4543 };
4544
4545 static int
4546 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_) {
4547   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4548                                              0, ub_content_types, SET_SIZE_0_ub_content_types_OF_ContentType_set_of, hf_index, ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType);
4549
4550   return offset;
4551 }
4552
4553
4554 static const ber_sequence_t Waiting_set[] = {
4555   { &hf_x411_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4556   { &hf_x411_waiting_messages, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_WaitingMessages },
4557   { &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 },
4558   { &hf_x411_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_EncodedInformationTypes },
4559   { NULL, 0, 0, 0, NULL }
4560 };
4561
4562 static int
4563 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_) {
4564   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4565                               Waiting_set, hf_index, ett_x411_Waiting);
4566
4567   return offset;
4568 }
4569
4570
4571
4572 static int
4573 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_) {
4574   offset = dissect_x411_Waiting(implicit_tag, tvb, offset, actx, tree, hf_index);
4575
4576   return offset;
4577 }
4578
4579
4580
4581 static int
4582 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_) {
4583   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4584
4585   return offset;
4586 }
4587
4588
4589
4590 static int
4591 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_) {
4592   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4593
4594   return offset;
4595 }
4596
4597
4598
4599 static int
4600 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_) {
4601   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4602
4603   return offset;
4604 }
4605
4606
4607
4608 static int
4609 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_) {
4610   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4611
4612   return offset;
4613 }
4614
4615
4616 static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
4617   { &hf_x411_ImproperlySpecifiedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
4618 };
4619
4620 int
4621 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_) {
4622   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4623                                                   1, ub_recipients, ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_x411_ImproperlySpecifiedRecipients);
4624
4625   return offset;
4626 }
4627
4628
4629
4630 static int
4631 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_) {
4632   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4633
4634   return offset;
4635 }
4636
4637
4638
4639 static int
4640 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_) {
4641   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4642
4643   return offset;
4644 }
4645
4646
4647 const value_string x411_SecurityProblem_vals[] = {
4648   {   0, "assemby-instructions-conflict-with-security-services" },
4649   {   1, "authentication-problem" },
4650   {   2, "authentication-failure-on-subject-message" },
4651   {   3, "confidentiality-association-problem" },
4652   {   4, "decryption-failed" },
4653   {   5, "decryption-key-unobtainable" },
4654   {   6, "failure-of-proof-of-message" },
4655   {   7, "forbidden-user-security-label-register" },
4656   {   8, "incompatible-change-with-original-security-context" },
4657   {   9, "integrity-failure-on-subject-message" },
4658   {  10, "invalid-security-label" },
4659   {  11, "invalid-security-label-update" },
4660   {  12, "key-failure" },
4661   {  13, "mandatory-parameter-absence" },
4662   {  14, "operation-security-failure" },
4663   {  15, "redirection-prohibited" },
4664   {  16, "refused-alternate-recipient-name" },
4665   {  17, "repudiation-failure-of-message" },
4666   {  18, "responder-credentials-checking-problem" },
4667   {  19, "security-context-failure" },
4668   {  20, "security-context-problem" },
4669   {  21, "security-policy-violation" },
4670   {  22, "security-services-refusal" },
4671   {  23, "token-decryption-failed" },
4672   {  24, "token-error" },
4673   {  25, "unable-to-aggregate-security-labels" },
4674   {  26, "unauthorised-dl-name" },
4675   {  27, "unauthorised-entry-class" },
4676   {  28, "unauthorised-originally-intended-recipient-name" },
4677   {  29, "unauthorised-originator-name" },
4678   {  30, "unauthorised-recipient-name" },
4679   {  31, "unauthorised-security-label-update" },
4680   {  32, "unauthorised-user-name" },
4681   {  33, "unknown-security-label" },
4682   {  34, "unsupported-algorithm-identifier" },
4683   {  35, "unsupported-security-policy" },
4684   { 0, NULL }
4685 };
4686
4687
4688 int
4689 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_) {
4690   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4691                                                             0U, ub_security_problems, hf_index, NULL);
4692
4693   return offset;
4694 }
4695
4696
4697
4698 static int
4699 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_) {
4700   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4701
4702   return offset;
4703 }
4704
4705
4706
4707 static int
4708 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_) {
4709   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4710
4711   return offset;
4712 }
4713
4714
4715
4716 int
4717 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_) {
4718   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4719
4720   return offset;
4721 }
4722
4723
4724 static const value_string x411_DeliveredContentType_vals[] = {
4725   {   0, "built-in" },
4726   {   1, "extended" },
4727   { 0, NULL }
4728 };
4729
4730 static const ber_choice_t DeliveredContentType_choice[] = {
4731   {   0, &hf_x411_built_in       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_BuiltInContentType },
4732   {   1, &hf_x411_extended       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedContentType },
4733   { 0, NULL, 0, 0, 0, NULL }
4734 };
4735
4736 static int
4737 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_) {
4738   offset = dissect_ber_choice(actx, tree, tvb, offset,
4739                                  DeliveredContentType_choice, hf_index, ett_x411_DeliveredContentType,
4740                                  NULL);
4741
4742   return offset;
4743 }
4744
4745
4746
4747 static int
4748 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_) {
4749   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4750
4751   return offset;
4752 }
4753
4754
4755 static const asn_namedbit DeliveryFlags_bits[] = {
4756   {  1, &hf_x411_DeliveryFlags_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
4757   { 0, NULL, 0, 0, NULL, NULL }
4758 };
4759
4760 static int
4761 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_) {
4762   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4763                                                 0, ub_bit_options, DeliveryFlags_bits, hf_index, ett_x411_DeliveryFlags,
4764                                                 NULL);
4765
4766   return offset;
4767 }
4768
4769
4770
4771 static int
4772 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_) {
4773   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4774
4775   return offset;
4776 }
4777
4778
4779 static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
4780   { &hf_x411_OtherRecipientNames_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OtherRecipientName },
4781 };
4782
4783 static int
4784 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_) {
4785   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4786                                                   1, ub_recipients, OtherRecipientNames_sequence_of, hf_index, ett_x411_OtherRecipientNames);
4787
4788   return offset;
4789 }
4790
4791
4792
4793 static int
4794 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_) {
4795   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4796
4797   return offset;
4798 }
4799
4800
4801 static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
4802   { &hf_x411_delivered_content_type, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_DeliveredContentType },
4803   { &hf_x411_delivered_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_DeliveredOriginatorName },
4804   { &hf_x411_original_encoded_information_types, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginalEncodedInformationTypes },
4805   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4806   { &hf_x411_delivery_flags , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeliveryFlags },
4807   { &hf_x411_other_recipient_names, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OtherRecipientNames },
4808   { &hf_x411_this_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_x411_ThisRecipientName },
4809   { &hf_x411_originally_intended_recipient_name, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
4810   { &hf_x411_converted_encoded_information_types, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ConvertedEncodedInformationTypes },
4811   { &hf_x411_message_submission_time, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_x411_MessageSubmissionTime },
4812   { &hf_x411_content_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIdentifier },
4813   { &hf_x411_extensions     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4814   { NULL, 0, 0, 0, NULL }
4815 };
4816
4817 int
4818 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_) {
4819   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4820                               OtherMessageDeliveryFields_set, hf_index, ett_x411_OtherMessageDeliveryFields);
4821
4822   return offset;
4823 }
4824
4825
4826 static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
4827   { &hf_x411_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryIdentifier },
4828   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
4829   { &hf_x411_other_fields   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_OtherMessageDeliveryFields },
4830   { &hf_x411_content        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
4831   { NULL, 0, 0, 0, NULL }
4832 };
4833
4834 static int
4835 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_) {
4836   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4837                                    MessageDeliveryArgument_sequence, hf_index, ett_x411_MessageDeliveryArgument);
4838
4839   return offset;
4840 }
4841
4842
4843
4844 static int
4845 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_) {
4846   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
4847
4848   return offset;
4849 }
4850
4851
4852
4853 static int
4854 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_) {
4855   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
4856
4857   return offset;
4858 }
4859
4860
4861 static const ber_sequence_t MessageDeliveryResult_set[] = {
4862   { &hf_x411_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientCertificate },
4863   { &hf_x411_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDelivery },
4864   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4865   { NULL, 0, 0, 0, NULL }
4866 };
4867
4868 static int
4869 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_) {
4870   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4871                               MessageDeliveryResult_set, hf_index, ett_x411_MessageDeliveryResult);
4872
4873   return offset;
4874 }
4875
4876
4877
4878 static int
4879 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_) {
4880   offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4881
4882   return offset;
4883 }
4884
4885
4886
4887 static int
4888 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_) {
4889   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4890
4891   return offset;
4892 }
4893
4894
4895 static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
4896   { &hf_x411_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ActualRecipientName },
4897   { &hf_x411_delivery_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ReportType },
4898   { &hf_x411_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ConvertedEncodedInformationTypes },
4899   { &hf_x411_originally_intended_recipient_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OriginallyIntendedRecipientName },
4900   { &hf_x411_supplementary_information, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SupplementaryInformation },
4901   { &hf_x411_extensions     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4902   { NULL, 0, 0, 0, NULL }
4903 };
4904
4905 static int
4906 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_) {
4907   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4908                               PerRecipientReportDeliveryFields_set, hf_index, ett_x411_PerRecipientReportDeliveryFields);
4909
4910   return offset;
4911 }
4912
4913
4914 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
4915   { &hf_x411_per_recipient_report_delivery_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientReportDeliveryFields },
4916 };
4917
4918 static int
4919 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_) {
4920   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4921                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields);
4922
4923   return offset;
4924 }
4925
4926
4927 static const ber_sequence_t ReportDeliveryArgument_set[] = {
4928   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
4929   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
4930   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
4931   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
4932   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4933   { &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 },
4934   { &hf_x411_returned_content, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Content },
4935   { NULL, 0, 0, 0, NULL }
4936 };
4937
4938 static int
4939 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_) {
4940   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4941                               ReportDeliveryArgument_set, hf_index, ett_x411_ReportDeliveryArgument);
4942
4943   return offset;
4944 }
4945
4946
4947 static const ber_sequence_t SET_SIZE_1_MAX_OF_ExtensionField_set_of[1] = {
4948   { &hf_x411_max_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionField },
4949 };
4950
4951 static int
4952 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_) {
4953   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4954                                              1, NO_BOUND, SET_SIZE_1_MAX_OF_ExtensionField_set_of, hf_index, ett_x411_SET_SIZE_1_MAX_OF_ExtensionField);
4955
4956   return offset;
4957 }
4958
4959
4960 static const value_string x411_ReportDeliveryResult_vals[] = {
4961   {   0, "empty-result" },
4962   {   1, "extensions" },
4963   { 0, NULL }
4964 };
4965
4966 static const ber_choice_t ReportDeliveryResult_choice[] = {
4967   {   0, &hf_x411_empty_result   , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
4968   {   1, &hf_x411_max_extensions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_SET_SIZE_1_MAX_OF_ExtensionField },
4969   { 0, NULL, 0, 0, 0, NULL }
4970 };
4971
4972 static int
4973 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_) {
4974   offset = dissect_ber_choice(actx, tree, tvb, offset,
4975                                  ReportDeliveryResult_choice, hf_index, ett_x411_ReportDeliveryResult,
4976                                  NULL);
4977
4978   return offset;
4979 }
4980
4981
4982 static const ber_sequence_t DeliveryControlArgument_set[] = {
4983   { &hf_x411_restrict       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BOOLEAN },
4984   { &hf_x411_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
4985   { &hf_x411_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
4986   { &hf_x411_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
4987   { &hf_x411_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
4988   { &hf_x411_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PermissibleEncodedInformationTypes },
4989   { &hf_x411_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
4990   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
4991   { NULL, 0, 0, 0, NULL }
4992 };
4993
4994 static int
4995 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_) {
4996   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4997                               DeliveryControlArgument_set, hf_index, ett_x411_DeliveryControlArgument);
4998
4999   return offset;
5000 }
5001
5002
5003 static const ber_sequence_t DeliveryControlResult_set[] = {
5004   { &hf_x411_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Operations },
5005   { &hf_x411_waiting_messages, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_WaitingMessages },
5006   { &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 },
5007   { &hf_x411_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_EncodedInformationTypes },
5008   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5009   { NULL, 0, 0, 0, NULL }
5010 };
5011
5012 static int
5013 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_) {
5014   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5015                               DeliveryControlResult_set, hf_index, ett_x411_DeliveryControlResult);
5016
5017   return offset;
5018 }
5019
5020
5021
5022 static int
5023 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_) {
5024   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5025
5026   return offset;
5027 }
5028
5029
5030
5031 static int
5032 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_) {
5033   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5034
5035   return offset;
5036 }
5037
5038
5039 static const value_string x411_RefusedArgument_vals[] = {
5040   {   0, "user-name" },
5041   {   1, "user-address" },
5042   {   2, "deliverable-content-types" },
5043   {   3, "deliverable-maximum-content-length" },
5044   {   4, "deliverable-encoded-information-types-constraints" },
5045   {   5, "deliverable-security-labels" },
5046   {   6, "recipient-assigned-redirections" },
5047   {   7, "restricted-delivery" },
5048   {   8, "retrieve-registrations" },
5049   {  10, "restrict" },
5050   {  11, "permissible-operations" },
5051   {  12, "permissible-lowest-priority" },
5052   {  13, "permissible-encoded-information-types" },
5053   {  14, "permissible-content-types" },
5054   {  15, "permissible-maximum-content-length" },
5055   {  16, "permissible-security-context" },
5056   { 0, NULL }
5057 };
5058
5059
5060 static int
5061 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_) {
5062   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5063                                                             0U, ub_integer_options, hf_index, NULL);
5064
5065   return offset;
5066 }
5067
5068
5069
5070 static int
5071 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_) {
5072 #line 559 "x411.cnf"
5073 /*XXX not implemented yet */
5074
5075
5076
5077   return offset;
5078 }
5079
5080
5081 static const value_string x411_T_refused_argument_vals[] = {
5082   {   0, "built-in-argument" },
5083   {   1, "refused-extension" },
5084   { 0, NULL }
5085 };
5086
5087 static const ber_choice_t T_refused_argument_choice[] = {
5088   {   0, &hf_x411_built_in_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_RefusedArgument },
5089   {   1, &hf_x411_refused_extension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_T_refused_extension },
5090   { 0, NULL, 0, 0, 0, NULL }
5091 };
5092
5093 static int
5094 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_) {
5095   offset = dissect_ber_choice(actx, tree, tvb, offset,
5096                                  T_refused_argument_choice, hf_index, ett_x411_T_refused_argument,
5097                                  NULL);
5098
5099   return offset;
5100 }
5101
5102
5103 static const value_string x411_RefusalReason_vals[] = {
5104   {   0, "facility-unavailable" },
5105   {   1, "facility-not-subscribed" },
5106   {   2, "parameter-unacceptable" },
5107   { 0, NULL }
5108 };
5109
5110
5111 static int
5112 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_) {
5113   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5114                                                             0U, ub_integer_options, hf_index, NULL);
5115
5116   return offset;
5117 }
5118
5119
5120 static const ber_sequence_t RefusedOperation_set[] = {
5121   { &hf_x411_refused_argument, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_refused_argument },
5122   { &hf_x411_refusal_reason , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_x411_RefusalReason },
5123   { NULL, 0, 0, 0, NULL }
5124 };
5125
5126 static int
5127 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_) {
5128   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5129                               RefusedOperation_set, hf_index, ett_x411_RefusedOperation);
5130
5131   return offset;
5132 }
5133
5134
5135
5136 static int
5137 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_) {
5138   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5139
5140   return offset;
5141 }
5142
5143
5144
5145 static int
5146 dissect_x411_T_x121_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_) {
5147 #line 821 "x411.cnf"
5148         tvbuff_t        *nstring = NULL;
5149
5150           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5151                                                         actx, tree, tvb, offset,
5152                                                         1, ub_x121_address_length, hf_index, &nstring);
5153
5154
5155         if(doing_address && nstring)
5156                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
5157
5158
5159
5160   return offset;
5161 }
5162
5163
5164
5165 static int
5166 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_) {
5167   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
5168                                                         actx, tree, tvb, offset,
5169                                                         1, ub_tsap_id_length, hf_index, NULL);
5170
5171   return offset;
5172 }
5173
5174
5175 static const ber_sequence_t T_x121_sequence[] = {
5176   { &hf_x411_x121_address   , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_T_x121_address },
5177   { &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 },
5178   { NULL, 0, 0, 0, NULL }
5179 };
5180
5181 static int
5182 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_) {
5183   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5184                                    T_x121_sequence, hf_index, ett_x411_T_x121);
5185
5186   return offset;
5187 }
5188
5189
5190
5191 static int
5192 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_) {
5193   offset = dissect_x509sat_PresentationAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5194
5195   return offset;
5196 }
5197
5198
5199 static const value_string x411_UserAddress_vals[] = {
5200   {   0, "x121" },
5201   {   1, "presentation" },
5202   { 0, NULL }
5203 };
5204
5205 static const ber_choice_t UserAddress_choice[] = {
5206   {   0, &hf_x411_x121           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_T_x121 },
5207   {   1, &hf_x411_presentation   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PSAPAddress },
5208   { 0, NULL, 0, 0, 0, NULL }
5209 };
5210
5211 static int
5212 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_) {
5213   offset = dissect_ber_choice(actx, tree, tvb, offset,
5214                                  UserAddress_choice, hf_index, ett_x411_UserAddress,
5215                                  NULL);
5216
5217   return offset;
5218 }
5219
5220
5221 static const ber_sequence_t SET_OF_Priority_set_of[1] = {
5222   { &hf_x411_class_priority_item, BER_CLASS_APP, 7, BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
5223 };
5224
5225 static int
5226 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_) {
5227   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5228                                  SET_OF_Priority_set_of, hf_index, ett_x411_SET_OF_Priority);
5229
5230   return offset;
5231 }
5232
5233
5234 static const value_string x411_T_objects_vals[] = {
5235   {   0, "messages" },
5236   {   1, "reports" },
5237   {   2, "both" },
5238   { 0, NULL }
5239 };
5240
5241
5242 static int
5243 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_) {
5244   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5245                                   NULL);
5246
5247   return offset;
5248 }
5249
5250
5251 static const asn_namedbit T_source_type_bits[] = {
5252   {  0, &hf_x411_T_source_type_originated_by, -1, -1, "originated-by", NULL },
5253   {  1, &hf_x411_T_source_type_redirected_by, -1, -1, "redirected-by", NULL },
5254   {  2, &hf_x411_T_source_type_dl_expanded_by, -1, -1, "dl-expanded-by", NULL },
5255   { 0, NULL, 0, 0, NULL, NULL }
5256 };
5257
5258 static int
5259 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_) {
5260   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5261                                     T_source_type_bits, hf_index, ett_x411_T_source_type,
5262                                     NULL);
5263
5264   return offset;
5265 }
5266
5267
5268 static const value_string x411_ExactOrPattern_vals[] = {
5269   {   0, "exact-match" },
5270   {   1, "pattern-match" },
5271   { 0, NULL }
5272 };
5273
5274 static const ber_choice_t ExactOrPattern_choice[] = {
5275   {   0, &hf_x411_exact_match    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
5276   {   1, &hf_x411_pattern_match  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
5277   { 0, NULL, 0, 0, 0, NULL }
5278 };
5279
5280 static int
5281 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_) {
5282   offset = dissect_ber_choice(actx, tree, tvb, offset,
5283                                  ExactOrPattern_choice, hf_index, ett_x411_ExactOrPattern,
5284                                  NULL);
5285
5286   return offset;
5287 }
5288
5289
5290 static const ber_sequence_t Restriction_set[] = {
5291   { &hf_x411_permitted      , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BOOLEAN },
5292   { &hf_x411_source_type    , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_T_source_type },
5293   { &hf_x411_source_name    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExactOrPattern },
5294   { NULL, 0, 0, 0, NULL }
5295 };
5296
5297 static int
5298 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_) {
5299   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5300                               Restriction_set, hf_index, ett_x411_Restriction);
5301
5302   return offset;
5303 }
5304
5305
5306 static const ber_sequence_t SEQUENCE_OF_Restriction_sequence_of[1] = {
5307   { &hf_x411_applies_only_to_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_Restriction },
5308 };
5309
5310 static int
5311 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_) {
5312   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5313                                       SEQUENCE_OF_Restriction_sequence_of, hf_index, ett_x411_SEQUENCE_OF_Restriction);
5314
5315   return offset;
5316 }
5317
5318
5319 static const ber_sequence_t MessageClass_set[] = {
5320   { &hf_x411_content_types  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentTypes },
5321   { &hf_x411_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
5322   { &hf_x411_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncodedInformationTypesConstraints },
5323   { &hf_x411_security_labels, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
5324   { &hf_x411_class_priority , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_Priority },
5325   { &hf_x411_objects        , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_objects },
5326   { &hf_x411_applies_only_to, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SEQUENCE_OF_Restriction },
5327   { &hf_x411_extensions     , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5328   { NULL, 0, 0, 0, NULL }
5329 };
5330
5331 static int
5332 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_) {
5333   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5334                               MessageClass_set, hf_index, ett_x411_MessageClass);
5335
5336   return offset;
5337 }
5338
5339
5340
5341 static int
5342 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_) {
5343   offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5344
5345   return offset;
5346 }
5347
5348
5349 static const ber_sequence_t SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of[1] = {
5350   { &hf_x411_deliverable_class_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_DeliverableClass },
5351 };
5352
5353 static int
5354 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_) {
5355   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5356                                              1, ub_deliverable_class, SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of, hf_index, ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass);
5357
5358   return offset;
5359 }
5360
5361
5362
5363 static int
5364 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_) {
5365   offset = dissect_x411_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
5366
5367   return offset;
5368 }
5369
5370
5371
5372 static int
5373 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_) {
5374   offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5375
5376   return offset;
5377 }
5378
5379
5380 static const ber_sequence_t SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of[1] = {
5381   { &hf_x411_redirection_classes_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_RedirectionClass },
5382 };
5383
5384 static int
5385 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_) {
5386   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5387                                              1, ub_redirection_classes, SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of, hf_index, ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass);
5388
5389   return offset;
5390 }
5391
5392
5393
5394 static int
5395 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_) {
5396   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5397
5398   return offset;
5399 }
5400
5401
5402 static const ber_sequence_t RecipientRedirection_set[] = {
5403   { &hf_x411_redirection_classes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass },
5404   { &hf_x411_recipient_assigned_alternate_recipient, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientAssignedAlternateRecipient },
5405   { NULL, 0, 0, 0, NULL }
5406 };
5407
5408 static int
5409 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_) {
5410   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5411                               RecipientRedirection_set, hf_index, ett_x411_RecipientRedirection);
5412
5413   return offset;
5414 }
5415
5416
5417 static const ber_sequence_t Redirections_sequence_of[1] = {
5418   { &hf_x411_Redirections_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientRedirection },
5419 };
5420
5421 static int
5422 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_) {
5423   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5424                                                   1, ub_redirections, Redirections_sequence_of, hf_index, ett_x411_Redirections);
5425
5426   return offset;
5427 }
5428
5429
5430 static const ber_sequence_t RestrictedDelivery_sequence_of[1] = {
5431   { &hf_x411_RestrictedDelivery_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_Restriction },
5432 };
5433
5434 static int
5435 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_) {
5436   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5437                                                   1, ub_restrictions, RestrictedDelivery_sequence_of, hf_index, ett_x411_RestrictedDelivery);
5438
5439   return offset;
5440 }
5441
5442
5443 static const asn_namedbit T_standard_parameters_bits[] = {
5444   {  0, &hf_x411_T_standard_parameters_user_name, -1, -1, "user-name", NULL },
5445   {  1, &hf_x411_T_standard_parameters_user_address, -1, -1, "user-address", NULL },
5446   {  2, &hf_x411_T_standard_parameters_deliverable_class, -1, -1, "deliverable-class", NULL },
5447   {  3, &hf_x411_T_standard_parameters_default_delivery_controls, -1, -1, "default-delivery-controls", NULL },
5448   {  4, &hf_x411_T_standard_parameters_redirections, -1, -1, "redirections", NULL },
5449   {  5, &hf_x411_T_standard_parameters_restricted_delivery, -1, -1, "restricted-delivery", NULL },
5450   { 0, NULL, 0, 0, NULL, NULL }
5451 };
5452
5453 static int
5454 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_) {
5455   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5456                                     T_standard_parameters_bits, hf_index, ett_x411_T_standard_parameters,
5457                                     NULL);
5458
5459   return offset;
5460 }
5461
5462
5463
5464 static int
5465 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_) {
5466 #line 498 "x411.cnf"
5467 /*XXX not implemented yet */
5468
5469
5470
5471   return offset;
5472 }
5473
5474
5475 static const ber_sequence_t T_type_extensions_set_of[1] = {
5476   { &hf_x411_type_extensions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_type_extensions_item },
5477 };
5478
5479 static int
5480 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_) {
5481   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5482                                  T_type_extensions_set_of, hf_index, ett_x411_T_type_extensions);
5483
5484   return offset;
5485 }
5486
5487
5488 static const ber_sequence_t RegistrationTypes_sequence[] = {
5489   { &hf_x411_standard_parameters, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_standard_parameters },
5490   { &hf_x411_type_extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_type_extensions },
5491   { NULL, 0, 0, 0, NULL }
5492 };
5493
5494 static int
5495 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_) {
5496   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5497                                    RegistrationTypes_sequence, hf_index, ett_x411_RegistrationTypes);
5498
5499   return offset;
5500 }
5501
5502
5503 static const ber_sequence_t RegisterArgument_set[] = {
5504   { &hf_x411_user_name      , BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_UserName },
5505   { &hf_x411_user_address   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_UserAddress },
5506   { &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 },
5507   { &hf_x411_default_delivery_controls, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x411_DefaultDeliveryControls },
5508   { &hf_x411_redirections   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_Redirections },
5509   { &hf_x411_restricted_delivery, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RestrictedDelivery },
5510   { &hf_x411_retrieve_registrations, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RegistrationTypes },
5511   { &hf_x411_extensions     , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5512   { NULL, 0, 0, 0, NULL }
5513 };
5514
5515 static int
5516 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_) {
5517   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5518                               RegisterArgument_set, hf_index, ett_x411_RegisterArgument);
5519
5520   return offset;
5521 }
5522
5523
5524 static const ber_sequence_t T_non_empty_result_set[] = {
5525   { &hf_x411_registered_information, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RegisterArgument },
5526   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5527   { NULL, 0, 0, 0, NULL }
5528 };
5529
5530 static int
5531 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_) {
5532   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5533                               T_non_empty_result_set, hf_index, ett_x411_T_non_empty_result);
5534
5535   return offset;
5536 }
5537
5538
5539 static const value_string x411_RegisterResult_vals[] = {
5540   {   0, "empty-result" },
5541   {   1, "non-empty-result" },
5542   { 0, NULL }
5543 };
5544
5545 static const ber_choice_t RegisterResult_choice[] = {
5546   {   0, &hf_x411_empty_result   , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x411_NULL },
5547   {   1, &hf_x411_non_empty_result, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_T_non_empty_result },
5548   { 0, NULL, 0, 0, 0, NULL }
5549 };
5550
5551 static int
5552 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_) {
5553   offset = dissect_ber_choice(actx, tree, tvb, offset,
5554                                  RegisterResult_choice, hf_index, ett_x411_RegisterResult,
5555                                  NULL);
5556
5557   return offset;
5558 }
5559
5560
5561
5562 static int
5563 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_) {
5564   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5565
5566   return offset;
5567 }
5568
5569
5570 static const ber_sequence_t ChangeCredentialsArgument_set[] = {
5571   { &hf_x411_old_credentials, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_Credentials },
5572   { &hf_x411_new_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_Credentials },
5573   { NULL, 0, 0, 0, NULL }
5574 };
5575
5576 static int
5577 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_) {
5578   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5579                               ChangeCredentialsArgument_set, hf_index, ett_x411_ChangeCredentialsArgument);
5580
5581   return offset;
5582 }
5583
5584
5585
5586 static int
5587 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_) {
5588   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5589
5590   return offset;
5591 }
5592
5593
5594
5595 static int
5596 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_) {
5597   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5598
5599   return offset;
5600 }
5601
5602
5603
5604 static int
5605 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_) {
5606   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5607
5608   return offset;
5609 }
5610
5611
5612 static const ber_sequence_t PerMessageSubmissionFields_set[] = {
5613   { &hf_x411_originator_name_01, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
5614   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5615   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5616   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5617   { &hf_x411_priority       , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_Priority },
5618   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
5619   { &hf_x411_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_DeferredDeliveryTime },
5620   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5621   { NULL, 0, 0, 0, NULL }
5622 };
5623
5624 static int
5625 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_) {
5626   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5627                               PerMessageSubmissionFields_set, hf_index, ett_x411_PerMessageSubmissionFields);
5628
5629   return offset;
5630 }
5631
5632
5633 static const ber_sequence_t PerProbeSubmissionFields_set[] = {
5634   { &hf_x411_originator_name_01, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorName },
5635   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5636   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5637   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5638   { &hf_x411_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
5639   { &hf_x411_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
5640   { &hf_x411_extensions     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5641   { NULL, 0, 0, 0, NULL }
5642 };
5643
5644 static int
5645 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_) {
5646   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5647                               PerProbeSubmissionFields_set, hf_index, ett_x411_PerProbeSubmissionFields);
5648
5649   return offset;
5650 }
5651
5652
5653 static const ber_sequence_t MessageDeliveryEnvelope_sequence[] = {
5654   { &hf_x411_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryIdentifier },
5655   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
5656   { &hf_x411_other_fields   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_OtherMessageDeliveryFields },
5657   { NULL, 0, 0, 0, NULL }
5658 };
5659
5660 static int
5661 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_) {
5662   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5663                                    MessageDeliveryEnvelope_sequence, hf_index, ett_x411_MessageDeliveryEnvelope);
5664
5665   return offset;
5666 }
5667
5668
5669 static const ber_sequence_t ReportDeliveryEnvelope_set[] = {
5670   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
5671   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5672   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5673   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5674   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5675   { &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 },
5676   { NULL, 0, 0, 0, NULL }
5677 };
5678
5679 static int
5680 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_) {
5681   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5682                               ReportDeliveryEnvelope_set, hf_index, ett_x411_ReportDeliveryEnvelope);
5683
5684   return offset;
5685 }
5686
5687
5688 static const ber_sequence_t PerReportDeliveryFields_set[] = {
5689   { &hf_x411_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_SubjectSubmissionIdentifier },
5690   { &hf_x411_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
5691   { &hf_x411_content_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ContentType },
5692   { &hf_x411_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
5693   { &hf_x411_extensions     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SET_OF_ExtensionField },
5694   { NULL, 0, 0, 0, NULL }
5695 };
5696
5697 static int
5698 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_) {
5699   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5700                               PerReportDeliveryFields_set, hf_index, ett_x411_PerReportDeliveryFields);
5701
5702   return offset;
5703 }
5704
5705
5706 static const value_string x411_RecipientReassignmentProhibited_vals[] = {
5707   {   0, "recipient-reassignment-allowed" },
5708   {   1, "recipient-reassignment-prohibited" },
5709   { 0, NULL }
5710 };
5711
5712
5713 static int
5714 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_) {
5715   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5716                                   NULL);
5717
5718   return offset;
5719 }
5720
5721
5722
5723 static int
5724 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_) {
5725   offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5726
5727   return offset;
5728 }
5729
5730
5731 static const value_string x411_DLExpansionProhibited_vals[] = {
5732   {   0, "dl-expansion-allowed" },
5733   {   1, "dl-expansion-prohibited" },
5734   { 0, NULL }
5735 };
5736
5737
5738 static int
5739 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_) {
5740   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5741                                   NULL);
5742
5743   return offset;
5744 }
5745
5746
5747 static const value_string x411_ConversionWithLossProhibited_vals[] = {
5748   {   0, "conversion-with-loss-allowed" },
5749   {   1, "conversion-with-loss-prohibited" },
5750   { 0, NULL }
5751 };
5752
5753
5754 static int
5755 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_) {
5756   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5757                                   NULL);
5758
5759   return offset;
5760 }
5761
5762
5763
5764 static int
5765 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_) {
5766   offset = dissect_x411_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
5767
5768   return offset;
5769 }
5770
5771
5772 static const value_string x411_RequestedDeliveryMethod_item_vals[] = {
5773   {   0, "any-delivery-method" },
5774   {   1, "mhs-delivery" },
5775   {   2, "physical-delivery" },
5776   {   3, "telex-delivery" },
5777   {   4, "teletex-delivery" },
5778   {   5, "g3-facsimile-delivery" },
5779   {   6, "g4-facsimile-delivery" },
5780   {   7, "ia5-terminal-delivery" },
5781   {   8, "videotex-delivery" },
5782   {   9, "telephone-delivery" },
5783   { 0, NULL }
5784 };
5785
5786
5787 static int
5788 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_) {
5789   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5790                                                             0U, ub_integer_options, hf_index, NULL);
5791
5792   return offset;
5793 }
5794
5795
5796 static const ber_sequence_t RequestedDeliveryMethod_sequence_of[1] = {
5797   { &hf_x411_RequestedDeliveryMethod_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_RequestedDeliveryMethod_item },
5798 };
5799
5800 int
5801 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_) {
5802   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5803                                       RequestedDeliveryMethod_sequence_of, hf_index, ett_x411_RequestedDeliveryMethod);
5804
5805   return offset;
5806 }
5807
5808
5809 static const value_string x411_PhysicalForwardingProhibited_vals[] = {
5810   {   0, "physical-forwarding-allowed" },
5811   {   1, "physical-forwarding-prohibited" },
5812   { 0, NULL }
5813 };
5814
5815
5816 static int
5817 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_) {
5818   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5819                                   NULL);
5820
5821   return offset;
5822 }
5823
5824
5825 static const value_string x411_PhysicalForwardingAddressRequest_vals[] = {
5826   {   0, "physical-forwarding-address-not-requested" },
5827   {   1, "physical-forwarding-address-requested" },
5828   { 0, NULL }
5829 };
5830
5831
5832 static int
5833 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_) {
5834   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5835                                   NULL);
5836
5837   return offset;
5838 }
5839
5840
5841 static const asn_namedbit PhysicalDeliveryModes_bits[] = {
5842   {  0, &hf_x411_PhysicalDeliveryModes_ordinary_mail, -1, -1, "ordinary-mail", NULL },
5843   {  1, &hf_x411_PhysicalDeliveryModes_special_delivery, -1, -1, "special-delivery", NULL },
5844   {  2, &hf_x411_PhysicalDeliveryModes_express_mail, -1, -1, "express-mail", NULL },
5845   {  3, &hf_x411_PhysicalDeliveryModes_counter_collection, -1, -1, "counter-collection", NULL },
5846   {  4, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice, -1, -1, "counter-collection-with-telephone-advice", NULL },
5847   {  5, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice, -1, -1, "counter-collection-with-telex-advice", NULL },
5848   {  6, &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice, -1, -1, "counter-collection-with-teletex-advice", NULL },
5849   {  7, &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery, -1, -1, "bureau-fax-delivery", NULL },
5850   { 0, NULL, 0, 0, NULL, NULL }
5851 };
5852
5853 static int
5854 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_) {
5855   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
5856                                                 0, ub_bit_options, PhysicalDeliveryModes_bits, hf_index, ett_x411_PhysicalDeliveryModes,
5857                                                 NULL);
5858
5859   return offset;
5860 }
5861
5862
5863 static const value_string x411_RegisteredMailType_vals[] = {
5864   {   0, "non-registered-mail" },
5865   {   1, "registered-mail" },
5866   {   2, "registered-mail-to-addressee-in-person" },
5867   { 0, NULL }
5868 };
5869
5870
5871 static int
5872 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_) {
5873   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5874                                                             0U, ub_integer_options, hf_index, NULL);
5875
5876   return offset;
5877 }
5878
5879
5880
5881 static int
5882 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_) {
5883   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5884                                                         actx, tree, tvb, offset,
5885                                                         1, ub_recipient_number_for_advice_length, hf_index, NULL);
5886
5887   return offset;
5888 }
5889
5890
5891
5892 static int
5893 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_) {
5894   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5895
5896   return offset;
5897 }
5898
5899
5900 static const ber_sequence_t ORAddress_sequence[] = {
5901   { &hf_x411_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInStandardAttributes },
5902   { &hf_x411_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_BuiltInDomainDefinedAttributes },
5903   { &hf_x411_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionAttributes },
5904   { NULL, 0, 0, 0, NULL }
5905 };
5906
5907 int
5908 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_) {
5909 #line 1018 "x411.cnf"
5910         
5911         oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
5912         doing_address = TRUE;
5913         address_item = NULL;
5914
5915           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5916                                    ORAddress_sequence, hf_index, ett_x411_ORAddress);
5917
5918
5919         if(*oraddress && address_item)
5920                 proto_item_append_text(address_item, " %s/", oraddress);
5921
5922         doing_address = FALSE;
5923
5924
5925
5926   return offset;
5927 }
5928
5929
5930
5931 static int
5932 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_) {
5933   offset = dissect_x411_ORAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5934
5935   return offset;
5936 }
5937
5938
5939 static const value_string x411_PhysicalDeliveryReportRequest_vals[] = {
5940   {   0, "return-of-undeliverable-mail-by-PDS" },
5941   {   1, "return-of-notification-by-PDS" },
5942   {   2, "return-of-notification-by-MHS" },
5943   {   3, "return-of-notification-by-MHS-and-PDS" },
5944   { 0, NULL }
5945 };
5946
5947
5948 static int
5949 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_) {
5950   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5951                                                             0U, ub_integer_options, hf_index, NULL);
5952
5953   return offset;
5954 }
5955
5956
5957
5958 static int
5959 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_) {
5960   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
5961
5962   return offset;
5963 }
5964
5965
5966
5967 int
5968 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_) {
5969   offset = dissect_x411_Token(implicit_tag, tvb, offset, actx, tree, hf_index);
5970
5971   return offset;
5972 }
5973
5974
5975
5976 static int
5977 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_) {
5978   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
5979
5980   return offset;
5981 }
5982
5983
5984
5985 int
5986 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_) {
5987   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5988
5989   return offset;
5990 }
5991
5992
5993
5994 int
5995 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_) {
5996   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5997
5998   return offset;
5999 }
6000
6001
6002
6003 int
6004 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_) {
6005   offset = dissect_x411_SecurityLabel(implicit_tag, tvb, offset, actx, tree, hf_index);
6006
6007   return offset;
6008 }
6009
6010
6011 static const value_string x411_ProofOfSubmissionRequest_vals[] = {
6012   {   0, "proof-of-submission-not-requested" },
6013   {   1, "proof-of-submission-requested" },
6014   { 0, NULL }
6015 };
6016
6017
6018 static int
6019 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_) {
6020   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6021                                   NULL);
6022
6023   return offset;
6024 }
6025
6026
6027 static const value_string x411_ProofOfDeliveryRequest_vals[] = {
6028   {   0, "proof-of-delivery-not-requested" },
6029   {   1, "proof-of-delivery-requested" },
6030   { 0, NULL }
6031 };
6032
6033
6034 static int
6035 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_) {
6036   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6037                                   NULL);
6038
6039   return offset;
6040 }
6041
6042
6043
6044 static int
6045 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_) {
6046   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
6047                                             actx, tree, tvb, offset, hf_index,
6048                                             NULL);
6049
6050   return offset;
6051 }
6052
6053
6054 static const value_string x411_ContentCorrelator_vals[] = {
6055   {   0, "ia5text" },
6056   {   1, "octets" },
6057   { 0, NULL }
6058 };
6059
6060 static const ber_choice_t ContentCorrelator_choice[] = {
6061   {   0, &hf_x411_ia5text        , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_IA5String },
6062   {   1, &hf_x411_octets         , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_OCTET_STRING },
6063   { 0, NULL, 0, 0, 0, NULL }
6064 };
6065
6066 static int
6067 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_) {
6068   offset = dissect_ber_choice(actx, tree, tvb, offset,
6069                                  ContentCorrelator_choice, hf_index, ett_x411_ContentCorrelator,
6070                                  NULL);
6071
6072   return offset;
6073 }
6074
6075
6076
6077 static int
6078 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_) {
6079   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6080
6081   return offset;
6082 }
6083
6084
6085 static const ber_sequence_t IntendedRecipientName_sequence[] = {
6086   { &hf_x411_intended_recipient, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6087   { &hf_x411_redirection_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6088   { NULL, 0, 0, 0, NULL }
6089 };
6090
6091 static int
6092 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_) {
6093   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6094                                    IntendedRecipientName_sequence, hf_index, ett_x411_IntendedRecipientName);
6095
6096   return offset;
6097 }
6098
6099
6100 static const value_string x411_RedirectionReason_vals[] = {
6101   {   0, "recipient-assigned-alternate-recipient" },
6102   {   1, "originator-requested-alternate-recipient" },
6103   {   2, "recipient-MD-assigned-alternate-recipient" },
6104   {   3, "directory-look-up" },
6105   {   4, "alias" },
6106   { 0, NULL }
6107 };
6108
6109
6110 static int
6111 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_) {
6112   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6113                                   NULL);
6114
6115   return offset;
6116 }
6117
6118
6119 static const ber_sequence_t Redirection_sequence[] = {
6120   { &hf_x411_intended_recipient_name, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_IntendedRecipientName },
6121   { &hf_x411_redirection_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_x411_RedirectionReason },
6122   { NULL, 0, 0, 0, NULL }
6123 };
6124
6125 static int
6126 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_) {
6127   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6128                                    Redirection_sequence, hf_index, ett_x411_Redirection);
6129
6130   return offset;
6131 }
6132
6133
6134 static const ber_sequence_t RedirectionHistory_sequence_of[1] = {
6135   { &hf_x411_RedirectionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_Redirection },
6136 };
6137
6138 static int
6139 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_) {
6140   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6141                                                   1, ub_redirections, RedirectionHistory_sequence_of, hf_index, ett_x411_RedirectionHistory);
6142
6143   return offset;
6144 }
6145
6146
6147 static const ber_sequence_t DLExpansion_sequence[] = {
6148   { &hf_x411_dl             , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6149   { &hf_x411_dl_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6150   { NULL, 0, 0, 0, NULL }
6151 };
6152
6153 static int
6154 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_) {
6155   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6156                                    DLExpansion_sequence, hf_index, ett_x411_DLExpansion);
6157
6158   return offset;
6159 }
6160
6161
6162 static const ber_sequence_t DLExpansionHistory_sequence_of[1] = {
6163   { &hf_x411_DLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_DLExpansion },
6164 };
6165
6166 static int
6167 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_) {
6168   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6169                                                   1, ub_dl_expansions, DLExpansionHistory_sequence_of, hf_index, ett_x411_DLExpansionHistory);
6170
6171   return offset;
6172 }
6173
6174
6175
6176 static int
6177 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_) {
6178   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6179
6180   return offset;
6181 }
6182
6183
6184 static const ber_sequence_t OriginatorAndDLExpansion_sequence[] = {
6185   { &hf_x411_originator_or_dl_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOptionalDirectoryName },
6186   { &hf_x411_origination_or_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
6187   { NULL, 0, 0, 0, NULL }
6188 };
6189
6190 static int
6191 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_) {
6192   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6193                                    OriginatorAndDLExpansion_sequence, hf_index, ett_x411_OriginatorAndDLExpansion);
6194
6195   return offset;
6196 }
6197
6198
6199 static const ber_sequence_t OriginatorAndDLExpansionHistory_sequence_of[1] = {
6200   { &hf_x411_OriginatorAndDLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_OriginatorAndDLExpansion },
6201 };
6202
6203 static int
6204 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_) {
6205   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6206                                                   2, ub_orig_and_dl_expansions, OriginatorAndDLExpansionHistory_sequence_of, hf_index, ett_x411_OriginatorAndDLExpansionHistory);
6207
6208   return offset;
6209 }
6210
6211
6212
6213 static int
6214 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_) {
6215   offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6216
6217   return offset;
6218 }
6219
6220
6221
6222 static int
6223 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_) {
6224   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6225
6226   return offset;
6227 }
6228
6229
6230
6231 static int
6232 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_) {
6233   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6234
6235   return offset;
6236 }
6237
6238
6239 static const ber_sequence_t PerRecipientDeliveryReportFields_sequence[] = {
6240   { &hf_x411_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_MessageDeliveryTime },
6241   { &hf_x411_type_of_MTS_user, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_TypeOfMTSUser },
6242   { &hf_x411_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_RecipientCertificate },
6243   { &hf_x411_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDelivery },
6244   { NULL, 0, 0, 0, NULL }
6245 };
6246
6247 static int
6248 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_) {
6249   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6250                                    PerRecipientDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientDeliveryReportFields);
6251
6252   return offset;
6253 }
6254
6255
6256 static const ber_sequence_t PerRecipientNonDeliveryReportFields_sequence[] = {
6257   { &hf_x411_non_delivery_reason_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_NonDeliveryReasonCode },
6258   { &hf_x411_non_delivery_diagnostic_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_NonDeliveryDiagnosticCode },
6259   { NULL, 0, 0, 0, NULL }
6260 };
6261
6262 static int
6263 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_) {
6264   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6265                                    PerRecipientNonDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientNonDeliveryReportFields);
6266
6267   return offset;
6268 }
6269
6270
6271 static const value_string x411_T_report_type_vals[] = {
6272   {   0, "delivery" },
6273   {   1, "non-delivery" },
6274   { 0, NULL }
6275 };
6276
6277 static const ber_choice_t T_report_type_choice[] = {
6278   {   0, &hf_x411_report_type_delivery, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientDeliveryReportFields },
6279   {   1, &hf_x411_non_delivery_report, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_PerRecipientNonDeliveryReportFields },
6280   { 0, NULL, 0, 0, 0, NULL }
6281 };
6282
6283 static int
6284 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_) {
6285   offset = dissect_ber_choice(actx, tree, tvb, offset,
6286                                  T_report_type_choice, hf_index, ett_x411_T_report_type,
6287                                  NULL);
6288
6289   return offset;
6290 }
6291
6292
6293 static const ber_sequence_t PerRecipientReportFields_sequence[] = {
6294   { &hf_x411_actual_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ActualRecipientName },
6295   { &hf_x411_originally_intended_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginallyIntendedRecipientName },
6296   { &hf_x411_report_type    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_report_type },
6297   { NULL, 0, 0, 0, NULL }
6298 };
6299
6300 static int
6301 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_) {
6302   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6303                                    PerRecipientReportFields_sequence, hf_index, ett_x411_PerRecipientReportFields);
6304
6305   return offset;
6306 }
6307
6308
6309
6310 int
6311 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_) {
6312   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6313
6314   return offset;
6315 }
6316
6317
6318
6319 int
6320 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_) {
6321   offset = dissect_x411_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6322
6323   return offset;
6324 }
6325
6326
6327
6328 static int
6329 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_) {
6330   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
6331
6332   return offset;
6333 }
6334
6335
6336 static const ber_sequence_t ReportingMTAName_sequence[] = {
6337   { &hf_x411_domain_01      , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
6338   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
6339   { &hf_x411_mta_directory_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6340   { NULL, 0, 0, 0, NULL }
6341 };
6342
6343 static int
6344 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_) {
6345   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6346                                    ReportingMTAName_sequence, hf_index, ett_x411_ReportingMTAName);
6347
6348   return offset;
6349 }
6350
6351
6352 static const value_string x411_ExtendedCertificate_vals[] = {
6353   {   0, "directory-entry" },
6354   {   1, "certificate" },
6355   { 0, NULL }
6356 };
6357
6358 static const ber_choice_t ExtendedCertificate_choice[] = {
6359   {   0, &hf_x411_directory_entry, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6360   {   1, &hf_x411_certificate    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
6361   { 0, NULL, 0, 0, 0, NULL }
6362 };
6363
6364 static int
6365 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_) {
6366   offset = dissect_ber_choice(actx, tree, tvb, offset,
6367                                  ExtendedCertificate_choice, hf_index, ett_x411_ExtendedCertificate,
6368                                  NULL);
6369
6370   return offset;
6371 }
6372
6373
6374 static const ber_sequence_t ExtendedCertificates_set_of[1] = {
6375   { &hf_x411_ExtendedCertificates_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_ExtendedCertificate },
6376 };
6377
6378 int
6379 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_) {
6380   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
6381                                              1, ub_certificates, ExtendedCertificates_set_of, hf_index, ett_x411_ExtendedCertificates);
6382
6383   return offset;
6384 }
6385
6386
6387 static const ber_sequence_t DLExemptedRecipients_set_of[1] = {
6388   { &hf_x411_DLExemptedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddressAndOrDirectoryName },
6389 };
6390
6391 static int
6392 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_) {
6393   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
6394                                  DLExemptedRecipients_set_of, hf_index, ett_x411_DLExemptedRecipients);
6395
6396   return offset;
6397 }
6398
6399
6400 static const ber_sequence_t CertificateSelectors_set[] = {
6401   { &hf_x411_encryption_recipient, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6402   { &hf_x411_encryption_originator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6403   { &hf_x411_selectors_content_integrity_check, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6404   { &hf_x411_token_signature, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6405   { &hf_x411_message_origin_authentication, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6406   { NULL, 0, 0, 0, NULL }
6407 };
6408
6409 static int
6410 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_) {
6411   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6412                               CertificateSelectors_set, hf_index, ett_x411_CertificateSelectors);
6413
6414   return offset;
6415 }
6416
6417
6418
6419 static int
6420 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_) {
6421 #line 758 "x411.cnf"
6422         tvbuff_t        *string = NULL;
6423
6424           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6425                                                         actx, tree, tvb, offset,
6426                                                         1, ub_common_name_length, hf_index, &string);
6427
6428
6429         if(doing_address && string) {
6430                 g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
6431                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
6432         }
6433
6434
6435
6436   return offset;
6437 }
6438
6439
6440
6441 static int
6442 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_) {
6443 #line 771 "x411.cnf"
6444         tvbuff_t        *string = NULL;
6445
6446           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6447                                                         actx, tree, tvb, offset,
6448                                                         1, ub_common_name_length, hf_index, &string);
6449
6450
6451         if(doing_address && string) {
6452                 g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
6453                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
6454         }
6455
6456
6457
6458   return offset;
6459 }
6460
6461
6462
6463 static int
6464 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_) {
6465   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
6466                                                         actx, tree, tvb, offset,
6467                                                         1, ub_string_length, hf_index, NULL);
6468
6469   return offset;
6470 }
6471
6472
6473
6474 static int
6475 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_) {
6476   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
6477                                                         actx, tree, tvb, offset,
6478                                                         1, ub_string_length, hf_index, NULL);
6479
6480   return offset;
6481 }
6482
6483
6484 static const value_string x411_T_character_encoding_vals[] = {
6485   {   0, "two-octets" },
6486   {   1, "four-octets" },
6487   { 0, NULL }
6488 };
6489
6490 static const ber_choice_t T_character_encoding_choice[] = {
6491   {   0, &hf_x411_two_octets     , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_x411_BMPString_SIZE_1_ub_string_length },
6492   {   1, &hf_x411_four_octets    , BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalString_SIZE_1_ub_string_length },
6493   { 0, NULL, 0, 0, 0, NULL }
6494 };
6495
6496 static int
6497 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_) {
6498   offset = dissect_ber_choice(actx, tree, tvb, offset,
6499                                  T_character_encoding_choice, hf_index, ett_x411_T_character_encoding,
6500                                  NULL);
6501
6502   return offset;
6503 }
6504
6505
6506
6507 static int
6508 dissect_x411_PrintableString_SIZE_CONSTR32534896(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6509   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6510                                                         actx, tree, tvb, offset,
6511                                                         2, 5, hf_index, NULL);
6512
6513   return offset;
6514 }
6515
6516
6517 static const ber_sequence_t UniversalOrBMPString_set[] = {
6518   { &hf_x411_character_encoding, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_character_encoding },
6519   { &hf_x411_iso_639_language_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_CONSTR32534896 },
6520   { NULL, 0, 0, 0, NULL }
6521 };
6522
6523 int
6524 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_) {
6525   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6526                               UniversalOrBMPString_set, hf_index, ett_x411_UniversalOrBMPString);
6527
6528   return offset;
6529 }
6530
6531
6532
6533 static int
6534 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_) {
6535   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6536
6537   return offset;
6538 }
6539
6540
6541
6542 static int
6543 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_) {
6544 #line 719 "x411.cnf"
6545         tvbuff_t        *string = NULL;
6546
6547           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6548                                                         actx, tree, tvb, offset,
6549                                                         1, ub_organization_name_length, hf_index, &string);
6550
6551
6552         if(doing_address && string) {
6553                 g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
6554                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
6555         }
6556
6557
6558
6559   return offset;
6560 }
6561
6562
6563
6564 static int
6565 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_) {
6566   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6567
6568   return offset;
6569 }
6570
6571
6572
6573 static int
6574 dissect_x411_T_teletex_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_) {
6575 #line 949 "x411.cnf"
6576         tvbuff_t        *tstring = NULL;
6577
6578           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6579                                                         actx, tree, tvb, offset,
6580                                                         1, ub_surname_length, hf_index, &tstring);
6581
6582
6583         if(doing_address && tstring) {
6584             g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
6585           g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
6586         }
6587
6588
6589
6590   return offset;
6591 }
6592
6593
6594
6595 static int
6596 dissect_x411_T_teletex_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_) {
6597 #line 959 "x411.cnf"
6598         tvbuff_t        *tstring = NULL;
6599
6600           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6601                                                         actx, tree, tvb, offset,
6602                                                         1, ub_given_name_length, hf_index, &tstring);
6603
6604
6605         if(doing_address && tstring) {
6606             g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
6607           g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
6608         }
6609
6610
6611
6612   return offset;
6613 }
6614
6615
6616
6617 static int
6618 dissect_x411_T_teletex_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_) {
6619 #line 969 "x411.cnf"
6620         tvbuff_t        *tstring = NULL;
6621
6622           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6623                                                         actx, tree, tvb, offset,
6624                                                         1, ub_initials_length, hf_index, &tstring);
6625
6626
6627         if(doing_address && tstring) {
6628             g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
6629           g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
6630         }
6631
6632
6633
6634   return offset;
6635 }
6636
6637
6638
6639 static int
6640 dissect_x411_T_teletex_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_) {
6641 #line 979 "x411.cnf"
6642         tvbuff_t        *tstring = NULL;
6643
6644           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6645                                                         actx, tree, tvb, offset,
6646                                                         1, ub_generation_qualifier_length, hf_index, &tstring);
6647
6648
6649         if(doing_address && tstring) {
6650             g_strlcat(oraddress, "/Q=", MAX_ORA_STR_LEN);
6651           g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
6652         }
6653
6654
6655
6656   return offset;
6657 }
6658
6659
6660 static const ber_sequence_t TeletexPersonalName_set[] = {
6661   { &hf_x411_teletex_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_T_teletex_surname },
6662   { &hf_x411_teletex_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_teletex_given_name },
6663   { &hf_x411_teletex_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_teletex_initials },
6664   { &hf_x411_teletex_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_T_teletex_generation_qualifier },
6665   { NULL, 0, 0, 0, NULL }
6666 };
6667
6668 static int
6669 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_) {
6670   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6671                               TeletexPersonalName_set, hf_index, ett_x411_TeletexPersonalName);
6672
6673   return offset;
6674 }
6675
6676
6677 static const ber_sequence_t UniversalPersonalName_set[] = {
6678   { &hf_x411_universal_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6679   { &hf_x411_universal_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6680   { &hf_x411_universal_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6681   { &hf_x411_universal_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_UniversalOrBMPString },
6682   { NULL, 0, 0, 0, NULL }
6683 };
6684
6685 static int
6686 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_) {
6687   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6688                               UniversalPersonalName_set, hf_index, ett_x411_UniversalPersonalName);
6689
6690   return offset;
6691 }
6692
6693
6694
6695 static int
6696 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_) {
6697 #line 745 "x411.cnf"
6698         tvbuff_t        *string = NULL;
6699
6700           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6701                                                         actx, tree, tvb, offset,
6702                                                         1, ub_organizational_unit_name_length, hf_index, &string);
6703
6704
6705         if(doing_address && string) {
6706                 g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
6707                 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
6708         }
6709
6710
6711
6712   return offset;
6713 }
6714
6715
6716 static const ber_sequence_t TeletexOrganizationalUnitNames_sequence_of[1] = {
6717   { &hf_x411_TeletexOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_TeletexOrganizationalUnitName },
6718 };
6719
6720 static int
6721 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_) {
6722   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6723                                                   1, ub_organizational_units, TeletexOrganizationalUnitNames_sequence_of, hf_index, ett_x411_TeletexOrganizationalUnitNames);
6724
6725   return offset;
6726 }
6727
6728
6729
6730 static int
6731 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_) {
6732   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6733
6734   return offset;
6735 }
6736
6737
6738 static const ber_sequence_t UniversalOrganizationalUnitNames_sequence_of[1] = {
6739   { &hf_x411_UniversalOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrganizationalUnitName },
6740 };
6741
6742 static int
6743 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_) {
6744   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6745                                                   1, ub_organizational_units, UniversalOrganizationalUnitNames_sequence_of, hf_index, ett_x411_UniversalOrganizationalUnitNames);
6746
6747   return offset;
6748 }
6749
6750
6751
6752 static int
6753 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_) {
6754   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6755                                                         actx, tree, tvb, offset,
6756                                                         1, ub_pds_name_length, hf_index, NULL);
6757
6758   return offset;
6759 }
6760
6761
6762
6763 static int
6764 dissect_x411_T_x121_dcc_code_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_) {
6765 #line 861 "x411.cnf"
6766         tvbuff_t        *nstring = NULL;
6767
6768           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6769                                                         actx, tree, tvb, offset,
6770                                                         ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
6771
6772
6773         if(doing_address && nstring)
6774                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
6775
6776
6777
6778   return offset;
6779 }
6780
6781
6782
6783 static int
6784 dissect_x411_T_iso_3166_alpha2_code_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_) {
6785 #line 813 "x411.cnf"
6786         tvbuff_t        *nstring = NULL;
6787
6788           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6789                                                         actx, tree, tvb, offset,
6790                                                         ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
6791
6792
6793         if(doing_address && nstring)
6794                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
6795
6796
6797
6798   return offset;
6799 }
6800
6801
6802 static const value_string x411_PhysicalDeliveryCountryName_vals[] = {
6803   {   0, "x121-dcc-code" },
6804   {   1, "iso-3166-alpha2-code" },
6805   { 0, NULL }
6806 };
6807
6808 static const ber_choice_t PhysicalDeliveryCountryName_choice[] = {
6809   {   0, &hf_x411_x121_dcc_code_01, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_x121_dcc_code_01 },
6810   {   1, &hf_x411_iso_3166_alpha2_code_01, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_T_iso_3166_alpha2_code_01 },
6811   { 0, NULL, 0, 0, 0, NULL }
6812 };
6813
6814 static int
6815 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_) {
6816   offset = dissect_ber_choice(actx, tree, tvb, offset,
6817                                  PhysicalDeliveryCountryName_choice, hf_index, ett_x411_PhysicalDeliveryCountryName,
6818                                  NULL);
6819
6820   return offset;
6821 }
6822
6823
6824
6825 static int
6826 dissect_x411_T_numeric_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6827 #line 869 "x411.cnf"
6828         tvbuff_t        *nstring = NULL;
6829
6830           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6831                                                         actx, tree, tvb, offset,
6832                                                         1, ub_postal_code_length, hf_index, &nstring);
6833
6834
6835         if(doing_address && nstring)
6836                 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
6837
6838
6839
6840
6841   return offset;
6842 }
6843
6844
6845
6846 static int
6847 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_) {
6848   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6849                                                         actx, tree, tvb, offset,
6850                                                         1, ub_postal_code_length, hf_index, NULL);
6851
6852   return offset;
6853 }
6854
6855
6856 static const value_string x411_PostalCode_vals[] = {
6857   {   0, "numeric-code" },
6858   {   1, "printable-code" },
6859   { 0, NULL }
6860 };
6861
6862 static const ber_choice_t PostalCode_choice[] = {
6863   {   0, &hf_x411_numeric_code   , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x411_T_numeric_code },
6864   {   1, &hf_x411_printable_code , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_postal_code_length },
6865   { 0, NULL, 0, 0, 0, NULL }
6866 };
6867
6868 static int
6869 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_) {
6870   offset = dissect_ber_choice(actx, tree, tvb, offset,
6871                                  PostalCode_choice, hf_index, ett_x411_PostalCode,
6872                                  NULL);
6873
6874   return offset;
6875 }
6876
6877
6878
6879 static int
6880 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_) {
6881   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6882                                                         actx, tree, tvb, offset,
6883                                                         1, ub_pds_parameter_length, hf_index, NULL);
6884
6885   return offset;
6886 }
6887
6888
6889
6890 static int
6891 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_) {
6892   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6893                                                         actx, tree, tvb, offset,
6894                                                         1, ub_pds_parameter_length, hf_index, NULL);
6895
6896   return offset;
6897 }
6898
6899
6900 static const ber_sequence_t PDSParameter_set[] = {
6901   { &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 },
6902   { &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 },
6903   { NULL, 0, 0, 0, NULL }
6904 };
6905
6906 static int
6907 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_) {
6908   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6909                               PDSParameter_set, hf_index, ett_x411_PDSParameter);
6910
6911   return offset;
6912 }
6913
6914
6915
6916 static int
6917 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_) {
6918   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6919
6920   return offset;
6921 }
6922
6923
6924
6925 static int
6926 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_) {
6927   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6928
6929   return offset;
6930 }
6931
6932
6933
6934 static int
6935 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_) {
6936   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6937
6938   return offset;
6939 }
6940
6941
6942
6943 static int
6944 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_) {
6945   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6946
6947   return offset;
6948 }
6949
6950
6951
6952 static int
6953 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_) {
6954   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6955
6956   return offset;
6957 }
6958
6959
6960
6961 static int
6962 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_) {
6963   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6964
6965   return offset;
6966 }
6967
6968
6969
6970 static int
6971 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_) {
6972   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6973
6974   return offset;
6975 }
6976
6977
6978
6979 static int
6980 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_) {
6981   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6982
6983   return offset;
6984 }
6985
6986
6987
6988 static int
6989 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_) {
6990   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6991
6992   return offset;
6993 }
6994
6995
6996
6997 static int
6998 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_) {
6999   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7000
7001   return offset;
7002 }
7003
7004
7005
7006 static int
7007 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_) {
7008   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7009
7010   return offset;
7011 }
7012
7013
7014
7015 static int
7016 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_) {
7017   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7018
7019   return offset;
7020 }
7021
7022
7023
7024 static int
7025 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_) {
7026   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7027
7028   return offset;
7029 }
7030
7031
7032 static const ber_sequence_t T_printable_address_sequence_of[1] = {
7033   { &hf_x411_printable_address_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_x411_PrintableString_SIZE_1_ub_pds_parameter_length },
7034 };
7035
7036 static int
7037 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_) {
7038   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7039                                                   1, ub_pds_physical_address_lines, T_printable_address_sequence_of, hf_index, ett_x411_T_printable_address);
7040
7041   return offset;
7042 }
7043
7044
7045
7046 static int
7047 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_) {
7048   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
7049                                                         actx, tree, tvb, offset,
7050                                                         1, ub_unformatted_address_length, hf_index, NULL);
7051
7052   return offset;
7053 }
7054
7055
7056 static const ber_sequence_t UnformattedPostalAddress_set[] = {
7057   { &hf_x411_printable_address, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_T_printable_address },
7058   { &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 },
7059   { NULL, 0, 0, 0, NULL }
7060 };
7061
7062 static int
7063 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_) {
7064   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
7065                               UnformattedPostalAddress_set, hf_index, ett_x411_UnformattedPostalAddress);
7066
7067   return offset;
7068 }
7069
7070
7071
7072 static int
7073 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_) {
7074   offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
7075
7076   return offset;
7077 }
7078
7079
7080
7081 static int
7082 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_) {
7083   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7084
7085   return offset;
7086 }
7087
7088
7089
7090 static int
7091 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_) {
7092   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7093
7094   return offset;
7095 }
7096
7097
7098
7099 static int
7100 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_) {
7101   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7102
7103   return offset;
7104 }
7105
7106
7107
7108 static int
7109 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_) {
7110   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7111
7112   return offset;
7113 }
7114
7115
7116
7117 static int
7118 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_) {
7119   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7120
7121   return offset;
7122 }
7123
7124
7125
7126 static int
7127 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_) {
7128   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7129
7130   return offset;
7131 }
7132
7133
7134
7135 static int
7136 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_) {
7137   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7138
7139   return offset;
7140 }
7141
7142
7143
7144 static int
7145 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_) {
7146   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7147
7148   return offset;
7149 }
7150
7151
7152
7153 static int
7154 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_) {
7155   offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7156
7157   return offset;
7158 }
7159
7160
7161
7162 static int
7163 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_) {
7164   offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
7165
7166   return offset;
7167 }
7168
7169
7170
7171 static int
7172 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_) {
7173   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7174                                                         actx, tree, tvb, offset,
7175                                                         1, ub_e163_4_number_length, hf_index, NULL);
7176
7177   return offset;
7178 }
7179
7180
7181
7182 static int
7183 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_) {
7184   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7185                                                         actx, tree, tvb, offset,
7186                                                         1, ub_e163_4_sub_address_length, hf_index, NULL);
7187
7188   return offset;
7189 }
7190
7191
7192 static const ber_sequence_t T_e163_4_address_sequence[] = {
7193   { &hf_x411_number         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_NumericString_SIZE_1_ub_e163_4_number_length },
7194   { &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 },
7195   { NULL, 0, 0, 0, NULL }
7196 };
7197
7198 static int
7199 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_) {
7200   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7201                                    T_e163_4_address_sequence, hf_index, ett_x411_T_e163_4_address);
7202
7203   return offset;
7204 }
7205
7206
7207 static const value_string x411_ExtendedNetworkAddress_vals[] = {
7208   {   0, "e163-4-address" },
7209   {   1, "psap-address" },
7210   { 0, NULL }
7211 };
7212
7213 static const ber_choice_t ExtendedNetworkAddress_choice[] = {
7214   {   0, &hf_x411_e163_4_address , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_T_e163_4_address },
7215   {   1, &hf_x411_psap_address   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509sat_PresentationAddress },
7216   { 0, NULL, 0, 0, 0, NULL }
7217 };
7218
7219 static int
7220 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_) {
7221   offset = dissect_ber_choice(actx, tree, tvb, offset,
7222                                  ExtendedNetworkAddress_choice, hf_index, ett_x411_ExtendedNetworkAddress,
7223                                  NULL);
7224
7225   return offset;
7226 }
7227
7228
7229 static const value_string x411_TerminalType_vals[] = {
7230   {   3, "telex" },
7231   {   4, "teletex" },
7232   {   5, "g3-facsimile" },
7233   {   6, "g4-facsimile" },
7234   {   7, "ia5-terminal" },
7235   {   8, "videotex" },
7236   { 0, NULL }
7237 };
7238
7239
7240 static int
7241 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_) {
7242   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
7243                                                             0U, ub_integer_options, hf_index, NULL);
7244
7245   return offset;
7246 }
7247
7248
7249
7250 static int
7251 dissect_x411_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7252 #line 878 "x411.cnf"
7253         tvbuff_t        *tstring = NULL;
7254
7255           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
7256                                                         actx, tree, tvb, offset,
7257                                                         1, ub_domain_defined_attribute_type_length, hf_index, &tstring);
7258
7259
7260         if(doing_address && tstring) {
7261                 g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
7262                 g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
7263                 g_strlcat(ddatype, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
7264         }
7265
7266
7267
7268
7269   return offset;
7270 }
7271
7272
7273
7274 static int
7275 dissect_x411_T_teletex_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_) {
7276 #line 890 "x411.cnf"
7277         tvbuff_t        *tstring = NULL;
7278
7279           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
7280                                                         actx, tree, tvb, offset,
7281                                                         1, ub_domain_defined_attribute_value_length, hf_index, &tstring);
7282
7283
7284         if(doing_address && tstring) {
7285                 g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
7286                 g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
7287                 if (*ddatype) {
7288                    proto_item_append_text (tree, " (%s=%s)", ddatype, tvb_format_text(tstring, 0, tvb_length(tstring)));
7289                 }
7290         }
7291
7292
7293
7294
7295   return offset;
7296 }
7297
7298
7299 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
7300   { &hf_x411_type           , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_T_type },
7301   { &hf_x411_teletex_value  , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_x411_T_teletex_value },
7302   { NULL, 0, 0, 0, NULL }
7303 };
7304
7305 static int
7306 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_) {
7307 #line 904 "x411.cnf"
7308         ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
7309
7310           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7311                                    TeletexDomainDefinedAttribute_sequence, hf_index, ett_x411_TeletexDomainDefinedAttribute);
7312
7313
7314
7315
7316   return offset;
7317 }
7318
7319
7320 static const ber_sequence_t TeletexDomainDefinedAttributes_sequence_of[1] = {
7321   { &hf_x411_TeletexDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_TeletexDomainDefinedAttribute },
7322 };
7323
7324 static int
7325 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_) {
7326   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7327                                                   1, ub_domain_defined_attributes, TeletexDomainDefinedAttributes_sequence_of, hf_index, ett_x411_TeletexDomainDefinedAttributes);
7328
7329   return offset;
7330 }
7331
7332
7333 static const ber_sequence_t UniversalDomainDefinedAttribute_sequence[] = {
7334   { &hf_x411_universal_type , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrBMPString },
7335   { &hf_x411_universal_value, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalOrBMPString },
7336   { NULL, 0, 0, 0, NULL }
7337 };
7338
7339 static int
7340 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_) {
7341   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7342                                    UniversalDomainDefinedAttribute_sequence, hf_index, ett_x411_UniversalDomainDefinedAttribute);
7343
7344   return offset;
7345 }
7346
7347
7348 static const ber_sequence_t UniversalDomainDefinedAttributes_sequence_of[1] = {
7349   { &hf_x411_UniversalDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_UniversalDomainDefinedAttribute },
7350 };
7351
7352 static int
7353 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_) {
7354   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7355                                                   1, ub_domain_defined_attributes, UniversalDomainDefinedAttributes_sequence_of, hf_index, ett_x411_UniversalDomainDefinedAttributes);
7356
7357   return offset;
7358 }
7359
7360
7361 static const ber_sequence_t NonBasicParameters_set[] = {
7362   { &hf_x411_g3_facsimile   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_G3FacsimileNonBasicParameters },
7363   { &hf_x411_teletex        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TeletexNonBasicParameters },
7364   { NULL, 0, 0, 0, NULL }
7365 };
7366
7367 static int
7368 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_) {
7369   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
7370                               NonBasicParameters_set, hf_index, ett_x411_NonBasicParameters);
7371
7372   return offset;
7373 }
7374
7375
7376 static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
7377   { &hf_x411_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_GlobalDomainIdentifier },
7378   { &hf_x411_mta_name       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_x411_MTAName },
7379   { NULL, 0, 0, 0, NULL }
7380 };
7381
7382 static int
7383 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_) {
7384 #line 1097 "x411.cnf"
7385
7386         doing_address = TRUE;
7387
7388           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7389                                    MTANameAndOptionalGDI_sequence, hf_index, ett_x411_MTANameAndOptionalGDI);
7390
7391
7392         doing_address = FALSE;
7393         proto_item_append_text(tree, ")");
7394
7395
7396
7397   return offset;
7398 }
7399
7400
7401 static const value_string x411_T_name_vals[] = {
7402   {   0, "recipient-name" },
7403   {   1, "mta" },
7404   { 0, NULL }
7405 };
7406
7407 static const ber_choice_t T_name_choice[] = {
7408   {   0, &hf_x411_token_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_RecipientName },
7409   {   1, &hf_x411_token_mta      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x411_MTANameAndOptionalGDI },
7410   { 0, NULL, 0, 0, 0, NULL }
7411 };
7412
7413 static int
7414 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_) {
7415   offset = dissect_ber_choice(actx, tree, tvb, offset,
7416                                  T_name_choice, hf_index, ett_x411_T_name,
7417                                  NULL);
7418
7419   return offset;
7420 }
7421
7422
7423 static const value_string x411_TokenDataType_vals[] = {
7424   {   1, "bind-token-signed-data" },
7425   {   2, "message-token-signed-data" },
7426   {   3, "message-token-encrypted-data" },
7427   {   4, "bind-token-encrypted-data" },
7428   { 0, NULL }
7429 };
7430
7431
7432 static int
7433 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_) {
7434   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7435                                                 &extension_id);
7436
7437   return offset;
7438 }
7439
7440
7441
7442 static int
7443 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_) {
7444 #line 1201 "x411.cnf"
7445
7446         proto_item_append_text(tree, " (%s)", val_to_str(extension_id, x411_TokenDataType_vals, "tokendata-type %d")); 
7447         if (dissector_try_port(x411_tokendata_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
7448                 offset = tvb_length(tvb);
7449         } else {
7450                 proto_item *item = NULL;
7451                 proto_tree *next_tree = NULL;
7452
7453                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
7454                         "Dissector for tokendata-type %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
7455                 next_tree = proto_item_add_subtree(item, ett_x411_unknown_tokendata_type);
7456                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
7457                 expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown tokendata-type");
7458         }
7459
7460
7461
7462   return offset;
7463 }
7464
7465
7466 static const ber_sequence_t TokenData_sequence[] = {
7467   { &hf_x411_token_data_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_TokenDataType },
7468   { &hf_x411_value          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_T_value },
7469   { NULL, 0, 0, 0, NULL }
7470 };
7471
7472 static int
7473 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_) {
7474   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7475                                    TokenData_sequence, hf_index, ett_x411_TokenData);
7476
7477   return offset;
7478 }
7479
7480
7481 static const ber_sequence_t AsymmetricTokenData_sequence[] = {
7482   { &hf_x411_signature_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7483   { &hf_x411_name           , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x411_T_name },
7484   { &hf_x411_time           , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_x411_Time },
7485   { &hf_x411_signed_data    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_TokenData },
7486   { &hf_x411_encryption_algorithm_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_AlgorithmIdentifier },
7487   { &hf_x411_encrypted_data , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
7488   { NULL, 0, 0, 0, NULL }
7489 };
7490
7491 static int
7492 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_) {
7493   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7494                                    AsymmetricTokenData_sequence, hf_index, ett_x411_AsymmetricTokenData);
7495
7496   return offset;
7497 }
7498
7499
7500 static const ber_sequence_t AsymmetricToken_sequence[] = {
7501   { &hf_x411_asymmetric_token_data, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_AsymmetricTokenData },
7502   { &hf_x411_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7503   { &hf_x411_encrypted      , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_BIT_STRING },
7504   { NULL, 0, 0, 0, NULL }
7505 };
7506
7507 static int
7508 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_) {
7509   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7510                                    AsymmetricToken_sequence, hf_index, ett_x411_AsymmetricToken);
7511
7512   return offset;
7513 }
7514
7515
7516
7517 static int
7518 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_) {
7519   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7520                                     NULL, hf_index, -1,
7521                                     NULL);
7522
7523   return offset;
7524 }
7525
7526
7527
7528 static int
7529 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_) {
7530   offset = dissect_x411_RandomNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
7531
7532   return offset;
7533 }
7534
7535
7536
7537 static int
7538 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_) {
7539   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7540                                                 NULL);
7541
7542   return offset;
7543 }
7544
7545
7546 static const ber_sequence_t MessageTokenSignedData_sequence[] = {
7547   { &hf_x411_content_confidentiality_algorithm_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentConfidentialityAlgorithmIdentifier },
7548   { &hf_x411_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIntegrityCheck },
7549   { &hf_x411_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageSecurityLabel },
7550   { &hf_x411_proof_of_delivery_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ProofOfDeliveryRequest },
7551   { &hf_x411_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER },
7552   { NULL, 0, 0, 0, NULL }
7553 };
7554
7555 static int
7556 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_) {
7557   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7558                                    MessageTokenSignedData_sequence, hf_index, ett_x411_MessageTokenSignedData);
7559
7560   return offset;
7561 }
7562
7563
7564
7565 static int
7566 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_) {
7567   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7568                                     NULL, hf_index, -1,
7569                                     NULL);
7570
7571   return offset;
7572 }
7573
7574
7575 static const ber_sequence_t MessageTokenEncryptedData_sequence[] = {
7576   { &hf_x411_content_confidentiality_key, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncryptionKey },
7577   { &hf_x411_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentIntegrityCheck },
7578   { &hf_x411_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageSecurityLabel },
7579   { &hf_x411_content_integrity_key, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncryptionKey },
7580   { &hf_x411_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_INTEGER },
7581   { NULL, 0, 0, 0, NULL }
7582 };
7583
7584 static int
7585 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_) {
7586   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7587                                    MessageTokenEncryptedData_sequence, hf_index, ett_x411_MessageTokenEncryptedData);
7588
7589   return offset;
7590 }
7591
7592
7593
7594 static int
7595 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_) {
7596   offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
7597
7598   return offset;
7599 }
7600
7601
7602
7603 static int
7604 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_) {
7605   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7606                                                 NULL);
7607
7608   return offset;
7609 }
7610
7611
7612
7613 static int
7614 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_) {
7615   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7616                                        NULL);
7617
7618   return offset;
7619 }
7620
7621
7622 static const value_string x411_AbortReason_vals[] = {
7623   {   0, "localSystemProblem" },
7624   {   1, "invalidParameter" },
7625   {   2, "unrecognizedActivity" },
7626   {   3, "temporaryProblem" },
7627   {   4, "protocolError" },
7628   {   5, "permanentProblem" },
7629   {   6, "userError" },
7630   {   7, "transferCompleted" },
7631   { 0, NULL }
7632 };
7633
7634
7635 static int
7636 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_) {
7637   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7638                                                 NULL);
7639
7640   return offset;
7641 }
7642
7643
7644
7645 static int
7646 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_) {
7647   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
7648
7649   return offset;
7650 }
7651
7652
7653 static const ber_sequence_t RTABapdu_set[] = {
7654   { &hf_x411_abortReason    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_AbortReason },
7655   { &hf_x411_reflectedParameter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_BIT_STRING },
7656   { &hf_x411_userdataAB     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_OBJECT_IDENTIFIER },
7657   { NULL, 0, 0, 0, NULL }
7658 };
7659
7660 static int
7661 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_) {
7662   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
7663                               RTABapdu_set, hf_index, ett_x411_RTABapdu);
7664
7665   return offset;
7666 }
7667
7668
7669 static const value_string x411_RTSE_apdus_vals[] = {
7670   {   0, "rtorq-apdu" },
7671   {   1, "rtoac-apdu" },
7672   {   2, "rtorj-apdu" },
7673   {   3, "rttp-apdu" },
7674   {   4, "rttr-apdu" },
7675   {   5, "rtab-apdu" },
7676   { 0, NULL }
7677 };
7678
7679 static const ber_choice_t RTSE_apdus_choice[] = {
7680   {   0, &hf_x411_rtorq_apdu     , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_rtse_RTORQapdu },
7681   {   1, &hf_x411_rtoac_apdu     , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_rtse_RTOACapdu },
7682   {   2, &hf_x411_rtorj_apdu     , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_rtse_RTORJapdu },
7683   {   3, &hf_x411_rttp_apdu      , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x411_RTTPapdu },
7684   {   4, &hf_x411_rttr_apdu      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_RTTRapdu },
7685   {   5, &hf_x411_rtab_apdu      , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_x411_RTABapdu },
7686   { 0, NULL, 0, 0, 0, NULL }
7687 };
7688
7689 static int
7690 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_) {
7691   offset = dissect_ber_choice(actx, tree, tvb, offset,
7692                                  RTSE_apdus_choice, hf_index, ett_x411_RTSE_apdus,
7693                                  NULL);
7694
7695   return offset;
7696 }
7697
7698
7699
7700 static int
7701 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_) {
7702   offset = dissect_ros_InvokeId(implicit_tag, tvb, offset, actx, tree, hf_index);
7703
7704   return offset;
7705 }
7706
7707
7708
7709 static int
7710 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_) {
7711   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
7712
7713   return offset;
7714 }
7715
7716 /*--- PDUs ---*/
7717
7718 static void dissect_InternalTraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7719   asn1_ctx_t asn1_ctx;
7720   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7721   dissect_x411_InternalTraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_InternalTraceInformation_PDU);
7722 }
7723 static void dissect_InternalTraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7724   asn1_ctx_t asn1_ctx;
7725   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7726   dissect_x411_InternalTraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_InternalTraceInformationElement_PDU);
7727 }
7728 static void dissect_TraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7729   asn1_ctx_t asn1_ctx;
7730   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7731   dissect_x411_TraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TraceInformation_PDU);
7732 }
7733 static void dissect_TraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7734   asn1_ctx_t asn1_ctx;
7735   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7736   dissect_x411_TraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TraceInformationElement_PDU);
7737 }
7738 static int dissect_MTSBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7739   int offset = 0;
7740   asn1_ctx_t asn1_ctx;
7741   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7742   offset = dissect_x411_MTSBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MTSBindArgument_PDU);
7743   return offset;
7744 }
7745 static int dissect_MTSBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7746   int offset = 0;
7747   asn1_ctx_t asn1_ctx;
7748   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7749   offset = dissect_x411_MTSBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MTSBindResult_PDU);
7750   return offset;
7751 }
7752 static int dissect_PAR_mts_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7753   int offset = 0;
7754   asn1_ctx_t asn1_ctx;
7755   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7756   offset = dissect_x411_PAR_mts_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_mts_bind_error_PDU);
7757   return offset;
7758 }
7759 static int dissect_MessageSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7760   int offset = 0;
7761   asn1_ctx_t asn1_ctx;
7762   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7763   offset = dissect_x411_MessageSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageSubmissionArgument_PDU);
7764   return offset;
7765 }
7766 static int dissect_MessageSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7767   int offset = 0;
7768   asn1_ctx_t asn1_ctx;
7769   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7770   offset = dissect_x411_MessageSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageSubmissionResult_PDU);
7771   return offset;
7772 }
7773 static int dissect_ProbeSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7774   int offset = 0;
7775   asn1_ctx_t asn1_ctx;
7776   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7777   offset = dissect_x411_ProbeSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ProbeSubmissionArgument_PDU);
7778   return offset;
7779 }
7780 static int dissect_ProbeSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7781   int offset = 0;
7782   asn1_ctx_t asn1_ctx;
7783   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7784   offset = dissect_x411_ProbeSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ProbeSubmissionResult_PDU);
7785   return offset;
7786 }
7787 static int dissect_CancelDeferredDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7788   int offset = 0;
7789   asn1_ctx_t asn1_ctx;
7790   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7791   offset = dissect_x411_CancelDeferredDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_CancelDeferredDeliveryArgument_PDU);
7792   return offset;
7793 }
7794 static int dissect_CancelDeferredDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7795   int offset = 0;
7796   asn1_ctx_t asn1_ctx;
7797   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7798   offset = dissect_x411_CancelDeferredDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_CancelDeferredDeliveryResult_PDU);
7799   return offset;
7800 }
7801 static int dissect_SubmissionControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7802   int offset = 0;
7803   asn1_ctx_t asn1_ctx;
7804   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7805   offset = dissect_x411_SubmissionControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SubmissionControlArgument_PDU);
7806   return offset;
7807 }
7808 static int dissect_SubmissionControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7809   int offset = 0;
7810   asn1_ctx_t asn1_ctx;
7811   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7812   offset = dissect_x411_SubmissionControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SubmissionControlResult_PDU);
7813   return offset;
7814 }
7815 static int dissect_PAR_submission_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7816   int offset = 0;
7817   asn1_ctx_t asn1_ctx;
7818   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7819   offset = dissect_x411_PAR_submission_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_submission_control_violated_PDU);
7820   return offset;
7821 }
7822 static int dissect_PAR_element_of_service_not_subscribed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7823   int offset = 0;
7824   asn1_ctx_t asn1_ctx;
7825   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7826   offset = dissect_x411_PAR_element_of_service_not_subscribed(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_element_of_service_not_subscribed_PDU);
7827   return offset;
7828 }
7829 static int dissect_PAR_deferred_delivery_cancellation_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7830   int offset = 0;
7831   asn1_ctx_t asn1_ctx;
7832   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7833   offset = dissect_x411_PAR_deferred_delivery_cancellation_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU);
7834   return offset;
7835 }
7836 static int dissect_PAR_originator_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7837   int offset = 0;
7838   asn1_ctx_t asn1_ctx;
7839   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7840   offset = dissect_x411_PAR_originator_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_originator_invalid_PDU);
7841   return offset;
7842 }
7843 static int dissect_ImproperlySpecifiedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7844   int offset = 0;
7845   asn1_ctx_t asn1_ctx;
7846   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7847   offset = dissect_x411_ImproperlySpecifiedRecipients(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ImproperlySpecifiedRecipients_PDU);
7848   return offset;
7849 }
7850 static int dissect_PAR_message_submission_identifier_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7851   int offset = 0;
7852   asn1_ctx_t asn1_ctx;
7853   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7854   offset = dissect_x411_PAR_message_submission_identifier_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_message_submission_identifier_invalid_PDU);
7855   return offset;
7856 }
7857 static int dissect_PAR_inconsistent_request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7858   int offset = 0;
7859   asn1_ctx_t asn1_ctx;
7860   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7861   offset = dissect_x411_PAR_inconsistent_request(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_inconsistent_request_PDU);
7862   return offset;
7863 }
7864 static int dissect_SecurityProblem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7865   int offset = 0;
7866   asn1_ctx_t asn1_ctx;
7867   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7868   offset = dissect_x411_SecurityProblem(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_SecurityProblem_PDU);
7869   return offset;
7870 }
7871 static int dissect_PAR_unsupported_critical_function_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7872   int offset = 0;
7873   asn1_ctx_t asn1_ctx;
7874   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7875   offset = dissect_x411_PAR_unsupported_critical_function(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_unsupported_critical_function_PDU);
7876   return offset;
7877 }
7878 static int dissect_PAR_remote_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7879   int offset = 0;
7880   asn1_ctx_t asn1_ctx;
7881   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7882   offset = dissect_x411_PAR_remote_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_remote_bind_error_PDU);
7883   return offset;
7884 }
7885 static void dissect_MessageSubmissionTime_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_MessageSubmissionTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSubmissionTime_PDU);
7889 }
7890 static int dissect_MessageDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7891   int offset = 0;
7892   asn1_ctx_t asn1_ctx;
7893   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7894   offset = dissect_x411_MessageDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageDeliveryArgument_PDU);
7895   return offset;
7896 }
7897 static int dissect_MessageDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7898   int offset = 0;
7899   asn1_ctx_t asn1_ctx;
7900   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7901   offset = dissect_x411_MessageDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_MessageDeliveryResult_PDU);
7902   return offset;
7903 }
7904 static int dissect_ReportDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7905   int offset = 0;
7906   asn1_ctx_t asn1_ctx;
7907   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7908   offset = dissect_x411_ReportDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ReportDeliveryArgument_PDU);
7909   return offset;
7910 }
7911 static int dissect_ReportDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7912   int offset = 0;
7913   asn1_ctx_t asn1_ctx;
7914   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7915   offset = dissect_x411_ReportDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ReportDeliveryResult_PDU);
7916   return offset;
7917 }
7918 static int dissect_DeliveryControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7919   int offset = 0;
7920   asn1_ctx_t asn1_ctx;
7921   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7922   offset = dissect_x411_DeliveryControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_DeliveryControlArgument_PDU);
7923   return offset;
7924 }
7925 static int dissect_DeliveryControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7926   int offset = 0;
7927   asn1_ctx_t asn1_ctx;
7928   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7929   offset = dissect_x411_DeliveryControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_DeliveryControlResult_PDU);
7930   return offset;
7931 }
7932 static int dissect_PAR_delivery_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7933   int offset = 0;
7934   asn1_ctx_t asn1_ctx;
7935   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7936   offset = dissect_x411_PAR_delivery_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_delivery_control_violated_PDU);
7937   return offset;
7938 }
7939 static int dissect_PAR_control_violates_registration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7940   int offset = 0;
7941   asn1_ctx_t asn1_ctx;
7942   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7943   offset = dissect_x411_PAR_control_violates_registration(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_control_violates_registration_PDU);
7944   return offset;
7945 }
7946 static int dissect_RefusedOperation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7947   int offset = 0;
7948   asn1_ctx_t asn1_ctx;
7949   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7950   offset = dissect_x411_RefusedOperation(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RefusedOperation_PDU);
7951   return offset;
7952 }
7953 static void dissect_RecipientCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7954   asn1_ctx_t asn1_ctx;
7955   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7956   dissect_x411_RecipientCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientCertificate_PDU);
7957 }
7958 static void dissect_ProofOfDelivery_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7959   asn1_ctx_t asn1_ctx;
7960   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7961   dissect_x411_ProofOfDelivery(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfDelivery_PDU);
7962 }
7963 static int dissect_RegisterArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7964   int offset = 0;
7965   asn1_ctx_t asn1_ctx;
7966   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7967   offset = dissect_x411_RegisterArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RegisterArgument_PDU);
7968   return offset;
7969 }
7970 static int dissect_RegisterResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7971   int offset = 0;
7972   asn1_ctx_t asn1_ctx;
7973   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7974   offset = dissect_x411_RegisterResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RegisterResult_PDU);
7975   return offset;
7976 }
7977 static int dissect_ChangeCredentialsArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7978   int offset = 0;
7979   asn1_ctx_t asn1_ctx;
7980   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7981   offset = dissect_x411_ChangeCredentialsArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_ChangeCredentialsArgument_PDU);
7982   return offset;
7983 }
7984 static int dissect_RES_change_credentials_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7985   int offset = 0;
7986   asn1_ctx_t asn1_ctx;
7987   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7988   offset = dissect_x411_RES_change_credentials(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_RES_change_credentials_PDU);
7989   return offset;
7990 }
7991 static int dissect_PAR_register_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7992   int offset = 0;
7993   asn1_ctx_t asn1_ctx;
7994   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7995   offset = dissect_x411_PAR_register_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_register_rejected_PDU);
7996   return offset;
7997 }
7998 static int dissect_PAR_new_credentials_unacceptable_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7999   int offset = 0;
8000   asn1_ctx_t asn1_ctx;
8001   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8002   offset = dissect_x411_PAR_new_credentials_unacceptable(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_new_credentials_unacceptable_PDU);
8003   return offset;
8004 }
8005 static int dissect_PAR_old_credentials_incorrectly_specified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8006   int offset = 0;
8007   asn1_ctx_t asn1_ctx;
8008   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8009   offset = dissect_x411_PAR_old_credentials_incorrectly_specified(FALSE, tvb, offset, &asn1_ctx, tree, hf_x411_PAR_old_credentials_incorrectly_specified_PDU);
8010   return offset;
8011 }
8012 static void dissect_MessageSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8013   asn1_ctx_t asn1_ctx;
8014   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8015   dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSubmissionEnvelope_PDU);
8016 }
8017 static void dissect_PerRecipientMessageSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8018   asn1_ctx_t asn1_ctx;
8019   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8020   dissect_x411_PerRecipientMessageSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientMessageSubmissionFields_PDU);
8021 }
8022 static void dissect_ProbeSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8023   asn1_ctx_t asn1_ctx;
8024   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8025   dissect_x411_ProbeSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProbeSubmissionEnvelope_PDU);
8026 }
8027 static void dissect_PerRecipientProbeSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8028   asn1_ctx_t asn1_ctx;
8029   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8030   dissect_x411_PerRecipientProbeSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientProbeSubmissionFields_PDU);
8031 }
8032 static void dissect_MessageDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8033   asn1_ctx_t asn1_ctx;
8034   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8035   dissect_x411_MessageDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageDeliveryEnvelope_PDU);
8036 }
8037 static void dissect_ReportDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8038   asn1_ctx_t asn1_ctx;
8039   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8040   dissect_x411_ReportDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportDeliveryEnvelope_PDU);
8041 }
8042 static void dissect_PerRecipientReportDeliveryFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8043   asn1_ctx_t asn1_ctx;
8044   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8045   dissect_x411_PerRecipientReportDeliveryFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerRecipientReportDeliveryFields_PDU);
8046 }
8047 static void dissect_ExtendedContentType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8048   asn1_ctx_t asn1_ctx;
8049   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8050   dissect_x411_ExtendedContentType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedContentType_PDU);
8051 }
8052 static void dissect_ContentIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8053   asn1_ctx_t asn1_ctx;
8054   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8055   dissect_x411_ContentIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentIdentifier_PDU);
8056 }
8057 static void dissect_PerMessageIndicators_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8058   asn1_ctx_t asn1_ctx;
8059   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8060   dissect_x411_PerMessageIndicators(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PerMessageIndicators_PDU);
8061 }
8062 static void dissect_OriginatorReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8063   asn1_ctx_t asn1_ctx;
8064   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8065   dissect_x411_OriginatorReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorReportRequest_PDU);
8066 }
8067 static void dissect_DeferredDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8068   asn1_ctx_t asn1_ctx;
8069   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8070   dissect_x411_DeferredDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DeferredDeliveryTime_PDU);
8071 }
8072 static void dissect_Priority_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8073   asn1_ctx_t asn1_ctx;
8074   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8075   dissect_x411_Priority(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Priority_PDU);
8076 }
8077 static void dissect_ContentLength_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8078   asn1_ctx_t asn1_ctx;
8079   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8080   dissect_x411_ContentLength(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentLength_PDU);
8081 }
8082 static void dissect_MessageDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8083   asn1_ctx_t asn1_ctx;
8084   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8085   dissect_x411_MessageDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageDeliveryTime_PDU);
8086 }
8087 static void dissect_DeliveryFlags_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8088   asn1_ctx_t asn1_ctx;
8089   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8090   dissect_x411_DeliveryFlags(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DeliveryFlags_PDU);
8091 }
8092 static void dissect_SubjectSubmissionIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8093   asn1_ctx_t asn1_ctx;
8094   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8095   dissect_x411_SubjectSubmissionIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_SubjectSubmissionIdentifier_PDU);
8096 }
8097 static void dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8098   asn1_ctx_t asn1_ctx;
8099   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8100   dissect_x411_RecipientReassignmentProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientReassignmentProhibited_PDU);
8101 }
8102 static void dissect_OriginatorRequestedAlternateRecipient_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8103   asn1_ctx_t asn1_ctx;
8104   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8105   dissect_x411_OriginatorRequestedAlternateRecipient(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorRequestedAlternateRecipient_PDU);
8106 }
8107 static void dissect_DLExpansionProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8108   asn1_ctx_t asn1_ctx;
8109   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8110   dissect_x411_DLExpansionProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansionProhibited_PDU);
8111 }
8112 static void dissect_ConversionWithLossProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8113   asn1_ctx_t asn1_ctx;
8114   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8115   dissect_x411_ConversionWithLossProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ConversionWithLossProhibited_PDU);
8116 }
8117 static void dissect_LatestDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8118   asn1_ctx_t asn1_ctx;
8119   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8120   dissect_x411_LatestDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_LatestDeliveryTime_PDU);
8121 }
8122 static void dissect_RequestedDeliveryMethod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8123   asn1_ctx_t asn1_ctx;
8124   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8125   dissect_x411_RequestedDeliveryMethod(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RequestedDeliveryMethod_PDU);
8126 }
8127 static void dissect_PhysicalForwardingProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8128   asn1_ctx_t asn1_ctx;
8129   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8130   dissect_x411_PhysicalForwardingProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingProhibited_PDU);
8131 }
8132 static void dissect_PhysicalForwardingAddressRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8133   asn1_ctx_t asn1_ctx;
8134   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8135   dissect_x411_PhysicalForwardingAddressRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingAddressRequest_PDU);
8136 }
8137 static void dissect_PhysicalDeliveryModes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8138   asn1_ctx_t asn1_ctx;
8139   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8140   dissect_x411_PhysicalDeliveryModes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryModes_PDU);
8141 }
8142 static void dissect_RegisteredMailType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8143   asn1_ctx_t asn1_ctx;
8144   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8145   dissect_x411_RegisteredMailType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RegisteredMailType_PDU);
8146 }
8147 static void dissect_RecipientNumberForAdvice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8148   asn1_ctx_t asn1_ctx;
8149   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8150   dissect_x411_RecipientNumberForAdvice(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RecipientNumberForAdvice_PDU);
8151 }
8152 static void dissect_PhysicalRenditionAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8153   asn1_ctx_t asn1_ctx;
8154   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8155   dissect_x411_PhysicalRenditionAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalRenditionAttributes_PDU);
8156 }
8157 static void dissect_OriginatorReturnAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8158   asn1_ctx_t asn1_ctx;
8159   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8160   dissect_x411_OriginatorReturnAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorReturnAddress_PDU);
8161 }
8162 static void dissect_PhysicalDeliveryReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8163   asn1_ctx_t asn1_ctx;
8164   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8165   dissect_x411_PhysicalDeliveryReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryReportRequest_PDU);
8166 }
8167 static void dissect_OriginatorCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8168   asn1_ctx_t asn1_ctx;
8169   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8170   dissect_x411_OriginatorCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorCertificate_PDU);
8171 }
8172 static void dissect_MessageToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8173   asn1_ctx_t asn1_ctx;
8174   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8175   dissect_x411_MessageToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageToken_PDU);
8176 }
8177 static void dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8178   asn1_ctx_t asn1_ctx;
8179   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8180   dissect_x411_ContentConfidentialityAlgorithmIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU);
8181 }
8182 static void dissect_ContentIntegrityCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8183   asn1_ctx_t asn1_ctx;
8184   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8185   dissect_x411_ContentIntegrityCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentIntegrityCheck_PDU);
8186 }
8187 static void dissect_MessageOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8188   asn1_ctx_t asn1_ctx;
8189   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8190   dissect_x411_MessageOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageOriginAuthenticationCheck_PDU);
8191 }
8192 static void dissect_MessageSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8193   asn1_ctx_t asn1_ctx;
8194   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8195   dissect_x411_MessageSecurityLabel(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageSecurityLabel_PDU);
8196 }
8197 static void dissect_ProofOfSubmissionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8198   asn1_ctx_t asn1_ctx;
8199   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8200   dissect_x411_ProofOfSubmissionRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfSubmissionRequest_PDU);
8201 }
8202 static void dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8203   asn1_ctx_t asn1_ctx;
8204   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8205   dissect_x411_ProofOfDeliveryRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfDeliveryRequest_PDU);
8206 }
8207 static void dissect_ContentCorrelator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8208   asn1_ctx_t asn1_ctx;
8209   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8210   dissect_x411_ContentCorrelator(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ContentCorrelator_PDU);
8211 }
8212 static void dissect_ProbeOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8213   asn1_ctx_t asn1_ctx;
8214   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8215   dissect_x411_ProbeOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProbeOriginAuthenticationCheck_PDU);
8216 }
8217 static void dissect_RedirectionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8218   asn1_ctx_t asn1_ctx;
8219   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8220   dissect_x411_RedirectionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_RedirectionHistory_PDU);
8221 }
8222 static void dissect_Redirection_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8223   asn1_ctx_t asn1_ctx;
8224   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8225   dissect_x411_Redirection(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Redirection_PDU);
8226 }
8227 static void dissect_DLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8228   asn1_ctx_t asn1_ctx;
8229   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8230   dissect_x411_DLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansionHistory_PDU);
8231 }
8232 static void dissect_DLExpansion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8233   asn1_ctx_t asn1_ctx;
8234   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8235   dissect_x411_DLExpansion(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExpansion_PDU);
8236 }
8237 static void dissect_PhysicalForwardingAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8238   asn1_ctx_t asn1_ctx;
8239   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8240   dissect_x411_PhysicalForwardingAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalForwardingAddress_PDU);
8241 }
8242 static void dissect_OriginatorAndDLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8243   asn1_ctx_t asn1_ctx;
8244   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8245   dissect_x411_OriginatorAndDLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatorAndDLExpansionHistory_PDU);
8246 }
8247 static void dissect_ReportingDLName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8248   asn1_ctx_t asn1_ctx;
8249   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8250   dissect_x411_ReportingDLName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingDLName_PDU);
8251 }
8252 static void dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8253   asn1_ctx_t asn1_ctx;
8254   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8255   dissect_x411_ReportingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingMTACertificate_PDU);
8256 }
8257 static void dissect_ReportOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8258   asn1_ctx_t asn1_ctx;
8259   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8260   dissect_x411_ReportOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportOriginAuthenticationCheck_PDU);
8261 }
8262 static void dissect_OriginatingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8263   asn1_ctx_t asn1_ctx;
8264   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8265   dissect_x411_OriginatingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_OriginatingMTACertificate_PDU);
8266 }
8267 static void dissect_ProofOfSubmission_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8268   asn1_ctx_t asn1_ctx;
8269   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8270   dissect_x411_ProofOfSubmission(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ProofOfSubmission_PDU);
8271 }
8272 static void dissect_ReportingMTAName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8273   asn1_ctx_t asn1_ctx;
8274   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8275   dissect_x411_ReportingMTAName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ReportingMTAName_PDU);
8276 }
8277 static void dissect_ExtendedCertificates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8278   asn1_ctx_t asn1_ctx;
8279   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8280   dissect_x411_ExtendedCertificates(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedCertificates_PDU);
8281 }
8282 static void dissect_DLExemptedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8283   asn1_ctx_t asn1_ctx;
8284   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8285   dissect_x411_DLExemptedRecipients(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_DLExemptedRecipients_PDU);
8286 }
8287 static void dissect_CertificateSelectors_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8288   asn1_ctx_t asn1_ctx;
8289   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8290   dissect_x411_CertificateSelectors(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_CertificateSelectors_PDU);
8291 }
8292 static void dissect_Content_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8293   asn1_ctx_t asn1_ctx;
8294   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8295   dissect_x411_Content(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_Content_PDU);
8296 }
8297 static void dissect_MTSIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8298   asn1_ctx_t asn1_ctx;
8299   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8300   dissect_x411_MTSIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTSIdentifier_PDU);
8301 }
8302 static void dissect_ORName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8303   asn1_ctx_t asn1_ctx;
8304   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8305   dissect_x411_ORName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ORName_PDU);
8306 }
8307 static void dissect_ORAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8308   asn1_ctx_t asn1_ctx;
8309   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8310   dissect_x411_ORAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ORAddress_PDU);
8311 }
8312 static void dissect_CommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8313   asn1_ctx_t asn1_ctx;
8314   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8315   dissect_x411_CommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_CommonName_PDU);
8316 }
8317 static void dissect_TeletexCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8318   asn1_ctx_t asn1_ctx;
8319   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8320   dissect_x411_TeletexCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexCommonName_PDU);
8321 }
8322 static void dissect_UniversalCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8323   asn1_ctx_t asn1_ctx;
8324   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8325   dissect_x411_UniversalCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalCommonName_PDU);
8326 }
8327 static void dissect_TeletexOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8328   asn1_ctx_t asn1_ctx;
8329   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8330   dissect_x411_TeletexOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexOrganizationName_PDU);
8331 }
8332 static void dissect_UniversalOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8333   asn1_ctx_t asn1_ctx;
8334   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8335   dissect_x411_UniversalOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalOrganizationName_PDU);
8336 }
8337 static void dissect_TeletexPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8338   asn1_ctx_t asn1_ctx;
8339   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8340   dissect_x411_TeletexPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexPersonalName_PDU);
8341 }
8342 static void dissect_UniversalPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8343   asn1_ctx_t asn1_ctx;
8344   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8345   dissect_x411_UniversalPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPersonalName_PDU);
8346 }
8347 static void dissect_TeletexOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8348   asn1_ctx_t asn1_ctx;
8349   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8350   dissect_x411_TeletexOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexOrganizationalUnitNames_PDU);
8351 }
8352 static void dissect_UniversalOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8353   asn1_ctx_t asn1_ctx;
8354   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8355   dissect_x411_UniversalOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalOrganizationalUnitNames_PDU);
8356 }
8357 static void dissect_PDSName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8358   asn1_ctx_t asn1_ctx;
8359   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8360   dissect_x411_PDSName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PDSName_PDU);
8361 }
8362 static void dissect_PhysicalDeliveryCountryName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8363   asn1_ctx_t asn1_ctx;
8364   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8365   dissect_x411_PhysicalDeliveryCountryName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryCountryName_PDU);
8366 }
8367 static void dissect_PostalCode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8368   asn1_ctx_t asn1_ctx;
8369   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8370   dissect_x411_PostalCode(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PostalCode_PDU);
8371 }
8372 static void dissect_PhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8373   asn1_ctx_t asn1_ctx;
8374   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8375   dissect_x411_PhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOfficeName_PDU);
8376 }
8377 static void dissect_UniversalPhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8378   asn1_ctx_t asn1_ctx;
8379   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8380   dissect_x411_UniversalPhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOfficeName_PDU);
8381 }
8382 static void dissect_PhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8383   asn1_ctx_t asn1_ctx;
8384   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8385   dissect_x411_PhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOfficeNumber_PDU);
8386 }
8387 static void dissect_UniversalPhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8388   asn1_ctx_t asn1_ctx;
8389   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8390   dissect_x411_UniversalPhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU);
8391 }
8392 static void dissect_ExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8393   asn1_ctx_t asn1_ctx;
8394   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8395   dissect_x411_ExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtensionORAddressComponents_PDU);
8396 }
8397 static void dissect_UniversalExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8398   asn1_ctx_t asn1_ctx;
8399   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8400   dissect_x411_UniversalExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalExtensionORAddressComponents_PDU);
8401 }
8402 static void dissect_PhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8403   asn1_ctx_t asn1_ctx;
8404   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8405   dissect_x411_PhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryPersonalName_PDU);
8406 }
8407 static void dissect_UniversalPhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8408   asn1_ctx_t asn1_ctx;
8409   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8410   dissect_x411_UniversalPhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryPersonalName_PDU);
8411 }
8412 static void dissect_PhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8413   asn1_ctx_t asn1_ctx;
8414   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8415   dissect_x411_PhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PhysicalDeliveryOrganizationName_PDU);
8416 }
8417 static void dissect_UniversalPhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8418   asn1_ctx_t asn1_ctx;
8419   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8420   dissect_x411_UniversalPhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU);
8421 }
8422 static void dissect_ExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8423   asn1_ctx_t asn1_ctx;
8424   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8425   dissect_x411_ExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU);
8426 }
8427 static void dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8428   asn1_ctx_t asn1_ctx;
8429   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8430   dissect_x411_UniversalExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU);
8431 }
8432 static void dissect_UnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8433   asn1_ctx_t asn1_ctx;
8434   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8435   dissect_x411_UnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UnformattedPostalAddress_PDU);
8436 }
8437 static void dissect_UniversalUnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8438   asn1_ctx_t asn1_ctx;
8439   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8440   dissect_x411_UniversalUnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalUnformattedPostalAddress_PDU);
8441 }
8442 static void dissect_StreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8443   asn1_ctx_t asn1_ctx;
8444   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8445   dissect_x411_StreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_StreetAddress_PDU);
8446 }
8447 static void dissect_UniversalStreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8448   asn1_ctx_t asn1_ctx;
8449   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8450   dissect_x411_UniversalStreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalStreetAddress_PDU);
8451 }
8452 static void dissect_PostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8453   asn1_ctx_t asn1_ctx;
8454   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8455   dissect_x411_PostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PostOfficeBoxAddress_PDU);
8456 }
8457 static void dissect_UniversalPostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8458   asn1_ctx_t asn1_ctx;
8459   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8460   dissect_x411_UniversalPostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPostOfficeBoxAddress_PDU);
8461 }
8462 static void dissect_PosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8463   asn1_ctx_t asn1_ctx;
8464   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8465   dissect_x411_PosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_PosteRestanteAddress_PDU);
8466 }
8467 static void dissect_UniversalPosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8468   asn1_ctx_t asn1_ctx;
8469   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8470   dissect_x411_UniversalPosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalPosteRestanteAddress_PDU);
8471 }
8472 static void dissect_UniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8473   asn1_ctx_t asn1_ctx;
8474   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8475   dissect_x411_UniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniquePostalName_PDU);
8476 }
8477 static void dissect_UniversalUniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8478   asn1_ctx_t asn1_ctx;
8479   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8480   dissect_x411_UniversalUniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalUniquePostalName_PDU);
8481 }
8482 static void dissect_LocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8483   asn1_ctx_t asn1_ctx;
8484   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8485   dissect_x411_LocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_LocalPostalAttributes_PDU);
8486 }
8487 static void dissect_UniversalLocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8488   asn1_ctx_t asn1_ctx;
8489   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8490   dissect_x411_UniversalLocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalLocalPostalAttributes_PDU);
8491 }
8492 static void dissect_ExtendedNetworkAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8493   asn1_ctx_t asn1_ctx;
8494   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8495   dissect_x411_ExtendedNetworkAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedNetworkAddress_PDU);
8496 }
8497 static void dissect_TerminalType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8498   asn1_ctx_t asn1_ctx;
8499   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8500   dissect_x411_TerminalType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TerminalType_PDU);
8501 }
8502 static void dissect_TeletexDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8503   asn1_ctx_t asn1_ctx;
8504   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8505   dissect_x411_TeletexDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_TeletexDomainDefinedAttributes_PDU);
8506 }
8507 static void dissect_UniversalDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8508   asn1_ctx_t asn1_ctx;
8509   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8510   dissect_x411_UniversalDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_UniversalDomainDefinedAttributes_PDU);
8511 }
8512 static void dissect_ExtendedEncodedInformationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8513   asn1_ctx_t asn1_ctx;
8514   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8515   dissect_x411_ExtendedEncodedInformationType(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_ExtendedEncodedInformationType_PDU);
8516 }
8517 static void dissect_MTANameAndOptionalGDI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8518   asn1_ctx_t asn1_ctx;
8519   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8520   dissect_x411_MTANameAndOptionalGDI(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTANameAndOptionalGDI_PDU);
8521 }
8522 static void dissect_AsymmetricToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8523   asn1_ctx_t asn1_ctx;
8524   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8525   dissect_x411_AsymmetricToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_AsymmetricToken_PDU);
8526 }
8527 static void dissect_BindTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8528   asn1_ctx_t asn1_ctx;
8529   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8530   dissect_x411_BindTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_BindTokenSignedData_PDU);
8531 }
8532 static void dissect_MessageTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8533   asn1_ctx_t asn1_ctx;
8534   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8535   dissect_x411_MessageTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageTokenSignedData_PDU);
8536 }
8537 static void dissect_MessageTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8538   asn1_ctx_t asn1_ctx;
8539   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8540   dissect_x411_MessageTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MessageTokenEncryptedData_PDU);
8541 }
8542 static void dissect_BindTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8543   asn1_ctx_t asn1_ctx;
8544   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8545   dissect_x411_BindTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_BindTokenEncryptedData_PDU);
8546 }
8547 static void dissect_SecurityClassification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8548   asn1_ctx_t asn1_ctx;
8549   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8550   dissect_x411_SecurityClassification(FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_SecurityClassification_PDU);
8551 }
8552
8553
8554 /*--- End of included file: packet-x411-fn.c ---*/
8555 #line 102 "packet-x411-template.c"
8556
8557
8558 /*--- Included file: packet-x411-table11.c ---*/
8559 #line 1 "packet-x411-table11.c"
8560
8561 static const ros_opr_t p3_opr_tab[] = {
8562   /* mts-bind */ 
8563   { op_ros_bind              ,  dissect_MTSBindArgument_PDU,    dissect_MTSBindResult_PDU }, 
8564   /* message-submission */ 
8565   { op_message_submission    ,  dissect_MessageSubmissionArgument_PDU,  dissect_MessageSubmissionResult_PDU }, 
8566   /* probe-submission */ 
8567   { op_probe_submission      ,  dissect_ProbeSubmissionArgument_PDU,    dissect_ProbeSubmissionResult_PDU }, 
8568   /* cancel-deferred-delivery */ 
8569   { op_cancel_deferred_delivery,        dissect_CancelDeferredDeliveryArgument_PDU,     dissect_CancelDeferredDeliveryResult_PDU }, 
8570   /* submission-control */ 
8571   { op_submission_control    ,  dissect_SubmissionControlArgument_PDU,  dissect_SubmissionControlResult_PDU }, 
8572   /* message-delivery */ 
8573   { op_message_delivery      ,  dissect_MessageDeliveryArgument_PDU,    dissect_MessageDeliveryResult_PDU }, 
8574   /* report-delivery */ 
8575   { op_report_delivery       ,  dissect_ReportDeliveryArgument_PDU,     dissect_ReportDeliveryResult_PDU }, 
8576   /* delivery-control */ 
8577   { op_delivery_control      ,  dissect_DeliveryControlArgument_PDU,    dissect_DeliveryControlResult_PDU }, 
8578   /* register */ 
8579   { op_register              ,  dissect_RegisterArgument_PDU,   dissect_RegisterResult_PDU }, 
8580   /* change-credentials */ 
8581   { op_change_credentials    ,  dissect_ChangeCredentialsArgument_PDU,  dissect_RES_change_credentials_PDU }, 
8582   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
8583 };
8584
8585
8586 /*--- End of included file: packet-x411-table11.c ---*/
8587 #line 104 "packet-x411-template.c"
8588
8589 /*--- Included file: packet-x411-table21.c ---*/
8590 #line 1 "packet-x411-table21.c"
8591
8592 static const ros_err_t p3_err_tab[] = {
8593   /* mts-bind-error*/ 
8594   { err_ros_bind,       dissect_PAR_mts_bind_error_PDU },
8595   /* submission-control-violated*/ 
8596   { err_submission_control_violated,    dissect_PAR_submission_control_violated_PDU },
8597   /* element-of-service-not-subscribed*/ 
8598   { err_element_of_service_not_subscribed,      dissect_PAR_element_of_service_not_subscribed_PDU },
8599   /* deferred-delivery-cancellation-rejected*/ 
8600   { err_deferred_delivery_cancellation_rejected,        dissect_PAR_deferred_delivery_cancellation_rejected_PDU },
8601   /* originator-invalid*/ 
8602   { err_originator_invalid,     dissect_PAR_originator_invalid_PDU },
8603   /* recipient-improperly-specified*/ 
8604   { err_recipient_improperly_specified, dissect_ImproperlySpecifiedRecipients_PDU },
8605   /* message-submission-identifier-invalid*/ 
8606   { err_message_submission_identifier_invalid,  dissect_PAR_message_submission_identifier_invalid_PDU },
8607   /* inconsistent-request*/ 
8608   { err_inconsistent_request,   dissect_PAR_inconsistent_request_PDU },
8609   /* security-error*/ 
8610   { err_security_error, dissect_SecurityProblem_PDU },
8611   /* unsupported-critical-function*/ 
8612   { err_unsupported_critical_function,  dissect_PAR_unsupported_critical_function_PDU },
8613   /* remote-bind-error*/ 
8614   { err_remote_bind_error,      dissect_PAR_remote_bind_error_PDU },
8615   /* delivery-control-violated*/ 
8616   { err_delivery_control_violated,      dissect_PAR_delivery_control_violated_PDU },
8617   /* control-violates-registration*/ 
8618   { err_control_violates_registration,  dissect_PAR_control_violates_registration_PDU },
8619   /* operation-refused*/ 
8620   { err_operation_refused,      dissect_RefusedOperation_PDU },
8621   /* register-rejected*/ 
8622   { err_register_rejected,      dissect_PAR_register_rejected_PDU },
8623   /* new-credentials-unacceptable*/ 
8624   { err_new_credentials_unacceptable,   dissect_PAR_new_credentials_unacceptable_PDU },
8625   /* old-credentials-incorrectly-specified*/ 
8626   { err_old_credentials_incorrectly_specified,  dissect_PAR_old_credentials_incorrectly_specified_PDU },
8627   { 0,  (new_dissector_t)(-1) },
8628 };
8629
8630
8631 /*--- End of included file: packet-x411-table21.c ---*/
8632 #line 105 "packet-x411-template.c"
8633
8634 static const ros_info_t p3_ros_info = {
8635   "P3",
8636   &proto_p3,
8637   &ett_p3,
8638   p3_opr_code_string_vals,
8639   p3_opr_tab,
8640   p3_err_code_string_vals,
8641   p3_err_tab
8642 };
8643
8644
8645 char* x411_get_last_oraddress() { return oraddress; }
8646
8647 /*
8648  * Dissect X411 MTS APDU
8649  */
8650 void
8651 dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8652 {
8653         proto_item *item=NULL;
8654         proto_tree *tree=NULL;
8655         asn1_ctx_t asn1_ctx;
8656         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8657
8658         /* save parent_tree so subdissectors can create new top nodes */
8659         top_tree=parent_tree;
8660
8661         if(parent_tree){
8662                 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
8663                 tree = proto_item_add_subtree(item, ett_x411);
8664         }
8665
8666         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8667         col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
8668
8669         dissect_x411_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTS_APDU_PDU);
8670 }
8671
8672 /*
8673 * Dissect X411 PDUs inside a PPDU.
8674 */
8675 static void
8676 dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8677 {
8678         int offset = 0;
8679         int old_offset;
8680         proto_item *item=NULL;
8681         proto_tree *tree=NULL;
8682         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;
8683         char *x411_op_name;
8684         int hf_x411_index = -1;
8685         asn1_ctx_t asn1_ctx;
8686         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8687
8688         /* save parent_tree so subdissectors can create new top nodes */
8689         top_tree=parent_tree;
8690
8691         /* do we have operation information from the ROS dissector?  */
8692         if( !pinfo->private_data ){
8693                 if(parent_tree){
8694                         proto_tree_add_text(parent_tree, tvb, offset, -1,
8695                                 "Internal error: can't get operation information from ROS dissector.");
8696                 } 
8697                 return  ;
8698         } else {
8699                 session  = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
8700         }
8701
8702         if(parent_tree){
8703                 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
8704                 tree = proto_item_add_subtree(item, ett_x411);
8705         }
8706         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8707         col_clear(pinfo->cinfo, COL_INFO);
8708
8709         switch(session->ros_op & ROS_OP_MASK) {
8710         case (ROS_OP_BIND | ROS_OP_ARGUMENT):   /*  BindInvoke */
8711           x411_dissector = dissect_x411_MTABindArgument;
8712           x411_op_name = "Bind-Argument";
8713           hf_x411_index = hf_x411_MTABindArgument_PDU;
8714           break;
8715         case (ROS_OP_BIND | ROS_OP_RESULT):     /*  BindResult */
8716           x411_dissector = dissect_x411_MTABindResult;
8717           x411_op_name = "Bind-Result";
8718           hf_x411_index = hf_x411_MTABindResult_PDU;
8719           break;
8720         case (ROS_OP_BIND | ROS_OP_ERROR):      /*  BindError */
8721           x411_dissector = dissect_x411_MTABindError;
8722           x411_op_name = "Bind-Error";
8723           hf_x411_index = hf_x411_MTABindError_PDU;
8724           break;
8725         case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /*  Invoke Argument */
8726           x411_dissector = dissect_x411_MTS_APDU;
8727           x411_op_name = "Transfer";
8728           hf_x411_index = hf_x411_MTS_APDU_PDU;
8729           break;
8730         default:
8731           proto_tree_add_text(tree, tvb, offset, -1,"Unsupported X411 PDU");
8732           return;
8733         }
8734
8735         if (check_col(pinfo->cinfo, COL_INFO))
8736           col_set_str(pinfo->cinfo, COL_INFO, x411_op_name);
8737
8738         while (tvb_reported_length_remaining(tvb, offset) > 0){
8739                 old_offset=offset;
8740                 offset=(*x411_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_x411_index);
8741                 if(offset == old_offset){
8742                         proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte X411 PDU");
8743                         offset = tvb_length(tvb);
8744                         break;
8745                 }
8746         }
8747 }
8748
8749
8750 /*--- proto_register_x411 -------------------------------------------*/
8751 void proto_register_x411(void) {
8752
8753   /* List of fields */
8754   static hf_register_info hf[] =
8755   {
8756           /* "Created by defining PDU in .cnf */
8757     { &hf_x411_MTABindArgument_PDU,
8758       { "MTABindArgument", "x411.MTABindArgument",
8759         FT_UINT32, BASE_DEC, VALS(x411_MTABindArgument_vals), 0,
8760         "x411.MTABindArgument", HFILL }},
8761     { &hf_x411_MTABindResult_PDU,
8762       { "MTABindResult", "x411.MTABindResult",
8763         FT_UINT32, BASE_DEC, VALS(x411_MTABindResult_vals), 0,
8764         "x411.MTABindResult", HFILL }},
8765     { &hf_x411_MTABindError_PDU,
8766       { "MTABindError", "x411.MTABindError",
8767         FT_UINT32, BASE_DEC, VALS(x411_MTABindError_vals), 0,
8768         "x411.MTABindError", HFILL }},
8769     { &hf_x411_MTS_APDU_PDU,
8770       { "MTS-APDU", "x411.MTS_APDU",
8771         FT_UINT32, BASE_DEC, VALS(x411_MTS_APDU_vals), 0,
8772         "x411.MTS_APDU", HFILL }},
8773
8774
8775 /*--- Included file: packet-x411-hfarr.c ---*/
8776 #line 1 "packet-x411-hfarr.c"
8777     { &hf_x411_InternalTraceInformation_PDU,
8778       { "InternalTraceInformation", "x411.InternalTraceInformation",
8779         FT_UINT32, BASE_DEC, NULL, 0,
8780         "x411.InternalTraceInformation", HFILL }},
8781     { &hf_x411_InternalTraceInformationElement_PDU,
8782       { "InternalTraceInformationElement", "x411.InternalTraceInformationElement",
8783         FT_NONE, BASE_NONE, NULL, 0,
8784         "x411.InternalTraceInformationElement", HFILL }},
8785     { &hf_x411_TraceInformation_PDU,
8786       { "TraceInformation", "x411.TraceInformation",
8787         FT_UINT32, BASE_DEC, NULL, 0,
8788         "x411.TraceInformation", HFILL }},
8789     { &hf_x411_TraceInformationElement_PDU,
8790       { "TraceInformationElement", "x411.TraceInformationElement",
8791         FT_NONE, BASE_NONE, NULL, 0,
8792         "x411.TraceInformationElement", HFILL }},
8793     { &hf_x411_MTSBindArgument_PDU,
8794       { "MTSBindArgument", "x411.MTSBindArgument",
8795         FT_NONE, BASE_NONE, NULL, 0,
8796         "x411.MTSBindArgument", HFILL }},
8797     { &hf_x411_MTSBindResult_PDU,
8798       { "MTSBindResult", "x411.MTSBindResult",
8799         FT_NONE, BASE_NONE, NULL, 0,
8800         "x411.MTSBindResult", HFILL }},
8801     { &hf_x411_PAR_mts_bind_error_PDU,
8802       { "PAR-mts-bind-error", "x411.PAR_mts_bind_error",
8803         FT_UINT32, BASE_DEC, VALS(x411_PAR_mts_bind_error_vals), 0,
8804         "x411.PAR_mts_bind_error", HFILL }},
8805     { &hf_x411_MessageSubmissionArgument_PDU,
8806       { "MessageSubmissionArgument", "x411.MessageSubmissionArgument",
8807         FT_NONE, BASE_NONE, NULL, 0,
8808         "x411.MessageSubmissionArgument", HFILL }},
8809     { &hf_x411_MessageSubmissionResult_PDU,
8810       { "MessageSubmissionResult", "x411.MessageSubmissionResult",
8811         FT_NONE, BASE_NONE, NULL, 0,
8812         "x411.MessageSubmissionResult", HFILL }},
8813     { &hf_x411_ProbeSubmissionArgument_PDU,
8814       { "ProbeSubmissionArgument", "x411.ProbeSubmissionArgument",
8815         FT_NONE, BASE_NONE, NULL, 0,
8816         "x411.ProbeSubmissionArgument", HFILL }},
8817     { &hf_x411_ProbeSubmissionResult_PDU,
8818       { "ProbeSubmissionResult", "x411.ProbeSubmissionResult",
8819         FT_NONE, BASE_NONE, NULL, 0,
8820         "x411.ProbeSubmissionResult", HFILL }},
8821     { &hf_x411_CancelDeferredDeliveryArgument_PDU,
8822       { "CancelDeferredDeliveryArgument", "x411.CancelDeferredDeliveryArgument",
8823         FT_NONE, BASE_NONE, NULL, 0,
8824         "x411.CancelDeferredDeliveryArgument", HFILL }},
8825     { &hf_x411_CancelDeferredDeliveryResult_PDU,
8826       { "CancelDeferredDeliveryResult", "x411.CancelDeferredDeliveryResult",
8827         FT_NONE, BASE_NONE, NULL, 0,
8828         "x411.CancelDeferredDeliveryResult", HFILL }},
8829     { &hf_x411_SubmissionControlArgument_PDU,
8830       { "SubmissionControlArgument", "x411.SubmissionControlArgument",
8831         FT_NONE, BASE_NONE, NULL, 0,
8832         "x411.SubmissionControlArgument", HFILL }},
8833     { &hf_x411_SubmissionControlResult_PDU,
8834       { "SubmissionControlResult", "x411.SubmissionControlResult",
8835         FT_NONE, BASE_NONE, NULL, 0,
8836         "x411.SubmissionControlResult", HFILL }},
8837     { &hf_x411_PAR_submission_control_violated_PDU,
8838       { "PAR-submission-control-violated", "x411.PAR_submission_control_violated",
8839         FT_NONE, BASE_NONE, NULL, 0,
8840         "x411.PAR_submission_control_violated", HFILL }},
8841     { &hf_x411_PAR_element_of_service_not_subscribed_PDU,
8842       { "PAR-element-of-service-not-subscribed", "x411.PAR_element_of_service_not_subscribed",
8843         FT_NONE, BASE_NONE, NULL, 0,
8844         "x411.PAR_element_of_service_not_subscribed", HFILL }},
8845     { &hf_x411_PAR_deferred_delivery_cancellation_rejected_PDU,
8846       { "PAR-deferred-delivery-cancellation-rejected", "x411.PAR_deferred_delivery_cancellation_rejected",
8847         FT_NONE, BASE_NONE, NULL, 0,
8848         "x411.PAR_deferred_delivery_cancellation_rejected", HFILL }},
8849     { &hf_x411_PAR_originator_invalid_PDU,
8850       { "PAR-originator-invalid", "x411.PAR_originator_invalid",
8851         FT_NONE, BASE_NONE, NULL, 0,
8852         "x411.PAR_originator_invalid", HFILL }},
8853     { &hf_x411_ImproperlySpecifiedRecipients_PDU,
8854       { "ImproperlySpecifiedRecipients", "x411.ImproperlySpecifiedRecipients",
8855         FT_UINT32, BASE_DEC, NULL, 0,
8856         "x411.ImproperlySpecifiedRecipients", HFILL }},
8857     { &hf_x411_PAR_message_submission_identifier_invalid_PDU,
8858       { "PAR-message-submission-identifier-invalid", "x411.PAR_message_submission_identifier_invalid",
8859         FT_NONE, BASE_NONE, NULL, 0,
8860         "x411.PAR_message_submission_identifier_invalid", HFILL }},
8861     { &hf_x411_PAR_inconsistent_request_PDU,
8862       { "PAR-inconsistent-request", "x411.PAR_inconsistent_request",
8863         FT_NONE, BASE_NONE, NULL, 0,
8864         "x411.PAR_inconsistent_request", HFILL }},
8865     { &hf_x411_SecurityProblem_PDU,
8866       { "SecurityProblem", "x411.SecurityProblem",
8867         FT_UINT32, BASE_DEC, VALS(x411_SecurityProblem_vals), 0,
8868         "x411.SecurityProblem", HFILL }},
8869     { &hf_x411_PAR_unsupported_critical_function_PDU,
8870       { "PAR-unsupported-critical-function", "x411.PAR_unsupported_critical_function",
8871         FT_NONE, BASE_NONE, NULL, 0,
8872         "x411.PAR_unsupported_critical_function", HFILL }},
8873     { &hf_x411_PAR_remote_bind_error_PDU,
8874       { "PAR-remote-bind-error", "x411.PAR_remote_bind_error",
8875         FT_NONE, BASE_NONE, NULL, 0,
8876         "x411.PAR_remote_bind_error", HFILL }},
8877     { &hf_x411_MessageSubmissionTime_PDU,
8878       { "MessageSubmissionTime", "x411.MessageSubmissionTime",
8879         FT_STRING, BASE_NONE, NULL, 0,
8880         "x411.MessageSubmissionTime", HFILL }},
8881     { &hf_x411_MessageDeliveryArgument_PDU,
8882       { "MessageDeliveryArgument", "x411.MessageDeliveryArgument",
8883         FT_NONE, BASE_NONE, NULL, 0,
8884         "x411.MessageDeliveryArgument", HFILL }},
8885     { &hf_x411_MessageDeliveryResult_PDU,
8886       { "MessageDeliveryResult", "x411.MessageDeliveryResult",
8887         FT_NONE, BASE_NONE, NULL, 0,
8888         "x411.MessageDeliveryResult", HFILL }},
8889     { &hf_x411_ReportDeliveryArgument_PDU,
8890       { "ReportDeliveryArgument", "x411.ReportDeliveryArgument",
8891         FT_NONE, BASE_NONE, NULL, 0,
8892         "x411.ReportDeliveryArgument", HFILL }},
8893     { &hf_x411_ReportDeliveryResult_PDU,
8894       { "ReportDeliveryResult", "x411.ReportDeliveryResult",
8895         FT_UINT32, BASE_DEC, VALS(x411_ReportDeliveryResult_vals), 0,
8896         "x411.ReportDeliveryResult", HFILL }},
8897     { &hf_x411_DeliveryControlArgument_PDU,
8898       { "DeliveryControlArgument", "x411.DeliveryControlArgument",
8899         FT_NONE, BASE_NONE, NULL, 0,
8900         "x411.DeliveryControlArgument", HFILL }},
8901     { &hf_x411_DeliveryControlResult_PDU,
8902       { "DeliveryControlResult", "x411.DeliveryControlResult",
8903         FT_NONE, BASE_NONE, NULL, 0,
8904         "x411.DeliveryControlResult", HFILL }},
8905     { &hf_x411_PAR_delivery_control_violated_PDU,
8906       { "PAR-delivery-control-violated", "x411.PAR_delivery_control_violated",
8907         FT_NONE, BASE_NONE, NULL, 0,
8908         "x411.PAR_delivery_control_violated", HFILL }},
8909     { &hf_x411_PAR_control_violates_registration_PDU,
8910       { "PAR-control-violates-registration", "x411.PAR_control_violates_registration",
8911         FT_NONE, BASE_NONE, NULL, 0,
8912         "x411.PAR_control_violates_registration", HFILL }},
8913     { &hf_x411_RefusedOperation_PDU,
8914       { "RefusedOperation", "x411.RefusedOperation",
8915         FT_NONE, BASE_NONE, NULL, 0,
8916         "x411.RefusedOperation", HFILL }},
8917     { &hf_x411_RecipientCertificate_PDU,
8918       { "RecipientCertificate", "x411.RecipientCertificate",
8919         FT_NONE, BASE_NONE, NULL, 0,
8920         "x411.RecipientCertificate", HFILL }},
8921     { &hf_x411_ProofOfDelivery_PDU,
8922       { "ProofOfDelivery", "x411.ProofOfDelivery",
8923         FT_NONE, BASE_NONE, NULL, 0,
8924         "x411.ProofOfDelivery", HFILL }},
8925     { &hf_x411_RegisterArgument_PDU,
8926       { "RegisterArgument", "x411.RegisterArgument",
8927         FT_NONE, BASE_NONE, NULL, 0,
8928         "x411.RegisterArgument", HFILL }},
8929     { &hf_x411_RegisterResult_PDU,
8930       { "RegisterResult", "x411.RegisterResult",
8931         FT_UINT32, BASE_DEC, VALS(x411_RegisterResult_vals), 0,
8932         "x411.RegisterResult", HFILL }},
8933     { &hf_x411_ChangeCredentialsArgument_PDU,
8934       { "ChangeCredentialsArgument", "x411.ChangeCredentialsArgument",
8935         FT_NONE, BASE_NONE, NULL, 0,
8936         "x411.ChangeCredentialsArgument", HFILL }},
8937     { &hf_x411_RES_change_credentials_PDU,
8938       { "RES-change-credentials", "x411.RES_change_credentials",
8939         FT_NONE, BASE_NONE, NULL, 0,
8940         "x411.RES_change_credentials", HFILL }},
8941     { &hf_x411_PAR_register_rejected_PDU,
8942       { "PAR-register-rejected", "x411.PAR_register_rejected",
8943         FT_NONE, BASE_NONE, NULL, 0,
8944         "x411.PAR_register_rejected", HFILL }},
8945     { &hf_x411_PAR_new_credentials_unacceptable_PDU,
8946       { "PAR-new-credentials-unacceptable", "x411.PAR_new_credentials_unacceptable",
8947         FT_NONE, BASE_NONE, NULL, 0,
8948         "x411.PAR_new_credentials_unacceptable", HFILL }},
8949     { &hf_x411_PAR_old_credentials_incorrectly_specified_PDU,
8950       { "PAR-old-credentials-incorrectly-specified", "x411.PAR_old_credentials_incorrectly_specified",
8951         FT_NONE, BASE_NONE, NULL, 0,
8952         "x411.PAR_old_credentials_incorrectly_specified", HFILL }},
8953     { &hf_x411_MessageSubmissionEnvelope_PDU,
8954       { "MessageSubmissionEnvelope", "x411.MessageSubmissionEnvelope",
8955         FT_NONE, BASE_NONE, NULL, 0,
8956         "x411.MessageSubmissionEnvelope", HFILL }},
8957     { &hf_x411_PerRecipientMessageSubmissionFields_PDU,
8958       { "PerRecipientMessageSubmissionFields", "x411.PerRecipientMessageSubmissionFields",
8959         FT_NONE, BASE_NONE, NULL, 0,
8960         "x411.PerRecipientMessageSubmissionFields", HFILL }},
8961     { &hf_x411_ProbeSubmissionEnvelope_PDU,
8962       { "ProbeSubmissionEnvelope", "x411.ProbeSubmissionEnvelope",
8963         FT_NONE, BASE_NONE, NULL, 0,
8964         "x411.ProbeSubmissionEnvelope", HFILL }},
8965     { &hf_x411_PerRecipientProbeSubmissionFields_PDU,
8966       { "PerRecipientProbeSubmissionFields", "x411.PerRecipientProbeSubmissionFields",
8967         FT_NONE, BASE_NONE, NULL, 0,
8968         "x411.PerRecipientProbeSubmissionFields", HFILL }},
8969     { &hf_x411_MessageDeliveryEnvelope_PDU,
8970       { "MessageDeliveryEnvelope", "x411.MessageDeliveryEnvelope",
8971         FT_NONE, BASE_NONE, NULL, 0,
8972         "x411.MessageDeliveryEnvelope", HFILL }},
8973     { &hf_x411_ReportDeliveryEnvelope_PDU,
8974       { "ReportDeliveryEnvelope", "x411.ReportDeliveryEnvelope",
8975         FT_NONE, BASE_NONE, NULL, 0,
8976         "x411.ReportDeliveryEnvelope", HFILL }},
8977     { &hf_x411_PerRecipientReportDeliveryFields_PDU,
8978       { "PerRecipientReportDeliveryFields", "x411.PerRecipientReportDeliveryFields",
8979         FT_NONE, BASE_NONE, NULL, 0,
8980         "x411.PerRecipientReportDeliveryFields", HFILL }},
8981     { &hf_x411_ExtendedContentType_PDU,
8982       { "ExtendedContentType", "x411.ExtendedContentType",
8983         FT_OID, BASE_NONE, NULL, 0,
8984         "x411.ExtendedContentType", HFILL }},
8985     { &hf_x411_ContentIdentifier_PDU,
8986       { "ContentIdentifier", "x411.ContentIdentifier",
8987         FT_STRING, BASE_NONE, NULL, 0,
8988         "x411.ContentIdentifier", HFILL }},
8989     { &hf_x411_PerMessageIndicators_PDU,
8990       { "PerMessageIndicators", "x411.PerMessageIndicators",
8991         FT_BYTES, BASE_NONE, NULL, 0,
8992         "x411.PerMessageIndicators", HFILL }},
8993     { &hf_x411_OriginatorReportRequest_PDU,
8994       { "OriginatorReportRequest", "x411.OriginatorReportRequest",
8995         FT_BYTES, BASE_NONE, NULL, 0,
8996         "x411.OriginatorReportRequest", HFILL }},
8997     { &hf_x411_DeferredDeliveryTime_PDU,
8998       { "DeferredDeliveryTime", "x411.DeferredDeliveryTime",
8999         FT_STRING, BASE_NONE, NULL, 0,
9000         "x411.DeferredDeliveryTime", HFILL }},
9001     { &hf_x411_Priority_PDU,
9002       { "Priority", "x411.Priority",
9003         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9004         "x411.Priority", HFILL }},
9005     { &hf_x411_ContentLength_PDU,
9006       { "ContentLength", "x411.ContentLength",
9007         FT_UINT32, BASE_DEC, NULL, 0,
9008         "x411.ContentLength", HFILL }},
9009     { &hf_x411_MessageDeliveryTime_PDU,
9010       { "MessageDeliveryTime", "x411.MessageDeliveryTime",
9011         FT_STRING, BASE_NONE, NULL, 0,
9012         "x411.MessageDeliveryTime", HFILL }},
9013     { &hf_x411_DeliveryFlags_PDU,
9014       { "DeliveryFlags", "x411.DeliveryFlags",
9015         FT_BYTES, BASE_NONE, NULL, 0,
9016         "x411.DeliveryFlags", HFILL }},
9017     { &hf_x411_SubjectSubmissionIdentifier_PDU,
9018       { "SubjectSubmissionIdentifier", "x411.SubjectSubmissionIdentifier",
9019         FT_NONE, BASE_NONE, NULL, 0,
9020         "x411.SubjectSubmissionIdentifier", HFILL }},
9021     { &hf_x411_RecipientReassignmentProhibited_PDU,
9022       { "RecipientReassignmentProhibited", "x411.RecipientReassignmentProhibited",
9023         FT_UINT32, BASE_DEC, VALS(x411_RecipientReassignmentProhibited_vals), 0,
9024         "x411.RecipientReassignmentProhibited", HFILL }},
9025     { &hf_x411_OriginatorRequestedAlternateRecipient_PDU,
9026       { "OriginatorRequestedAlternateRecipient", "x411.OriginatorRequestedAlternateRecipient",
9027         FT_NONE, BASE_NONE, NULL, 0,
9028         "x411.OriginatorRequestedAlternateRecipient", HFILL }},
9029     { &hf_x411_DLExpansionProhibited_PDU,
9030       { "DLExpansionProhibited", "x411.DLExpansionProhibited",
9031         FT_UINT32, BASE_DEC, VALS(x411_DLExpansionProhibited_vals), 0,
9032         "x411.DLExpansionProhibited", HFILL }},
9033     { &hf_x411_ConversionWithLossProhibited_PDU,
9034       { "ConversionWithLossProhibited", "x411.ConversionWithLossProhibited",
9035         FT_UINT32, BASE_DEC, VALS(x411_ConversionWithLossProhibited_vals), 0,
9036         "x411.ConversionWithLossProhibited", HFILL }},
9037     { &hf_x411_LatestDeliveryTime_PDU,
9038       { "LatestDeliveryTime", "x411.LatestDeliveryTime",
9039         FT_STRING, BASE_NONE, NULL, 0,
9040         "x411.LatestDeliveryTime", HFILL }},
9041     { &hf_x411_RequestedDeliveryMethod_PDU,
9042       { "RequestedDeliveryMethod", "x411.RequestedDeliveryMethod",
9043         FT_UINT32, BASE_DEC, NULL, 0,
9044         "x411.RequestedDeliveryMethod", HFILL }},
9045     { &hf_x411_PhysicalForwardingProhibited_PDU,
9046       { "PhysicalForwardingProhibited", "x411.PhysicalForwardingProhibited",
9047         FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingProhibited_vals), 0,
9048         "x411.PhysicalForwardingProhibited", HFILL }},
9049     { &hf_x411_PhysicalForwardingAddressRequest_PDU,
9050       { "PhysicalForwardingAddressRequest", "x411.PhysicalForwardingAddressRequest",
9051         FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingAddressRequest_vals), 0,
9052         "x411.PhysicalForwardingAddressRequest", HFILL }},
9053     { &hf_x411_PhysicalDeliveryModes_PDU,
9054       { "PhysicalDeliveryModes", "x411.PhysicalDeliveryModes",
9055         FT_BYTES, BASE_NONE, NULL, 0,
9056         "x411.PhysicalDeliveryModes", HFILL }},
9057     { &hf_x411_RegisteredMailType_PDU,
9058       { "RegisteredMailType", "x411.RegisteredMailType",
9059         FT_UINT32, BASE_DEC, VALS(x411_RegisteredMailType_vals), 0,
9060         "x411.RegisteredMailType", HFILL }},
9061     { &hf_x411_RecipientNumberForAdvice_PDU,
9062       { "RecipientNumberForAdvice", "x411.RecipientNumberForAdvice",
9063         FT_STRING, BASE_NONE, NULL, 0,
9064         "x411.RecipientNumberForAdvice", HFILL }},
9065     { &hf_x411_PhysicalRenditionAttributes_PDU,
9066       { "PhysicalRenditionAttributes", "x411.PhysicalRenditionAttributes",
9067         FT_OID, BASE_NONE, NULL, 0,
9068         "x411.PhysicalRenditionAttributes", HFILL }},
9069     { &hf_x411_OriginatorReturnAddress_PDU,
9070       { "OriginatorReturnAddress", "x411.OriginatorReturnAddress",
9071         FT_NONE, BASE_NONE, NULL, 0,
9072         "x411.OriginatorReturnAddress", HFILL }},
9073     { &hf_x411_PhysicalDeliveryReportRequest_PDU,
9074       { "PhysicalDeliveryReportRequest", "x411.PhysicalDeliveryReportRequest",
9075         FT_UINT32, BASE_DEC, VALS(x411_PhysicalDeliveryReportRequest_vals), 0,
9076         "x411.PhysicalDeliveryReportRequest", HFILL }},
9077     { &hf_x411_OriginatorCertificate_PDU,
9078       { "OriginatorCertificate", "x411.OriginatorCertificate",
9079         FT_NONE, BASE_NONE, NULL, 0,
9080         "x411.OriginatorCertificate", HFILL }},
9081     { &hf_x411_MessageToken_PDU,
9082       { "MessageToken", "x411.MessageToken",
9083         FT_NONE, BASE_NONE, NULL, 0,
9084         "x411.MessageToken", HFILL }},
9085     { &hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU,
9086       { "ContentConfidentialityAlgorithmIdentifier", "x411.ContentConfidentialityAlgorithmIdentifier",
9087         FT_NONE, BASE_NONE, NULL, 0,
9088         "x411.ContentConfidentialityAlgorithmIdentifier", HFILL }},
9089     { &hf_x411_ContentIntegrityCheck_PDU,
9090       { "ContentIntegrityCheck", "x411.ContentIntegrityCheck",
9091         FT_NONE, BASE_NONE, NULL, 0,
9092         "x411.ContentIntegrityCheck", HFILL }},
9093     { &hf_x411_MessageOriginAuthenticationCheck_PDU,
9094       { "MessageOriginAuthenticationCheck", "x411.MessageOriginAuthenticationCheck",
9095         FT_NONE, BASE_NONE, NULL, 0,
9096         "x411.MessageOriginAuthenticationCheck", HFILL }},
9097     { &hf_x411_MessageSecurityLabel_PDU,
9098       { "MessageSecurityLabel", "x411.MessageSecurityLabel",
9099         FT_NONE, BASE_NONE, NULL, 0,
9100         "x411.MessageSecurityLabel", HFILL }},
9101     { &hf_x411_ProofOfSubmissionRequest_PDU,
9102       { "ProofOfSubmissionRequest", "x411.ProofOfSubmissionRequest",
9103         FT_UINT32, BASE_DEC, VALS(x411_ProofOfSubmissionRequest_vals), 0,
9104         "x411.ProofOfSubmissionRequest", HFILL }},
9105     { &hf_x411_ProofOfDeliveryRequest_PDU,
9106       { "ProofOfDeliveryRequest", "x411.ProofOfDeliveryRequest",
9107         FT_UINT32, BASE_DEC, VALS(x411_ProofOfDeliveryRequest_vals), 0,
9108         "x411.ProofOfDeliveryRequest", HFILL }},
9109     { &hf_x411_ContentCorrelator_PDU,
9110       { "ContentCorrelator", "x411.ContentCorrelator",
9111         FT_UINT32, BASE_DEC, VALS(x411_ContentCorrelator_vals), 0,
9112         "x411.ContentCorrelator", HFILL }},
9113     { &hf_x411_ProbeOriginAuthenticationCheck_PDU,
9114       { "ProbeOriginAuthenticationCheck", "x411.ProbeOriginAuthenticationCheck",
9115         FT_NONE, BASE_NONE, NULL, 0,
9116         "x411.ProbeOriginAuthenticationCheck", HFILL }},
9117     { &hf_x411_RedirectionHistory_PDU,
9118       { "RedirectionHistory", "x411.RedirectionHistory",
9119         FT_UINT32, BASE_DEC, NULL, 0,
9120         "x411.RedirectionHistory", HFILL }},
9121     { &hf_x411_Redirection_PDU,
9122       { "Redirection", "x411.Redirection",
9123         FT_NONE, BASE_NONE, NULL, 0,
9124         "x411.Redirection", HFILL }},
9125     { &hf_x411_DLExpansionHistory_PDU,
9126       { "DLExpansionHistory", "x411.DLExpansionHistory",
9127         FT_UINT32, BASE_DEC, NULL, 0,
9128         "x411.DLExpansionHistory", HFILL }},
9129     { &hf_x411_DLExpansion_PDU,
9130       { "DLExpansion", "x411.DLExpansion",
9131         FT_NONE, BASE_NONE, NULL, 0,
9132         "x411.DLExpansion", HFILL }},
9133     { &hf_x411_PhysicalForwardingAddress_PDU,
9134       { "PhysicalForwardingAddress", "x411.PhysicalForwardingAddress",
9135         FT_NONE, BASE_NONE, NULL, 0,
9136         "x411.PhysicalForwardingAddress", HFILL }},
9137     { &hf_x411_OriginatorAndDLExpansionHistory_PDU,
9138       { "OriginatorAndDLExpansionHistory", "x411.OriginatorAndDLExpansionHistory",
9139         FT_UINT32, BASE_DEC, NULL, 0,
9140         "x411.OriginatorAndDLExpansionHistory", HFILL }},
9141     { &hf_x411_ReportingDLName_PDU,
9142       { "ReportingDLName", "x411.ReportingDLName",
9143         FT_NONE, BASE_NONE, NULL, 0,
9144         "x411.ReportingDLName", HFILL }},
9145     { &hf_x411_ReportingMTACertificate_PDU,
9146       { "ReportingMTACertificate", "x411.ReportingMTACertificate",
9147         FT_NONE, BASE_NONE, NULL, 0,
9148         "x411.ReportingMTACertificate", HFILL }},
9149     { &hf_x411_ReportOriginAuthenticationCheck_PDU,
9150       { "ReportOriginAuthenticationCheck", "x411.ReportOriginAuthenticationCheck",
9151         FT_NONE, BASE_NONE, NULL, 0,
9152         "x411.ReportOriginAuthenticationCheck", HFILL }},
9153     { &hf_x411_OriginatingMTACertificate_PDU,
9154       { "OriginatingMTACertificate", "x411.OriginatingMTACertificate",
9155         FT_NONE, BASE_NONE, NULL, 0,
9156         "x411.OriginatingMTACertificate", HFILL }},
9157     { &hf_x411_ProofOfSubmission_PDU,
9158       { "ProofOfSubmission", "x411.ProofOfSubmission",
9159         FT_NONE, BASE_NONE, NULL, 0,
9160         "x411.ProofOfSubmission", HFILL }},
9161     { &hf_x411_ReportingMTAName_PDU,
9162       { "ReportingMTAName", "x411.ReportingMTAName",
9163         FT_NONE, BASE_NONE, NULL, 0,
9164         "x411.ReportingMTAName", HFILL }},
9165     { &hf_x411_ExtendedCertificates_PDU,
9166       { "ExtendedCertificates", "x411.ExtendedCertificates",
9167         FT_UINT32, BASE_DEC, NULL, 0,
9168         "x411.ExtendedCertificates", HFILL }},
9169     { &hf_x411_DLExemptedRecipients_PDU,
9170       { "DLExemptedRecipients", "x411.DLExemptedRecipients",
9171         FT_UINT32, BASE_DEC, NULL, 0,
9172         "x411.DLExemptedRecipients", HFILL }},
9173     { &hf_x411_CertificateSelectors_PDU,
9174       { "CertificateSelectors", "x411.CertificateSelectors",
9175         FT_NONE, BASE_NONE, NULL, 0,
9176         "x411.CertificateSelectors", HFILL }},
9177     { &hf_x411_Content_PDU,
9178       { "Content", "x411.Content",
9179         FT_BYTES, BASE_NONE, NULL, 0,
9180         "x411.Content", HFILL }},
9181     { &hf_x411_MTSIdentifier_PDU,
9182       { "MTSIdentifier", "x411.MTSIdentifier",
9183         FT_NONE, BASE_NONE, NULL, 0,
9184         "x411.MTSIdentifier", HFILL }},
9185     { &hf_x411_ORName_PDU,
9186       { "ORName", "x411.ORName",
9187         FT_NONE, BASE_NONE, NULL, 0,
9188         "x411.ORName", HFILL }},
9189     { &hf_x411_ORAddress_PDU,
9190       { "ORAddress", "x411.ORAddress",
9191         FT_NONE, BASE_NONE, NULL, 0,
9192         "x411.ORAddress", HFILL }},
9193     { &hf_x411_CommonName_PDU,
9194       { "CommonName", "x411.CommonName",
9195         FT_STRING, BASE_NONE, NULL, 0,
9196         "x411.CommonName", HFILL }},
9197     { &hf_x411_TeletexCommonName_PDU,
9198       { "TeletexCommonName", "x411.TeletexCommonName",
9199         FT_STRING, BASE_NONE, NULL, 0,
9200         "x411.TeletexCommonName", HFILL }},
9201     { &hf_x411_UniversalCommonName_PDU,
9202       { "UniversalCommonName", "x411.UniversalCommonName",
9203         FT_NONE, BASE_NONE, NULL, 0,
9204         "x411.UniversalCommonName", HFILL }},
9205     { &hf_x411_TeletexOrganizationName_PDU,
9206       { "TeletexOrganizationName", "x411.TeletexOrganizationName",
9207         FT_STRING, BASE_NONE, NULL, 0,
9208         "x411.TeletexOrganizationName", HFILL }},
9209     { &hf_x411_UniversalOrganizationName_PDU,
9210       { "UniversalOrganizationName", "x411.UniversalOrganizationName",
9211         FT_NONE, BASE_NONE, NULL, 0,
9212         "x411.UniversalOrganizationName", HFILL }},
9213     { &hf_x411_TeletexPersonalName_PDU,
9214       { "TeletexPersonalName", "x411.TeletexPersonalName",
9215         FT_NONE, BASE_NONE, NULL, 0,
9216         "x411.TeletexPersonalName", HFILL }},
9217     { &hf_x411_UniversalPersonalName_PDU,
9218       { "UniversalPersonalName", "x411.UniversalPersonalName",
9219         FT_NONE, BASE_NONE, NULL, 0,
9220         "x411.UniversalPersonalName", HFILL }},
9221     { &hf_x411_TeletexOrganizationalUnitNames_PDU,
9222       { "TeletexOrganizationalUnitNames", "x411.TeletexOrganizationalUnitNames",
9223         FT_UINT32, BASE_DEC, NULL, 0,
9224         "x411.TeletexOrganizationalUnitNames", HFILL }},
9225     { &hf_x411_UniversalOrganizationalUnitNames_PDU,
9226       { "UniversalOrganizationalUnitNames", "x411.UniversalOrganizationalUnitNames",
9227         FT_UINT32, BASE_DEC, NULL, 0,
9228         "x411.UniversalOrganizationalUnitNames", HFILL }},
9229     { &hf_x411_PDSName_PDU,
9230       { "PDSName", "x411.PDSName",
9231         FT_STRING, BASE_NONE, NULL, 0,
9232         "x411.PDSName", HFILL }},
9233     { &hf_x411_PhysicalDeliveryCountryName_PDU,
9234       { "PhysicalDeliveryCountryName", "x411.PhysicalDeliveryCountryName",
9235         FT_UINT32, BASE_DEC, VALS(x411_PhysicalDeliveryCountryName_vals), 0,
9236         "x411.PhysicalDeliveryCountryName", HFILL }},
9237     { &hf_x411_PostalCode_PDU,
9238       { "PostalCode", "x411.PostalCode",
9239         FT_UINT32, BASE_DEC, VALS(x411_PostalCode_vals), 0,
9240         "x411.PostalCode", HFILL }},
9241     { &hf_x411_PhysicalDeliveryOfficeName_PDU,
9242       { "PhysicalDeliveryOfficeName", "x411.PhysicalDeliveryOfficeName",
9243         FT_NONE, BASE_NONE, NULL, 0,
9244         "x411.PhysicalDeliveryOfficeName", HFILL }},
9245     { &hf_x411_UniversalPhysicalDeliveryOfficeName_PDU,
9246       { "UniversalPhysicalDeliveryOfficeName", "x411.UniversalPhysicalDeliveryOfficeName",
9247         FT_NONE, BASE_NONE, NULL, 0,
9248         "x411.UniversalPhysicalDeliveryOfficeName", HFILL }},
9249     { &hf_x411_PhysicalDeliveryOfficeNumber_PDU,
9250       { "PhysicalDeliveryOfficeNumber", "x411.PhysicalDeliveryOfficeNumber",
9251         FT_NONE, BASE_NONE, NULL, 0,
9252         "x411.PhysicalDeliveryOfficeNumber", HFILL }},
9253     { &hf_x411_UniversalPhysicalDeliveryOfficeNumber_PDU,
9254       { "UniversalPhysicalDeliveryOfficeNumber", "x411.UniversalPhysicalDeliveryOfficeNumber",
9255         FT_NONE, BASE_NONE, NULL, 0,
9256         "x411.UniversalPhysicalDeliveryOfficeNumber", HFILL }},
9257     { &hf_x411_ExtensionORAddressComponents_PDU,
9258       { "ExtensionORAddressComponents", "x411.ExtensionORAddressComponents",
9259         FT_NONE, BASE_NONE, NULL, 0,
9260         "x411.ExtensionORAddressComponents", HFILL }},
9261     { &hf_x411_UniversalExtensionORAddressComponents_PDU,
9262       { "UniversalExtensionORAddressComponents", "x411.UniversalExtensionORAddressComponents",
9263         FT_NONE, BASE_NONE, NULL, 0,
9264         "x411.UniversalExtensionORAddressComponents", HFILL }},
9265     { &hf_x411_PhysicalDeliveryPersonalName_PDU,
9266       { "PhysicalDeliveryPersonalName", "x411.PhysicalDeliveryPersonalName",
9267         FT_NONE, BASE_NONE, NULL, 0,
9268         "x411.PhysicalDeliveryPersonalName", HFILL }},
9269     { &hf_x411_UniversalPhysicalDeliveryPersonalName_PDU,
9270       { "UniversalPhysicalDeliveryPersonalName", "x411.UniversalPhysicalDeliveryPersonalName",
9271         FT_NONE, BASE_NONE, NULL, 0,
9272         "x411.UniversalPhysicalDeliveryPersonalName", HFILL }},
9273     { &hf_x411_PhysicalDeliveryOrganizationName_PDU,
9274       { "PhysicalDeliveryOrganizationName", "x411.PhysicalDeliveryOrganizationName",
9275         FT_NONE, BASE_NONE, NULL, 0,
9276         "x411.PhysicalDeliveryOrganizationName", HFILL }},
9277     { &hf_x411_UniversalPhysicalDeliveryOrganizationName_PDU,
9278       { "UniversalPhysicalDeliveryOrganizationName", "x411.UniversalPhysicalDeliveryOrganizationName",
9279         FT_NONE, BASE_NONE, NULL, 0,
9280         "x411.UniversalPhysicalDeliveryOrganizationName", HFILL }},
9281     { &hf_x411_ExtensionPhysicalDeliveryAddressComponents_PDU,
9282       { "ExtensionPhysicalDeliveryAddressComponents", "x411.ExtensionPhysicalDeliveryAddressComponents",
9283         FT_NONE, BASE_NONE, NULL, 0,
9284         "x411.ExtensionPhysicalDeliveryAddressComponents", HFILL }},
9285     { &hf_x411_UniversalExtensionPhysicalDeliveryAddressComponents_PDU,
9286       { "UniversalExtensionPhysicalDeliveryAddressComponents", "x411.UniversalExtensionPhysicalDeliveryAddressComponents",
9287         FT_NONE, BASE_NONE, NULL, 0,
9288         "x411.UniversalExtensionPhysicalDeliveryAddressComponents", HFILL }},
9289     { &hf_x411_UnformattedPostalAddress_PDU,
9290       { "UnformattedPostalAddress", "x411.UnformattedPostalAddress",
9291         FT_NONE, BASE_NONE, NULL, 0,
9292         "x411.UnformattedPostalAddress", HFILL }},
9293     { &hf_x411_UniversalUnformattedPostalAddress_PDU,
9294       { "UniversalUnformattedPostalAddress", "x411.UniversalUnformattedPostalAddress",
9295         FT_NONE, BASE_NONE, NULL, 0,
9296         "x411.UniversalUnformattedPostalAddress", HFILL }},
9297     { &hf_x411_StreetAddress_PDU,
9298       { "StreetAddress", "x411.StreetAddress",
9299         FT_NONE, BASE_NONE, NULL, 0,
9300         "x411.StreetAddress", HFILL }},
9301     { &hf_x411_UniversalStreetAddress_PDU,
9302       { "UniversalStreetAddress", "x411.UniversalStreetAddress",
9303         FT_NONE, BASE_NONE, NULL, 0,
9304         "x411.UniversalStreetAddress", HFILL }},
9305     { &hf_x411_PostOfficeBoxAddress_PDU,
9306       { "PostOfficeBoxAddress", "x411.PostOfficeBoxAddress",
9307         FT_NONE, BASE_NONE, NULL, 0,
9308         "x411.PostOfficeBoxAddress", HFILL }},
9309     { &hf_x411_UniversalPostOfficeBoxAddress_PDU,
9310       { "UniversalPostOfficeBoxAddress", "x411.UniversalPostOfficeBoxAddress",
9311         FT_NONE, BASE_NONE, NULL, 0,
9312         "x411.UniversalPostOfficeBoxAddress", HFILL }},
9313     { &hf_x411_PosteRestanteAddress_PDU,
9314       { "PosteRestanteAddress", "x411.PosteRestanteAddress",
9315         FT_NONE, BASE_NONE, NULL, 0,
9316         "x411.PosteRestanteAddress", HFILL }},
9317     { &hf_x411_UniversalPosteRestanteAddress_PDU,
9318       { "UniversalPosteRestanteAddress", "x411.UniversalPosteRestanteAddress",
9319         FT_NONE, BASE_NONE, NULL, 0,
9320         "x411.UniversalPosteRestanteAddress", HFILL }},
9321     { &hf_x411_UniquePostalName_PDU,
9322       { "UniquePostalName", "x411.UniquePostalName",
9323         FT_NONE, BASE_NONE, NULL, 0,
9324         "x411.UniquePostalName", HFILL }},
9325     { &hf_x411_UniversalUniquePostalName_PDU,
9326       { "UniversalUniquePostalName", "x411.UniversalUniquePostalName",
9327         FT_NONE, BASE_NONE, NULL, 0,
9328         "x411.UniversalUniquePostalName", HFILL }},
9329     { &hf_x411_LocalPostalAttributes_PDU,
9330       { "LocalPostalAttributes", "x411.LocalPostalAttributes",
9331         FT_NONE, BASE_NONE, NULL, 0,
9332         "x411.LocalPostalAttributes", HFILL }},
9333     { &hf_x411_UniversalLocalPostalAttributes_PDU,
9334       { "UniversalLocalPostalAttributes", "x411.UniversalLocalPostalAttributes",
9335         FT_NONE, BASE_NONE, NULL, 0,
9336         "x411.UniversalLocalPostalAttributes", HFILL }},
9337     { &hf_x411_ExtendedNetworkAddress_PDU,
9338       { "ExtendedNetworkAddress", "x411.ExtendedNetworkAddress",
9339         FT_UINT32, BASE_DEC, VALS(x411_ExtendedNetworkAddress_vals), 0,
9340         "x411.ExtendedNetworkAddress", HFILL }},
9341     { &hf_x411_TerminalType_PDU,
9342       { "TerminalType", "x411.TerminalType",
9343         FT_UINT32, BASE_DEC, VALS(x411_TerminalType_vals), 0,
9344         "x411.TerminalType", HFILL }},
9345     { &hf_x411_TeletexDomainDefinedAttributes_PDU,
9346       { "TeletexDomainDefinedAttributes", "x411.TeletexDomainDefinedAttributes",
9347         FT_UINT32, BASE_DEC, NULL, 0,
9348         "x411.TeletexDomainDefinedAttributes", HFILL }},
9349     { &hf_x411_UniversalDomainDefinedAttributes_PDU,
9350       { "UniversalDomainDefinedAttributes", "x411.UniversalDomainDefinedAttributes",
9351         FT_UINT32, BASE_DEC, NULL, 0,
9352         "x411.UniversalDomainDefinedAttributes", HFILL }},
9353     { &hf_x411_ExtendedEncodedInformationType_PDU,
9354       { "ExtendedEncodedInformationType", "x411.ExtendedEncodedInformationType",
9355         FT_OID, BASE_NONE, NULL, 0,
9356         "x411.ExtendedEncodedInformationType", HFILL }},
9357     { &hf_x411_MTANameAndOptionalGDI_PDU,
9358       { "MTANameAndOptionalGDI", "x411.MTANameAndOptionalGDI",
9359         FT_NONE, BASE_NONE, NULL, 0,
9360         "x411.MTANameAndOptionalGDI", HFILL }},
9361     { &hf_x411_AsymmetricToken_PDU,
9362       { "AsymmetricToken", "x411.AsymmetricToken",
9363         FT_NONE, BASE_NONE, NULL, 0,
9364         "x411.AsymmetricToken", HFILL }},
9365     { &hf_x411_BindTokenSignedData_PDU,
9366       { "BindTokenSignedData", "x411.BindTokenSignedData",
9367         FT_BYTES, BASE_NONE, NULL, 0,
9368         "x411.BindTokenSignedData", HFILL }},
9369     { &hf_x411_MessageTokenSignedData_PDU,
9370       { "MessageTokenSignedData", "x411.MessageTokenSignedData",
9371         FT_NONE, BASE_NONE, NULL, 0,
9372         "x411.MessageTokenSignedData", HFILL }},
9373     { &hf_x411_MessageTokenEncryptedData_PDU,
9374       { "MessageTokenEncryptedData", "x411.MessageTokenEncryptedData",
9375         FT_NONE, BASE_NONE, NULL, 0,
9376         "x411.MessageTokenEncryptedData", HFILL }},
9377     { &hf_x411_BindTokenEncryptedData_PDU,
9378       { "BindTokenEncryptedData", "x411.BindTokenEncryptedData",
9379         FT_NONE, BASE_NONE, NULL, 0,
9380         "x411.BindTokenEncryptedData", HFILL }},
9381     { &hf_x411_SecurityClassification_PDU,
9382       { "SecurityClassification", "x411.SecurityClassification",
9383         FT_UINT32, BASE_DEC, VALS(x411_SecurityClassification_vals), 0,
9384         "x411.SecurityClassification", HFILL }},
9385     { &hf_x411_unauthenticated,
9386       { "unauthenticated", "x411.unauthenticated",
9387         FT_NONE, BASE_NONE, NULL, 0,
9388         "x411.NULL", HFILL }},
9389     { &hf_x411_authenticated_argument,
9390       { "authenticated", "x411.authenticated",
9391         FT_NONE, BASE_NONE, NULL, 0,
9392         "x411.AuthenticatedArgument", HFILL }},
9393     { &hf_x411_authenticated_initiator_name,
9394       { "initiator-name", "x411.initiator_name",
9395         FT_STRING, BASE_NONE, NULL, 0,
9396         "x411.MTAName", HFILL }},
9397     { &hf_x411_initiator_credentials,
9398       { "initiator-credentials", "x411.initiator_credentials",
9399         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9400         "x411.InitiatorCredentials", HFILL }},
9401     { &hf_x411_security_context,
9402       { "security-context", "x411.security_context",
9403         FT_UINT32, BASE_DEC, NULL, 0,
9404         "x411.SecurityContext", HFILL }},
9405     { &hf_x411_authenticated_result,
9406       { "authenticated", "x411.authenticated",
9407         FT_NONE, BASE_NONE, NULL, 0,
9408         "x411.AuthenticatedResult", HFILL }},
9409     { &hf_x411_authenticated_responder_name,
9410       { "responder-name", "x411.responder_name",
9411         FT_STRING, BASE_NONE, NULL, 0,
9412         "x411.MTAName", HFILL }},
9413     { &hf_x411_responder_credentials,
9414       { "responder-credentials", "x411.responder_credentials",
9415         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9416         "x411.ResponderCredentials", HFILL }},
9417     { &hf_x411_message,
9418       { "message", "x411.message",
9419         FT_NONE, BASE_NONE, NULL, 0,
9420         "x411.Message", HFILL }},
9421     { &hf_x411_probe,
9422       { "probe", "x411.probe",
9423         FT_NONE, BASE_NONE, NULL, 0,
9424         "x411.Probe", HFILL }},
9425     { &hf_x411_report,
9426       { "report", "x411.report",
9427         FT_NONE, BASE_NONE, NULL, 0,
9428         "x411.Report", HFILL }},
9429     { &hf_x411_message_envelope,
9430       { "envelope", "x411.envelope",
9431         FT_NONE, BASE_NONE, NULL, 0,
9432         "x411.MessageTransferEnvelope", HFILL }},
9433     { &hf_x411_content,
9434       { "content", "x411.content",
9435         FT_BYTES, BASE_NONE, NULL, 0,
9436         "x411.Content", HFILL }},
9437     { &hf_x411_report_envelope,
9438       { "envelope", "x411.envelope",
9439         FT_NONE, BASE_NONE, NULL, 0,
9440         "x411.ReportTransferEnvelope", HFILL }},
9441     { &hf_x411_report_content,
9442       { "content", "x411.content",
9443         FT_NONE, BASE_NONE, NULL, 0,
9444         "x411.ReportTransferContent", HFILL }},
9445     { &hf_x411_message_identifier,
9446       { "message-identifier", "x411.message_identifier",
9447         FT_NONE, BASE_NONE, NULL, 0,
9448         "x411.MessageIdentifier", HFILL }},
9449     { &hf_x411_originator_name,
9450       { "originator-name", "x411.originator_name",
9451         FT_NONE, BASE_NONE, NULL, 0,
9452         "x411.MTAOriginatorName", HFILL }},
9453     { &hf_x411_original_encoded_information_types,
9454       { "original-encoded-information-types", "x411.original_encoded_information_types",
9455         FT_NONE, BASE_NONE, NULL, 0,
9456         "x411.OriginalEncodedInformationTypes", HFILL }},
9457     { &hf_x411_content_type,
9458       { "content-type", "x411.content_type",
9459         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
9460         "x411.ContentType", HFILL }},
9461     { &hf_x411_content_identifier,
9462       { "content-identifier", "x411.content_identifier",
9463         FT_STRING, BASE_NONE, NULL, 0,
9464         "x411.ContentIdentifier", HFILL }},
9465     { &hf_x411_priority,
9466       { "priority", "x411.priority",
9467         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9468         "x411.Priority", HFILL }},
9469     { &hf_x411_per_message_indicators,
9470       { "per-message-indicators", "x411.per_message_indicators",
9471         FT_BYTES, BASE_NONE, NULL, 0,
9472         "x411.PerMessageIndicators", HFILL }},
9473     { &hf_x411_deferred_delivery_time,
9474       { "deferred-delivery-time", "x411.deferred_delivery_time",
9475         FT_STRING, BASE_NONE, NULL, 0,
9476         "x411.DeferredDeliveryTime", HFILL }},
9477     { &hf_x411_per_domain_bilateral_information,
9478       { "per-domain-bilateral-information", "x411.per_domain_bilateral_information",
9479         FT_UINT32, BASE_DEC, NULL, 0,
9480         "x411.SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation", HFILL }},
9481     { &hf_x411_per_domain_bilateral_information_item,
9482       { "PerDomainBilateralInformation", "x411.PerDomainBilateralInformation",
9483         FT_NONE, BASE_NONE, NULL, 0,
9484         "x411.PerDomainBilateralInformation", HFILL }},
9485     { &hf_x411_trace_information,
9486       { "trace-information", "x411.trace_information",
9487         FT_UINT32, BASE_DEC, NULL, 0,
9488         "x411.TraceInformation", HFILL }},
9489     { &hf_x411_extensions,
9490       { "extensions", "x411.extensions",
9491         FT_UINT32, BASE_DEC, NULL, 0,
9492         "x411.SET_OF_ExtensionField", HFILL }},
9493     { &hf_x411_extensions_item,
9494       { "ExtensionField", "x411.ExtensionField",
9495         FT_NONE, BASE_NONE, NULL, 0,
9496         "x411.ExtensionField", HFILL }},
9497     { &hf_x411_recipient_name,
9498       { "recipient-name", "x411.recipient_name",
9499         FT_NONE, BASE_NONE, NULL, 0,
9500         "x411.MTARecipientName", HFILL }},
9501     { &hf_x411_originally_specified_recipient_number,
9502       { "originally-specified-recipient-number", "x411.originally_specified_recipient_number",
9503         FT_UINT32, BASE_DEC, NULL, 0,
9504         "x411.OriginallySpecifiedRecipientNumber", HFILL }},
9505     { &hf_x411_per_recipient_indicators,
9506       { "per-recipient-indicators", "x411.per_recipient_indicators",
9507         FT_BYTES, BASE_NONE, NULL, 0,
9508         "x411.PerRecipientIndicators", HFILL }},
9509     { &hf_x411_explicit_conversion,
9510       { "explicit-conversion", "x411.explicit_conversion",
9511         FT_UINT32, BASE_DEC, VALS(x411_ExplicitConversion_vals), 0,
9512         "x411.ExplicitConversion", HFILL }},
9513     { &hf_x411_probe_identifier,
9514       { "probe-identifier", "x411.probe_identifier",
9515         FT_NONE, BASE_NONE, NULL, 0,
9516         "x411.ProbeIdentifier", HFILL }},
9517     { &hf_x411_content_length,
9518       { "content-length", "x411.content_length",
9519         FT_UINT32, BASE_DEC, NULL, 0,
9520         "x411.ContentLength", HFILL }},
9521     { &hf_x411_report_identifier,
9522       { "report-identifier", "x411.report_identifier",
9523         FT_NONE, BASE_NONE, NULL, 0,
9524         "x411.ReportIdentifier", HFILL }},
9525     { &hf_x411_report_destination_name,
9526       { "report-destination-name", "x411.report_destination_name",
9527         FT_NONE, BASE_NONE, NULL, 0,
9528         "x411.ReportDestinationName", HFILL }},
9529     { &hf_x411_subject_identifier,
9530       { "subject-identifier", "x411.subject_identifier",
9531         FT_NONE, BASE_NONE, NULL, 0,
9532         "x411.SubjectIdentifier", HFILL }},
9533     { &hf_x411_subject_intermediate_trace_information,
9534       { "subject-intermediate-trace-information", "x411.subject_intermediate_trace_information",
9535         FT_UINT32, BASE_DEC, NULL, 0,
9536         "x411.SubjectIntermediateTraceInformation", HFILL }},
9537     { &hf_x411_returned_content,
9538       { "returned-content", "x411.returned_content",
9539         FT_BYTES, BASE_NONE, NULL, 0,
9540         "x411.Content", HFILL }},
9541     { &hf_x411_additional_information,
9542       { "additional-information", "x411.additional_information",
9543         FT_NONE, BASE_NONE, NULL, 0,
9544         "x411.AdditionalInformation", HFILL }},
9545     { &hf_x411_mta_actual_recipient_name,
9546       { "actual-recipient-name", "x411.actual_recipient_name",
9547         FT_NONE, BASE_NONE, NULL, 0,
9548         "x411.MTAActualRecipientName", HFILL }},
9549     { &hf_x411_last_trace_information,
9550       { "last-trace-information", "x411.last_trace_information",
9551         FT_NONE, BASE_NONE, NULL, 0,
9552         "x411.LastTraceInformation", HFILL }},
9553     { &hf_x411_report_originally_intended_recipient_name,
9554       { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
9555         FT_NONE, BASE_NONE, NULL, 0,
9556         "x411.OriginallyIntendedRecipientName", HFILL }},
9557     { &hf_x411_supplementary_information,
9558       { "supplementary-information", "x411.supplementary_information",
9559         FT_STRING, BASE_NONE, NULL, 0,
9560         "x411.SupplementaryInformation", HFILL }},
9561     { &hf_x411_country_name,
9562       { "country-name", "x411.country_name",
9563         FT_UINT32, BASE_DEC, VALS(x411_CountryName_U_vals), 0,
9564         "x411.CountryName", HFILL }},
9565     { &hf_x411_bilateral_domain,
9566       { "domain", "x411.domain",
9567         FT_UINT32, BASE_DEC, VALS(x411_T_bilateral_domain_vals), 0,
9568         "x411.T_bilateral_domain", HFILL }},
9569     { &hf_x411_administration_domain_name,
9570       { "administration-domain-name", "x411.administration_domain_name",
9571         FT_UINT32, BASE_DEC, VALS(x411_AdministrationDomainName_U_vals), 0,
9572         "x411.AdministrationDomainName", HFILL }},
9573     { &hf_x411_private_domain,
9574       { "private-domain", "x411.private_domain",
9575         FT_NONE, BASE_NONE, NULL, 0,
9576         "x411.T_private_domain", HFILL }},
9577     { &hf_x411_private_domain_identifier,
9578       { "private-domain-identifier", "x411.private_domain_identifier",
9579         FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainIdentifier_vals), 0,
9580         "x411.PrivateDomainIdentifier", HFILL }},
9581     { &hf_x411_bilateral_information,
9582       { "bilateral-information", "x411.bilateral_information",
9583         FT_NONE, BASE_NONE, NULL, 0,
9584         "x411.T_bilateral_information", HFILL }},
9585     { &hf_x411_domain,
9586       { "domain", "x411.domain",
9587         FT_UINT32, BASE_DEC, VALS(x411_T_domain_vals), 0,
9588         "x411.T_domain", HFILL }},
9589     { &hf_x411_private_domain_01,
9590       { "private-domain", "x411.private_domain",
9591         FT_NONE, BASE_NONE, NULL, 0,
9592         "x411.T_private_domain_01", HFILL }},
9593     { &hf_x411_arrival_time,
9594       { "arrival-time", "x411.arrival_time",
9595         FT_STRING, BASE_NONE, NULL, 0,
9596         "x411.ArrivalTime", HFILL }},
9597     { &hf_x411_converted_encoded_information_types,
9598       { "converted-encoded-information-types", "x411.converted_encoded_information_types",
9599         FT_NONE, BASE_NONE, NULL, 0,
9600         "x411.ConvertedEncodedInformationTypes", HFILL }},
9601     { &hf_x411_trace_report_type,
9602       { "report-type", "x411.report_type",
9603         FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
9604         "x411.ReportType", HFILL }},
9605     { &hf_x411_InternalTraceInformation_item,
9606       { "InternalTraceInformationElement", "x411.InternalTraceInformationElement",
9607         FT_NONE, BASE_NONE, NULL, 0,
9608         "x411.InternalTraceInformationElement", HFILL }},
9609     { &hf_x411_global_domain_identifier,
9610       { "global-domain-identifier", "x411.global_domain_identifier",
9611         FT_NONE, BASE_NONE, NULL, 0,
9612         "x411.GlobalDomainIdentifier", HFILL }},
9613     { &hf_x411_mta_name,
9614       { "mta-name", "x411.mta_name",
9615         FT_STRING, BASE_NONE, NULL, 0,
9616         "x411.MTAName", HFILL }},
9617     { &hf_x411_mta_supplied_information,
9618       { "mta-supplied-information", "x411.mta_supplied_information",
9619         FT_NONE, BASE_NONE, NULL, 0,
9620         "x411.MTASuppliedInformation", HFILL }},
9621     { &hf_x411__untag_item,
9622       { "TraceInformationElement", "x411.TraceInformationElement",
9623         FT_NONE, BASE_NONE, NULL, 0,
9624         "x411.TraceInformationElement", HFILL }},
9625     { &hf_x411_domain_supplied_information,
9626       { "domain-supplied-information", "x411.domain_supplied_information",
9627         FT_NONE, BASE_NONE, NULL, 0,
9628         "x411.DomainSuppliedInformation", HFILL }},
9629     { &hf_x411_deferred_time,
9630       { "deferred-time", "x411.deferred_time",
9631         FT_STRING, BASE_NONE, NULL, 0,
9632         "x411.DeferredTime", HFILL }},
9633     { &hf_x411_other_actions,
9634       { "other-actions", "x411.other_actions",
9635         FT_BYTES, BASE_NONE, NULL, 0,
9636         "x411.OtherActions", HFILL }},
9637     { &hf_x411_initiator_name,
9638       { "initiator-name", "x411.initiator_name",
9639         FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
9640         "x411.ObjectName", HFILL }},
9641     { &hf_x411_messages_waiting,
9642       { "messages-waiting", "x411.messages_waiting",
9643         FT_NONE, BASE_NONE, NULL, 0,
9644         "x411.MessagesWaiting", HFILL }},
9645     { &hf_x411_responder_name,
9646       { "responder-name", "x411.responder_name",
9647         FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
9648         "x411.ObjectName", HFILL }},
9649     { &hf_x411_user_agent,
9650       { "user-agent", "x411.user_agent",
9651         FT_NONE, BASE_NONE, NULL, 0,
9652         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9653     { &hf_x411_mTA,
9654       { "mTA", "x411.mTA",
9655         FT_STRING, BASE_NONE, NULL, 0,
9656         "x411.MTAName", HFILL }},
9657     { &hf_x411_message_store,
9658       { "message-store", "x411.message_store",
9659         FT_NONE, BASE_NONE, NULL, 0,
9660         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
9661     { &hf_x411_urgent,
9662       { "urgent", "x411.urgent",
9663         FT_NONE, BASE_NONE, NULL, 0,
9664         "x411.DeliveryQueue", HFILL }},
9665     { &hf_x411_normal,
9666       { "normal", "x411.normal",
9667         FT_NONE, BASE_NONE, NULL, 0,
9668         "x411.DeliveryQueue", HFILL }},
9669     { &hf_x411_non_urgent,
9670       { "non-urgent", "x411.non_urgent",
9671         FT_NONE, BASE_NONE, NULL, 0,
9672         "x411.DeliveryQueue", HFILL }},
9673     { &hf_x411_messages,
9674       { "messages", "x411.messages",
9675         FT_UINT32, BASE_DEC, NULL, 0,
9676         "x411.INTEGER_0_ub_queue_size", HFILL }},
9677     { &hf_x411_delivery_queue_octets,
9678       { "octets", "x411.octets",
9679         FT_UINT32, BASE_DEC, NULL, 0,
9680         "x411.INTEGER_0_ub_content_length", HFILL }},
9681     { &hf_x411_simple,
9682       { "simple", "x411.simple",
9683         FT_UINT32, BASE_DEC, VALS(x411_Password_vals), 0,
9684         "x411.Password", HFILL }},
9685     { &hf_x411_strong,
9686       { "strong", "x411.strong",
9687         FT_NONE, BASE_NONE, NULL, 0,
9688         "x411.StrongCredentials", HFILL }},
9689     { &hf_x411_protected,
9690       { "protected", "x411.protected",
9691         FT_NONE, BASE_NONE, NULL, 0,
9692         "x411.ProtectedPassword", HFILL }},
9693     { &hf_x411_ia5_string,
9694       { "ia5-string", "x411.ia5_string",
9695         FT_STRING, BASE_NONE, NULL, 0,
9696         "x411.IA5String_SIZE_0_ub_password_length", HFILL }},
9697     { &hf_x411_octet_string,
9698       { "octet-string", "x411.octet_string",
9699         FT_BYTES, BASE_NONE, NULL, 0,
9700         "x411.OCTET_STRING_SIZE_0_ub_password_length", HFILL }},
9701     { &hf_x411_bind_token,
9702       { "bind-token", "x411.bind_token",
9703         FT_NONE, BASE_NONE, NULL, 0,
9704         "x411.Token", HFILL }},
9705     { &hf_x411_certificate,
9706       { "certificate", "x411.certificate",
9707         FT_NONE, BASE_NONE, NULL, 0,
9708         "x509af.Certificates", HFILL }},
9709     { &hf_x411_certificate_selector,
9710       { "certificate-selector", "x411.certificate_selector",
9711         FT_NONE, BASE_NONE, NULL, 0,
9712         "x509ce.CertificateAssertion", HFILL }},
9713     { &hf_x411_signature,
9714       { "signature", "x411.signature",
9715         FT_NONE, BASE_NONE, NULL, 0,
9716         "x411.Signature", HFILL }},
9717     { &hf_x411_time1,
9718       { "time1", "x411.time1",
9719         FT_STRING, BASE_NONE, NULL, 0,
9720         "x411.UTCTime", HFILL }},
9721     { &hf_x411_time2,
9722       { "time2", "x411.time2",
9723         FT_STRING, BASE_NONE, NULL, 0,
9724         "x411.UTCTime", HFILL }},
9725     { &hf_x411_random1,
9726       { "random1", "x411.random1",
9727         FT_BYTES, BASE_NONE, NULL, 0,
9728         "x411.BIT_STRING", HFILL }},
9729     { &hf_x411_random2,
9730       { "random2", "x411.random2",
9731         FT_BYTES, BASE_NONE, NULL, 0,
9732         "x411.BIT_STRING", HFILL }},
9733     { &hf_x411_algorithmIdentifier,
9734       { "algorithmIdentifier", "x411.algorithmIdentifier",
9735         FT_NONE, BASE_NONE, NULL, 0,
9736         "x509af.AlgorithmIdentifier", HFILL }},
9737     { &hf_x411_encrypted,
9738       { "encrypted", "x411.encrypted",
9739         FT_BYTES, BASE_NONE, NULL, 0,
9740         "x411.BIT_STRING", HFILL }},
9741     { &hf_x411_SecurityContext_item,
9742       { "SecurityLabel", "x411.SecurityLabel",
9743         FT_NONE, BASE_NONE, NULL, 0,
9744         "x411.SecurityLabel", HFILL }},
9745     { &hf_x411_message_submission_envelope,
9746       { "envelope", "x411.envelope",
9747         FT_NONE, BASE_NONE, NULL, 0,
9748         "x411.MessageSubmissionEnvelope", HFILL }},
9749     { &hf_x411_message_submission_identifier,
9750       { "message-submission-identifier", "x411.message_submission_identifier",
9751         FT_NONE, BASE_NONE, NULL, 0,
9752         "x411.MessageSubmissionIdentifier", HFILL }},
9753     { &hf_x411_message_submission_time,
9754       { "message-submission-time", "x411.message_submission_time",
9755         FT_STRING, BASE_NONE, NULL, 0,
9756         "x411.MessageSubmissionTime", HFILL }},
9757     { &hf_x411_probe_submission_identifier,
9758       { "probe-submission-identifier", "x411.probe_submission_identifier",
9759         FT_NONE, BASE_NONE, NULL, 0,
9760         "x411.ProbeSubmissionIdentifier", HFILL }},
9761     { &hf_x411_probe_submission_time,
9762       { "probe-submission-time", "x411.probe_submission_time",
9763         FT_STRING, BASE_NONE, NULL, 0,
9764         "x411.ProbeSubmissionTime", HFILL }},
9765     { &hf_x411_ImproperlySpecifiedRecipients_item,
9766       { "RecipientName", "x411.RecipientName",
9767         FT_NONE, BASE_NONE, NULL, 0,
9768         "x411.RecipientName", HFILL }},
9769     { &hf_x411_waiting_operations,
9770       { "waiting-operations", "x411.waiting_operations",
9771         FT_BYTES, BASE_NONE, NULL, 0,
9772         "x411.Operations", HFILL }},
9773     { &hf_x411_waiting_messages,
9774       { "waiting-messages", "x411.waiting_messages",
9775         FT_BYTES, BASE_NONE, NULL, 0,
9776         "x411.WaitingMessages", HFILL }},
9777     { &hf_x411_waiting_content_types,
9778       { "waiting-content-types", "x411.waiting_content_types",
9779         FT_UINT32, BASE_DEC, NULL, 0,
9780         "x411.SET_SIZE_0_ub_content_types_OF_ContentType", HFILL }},
9781     { &hf_x411_waiting_content_types_item,
9782       { "ContentType", "x411.ContentType",
9783         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
9784         "x411.ContentType", HFILL }},
9785     { &hf_x411_waiting_encoded_information_types,
9786       { "waiting-encoded-information-types", "x411.waiting_encoded_information_types",
9787         FT_NONE, BASE_NONE, NULL, 0,
9788         "x411.EncodedInformationTypes", HFILL }},
9789     { &hf_x411_recipient_certificate,
9790       { "recipient-certificate", "x411.recipient_certificate",
9791         FT_NONE, BASE_NONE, NULL, 0,
9792         "x411.RecipientCertificate", HFILL }},
9793     { &hf_x411_proof_of_delivery,
9794       { "proof-of-delivery", "x411.proof_of_delivery",
9795         FT_NONE, BASE_NONE, NULL, 0,
9796         "x411.ProofOfDelivery", HFILL }},
9797     { &hf_x411_empty_result,
9798       { "empty-result", "x411.empty_result",
9799         FT_NONE, BASE_NONE, NULL, 0,
9800         "x411.NULL", HFILL }},
9801     { &hf_x411_max_extensions,
9802       { "extensions", "x411.extensions",
9803         FT_UINT32, BASE_DEC, NULL, 0,
9804         "x411.SET_SIZE_1_MAX_OF_ExtensionField", HFILL }},
9805     { &hf_x411_max_extensions_item,
9806       { "ExtensionField", "x411.ExtensionField",
9807         FT_NONE, BASE_NONE, NULL, 0,
9808         "x411.ExtensionField", HFILL }},
9809     { &hf_x411_restrict,
9810       { "restrict", "x411.restrict",
9811         FT_BOOLEAN, BASE_NONE, NULL, 0,
9812         "x411.BOOLEAN", HFILL }},
9813     { &hf_x411_permissible_operations,
9814       { "permissible-operations", "x411.permissible_operations",
9815         FT_BYTES, BASE_NONE, NULL, 0,
9816         "x411.Operations", HFILL }},
9817     { &hf_x411_permissible_maximum_content_length,
9818       { "permissible-maximum-content-length", "x411.permissible_maximum_content_length",
9819         FT_UINT32, BASE_DEC, NULL, 0,
9820         "x411.ContentLength", HFILL }},
9821     { &hf_x411_permissible_lowest_priority,
9822       { "permissible-lowest-priority", "x411.permissible_lowest_priority",
9823         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9824         "x411.Priority", HFILL }},
9825     { &hf_x411_permissible_content_types,
9826       { "permissible-content-types", "x411.permissible_content_types",
9827         FT_UINT32, BASE_DEC, NULL, 0,
9828         "x411.ContentTypes", HFILL }},
9829     { &hf_x411_permissible_encoded_information_types,
9830       { "permissible-encoded-information-types", "x411.permissible_encoded_information_types",
9831         FT_NONE, BASE_NONE, NULL, 0,
9832         "x411.PermissibleEncodedInformationTypes", HFILL }},
9833     { &hf_x411_permissible_security_context,
9834       { "permissible-security-context", "x411.permissible_security_context",
9835         FT_UINT32, BASE_DEC, NULL, 0,
9836         "x411.SecurityContext", HFILL }},
9837     { &hf_x411_refused_argument,
9838       { "refused-argument", "x411.refused_argument",
9839         FT_UINT32, BASE_DEC, VALS(x411_T_refused_argument_vals), 0,
9840         "x411.T_refused_argument", HFILL }},
9841     { &hf_x411_built_in_argument,
9842       { "built-in-argument", "x411.built_in_argument",
9843         FT_UINT32, BASE_DEC, VALS(x411_RefusedArgument_vals), 0,
9844         "x411.RefusedArgument", HFILL }},
9845     { &hf_x411_refused_extension,
9846       { "refused-extension", "x411.refused_extension",
9847         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
9848         "x411.T_refused_extension", HFILL }},
9849     { &hf_x411_refusal_reason,
9850       { "refusal-reason", "x411.refusal_reason",
9851         FT_UINT32, BASE_DEC, VALS(x411_RefusalReason_vals), 0,
9852         "x411.RefusalReason", HFILL }},
9853     { &hf_x411_user_name,
9854       { "user-name", "x411.user_name",
9855         FT_NONE, BASE_NONE, NULL, 0,
9856         "x411.UserName", HFILL }},
9857     { &hf_x411_user_address,
9858       { "user-address", "x411.user_address",
9859         FT_UINT32, BASE_DEC, VALS(x411_UserAddress_vals), 0,
9860         "x411.UserAddress", HFILL }},
9861     { &hf_x411_deliverable_class,
9862       { "deliverable-class", "x411.deliverable_class",
9863         FT_UINT32, BASE_DEC, NULL, 0,
9864         "x411.SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass", HFILL }},
9865     { &hf_x411_deliverable_class_item,
9866       { "DeliverableClass", "x411.DeliverableClass",
9867         FT_NONE, BASE_NONE, NULL, 0,
9868         "x411.DeliverableClass", HFILL }},
9869     { &hf_x411_default_delivery_controls,
9870       { "default-delivery-controls", "x411.default_delivery_controls",
9871         FT_NONE, BASE_NONE, NULL, 0,
9872         "x411.DefaultDeliveryControls", HFILL }},
9873     { &hf_x411_redirections,
9874       { "redirections", "x411.redirections",
9875         FT_UINT32, BASE_DEC, NULL, 0,
9876         "x411.Redirections", HFILL }},
9877     { &hf_x411_restricted_delivery,
9878       { "restricted-delivery", "x411.restricted_delivery",
9879         FT_UINT32, BASE_DEC, NULL, 0,
9880         "x411.RestrictedDelivery", HFILL }},
9881     { &hf_x411_retrieve_registrations,
9882       { "retrieve-registrations", "x411.retrieve_registrations",
9883         FT_NONE, BASE_NONE, NULL, 0,
9884         "x411.RegistrationTypes", HFILL }},
9885     { &hf_x411_non_empty_result,
9886       { "non-empty-result", "x411.non_empty_result",
9887         FT_NONE, BASE_NONE, NULL, 0,
9888         "x411.T_non_empty_result", HFILL }},
9889     { &hf_x411_registered_information,
9890       { "registered-information", "x411.registered_information",
9891         FT_NONE, BASE_NONE, NULL, 0,
9892         "x411.RegisterArgument", HFILL }},
9893     { &hf_x411_old_credentials,
9894       { "old-credentials", "x411.old_credentials",
9895         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9896         "x411.Credentials", HFILL }},
9897     { &hf_x411_new_credentials,
9898       { "new-credentials", "x411.new_credentials",
9899         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
9900         "x411.Credentials", HFILL }},
9901     { &hf_x411_x121,
9902       { "x121", "x411.x121",
9903         FT_NONE, BASE_NONE, NULL, 0,
9904         "x411.T_x121", HFILL }},
9905     { &hf_x411_x121_address,
9906       { "x121-address", "x411.x121_address",
9907         FT_STRING, BASE_NONE, NULL, 0,
9908         "x411.T_x121_address", HFILL }},
9909     { &hf_x411_tsap_id,
9910       { "tsap-id", "x411.tsap_id",
9911         FT_STRING, BASE_NONE, NULL, 0,
9912         "x411.PrintableString_SIZE_1_ub_tsap_id_length", HFILL }},
9913     { &hf_x411_presentation,
9914       { "presentation", "x411.presentation",
9915         FT_NONE, BASE_NONE, NULL, 0,
9916         "x411.PSAPAddress", HFILL }},
9917     { &hf_x411_Redirections_item,
9918       { "RecipientRedirection", "x411.RecipientRedirection",
9919         FT_NONE, BASE_NONE, NULL, 0,
9920         "x411.RecipientRedirection", HFILL }},
9921     { &hf_x411_redirection_classes,
9922       { "redirection-classes", "x411.redirection_classes",
9923         FT_UINT32, BASE_DEC, NULL, 0,
9924         "x411.SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass", HFILL }},
9925     { &hf_x411_redirection_classes_item,
9926       { "RedirectionClass", "x411.RedirectionClass",
9927         FT_NONE, BASE_NONE, NULL, 0,
9928         "x411.RedirectionClass", HFILL }},
9929     { &hf_x411_recipient_assigned_alternate_recipient,
9930       { "recipient-assigned-alternate-recipient", "x411.recipient_assigned_alternate_recipient",
9931         FT_NONE, BASE_NONE, NULL, 0,
9932         "x411.RecipientAssignedAlternateRecipient", HFILL }},
9933     { &hf_x411_content_types,
9934       { "content-types", "x411.content_types",
9935         FT_UINT32, BASE_DEC, NULL, 0,
9936         "x411.ContentTypes", HFILL }},
9937     { &hf_x411_maximum_content_length,
9938       { "maximum-content-length", "x411.maximum_content_length",
9939         FT_UINT32, BASE_DEC, NULL, 0,
9940         "x411.ContentLength", HFILL }},
9941     { &hf_x411_encoded_information_types_constraints,
9942       { "encoded-information-types-constraints", "x411.encoded_information_types_constraints",
9943         FT_NONE, BASE_NONE, NULL, 0,
9944         "x411.EncodedInformationTypesConstraints", HFILL }},
9945     { &hf_x411_security_labels,
9946       { "security-labels", "x411.security_labels",
9947         FT_UINT32, BASE_DEC, NULL, 0,
9948         "x411.SecurityContext", HFILL }},
9949     { &hf_x411_class_priority,
9950       { "priority", "x411.priority",
9951         FT_UINT32, BASE_DEC, NULL, 0,
9952         "x411.SET_OF_Priority", HFILL }},
9953     { &hf_x411_class_priority_item,
9954       { "Priority", "x411.Priority",
9955         FT_UINT32, BASE_DEC, VALS(x411_Priority_U_vals), 0,
9956         "x411.Priority", HFILL }},
9957     { &hf_x411_objects,
9958       { "objects", "x411.objects",
9959         FT_UINT32, BASE_DEC, VALS(x411_T_objects_vals), 0,
9960         "x411.T_objects", HFILL }},
9961     { &hf_x411_applies_only_to,
9962       { "applies-only-to", "x411.applies_only_to",
9963         FT_UINT32, BASE_DEC, NULL, 0,
9964         "x411.SEQUENCE_OF_Restriction", HFILL }},
9965     { &hf_x411_applies_only_to_item,
9966       { "Restriction", "x411.Restriction",
9967         FT_NONE, BASE_NONE, NULL, 0,
9968         "x411.Restriction", HFILL }},
9969     { &hf_x411_unacceptable_eits,
9970       { "unacceptable-eits", "x411.unacceptable_eits",
9971         FT_UINT32, BASE_DEC, NULL, 0,
9972         "x411.ExtendedEncodedInformationTypes", HFILL }},
9973     { &hf_x411_acceptable_eits,
9974       { "acceptable-eits", "x411.acceptable_eits",
9975         FT_UINT32, BASE_DEC, NULL, 0,
9976         "x411.ExtendedEncodedInformationTypes", HFILL }},
9977     { &hf_x411_exclusively_acceptable_eits,
9978       { "exclusively-acceptable-eits", "x411.exclusively_acceptable_eits",
9979         FT_UINT32, BASE_DEC, NULL, 0,
9980         "x411.ExtendedEncodedInformationTypes", HFILL }},
9981     { &hf_x411_RestrictedDelivery_item,
9982       { "Restriction", "x411.Restriction",
9983         FT_NONE, BASE_NONE, NULL, 0,
9984         "x411.Restriction", HFILL }},
9985     { &hf_x411_permitted,
9986       { "permitted", "x411.permitted",
9987         FT_BOOLEAN, BASE_NONE, NULL, 0,
9988         "x411.BOOLEAN", HFILL }},
9989     { &hf_x411_source_type,
9990       { "source-type", "x411.source_type",
9991         FT_BYTES, BASE_NONE, NULL, 0,
9992         "x411.T_source_type", HFILL }},
9993     { &hf_x411_source_name,
9994       { "source-name", "x411.source_name",
9995         FT_UINT32, BASE_DEC, VALS(x411_ExactOrPattern_vals), 0,
9996         "x411.ExactOrPattern", HFILL }},
9997     { &hf_x411_exact_match,
9998       { "exact-match", "x411.exact_match",
9999         FT_NONE, BASE_NONE, NULL, 0,
10000         "x411.ORName", HFILL }},
10001     { &hf_x411_pattern_match,
10002       { "pattern-match", "x411.pattern_match",
10003         FT_NONE, BASE_NONE, NULL, 0,
10004         "x411.ORName", HFILL }},
10005     { &hf_x411_standard_parameters,
10006       { "standard-parameters", "x411.standard_parameters",
10007         FT_BYTES, BASE_NONE, NULL, 0,
10008         "x411.T_standard_parameters", HFILL }},
10009     { &hf_x411_type_extensions,
10010       { "extensions", "x411.extensions",
10011         FT_UINT32, BASE_DEC, NULL, 0,
10012         "x411.T_type_extensions", HFILL }},
10013     { &hf_x411_type_extensions_item,
10014       { "extensions item", "x411.extensions_item",
10015         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
10016         "x411.T_type_extensions_item", HFILL }},
10017     { &hf_x411_originator_name_01,
10018       { "originator-name", "x411.originator_name",
10019         FT_NONE, BASE_NONE, NULL, 0,
10020         "x411.OriginatorName", HFILL }},
10021     { &hf_x411_submission_recipient_name,
10022       { "recipient-name", "x411.recipient_name",
10023         FT_NONE, BASE_NONE, NULL, 0,
10024         "x411.RecipientName", HFILL }},
10025     { &hf_x411_originator_report_request,
10026       { "originator-report-request", "x411.originator_report_request",
10027         FT_BYTES, BASE_NONE, NULL, 0,
10028         "x411.OriginatorReportRequest", HFILL }},
10029     { &hf_x411_probe_recipient_name,
10030       { "recipient-name", "x411.recipient_name",
10031         FT_NONE, BASE_NONE, NULL, 0,
10032         "x411.RecipientName", HFILL }},
10033     { &hf_x411_message_delivery_identifier,
10034       { "message-delivery-identifier", "x411.message_delivery_identifier",
10035         FT_NONE, BASE_NONE, NULL, 0,
10036         "x411.MessageDeliveryIdentifier", HFILL }},
10037     { &hf_x411_message_delivery_time,
10038       { "message-delivery-time", "x411.message_delivery_time",
10039         FT_STRING, BASE_NONE, NULL, 0,
10040         "x411.MessageDeliveryTime", HFILL }},
10041     { &hf_x411_other_fields,
10042       { "other-fields", "x411.other_fields",
10043         FT_NONE, BASE_NONE, NULL, 0,
10044         "x411.OtherMessageDeliveryFields", HFILL }},
10045     { &hf_x411_delivered_content_type,
10046       { "content-type", "x411.content_type",
10047         FT_UINT32, BASE_DEC, VALS(x411_DeliveredContentType_vals), 0,
10048         "x411.DeliveredContentType", HFILL }},
10049     { &hf_x411_delivered_originator_name,
10050       { "originator-name", "x411.originator_name",
10051         FT_NONE, BASE_NONE, NULL, 0,
10052         "x411.DeliveredOriginatorName", HFILL }},
10053     { &hf_x411_delivery_flags,
10054       { "delivery-flags", "x411.delivery_flags",
10055         FT_BYTES, BASE_NONE, NULL, 0,
10056         "x411.DeliveryFlags", HFILL }},
10057     { &hf_x411_other_recipient_names,
10058       { "other-recipient-names", "x411.other_recipient_names",
10059         FT_UINT32, BASE_DEC, NULL, 0,
10060         "x411.OtherRecipientNames", HFILL }},
10061     { &hf_x411_this_recipient_name,
10062       { "this-recipient-name", "x411.this_recipient_name",
10063         FT_NONE, BASE_NONE, NULL, 0,
10064         "x411.ThisRecipientName", HFILL }},
10065     { &hf_x411_originally_intended_recipient_name,
10066       { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
10067         FT_NONE, BASE_NONE, NULL, 0,
10068         "x411.OriginallyIntendedRecipientName", HFILL }},
10069     { &hf_x411_subject_submission_identifier,
10070       { "subject-submission-identifier", "x411.subject_submission_identifier",
10071         FT_NONE, BASE_NONE, NULL, 0,
10072         "x411.SubjectSubmissionIdentifier", HFILL }},
10073     { &hf_x411_actual_recipient_name,
10074       { "actual-recipient-name", "x411.actual_recipient_name",
10075         FT_NONE, BASE_NONE, NULL, 0,
10076         "x411.ActualRecipientName", HFILL }},
10077     { &hf_x411_delivery_report_type,
10078       { "report-type", "x411.report_type",
10079         FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
10080         "x411.ReportType", HFILL }},
10081     { &hf_x411_delivery,
10082       { "delivery", "x411.delivery",
10083         FT_NONE, BASE_NONE, NULL, 0,
10084         "x411.DeliveryReport", HFILL }},
10085     { &hf_x411_non_delivery,
10086       { "non-delivery", "x411.non_delivery",
10087         FT_NONE, BASE_NONE, NULL, 0,
10088         "x411.NonDeliveryReport", HFILL }},
10089     { &hf_x411_type_of_MTS_user,
10090       { "type-of-MTS-user", "x411.type_of_MTS_user",
10091         FT_UINT32, BASE_DEC, VALS(x411_TypeOfMTSUser_vals), 0,
10092         "x411.TypeOfMTSUser", HFILL }},
10093     { &hf_x411_non_delivery_reason_code,
10094       { "non-delivery-reason-code", "x411.non_delivery_reason_code",
10095         FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryReasonCode_vals), 0,
10096         "x411.NonDeliveryReasonCode", HFILL }},
10097     { &hf_x411_non_delivery_diagnostic_code,
10098       { "non-delivery-diagnostic-code", "x411.non_delivery_diagnostic_code",
10099         FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryDiagnosticCode_vals), 0,
10100         "x411.NonDeliveryDiagnosticCode", HFILL }},
10101     { &hf_x411_ContentTypes_item,
10102       { "ContentType", "x411.ContentType",
10103         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
10104         "x411.ContentType", HFILL }},
10105     { &hf_x411_built_in,
10106       { "built-in", "x411.built_in",
10107         FT_UINT32, BASE_DEC, VALS(x411_BuiltInContentType_U_vals), 0,
10108         "x411.BuiltInContentType", HFILL }},
10109     { &hf_x411_extended,
10110       { "extended", "x411.extended",
10111         FT_OID, BASE_NONE, NULL, 0,
10112         "x411.ExtendedContentType", HFILL }},
10113     { &hf_x411_OtherRecipientNames_item,
10114       { "OtherRecipientName", "x411.OtherRecipientName",
10115         FT_NONE, BASE_NONE, NULL, 0,
10116         "x411.OtherRecipientName", HFILL }},
10117     { &hf_x411_standard_extension,
10118       { "standard-extension", "x411.standard_extension",
10119         FT_INT32, BASE_DEC, VALS(x411_StandardExtension_vals), 0,
10120         "x411.StandardExtension", HFILL }},
10121     { &hf_x411_private_extension,
10122       { "private-extension", "x411.private_extension",
10123         FT_OID, BASE_NONE, NULL, 0,
10124         "x411.T_private_extension", HFILL }},
10125     { &hf_x411_extension_type,
10126       { "type", "x411.type",
10127         FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
10128         "x411.ExtensionType", HFILL }},
10129     { &hf_x411_criticality,
10130       { "criticality", "x411.criticality",
10131         FT_BYTES, BASE_NONE, NULL, 0,
10132         "x411.Criticality", HFILL }},
10133     { &hf_x411_extension_value,
10134       { "value", "x411.value",
10135         FT_NONE, BASE_NONE, NULL, 0,
10136         "x411.ExtensionValue", HFILL }},
10137     { &hf_x411_RequestedDeliveryMethod_item,
10138       { "RequestedDeliveryMethod item", "x411.RequestedDeliveryMethod_item",
10139         FT_UINT32, BASE_DEC, VALS(x411_RequestedDeliveryMethod_item_vals), 0,
10140         "x411.RequestedDeliveryMethod_item", HFILL }},
10141     { &hf_x411_ia5text,
10142       { "ia5text", "x411.ia5text",
10143         FT_STRING, BASE_NONE, NULL, 0,
10144         "x411.IA5String", HFILL }},
10145     { &hf_x411_octets,
10146       { "octets", "x411.octets",
10147         FT_BYTES, BASE_NONE, NULL, 0,
10148         "x411.OCTET_STRING", HFILL }},
10149     { &hf_x411_RedirectionHistory_item,
10150       { "Redirection", "x411.Redirection",
10151         FT_NONE, BASE_NONE, NULL, 0,
10152         "x411.Redirection", HFILL }},
10153     { &hf_x411_intended_recipient_name,
10154       { "intended-recipient-name", "x411.intended_recipient_name",
10155         FT_NONE, BASE_NONE, NULL, 0,
10156         "x411.IntendedRecipientName", HFILL }},
10157     { &hf_x411_redirection_reason,
10158       { "redirection-reason", "x411.redirection_reason",
10159         FT_UINT32, BASE_DEC, VALS(x411_RedirectionReason_vals), 0,
10160         "x411.RedirectionReason", HFILL }},
10161     { &hf_x411_intended_recipient,
10162       { "intended-recipient", "x411.intended_recipient",
10163         FT_NONE, BASE_NONE, NULL, 0,
10164         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
10165     { &hf_x411_redirection_time,
10166       { "redirection-time", "x411.redirection_time",
10167         FT_STRING, BASE_NONE, NULL, 0,
10168         "x411.Time", HFILL }},
10169     { &hf_x411_DLExpansionHistory_item,
10170       { "DLExpansion", "x411.DLExpansion",
10171         FT_NONE, BASE_NONE, NULL, 0,
10172         "x411.DLExpansion", HFILL }},
10173     { &hf_x411_dl,
10174       { "dl", "x411.dl",
10175         FT_NONE, BASE_NONE, NULL, 0,
10176         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
10177     { &hf_x411_dl_expansion_time,
10178       { "dl-expansion-time", "x411.dl_expansion_time",
10179         FT_STRING, BASE_NONE, NULL, 0,
10180         "x411.Time", HFILL }},
10181     { &hf_x411_OriginatorAndDLExpansionHistory_item,
10182       { "OriginatorAndDLExpansion", "x411.OriginatorAndDLExpansion",
10183         FT_NONE, BASE_NONE, NULL, 0,
10184         "x411.OriginatorAndDLExpansion", HFILL }},
10185     { &hf_x411_originator_or_dl_name,
10186       { "originator-or-dl-name", "x411.originator_or_dl_name",
10187         FT_NONE, BASE_NONE, NULL, 0,
10188         "x411.ORAddressAndOptionalDirectoryName", HFILL }},
10189     { &hf_x411_origination_or_expansion_time,
10190       { "origination-or-expansion-time", "x411.origination_or_expansion_time",
10191         FT_STRING, BASE_NONE, NULL, 0,
10192         "x411.Time", HFILL }},
10193     { &hf_x411_report_type,
10194       { "report-type", "x411.report_type",
10195         FT_UINT32, BASE_DEC, VALS(x411_T_report_type_vals), 0,
10196         "x411.T_report_type", HFILL }},
10197     { &hf_x411_report_type_delivery,
10198       { "delivery", "x411.delivery",
10199         FT_NONE, BASE_NONE, NULL, 0,
10200         "x411.PerRecipientDeliveryReportFields", HFILL }},
10201     { &hf_x411_non_delivery_report,
10202       { "non-delivery", "x411.non_delivery",
10203         FT_NONE, BASE_NONE, NULL, 0,
10204         "x411.PerRecipientNonDeliveryReportFields", HFILL }},
10205     { &hf_x411_domain_01,
10206       { "domain", "x411.domain",
10207         FT_NONE, BASE_NONE, NULL, 0,
10208         "x411.GlobalDomainIdentifier", HFILL }},
10209     { &hf_x411_mta_directory_name,
10210       { "mta-directory-name", "x411.mta_directory_name",
10211         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10212         "x509if.Name", HFILL }},
10213     { &hf_x411_ExtendedCertificates_item,
10214       { "ExtendedCertificate", "x411.ExtendedCertificate",
10215         FT_UINT32, BASE_DEC, VALS(x411_ExtendedCertificate_vals), 0,
10216         "x411.ExtendedCertificate", HFILL }},
10217     { &hf_x411_directory_entry,
10218       { "directory-entry", "x411.directory_entry",
10219         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10220         "x509if.Name", HFILL }},
10221     { &hf_x411_DLExemptedRecipients_item,
10222       { "ORAddressAndOrDirectoryName", "x411.ORAddressAndOrDirectoryName",
10223         FT_NONE, BASE_NONE, NULL, 0,
10224         "x411.ORAddressAndOrDirectoryName", HFILL }},
10225     { &hf_x411_encryption_recipient,
10226       { "encryption-recipient", "x411.encryption_recipient",
10227         FT_NONE, BASE_NONE, NULL, 0,
10228         "x509ce.CertificateAssertion", HFILL }},
10229     { &hf_x411_encryption_originator,
10230       { "encryption-originator", "x411.encryption_originator",
10231         FT_NONE, BASE_NONE, NULL, 0,
10232         "x509ce.CertificateAssertion", HFILL }},
10233     { &hf_x411_selectors_content_integrity_check,
10234       { "content-integrity-check", "x411.content_integrity_check",
10235         FT_NONE, BASE_NONE, NULL, 0,
10236         "x509ce.CertificateAssertion", HFILL }},
10237     { &hf_x411_token_signature,
10238       { "token-signature", "x411.token_signature",
10239         FT_NONE, BASE_NONE, NULL, 0,
10240         "x509ce.CertificateAssertion", HFILL }},
10241     { &hf_x411_message_origin_authentication,
10242       { "message-origin-authentication", "x411.message_origin_authentication",
10243         FT_NONE, BASE_NONE, NULL, 0,
10244         "x509ce.CertificateAssertion", HFILL }},
10245     { &hf_x411_local_identifier,
10246       { "local-identifier", "x411.local_identifier",
10247         FT_STRING, BASE_NONE, NULL, 0,
10248         "x411.LocalIdentifier", HFILL }},
10249     { &hf_x411_numeric_private_domain_identifier,
10250       { "numeric", "x411.numeric",
10251         FT_STRING, BASE_NONE, NULL, 0,
10252         "x411.T_numeric_private_domain_identifier", HFILL }},
10253     { &hf_x411_printable_private_domain_identifier,
10254       { "printable", "x411.printable",
10255         FT_STRING, BASE_NONE, NULL, 0,
10256         "x411.T_printable_private_domain_identifier", HFILL }},
10257     { &hf_x411_built_in_standard_attributes,
10258       { "built-in-standard-attributes", "x411.built_in_standard_attributes",
10259         FT_NONE, BASE_NONE, NULL, 0,
10260         "x411.BuiltInStandardAttributes", HFILL }},
10261     { &hf_x411_built_in_domain_defined_attributes,
10262       { "built-in-domain-defined-attributes", "x411.built_in_domain_defined_attributes",
10263         FT_UINT32, BASE_DEC, NULL, 0,
10264         "x411.BuiltInDomainDefinedAttributes", HFILL }},
10265     { &hf_x411_extension_attributes,
10266       { "extension-attributes", "x411.extension_attributes",
10267         FT_UINT32, BASE_DEC, NULL, 0,
10268         "x411.ExtensionAttributes", HFILL }},
10269     { &hf_x411_network_address,
10270       { "network-address", "x411.network_address",
10271         FT_STRING, BASE_NONE, NULL, 0,
10272         "x411.NetworkAddress", HFILL }},
10273     { &hf_x411_terminal_identifier,
10274       { "terminal-identifier", "x411.terminal_identifier",
10275         FT_STRING, BASE_NONE, NULL, 0,
10276         "x411.TerminalIdentifier", HFILL }},
10277     { &hf_x411_private_domain_name,
10278       { "private-domain-name", "x411.private_domain_name",
10279         FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainName_vals), 0,
10280         "x411.PrivateDomainName", HFILL }},
10281     { &hf_x411_organization_name,
10282       { "organization-name", "x411.organization_name",
10283         FT_STRING, BASE_NONE, NULL, 0,
10284         "x411.OrganizationName", HFILL }},
10285     { &hf_x411_numeric_user_identifier,
10286       { "numeric-user-identifier", "x411.numeric_user_identifier",
10287         FT_STRING, BASE_NONE, NULL, 0,
10288         "x411.NumericUserIdentifier", HFILL }},
10289     { &hf_x411_personal_name,
10290       { "personal-name", "x411.personal_name",
10291         FT_NONE, BASE_NONE, NULL, 0,
10292         "x411.PersonalName", HFILL }},
10293     { &hf_x411_organizational_unit_names,
10294       { "organizational-unit-names", "x411.organizational_unit_names",
10295         FT_UINT32, BASE_DEC, NULL, 0,
10296         "x411.OrganizationalUnitNames", HFILL }},
10297     { &hf_x411_x121_dcc_code,
10298       { "x121-dcc-code", "x411.x121_dcc_code",
10299         FT_STRING, BASE_NONE, NULL, 0,
10300         "x411.T_x121_dcc_code", HFILL }},
10301     { &hf_x411_iso_3166_alpha2_code,
10302       { "iso-3166-alpha2-code", "x411.iso_3166_alpha2_code",
10303         FT_STRING, BASE_NONE, NULL, 0,
10304         "x411.T_iso_3166_alpha2_code", HFILL }},
10305     { &hf_x411_numeric,
10306       { "numeric", "x411.numeric",
10307         FT_STRING, BASE_NONE, NULL, 0,
10308         "x411.T_numeric", HFILL }},
10309     { &hf_x411_printable,
10310       { "printable", "x411.printable",
10311         FT_STRING, BASE_NONE, NULL, 0,
10312         "x411.T_printable", HFILL }},
10313     { &hf_x411_numeric_private_domain_name,
10314       { "numeric", "x411.numeric",
10315         FT_STRING, BASE_NONE, NULL, 0,
10316         "x411.T_numeric_private_domain_name", HFILL }},
10317     { &hf_x411_printable_private_domain_name,
10318       { "printable", "x411.printable",
10319         FT_STRING, BASE_NONE, NULL, 0,
10320         "x411.T_printable_private_domain_name", HFILL }},
10321     { &hf_x411_printable_surname,
10322       { "surname", "x411.surname",
10323         FT_STRING, BASE_NONE, NULL, 0,
10324         "x411.T_printable_surname", HFILL }},
10325     { &hf_x411_printable_given_name,
10326       { "given-name", "x411.given_name",
10327         FT_STRING, BASE_NONE, NULL, 0,
10328         "x411.T_printable_given_name", HFILL }},
10329     { &hf_x411_printable_initials,
10330       { "initials", "x411.initials",
10331         FT_STRING, BASE_NONE, NULL, 0,
10332         "x411.T_printable_initials", HFILL }},
10333     { &hf_x411_printable_generation_qualifier,
10334       { "generation-qualifier", "x411.generation_qualifier",
10335         FT_STRING, BASE_NONE, NULL, 0,
10336         "x411.T_printable_generation_qualifier", HFILL }},
10337     { &hf_x411_OrganizationalUnitNames_item,
10338       { "OrganizationalUnitName", "x411.OrganizationalUnitName",
10339         FT_STRING, BASE_NONE, NULL, 0,
10340         "x411.OrganizationalUnitName", HFILL }},
10341     { &hf_x411_BuiltInDomainDefinedAttributes_item,
10342       { "BuiltInDomainDefinedAttribute", "x411.BuiltInDomainDefinedAttribute",
10343         FT_NONE, BASE_NONE, NULL, 0,
10344         "x411.BuiltInDomainDefinedAttribute", HFILL }},
10345     { &hf_x411_printable_type,
10346       { "type", "x411.type",
10347         FT_STRING, BASE_NONE, NULL, 0,
10348         "x411.T_printable_type", HFILL }},
10349     { &hf_x411_printable_value,
10350       { "value", "x411.value",
10351         FT_STRING, BASE_NONE, NULL, 0,
10352         "x411.T_printable_value", HFILL }},
10353     { &hf_x411_ExtensionAttributes_item,
10354       { "ExtensionAttribute", "x411.ExtensionAttribute",
10355         FT_NONE, BASE_NONE, NULL, 0,
10356         "x411.ExtensionAttribute", HFILL }},
10357     { &hf_x411_extension_attribute_type,
10358       { "extension-attribute-type", "x411.extension_attribute_type",
10359         FT_INT32, BASE_DEC, VALS(x411_ExtensionAttributeType_vals), 0,
10360         "x411.ExtensionAttributeType", HFILL }},
10361     { &hf_x411_extension_attribute_value,
10362       { "extension-attribute-value", "x411.extension_attribute_value",
10363         FT_NONE, BASE_NONE, NULL, 0,
10364         "x411.T_extension_attribute_value", HFILL }},
10365     { &hf_x411_teletex_surname,
10366       { "surname", "x411.surname",
10367         FT_STRING, BASE_NONE, NULL, 0,
10368         "x411.T_teletex_surname", HFILL }},
10369     { &hf_x411_teletex_given_name,
10370       { "given-name", "x411.given_name",
10371         FT_STRING, BASE_NONE, NULL, 0,
10372         "x411.T_teletex_given_name", HFILL }},
10373     { &hf_x411_teletex_initials,
10374       { "initials", "x411.initials",
10375         FT_STRING, BASE_NONE, NULL, 0,
10376         "x411.T_teletex_initials", HFILL }},
10377     { &hf_x411_teletex_generation_qualifier,
10378       { "generation-qualifier", "x411.generation_qualifier",
10379         FT_STRING, BASE_NONE, NULL, 0,
10380         "x411.T_teletex_generation_qualifier", HFILL }},
10381     { &hf_x411_universal_surname,
10382       { "surname", "x411.surname",
10383         FT_NONE, BASE_NONE, NULL, 0,
10384         "x411.UniversalOrBMPString", HFILL }},
10385     { &hf_x411_universal_given_name,
10386       { "given-name", "x411.given_name",
10387         FT_NONE, BASE_NONE, NULL, 0,
10388         "x411.UniversalOrBMPString", HFILL }},
10389     { &hf_x411_universal_initials,
10390       { "initials", "x411.initials",
10391         FT_NONE, BASE_NONE, NULL, 0,
10392         "x411.UniversalOrBMPString", HFILL }},
10393     { &hf_x411_universal_generation_qualifier,
10394       { "generation-qualifier", "x411.generation_qualifier",
10395         FT_NONE, BASE_NONE, NULL, 0,
10396         "x411.UniversalOrBMPString", HFILL }},
10397     { &hf_x411_TeletexOrganizationalUnitNames_item,
10398       { "TeletexOrganizationalUnitName", "x411.TeletexOrganizationalUnitName",
10399         FT_STRING, BASE_NONE, NULL, 0,
10400         "x411.TeletexOrganizationalUnitName", HFILL }},
10401     { &hf_x411_UniversalOrganizationalUnitNames_item,
10402       { "UniversalOrganizationalUnitName", "x411.UniversalOrganizationalUnitName",
10403         FT_NONE, BASE_NONE, NULL, 0,
10404         "x411.UniversalOrganizationalUnitName", HFILL }},
10405     { &hf_x411_character_encoding,
10406       { "character-encoding", "x411.character_encoding",
10407         FT_UINT32, BASE_DEC, VALS(x411_T_character_encoding_vals), 0,
10408         "x411.T_character_encoding", HFILL }},
10409     { &hf_x411_two_octets,
10410       { "two-octets", "x411.two_octets",
10411         FT_STRING, BASE_NONE, NULL, 0,
10412         "x411.BMPString_SIZE_1_ub_string_length", HFILL }},
10413     { &hf_x411_four_octets,
10414       { "four-octets", "x411.four_octets",
10415         FT_STRING, BASE_NONE, NULL, 0,
10416         "x411.UniversalString_SIZE_1_ub_string_length", HFILL }},
10417     { &hf_x411_iso_639_language_code,
10418       { "iso-639-language-code", "x411.iso_639_language_code",
10419         FT_STRING, BASE_NONE, NULL, 0,
10420         "x411.PrintableString_SIZE_CONSTR32534896", HFILL }},
10421     { &hf_x411_x121_dcc_code_01,
10422       { "x121-dcc-code", "x411.x121_dcc_code",
10423         FT_STRING, BASE_NONE, NULL, 0,
10424         "x411.T_x121_dcc_code_01", HFILL }},
10425     { &hf_x411_iso_3166_alpha2_code_01,
10426       { "iso-3166-alpha2-code", "x411.iso_3166_alpha2_code",
10427         FT_STRING, BASE_NONE, NULL, 0,
10428         "x411.T_iso_3166_alpha2_code_01", HFILL }},
10429     { &hf_x411_numeric_code,
10430       { "numeric-code", "x411.numeric_code",
10431         FT_STRING, BASE_NONE, NULL, 0,
10432         "x411.T_numeric_code", HFILL }},
10433     { &hf_x411_printable_code,
10434       { "printable-code", "x411.printable_code",
10435         FT_STRING, BASE_NONE, NULL, 0,
10436         "x411.PrintableString_SIZE_1_ub_postal_code_length", HFILL }},
10437     { &hf_x411_printable_address,
10438       { "printable-address", "x411.printable_address",
10439         FT_UINT32, BASE_DEC, NULL, 0,
10440         "x411.T_printable_address", HFILL }},
10441     { &hf_x411_printable_address_item,
10442       { "printable-address item", "x411.printable_address_item",
10443         FT_STRING, BASE_NONE, NULL, 0,
10444         "x411.PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10445     { &hf_x411_teletex_string,
10446       { "teletex-string", "x411.teletex_string",
10447         FT_STRING, BASE_NONE, NULL, 0,
10448         "x411.TeletexString_SIZE_1_ub_unformatted_address_length", HFILL }},
10449     { &hf_x411_printable_string,
10450       { "printable-string", "x411.printable_string",
10451         FT_STRING, BASE_NONE, NULL, 0,
10452         "x411.PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10453     { &hf_x411_pds_teletex_string,
10454       { "teletex-string", "x411.teletex_string",
10455         FT_STRING, BASE_NONE, NULL, 0,
10456         "x411.TeletexString_SIZE_1_ub_pds_parameter_length", HFILL }},
10457     { &hf_x411_e163_4_address,
10458       { "e163-4-address", "x411.e163_4_address",
10459         FT_NONE, BASE_NONE, NULL, 0,
10460         "x411.T_e163_4_address", HFILL }},
10461     { &hf_x411_number,
10462       { "number", "x411.number",
10463         FT_STRING, BASE_NONE, NULL, 0,
10464         "x411.NumericString_SIZE_1_ub_e163_4_number_length", HFILL }},
10465     { &hf_x411_sub_address,
10466       { "sub-address", "x411.sub_address",
10467         FT_STRING, BASE_NONE, NULL, 0,
10468         "x411.NumericString_SIZE_1_ub_e163_4_sub_address_length", HFILL }},
10469     { &hf_x411_psap_address,
10470       { "psap-address", "x411.psap_address",
10471         FT_NONE, BASE_NONE, NULL, 0,
10472         "x509sat.PresentationAddress", HFILL }},
10473     { &hf_x411_TeletexDomainDefinedAttributes_item,
10474       { "TeletexDomainDefinedAttribute", "x411.TeletexDomainDefinedAttribute",
10475         FT_NONE, BASE_NONE, NULL, 0,
10476         "x411.TeletexDomainDefinedAttribute", HFILL }},
10477     { &hf_x411_type,
10478       { "type", "x411.type",
10479         FT_STRING, BASE_NONE, NULL, 0,
10480         "x411.T_type", HFILL }},
10481     { &hf_x411_teletex_value,
10482       { "value", "x411.value",
10483         FT_STRING, BASE_NONE, NULL, 0,
10484         "x411.T_teletex_value", HFILL }},
10485     { &hf_x411_UniversalDomainDefinedAttributes_item,
10486       { "UniversalDomainDefinedAttribute", "x411.UniversalDomainDefinedAttribute",
10487         FT_NONE, BASE_NONE, NULL, 0,
10488         "x411.UniversalDomainDefinedAttribute", HFILL }},
10489     { &hf_x411_universal_type,
10490       { "type", "x411.type",
10491         FT_NONE, BASE_NONE, NULL, 0,
10492         "x411.UniversalOrBMPString", HFILL }},
10493     { &hf_x411_universal_value,
10494       { "value", "x411.value",
10495         FT_NONE, BASE_NONE, NULL, 0,
10496         "x411.UniversalOrBMPString", HFILL }},
10497     { &hf_x411_ExtendedEncodedInformationTypes_item,
10498       { "ExtendedEncodedInformationType", "x411.ExtendedEncodedInformationType",
10499         FT_OID, BASE_NONE, NULL, 0,
10500         "x411.ExtendedEncodedInformationType", HFILL }},
10501     { &hf_x411_g3_facsimile,
10502       { "g3-facsimile", "x411.g3_facsimile",
10503         FT_BYTES, BASE_NONE, NULL, 0,
10504         "x411.G3FacsimileNonBasicParameters", HFILL }},
10505     { &hf_x411_teletex,
10506       { "teletex", "x411.teletex",
10507         FT_NONE, BASE_NONE, NULL, 0,
10508         "x411.TeletexNonBasicParameters", HFILL }},
10509     { &hf_x411_graphic_character_sets,
10510       { "graphic-character-sets", "x411.graphic_character_sets",
10511         FT_STRING, BASE_NONE, NULL, 0,
10512         "x411.TeletexString", HFILL }},
10513     { &hf_x411_control_character_sets,
10514       { "control-character-sets", "x411.control_character_sets",
10515         FT_STRING, BASE_NONE, NULL, 0,
10516         "x411.TeletexString", HFILL }},
10517     { &hf_x411_page_formats,
10518       { "page-formats", "x411.page_formats",
10519         FT_BYTES, BASE_NONE, NULL, 0,
10520         "x411.OCTET_STRING", HFILL }},
10521     { &hf_x411_miscellaneous_terminal_capabilities,
10522       { "miscellaneous-terminal-capabilities", "x411.miscellaneous_terminal_capabilities",
10523         FT_STRING, BASE_NONE, NULL, 0,
10524         "x411.TeletexString", HFILL }},
10525     { &hf_x411_private_use,
10526       { "private-use", "x411.private_use",
10527         FT_BYTES, BASE_NONE, NULL, 0,
10528         "x411.OCTET_STRING", HFILL }},
10529     { &hf_x411_token_type_identifier,
10530       { "token-type-identifier", "x411.token_type_identifier",
10531         FT_OID, BASE_NONE, NULL, 0,
10532         "x411.TokenTypeIdentifier", HFILL }},
10533     { &hf_x411_token,
10534       { "token", "x411.token",
10535         FT_NONE, BASE_NONE, NULL, 0,
10536         "x411.TokenTypeData", HFILL }},
10537     { &hf_x411_signature_algorithm_identifier,
10538       { "signature-algorithm-identifier", "x411.signature_algorithm_identifier",
10539         FT_NONE, BASE_NONE, NULL, 0,
10540         "x509af.AlgorithmIdentifier", HFILL }},
10541     { &hf_x411_name,
10542       { "name", "x411.name",
10543         FT_UINT32, BASE_DEC, VALS(x411_T_name_vals), 0,
10544         "x411.T_name", HFILL }},
10545     { &hf_x411_token_recipient_name,
10546       { "recipient-name", "x411.recipient_name",
10547         FT_NONE, BASE_NONE, NULL, 0,
10548         "x411.RecipientName", HFILL }},
10549     { &hf_x411_token_mta,
10550       { "mta", "x411.mta",
10551         FT_NONE, BASE_NONE, NULL, 0,
10552         "x411.MTANameAndOptionalGDI", HFILL }},
10553     { &hf_x411_time,
10554       { "time", "x411.time",
10555         FT_STRING, BASE_NONE, NULL, 0,
10556         "x411.Time", HFILL }},
10557     { &hf_x411_signed_data,
10558       { "signed-data", "x411.signed_data",
10559         FT_NONE, BASE_NONE, NULL, 0,
10560         "x411.TokenData", HFILL }},
10561     { &hf_x411_encryption_algorithm_identifier,
10562       { "encryption-algorithm-identifier", "x411.encryption_algorithm_identifier",
10563         FT_NONE, BASE_NONE, NULL, 0,
10564         "x509af.AlgorithmIdentifier", HFILL }},
10565     { &hf_x411_encrypted_data,
10566       { "encrypted-data", "x411.encrypted_data",
10567         FT_BYTES, BASE_NONE, NULL, 0,
10568         "x411.BIT_STRING", HFILL }},
10569     { &hf_x411_asymmetric_token_data,
10570       { "asymmetric-token-data", "x411.asymmetric_token_data",
10571         FT_NONE, BASE_NONE, NULL, 0,
10572         "x411.AsymmetricTokenData", HFILL }},
10573     { &hf_x411_algorithm_identifier,
10574       { "algorithm-identifier", "x411.algorithm_identifier",
10575         FT_NONE, BASE_NONE, NULL, 0,
10576         "x509af.AlgorithmIdentifier", HFILL }},
10577     { &hf_x411_token_data_type,
10578       { "type", "x411.type",
10579         FT_INT32, BASE_DEC, VALS(x411_TokenDataType_vals), 0,
10580         "x411.TokenDataType", HFILL }},
10581     { &hf_x411_value,
10582       { "value", "x411.value",
10583         FT_NONE, BASE_NONE, NULL, 0,
10584         "x411.T_value", HFILL }},
10585     { &hf_x411_content_confidentiality_algorithm_identifier,
10586       { "content-confidentiality-algorithm-identifier", "x411.content_confidentiality_algorithm_identifier",
10587         FT_NONE, BASE_NONE, NULL, 0,
10588         "x411.ContentConfidentialityAlgorithmIdentifier", HFILL }},
10589     { &hf_x411_content_integrity_check,
10590       { "content-integrity-check", "x411.content_integrity_check",
10591         FT_NONE, BASE_NONE, NULL, 0,
10592         "x411.ContentIntegrityCheck", HFILL }},
10593     { &hf_x411_message_security_label,
10594       { "message-security-label", "x411.message_security_label",
10595         FT_NONE, BASE_NONE, NULL, 0,
10596         "x411.MessageSecurityLabel", HFILL }},
10597     { &hf_x411_proof_of_delivery_request,
10598       { "proof-of-delivery-request", "x411.proof_of_delivery_request",
10599         FT_UINT32, BASE_DEC, VALS(x411_ProofOfDeliveryRequest_vals), 0,
10600         "x411.ProofOfDeliveryRequest", HFILL }},
10601     { &hf_x411_message_sequence_number,
10602       { "message-sequence-number", "x411.message_sequence_number",
10603         FT_INT32, BASE_DEC, NULL, 0,
10604         "x411.INTEGER", HFILL }},
10605     { &hf_x411_content_confidentiality_key,
10606       { "content-confidentiality-key", "x411.content_confidentiality_key",
10607         FT_BYTES, BASE_NONE, NULL, 0,
10608         "x411.EncryptionKey", HFILL }},
10609     { &hf_x411_content_integrity_key,
10610       { "content-integrity-key", "x411.content_integrity_key",
10611         FT_BYTES, BASE_NONE, NULL, 0,
10612         "x411.EncryptionKey", HFILL }},
10613     { &hf_x411_security_policy_identifier,
10614       { "security-policy-identifier", "x411.security_policy_identifier",
10615         FT_OID, BASE_NONE, NULL, 0,
10616         "x411.SecurityPolicyIdentifier", HFILL }},
10617     { &hf_x411_security_classification,
10618       { "security-classification", "x411.security_classification",
10619         FT_UINT32, BASE_DEC, VALS(x411_SecurityClassification_vals), 0,
10620         "x411.SecurityClassification", HFILL }},
10621     { &hf_x411_privacy_mark,
10622       { "privacy-mark", "x411.privacy_mark",
10623         FT_STRING, BASE_NONE, NULL, 0,
10624         "x411.PrivacyMark", HFILL }},
10625     { &hf_x411_security_categories,
10626       { "security-categories", "x411.security_categories",
10627         FT_UINT32, BASE_DEC, NULL, 0,
10628         "x411.SecurityCategories", HFILL }},
10629     { &hf_x411_SecurityCategories_item,
10630       { "SecurityCategory", "x411.SecurityCategory",
10631         FT_NONE, BASE_NONE, NULL, 0,
10632         "x411.SecurityCategory", HFILL }},
10633     { &hf_x411_category_type,
10634       { "type", "x411.type",
10635         FT_OID, BASE_NONE, NULL, 0,
10636         "x411.SecurityCategoryIdentifier", HFILL }},
10637     { &hf_x411_category_value,
10638       { "value", "x411.value",
10639         FT_NONE, BASE_NONE, NULL, 0,
10640         "x411.CategoryValue", HFILL }},
10641     { &hf_x411_rtorq_apdu,
10642       { "rtorq-apdu", "x411.rtorq_apdu",
10643         FT_NONE, BASE_NONE, NULL, 0,
10644         "rtse.RTORQapdu", HFILL }},
10645     { &hf_x411_rtoac_apdu,
10646       { "rtoac-apdu", "x411.rtoac_apdu",
10647         FT_NONE, BASE_NONE, NULL, 0,
10648         "rtse.RTOACapdu", HFILL }},
10649     { &hf_x411_rtorj_apdu,
10650       { "rtorj-apdu", "x411.rtorj_apdu",
10651         FT_NONE, BASE_NONE, NULL, 0,
10652         "rtse.RTORJapdu", HFILL }},
10653     { &hf_x411_rttp_apdu,
10654       { "rttp-apdu", "x411.rttp_apdu",
10655         FT_INT32, BASE_DEC, NULL, 0,
10656         "x411.RTTPapdu", HFILL }},
10657     { &hf_x411_rttr_apdu,
10658       { "rttr-apdu", "x411.rttr_apdu",
10659         FT_BYTES, BASE_NONE, NULL, 0,
10660         "x411.RTTRapdu", HFILL }},
10661     { &hf_x411_rtab_apdu,
10662       { "rtab-apdu", "x411.rtab_apdu",
10663         FT_NONE, BASE_NONE, NULL, 0,
10664         "x411.RTABapdu", HFILL }},
10665     { &hf_x411_abortReason,
10666       { "abortReason", "x411.abortReason",
10667         FT_INT32, BASE_DEC, VALS(x411_AbortReason_vals), 0,
10668         "x411.AbortReason", HFILL }},
10669     { &hf_x411_reflectedParameter,
10670       { "reflectedParameter", "x411.reflectedParameter",
10671         FT_BYTES, BASE_NONE, NULL, 0,
10672         "x411.BIT_STRING", HFILL }},
10673     { &hf_x411_userdataAB,
10674       { "userdataAB", "x411.userdataAB",
10675         FT_OID, BASE_NONE, NULL, 0,
10676         "x411.OBJECT_IDENTIFIER", HFILL }},
10677     { &hf_x411_mta_originator_name,
10678       { "originator-name", "x411.originator_name",
10679         FT_NONE, BASE_NONE, NULL, 0,
10680         "x411.MTAOriginatorName", HFILL }},
10681     { &hf_x411_per_recipient_message_fields,
10682       { "per-recipient-fields", "x411.per_recipient_fields",
10683         FT_UINT32, BASE_DEC, NULL, 0,
10684         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields", HFILL }},
10685     { &hf_x411_per_recipient_message_fields_item,
10686       { "PerRecipientMessageTransferFields", "x411.PerRecipientMessageTransferFields",
10687         FT_NONE, BASE_NONE, NULL, 0,
10688         "x411.PerRecipientMessageTransferFields", HFILL }},
10689     { &hf_x411_per_recipient_probe_transfer_fields,
10690       { "per-recipient-fields", "x411.per_recipient_fields",
10691         FT_UINT32, BASE_DEC, NULL, 0,
10692         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields", HFILL }},
10693     { &hf_x411_per_recipient_probe_transfer_fields_item,
10694       { "PerRecipientProbeTransferFields", "x411.PerRecipientProbeTransferFields",
10695         FT_NONE, BASE_NONE, NULL, 0,
10696         "x411.PerRecipientProbeTransferFields", HFILL }},
10697     { &hf_x411_per_recipient_report_fields,
10698       { "per-recipient-fields", "x411.per_recipient_fields",
10699         FT_UINT32, BASE_DEC, NULL, 0,
10700         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields", HFILL }},
10701     { &hf_x411_per_recipient_report_fields_item,
10702       { "PerRecipientReportTransferFields", "x411.PerRecipientReportTransferFields",
10703         FT_NONE, BASE_NONE, NULL, 0,
10704         "x411.PerRecipientReportTransferFields", HFILL }},
10705     { &hf_x411_routing_action,
10706       { "routing-action", "x411.routing_action",
10707         FT_UINT32, BASE_DEC, VALS(x411_RoutingAction_vals), 0,
10708         "x411.RoutingAction", HFILL }},
10709     { &hf_x411_attempted,
10710       { "attempted", "x411.attempted",
10711         FT_UINT32, BASE_DEC, VALS(x411_T_attempted_vals), 0,
10712         "x411.T_attempted", HFILL }},
10713     { &hf_x411_mta,
10714       { "mta", "x411.mta",
10715         FT_STRING, BASE_NONE, NULL, 0,
10716         "x411.MTAName", HFILL }},
10717     { &hf_x411_attempted_domain,
10718       { "attempted-domain", "x411.attempted_domain",
10719         FT_NONE, BASE_NONE, NULL, 0,
10720         "x411.GlobalDomainIdentifier", HFILL }},
10721     { &hf_x411_per_recipient_report_delivery_fields,
10722       { "per-recipient-fields", "x411.per_recipient_fields",
10723         FT_UINT32, BASE_DEC, NULL, 0,
10724         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields", HFILL }},
10725     { &hf_x411_per_recipient_report_delivery_fields_item,
10726       { "PerRecipientReportDeliveryFields", "x411.PerRecipientReportDeliveryFields",
10727         FT_NONE, BASE_NONE, NULL, 0,
10728         "x411.PerRecipientReportDeliveryFields", HFILL }},
10729     { &hf_x411_mts_originator_name,
10730       { "originator-name", "x411.originator_name",
10731         FT_NONE, BASE_NONE, NULL, 0,
10732         "x411.OriginatorName", HFILL }},
10733     { &hf_x411_per_recipient_message_submission_fields,
10734       { "per-recipient-fields", "x411.per_recipient_fields",
10735         FT_UINT32, BASE_DEC, NULL, 0,
10736         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields", HFILL }},
10737     { &hf_x411_per_recipient_message_submission_fields_item,
10738       { "PerRecipientMessageSubmissionFields", "x411.PerRecipientMessageSubmissionFields",
10739         FT_NONE, BASE_NONE, NULL, 0,
10740         "x411.PerRecipientMessageSubmissionFields", HFILL }},
10741     { &hf_x411_per_recipient_probe_submission_fields,
10742       { "per-recipient-fields", "x411.per_recipient_fields",
10743         FT_UINT32, BASE_DEC, NULL, 0,
10744         "x411.SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields", HFILL }},
10745     { &hf_x411_per_recipient_probe_submission_fields_item,
10746       { "PerRecipientProbeSubmissionFields", "x411.PerRecipientProbeSubmissionFields",
10747         FT_NONE, BASE_NONE, NULL, 0,
10748         "x411.PerRecipientProbeSubmissionFields", HFILL }},
10749     { &hf_x411_directory_name,
10750       { "directory-name", "x411.directory_name",
10751         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10752         "x509if.Name", HFILL }},
10753     { &hf_x411_built_in_encoded_information_types,
10754       { "built-in-encoded-information-types", "x411.built_in_encoded_information_types",
10755         FT_BYTES, BASE_NONE, NULL, 0,
10756         "x411.BuiltInEncodedInformationTypes", HFILL }},
10757     { &hf_x411_extended_encoded_information_types,
10758       { "extended-encoded-information-types", "x411.extended_encoded_information_types",
10759         FT_UINT32, BASE_DEC, NULL, 0,
10760         "x411.ExtendedEncodedInformationTypes", HFILL }},
10761     { &hf_x411_PerRecipientIndicators_responsibility,
10762       { "responsibility", "x411.responsibility",
10763         FT_BOOLEAN, 8, NULL, 0x80,
10764         NULL, HFILL }},
10765     { &hf_x411_PerRecipientIndicators_originating_MTA_report,
10766       { "originating-MTA-report", "x411.originating-MTA-report",
10767         FT_BOOLEAN, 8, NULL, 0x40,
10768         NULL, HFILL }},
10769     { &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report,
10770       { "originating-MTA-non-delivery-report", "x411.originating-MTA-non-delivery-report",
10771         FT_BOOLEAN, 8, NULL, 0x20,
10772         NULL, HFILL }},
10773     { &hf_x411_PerRecipientIndicators_originator_report,
10774       { "originator-report", "x411.originator-report",
10775         FT_BOOLEAN, 8, NULL, 0x10,
10776         NULL, HFILL }},
10777     { &hf_x411_PerRecipientIndicators_originator_non_delivery_report,
10778       { "originator-non-delivery-report", "x411.originator-non-delivery-report",
10779         FT_BOOLEAN, 8, NULL, 0x08,
10780         NULL, HFILL }},
10781     { &hf_x411_PerRecipientIndicators_reserved_5,
10782       { "reserved-5", "x411.reserved-5",
10783         FT_BOOLEAN, 8, NULL, 0x04,
10784         NULL, HFILL }},
10785     { &hf_x411_PerRecipientIndicators_reserved_6,
10786       { "reserved-6", "x411.reserved-6",
10787         FT_BOOLEAN, 8, NULL, 0x02,
10788         NULL, HFILL }},
10789     { &hf_x411_PerRecipientIndicators_reserved_7,
10790       { "reserved-7", "x411.reserved-7",
10791         FT_BOOLEAN, 8, NULL, 0x01,
10792         NULL, HFILL }},
10793     { &hf_x411_OtherActions_redirected,
10794       { "redirected", "x411.redirected",
10795         FT_BOOLEAN, 8, NULL, 0x80,
10796         NULL, HFILL }},
10797     { &hf_x411_OtherActions_dl_operation,
10798       { "dl-operation", "x411.dl-operation",
10799         FT_BOOLEAN, 8, NULL, 0x40,
10800         NULL, HFILL }},
10801     { &hf_x411_Operations_probe_submission_or_report_delivery,
10802       { "probe-submission-or-report-delivery", "x411.probe-submission-or-report-delivery",
10803         FT_BOOLEAN, 8, NULL, 0x80,
10804         NULL, HFILL }},
10805     { &hf_x411_Operations_message_submission_or_message_delivery,
10806       { "message-submission-or-message-delivery", "x411.message-submission-or-message-delivery",
10807         FT_BOOLEAN, 8, NULL, 0x40,
10808         NULL, HFILL }},
10809     { &hf_x411_WaitingMessages_long_content,
10810       { "long-content", "x411.long-content",
10811         FT_BOOLEAN, 8, NULL, 0x80,
10812         NULL, HFILL }},
10813     { &hf_x411_WaitingMessages_low_priority,
10814       { "low-priority", "x411.low-priority",
10815         FT_BOOLEAN, 8, NULL, 0x40,
10816         NULL, HFILL }},
10817     { &hf_x411_WaitingMessages_other_security_labels,
10818       { "other-security-labels", "x411.other-security-labels",
10819         FT_BOOLEAN, 8, NULL, 0x20,
10820         NULL, HFILL }},
10821     { &hf_x411_T_source_type_originated_by,
10822       { "originated-by", "x411.originated-by",
10823         FT_BOOLEAN, 8, NULL, 0x80,
10824         NULL, HFILL }},
10825     { &hf_x411_T_source_type_redirected_by,
10826       { "redirected-by", "x411.redirected-by",
10827         FT_BOOLEAN, 8, NULL, 0x40,
10828         NULL, HFILL }},
10829     { &hf_x411_T_source_type_dl_expanded_by,
10830       { "dl-expanded-by", "x411.dl-expanded-by",
10831         FT_BOOLEAN, 8, NULL, 0x20,
10832         NULL, HFILL }},
10833     { &hf_x411_T_standard_parameters_user_name,
10834       { "user-name", "x411.user-name",
10835         FT_BOOLEAN, 8, NULL, 0x80,
10836         NULL, HFILL }},
10837     { &hf_x411_T_standard_parameters_user_address,
10838       { "user-address", "x411.user-address",
10839         FT_BOOLEAN, 8, NULL, 0x40,
10840         NULL, HFILL }},
10841     { &hf_x411_T_standard_parameters_deliverable_class,
10842       { "deliverable-class", "x411.deliverable-class",
10843         FT_BOOLEAN, 8, NULL, 0x20,
10844         NULL, HFILL }},
10845     { &hf_x411_T_standard_parameters_default_delivery_controls,
10846       { "default-delivery-controls", "x411.default-delivery-controls",
10847         FT_BOOLEAN, 8, NULL, 0x10,
10848         NULL, HFILL }},
10849     { &hf_x411_T_standard_parameters_redirections,
10850       { "redirections", "x411.redirections",
10851         FT_BOOLEAN, 8, NULL, 0x08,
10852         NULL, HFILL }},
10853     { &hf_x411_T_standard_parameters_restricted_delivery,
10854       { "restricted-delivery", "x411.restricted-delivery",
10855         FT_BOOLEAN, 8, NULL, 0x04,
10856         NULL, HFILL }},
10857     { &hf_x411_PerMessageIndicators_U_disclosure_of_other_recipients,
10858       { "disclosure-of-other-recipients", "x411.disclosure-of-other-recipients",
10859         FT_BOOLEAN, 8, NULL, 0x80,
10860         NULL, HFILL }},
10861     { &hf_x411_PerMessageIndicators_U_implicit_conversion_prohibited,
10862       { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
10863         FT_BOOLEAN, 8, NULL, 0x40,
10864         NULL, HFILL }},
10865     { &hf_x411_PerMessageIndicators_U_alternate_recipient_allowed,
10866       { "alternate-recipient-allowed", "x411.alternate-recipient-allowed",
10867         FT_BOOLEAN, 8, NULL, 0x20,
10868         NULL, HFILL }},
10869     { &hf_x411_PerMessageIndicators_U_content_return_request,
10870       { "content-return-request", "x411.content-return-request",
10871         FT_BOOLEAN, 8, NULL, 0x10,
10872         NULL, HFILL }},
10873     { &hf_x411_PerMessageIndicators_U_reserved,
10874       { "reserved", "x411.reserved",
10875         FT_BOOLEAN, 8, NULL, 0x08,
10876         NULL, HFILL }},
10877     { &hf_x411_PerMessageIndicators_U_bit_5,
10878       { "bit-5", "x411.bit-5",
10879         FT_BOOLEAN, 8, NULL, 0x04,
10880         NULL, HFILL }},
10881     { &hf_x411_PerMessageIndicators_U_bit_6,
10882       { "bit-6", "x411.bit-6",
10883         FT_BOOLEAN, 8, NULL, 0x02,
10884         NULL, HFILL }},
10885     { &hf_x411_PerMessageIndicators_U_service_message,
10886       { "service-message", "x411.service-message",
10887         FT_BOOLEAN, 8, NULL, 0x01,
10888         NULL, HFILL }},
10889     { &hf_x411_OriginatorReportRequest_report,
10890       { "report", "x411.report",
10891         FT_BOOLEAN, 8, NULL, 0x10,
10892         NULL, HFILL }},
10893     { &hf_x411_OriginatorReportRequest_non_delivery_report,
10894       { "non-delivery-report", "x411.non-delivery-report",
10895         FT_BOOLEAN, 8, NULL, 0x08,
10896         NULL, HFILL }},
10897     { &hf_x411_DeliveryFlags_implicit_conversion_prohibited,
10898       { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
10899         FT_BOOLEAN, 8, NULL, 0x40,
10900         NULL, HFILL }},
10901     { &hf_x411_Criticality_for_submission,
10902       { "for-submission", "x411.for-submission",
10903         FT_BOOLEAN, 8, NULL, 0x80,
10904         NULL, HFILL }},
10905     { &hf_x411_Criticality_for_transfer,
10906       { "for-transfer", "x411.for-transfer",
10907         FT_BOOLEAN, 8, NULL, 0x40,
10908         NULL, HFILL }},
10909     { &hf_x411_Criticality_for_delivery,
10910       { "for-delivery", "x411.for-delivery",
10911         FT_BOOLEAN, 8, NULL, 0x20,
10912         NULL, HFILL }},
10913     { &hf_x411_PhysicalDeliveryModes_ordinary_mail,
10914       { "ordinary-mail", "x411.ordinary-mail",
10915         FT_BOOLEAN, 8, NULL, 0x80,
10916         NULL, HFILL }},
10917     { &hf_x411_PhysicalDeliveryModes_special_delivery,
10918       { "special-delivery", "x411.special-delivery",
10919         FT_BOOLEAN, 8, NULL, 0x40,
10920         NULL, HFILL }},
10921     { &hf_x411_PhysicalDeliveryModes_express_mail,
10922       { "express-mail", "x411.express-mail",
10923         FT_BOOLEAN, 8, NULL, 0x20,
10924         NULL, HFILL }},
10925     { &hf_x411_PhysicalDeliveryModes_counter_collection,
10926       { "counter-collection", "x411.counter-collection",
10927         FT_BOOLEAN, 8, NULL, 0x10,
10928         NULL, HFILL }},
10929     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
10930       { "counter-collection-with-telephone-advice", "x411.counter-collection-with-telephone-advice",
10931         FT_BOOLEAN, 8, NULL, 0x08,
10932         NULL, HFILL }},
10933     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice,
10934       { "counter-collection-with-telex-advice", "x411.counter-collection-with-telex-advice",
10935         FT_BOOLEAN, 8, NULL, 0x04,
10936         NULL, HFILL }},
10937     { &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
10938       { "counter-collection-with-teletex-advice", "x411.counter-collection-with-teletex-advice",
10939         FT_BOOLEAN, 8, NULL, 0x02,
10940         NULL, HFILL }},
10941     { &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery,
10942       { "bureau-fax-delivery", "x411.bureau-fax-delivery",
10943         FT_BOOLEAN, 8, NULL, 0x01,
10944         NULL, HFILL }},
10945     { &hf_x411_BuiltInEncodedInformationTypes_unknown,
10946       { "unknown", "x411.unknown",
10947         FT_BOOLEAN, 8, NULL, 0x80,
10948         NULL, HFILL }},
10949     { &hf_x411_BuiltInEncodedInformationTypes_ia5_text,
10950       { "ia5-text", "x411.ia5-text",
10951         FT_BOOLEAN, 8, NULL, 0x20,
10952         NULL, HFILL }},
10953     { &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile,
10954       { "g3-facsimile", "x411.g3-facsimile",
10955         FT_BOOLEAN, 8, NULL, 0x10,
10956         NULL, HFILL }},
10957     { &hf_x411_BuiltInEncodedInformationTypes_g4_class_1,
10958       { "g4-class-1", "x411.g4-class-1",
10959         FT_BOOLEAN, 8, NULL, 0x08,
10960         NULL, HFILL }},
10961     { &hf_x411_BuiltInEncodedInformationTypes_teletex,
10962       { "teletex", "x411.teletex",
10963         FT_BOOLEAN, 8, NULL, 0x04,
10964         NULL, HFILL }},
10965     { &hf_x411_BuiltInEncodedInformationTypes_videotex,
10966       { "videotex", "x411.videotex",
10967         FT_BOOLEAN, 8, NULL, 0x02,
10968         NULL, HFILL }},
10969     { &hf_x411_BuiltInEncodedInformationTypes_voice,
10970       { "voice", "x411.voice",
10971         FT_BOOLEAN, 8, NULL, 0x01,
10972         NULL, HFILL }},
10973     { &hf_x411_BuiltInEncodedInformationTypes_sfd,
10974       { "sfd", "x411.sfd",
10975         FT_BOOLEAN, 8, NULL, 0x80,
10976         NULL, HFILL }},
10977     { &hf_x411_BuiltInEncodedInformationTypes_mixed_mode,
10978       { "mixed-mode", "x411.mixed-mode",
10979         FT_BOOLEAN, 8, NULL, 0x40,
10980         NULL, HFILL }},
10981     { &hf_x411_G3FacsimileNonBasicParameters_two_dimensional,
10982       { "two-dimensional", "x411.two-dimensional",
10983         FT_BOOLEAN, 8, NULL, 0x80,
10984         NULL, HFILL }},
10985     { &hf_x411_G3FacsimileNonBasicParameters_fine_resolution,
10986       { "fine-resolution", "x411.fine-resolution",
10987         FT_BOOLEAN, 8, NULL, 0x40,
10988         NULL, HFILL }},
10989     { &hf_x411_G3FacsimileNonBasicParameters_unlimited_length,
10990       { "unlimited-length", "x411.unlimited-length",
10991         FT_BOOLEAN, 8, NULL, 0x08,
10992         NULL, HFILL }},
10993     { &hf_x411_G3FacsimileNonBasicParameters_b4_length,
10994       { "b4-length", "x411.b4-length",
10995         FT_BOOLEAN, 8, NULL, 0x04,
10996         NULL, HFILL }},
10997     { &hf_x411_G3FacsimileNonBasicParameters_a3_width,
10998       { "a3-width", "x411.a3-width",
10999         FT_BOOLEAN, 8, NULL, 0x02,
11000         NULL, HFILL }},
11001     { &hf_x411_G3FacsimileNonBasicParameters_b4_width,
11002       { "b4-width", "x411.b4-width",
11003         FT_BOOLEAN, 8, NULL, 0x01,
11004         NULL, HFILL }},
11005     { &hf_x411_G3FacsimileNonBasicParameters_t6_coding,
11006       { "t6-coding", "x411.t6-coding",
11007         FT_BOOLEAN, 8, NULL, 0x40,
11008         NULL, HFILL }},
11009     { &hf_x411_G3FacsimileNonBasicParameters_uncompressed,
11010       { "uncompressed", "x411.uncompressed",
11011         FT_BOOLEAN, 8, NULL, 0x02,
11012         NULL, HFILL }},
11013     { &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
11014       { "width-middle-864-of-1728", "x411.width-middle-864-of-1728",
11015         FT_BOOLEAN, 8, NULL, 0x04,
11016         NULL, HFILL }},
11017     { &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
11018       { "width-middle-1216-of-1728", "x411.width-middle-1216-of-1728",
11019         FT_BOOLEAN, 8, NULL, 0x02,
11020         NULL, HFILL }},
11021     { &hf_x411_G3FacsimileNonBasicParameters_resolution_type,
11022       { "resolution-type", "x411.resolution-type",
11023         FT_BOOLEAN, 8, NULL, 0x08,
11024         NULL, HFILL }},
11025     { &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400,
11026       { "resolution-400x400", "x411.resolution-400x400",
11027         FT_BOOLEAN, 8, NULL, 0x04,
11028         NULL, HFILL }},
11029     { &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300,
11030       { "resolution-300x300", "x411.resolution-300x300",
11031         FT_BOOLEAN, 8, NULL, 0x02,
11032         NULL, HFILL }},
11033     { &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15,
11034       { "resolution-8x15", "x411.resolution-8x15",
11035         FT_BOOLEAN, 8, NULL, 0x01,
11036         NULL, HFILL }},
11037     { &hf_x411_G3FacsimileNonBasicParameters_edi,
11038       { "edi", "x411.edi",
11039         FT_BOOLEAN, 8, NULL, 0x40,
11040         NULL, HFILL }},
11041     { &hf_x411_G3FacsimileNonBasicParameters_dtm,
11042       { "dtm", "x411.dtm",
11043         FT_BOOLEAN, 8, NULL, 0x20,
11044         NULL, HFILL }},
11045     { &hf_x411_G3FacsimileNonBasicParameters_bft,
11046       { "bft", "x411.bft",
11047         FT_BOOLEAN, 8, NULL, 0x10,
11048         NULL, HFILL }},
11049     { &hf_x411_G3FacsimileNonBasicParameters_mixed_mode,
11050       { "mixed-mode", "x411.mixed-mode",
11051         FT_BOOLEAN, 8, NULL, 0x20,
11052         NULL, HFILL }},
11053     { &hf_x411_G3FacsimileNonBasicParameters_character_mode,
11054       { "character-mode", "x411.character-mode",
11055         FT_BOOLEAN, 8, NULL, 0x08,
11056         NULL, HFILL }},
11057     { &hf_x411_G3FacsimileNonBasicParameters_twelve_bits,
11058       { "twelve-bits", "x411.twelve-bits",
11059         FT_BOOLEAN, 8, NULL, 0x40,
11060         NULL, HFILL }},
11061     { &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann,
11062       { "preferred-huffmann", "x411.preferred-huffmann",
11063         FT_BOOLEAN, 8, NULL, 0x20,
11064         NULL, HFILL }},
11065     { &hf_x411_G3FacsimileNonBasicParameters_full_colour,
11066       { "full-colour", "x411.full-colour",
11067         FT_BOOLEAN, 8, NULL, 0x10,
11068         NULL, HFILL }},
11069     { &hf_x411_G3FacsimileNonBasicParameters_jpeg,
11070       { "jpeg", "x411.jpeg",
11071         FT_BOOLEAN, 8, NULL, 0x08,
11072         NULL, HFILL }},
11073     { &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26,
11074       { "processable-mode-26", "x411.processable-mode-26",
11075         FT_BOOLEAN, 8, NULL, 0x01,
11076         NULL, HFILL }},
11077
11078 /*--- End of included file: packet-x411-hfarr.c ---*/
11079 #line 247 "packet-x411-template.c"
11080   };
11081
11082   /* List of subtrees */
11083   static gint *ett[] = {
11084     &ett_x411,
11085     &ett_p3,
11086     &ett_x411_content_unknown,
11087     &ett_x411_bilateral_information,
11088     &ett_x411_additional_information,
11089     &ett_x411_unknown_standard_extension,
11090     &ett_x411_unknown_extension_attribute_type,
11091     &ett_x411_unknown_tokendata_type,
11092
11093 /*--- Included file: packet-x411-ettarr.c ---*/
11094 #line 1 "packet-x411-ettarr.c"
11095     &ett_x411_MTABindArgument,
11096     &ett_x411_AuthenticatedArgument,
11097     &ett_x411_MTABindResult,
11098     &ett_x411_AuthenticatedResult,
11099     &ett_x411_MTS_APDU,
11100     &ett_x411_Message,
11101     &ett_x411_Report,
11102     &ett_x411_MessageTransferEnvelope,
11103     &ett_x411_PerMessageTransferFields,
11104     &ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation,
11105     &ett_x411_SET_OF_ExtensionField,
11106     &ett_x411_PerRecipientMessageTransferFields,
11107     &ett_x411_ProbeTransferEnvelope,
11108     &ett_x411_PerProbeTransferFields,
11109     &ett_x411_PerRecipientProbeTransferFields,
11110     &ett_x411_ReportTransferEnvelope,
11111     &ett_x411_ReportTransferContent,
11112     &ett_x411_PerReportTransferFields,
11113     &ett_x411_PerRecipientReportTransferFields,
11114     &ett_x411_PerDomainBilateralInformation,
11115     &ett_x411_T_bilateral_domain,
11116     &ett_x411_T_private_domain,
11117     &ett_x411_BilateralDomain,
11118     &ett_x411_T_domain,
11119     &ett_x411_T_private_domain_01,
11120     &ett_x411_PerRecipientIndicators,
11121     &ett_x411_LastTraceInformation,
11122     &ett_x411_InternalTraceInformation,
11123     &ett_x411_InternalTraceInformationElement,
11124     &ett_x411_MTASuppliedInformation,
11125     &ett_x411_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement,
11126     &ett_x411_TraceInformationElement,
11127     &ett_x411_DomainSuppliedInformation,
11128     &ett_x411_AdditionalActions,
11129     &ett_x411_OtherActions,
11130     &ett_x411_MTSBindArgument,
11131     &ett_x411_MTSBindResult,
11132     &ett_x411_ObjectName,
11133     &ett_x411_MessagesWaiting,
11134     &ett_x411_DeliveryQueue,
11135     &ett_x411_Credentials,
11136     &ett_x411_Password,
11137     &ett_x411_StrongCredentials,
11138     &ett_x411_ProtectedPassword,
11139     &ett_x411_Signature,
11140     &ett_x411_SecurityContext,
11141     &ett_x411_MessageSubmissionArgument,
11142     &ett_x411_MessageSubmissionResult,
11143     &ett_x411_ProbeSubmissionResult,
11144     &ett_x411_ImproperlySpecifiedRecipients,
11145     &ett_x411_Waiting,
11146     &ett_x411_SET_SIZE_0_ub_content_types_OF_ContentType,
11147     &ett_x411_Operations,
11148     &ett_x411_WaitingMessages,
11149     &ett_x411_MessageDeliveryArgument,
11150     &ett_x411_MessageDeliveryResult,
11151     &ett_x411_ReportDeliveryArgument,
11152     &ett_x411_ReportDeliveryResult,
11153     &ett_x411_SET_SIZE_1_MAX_OF_ExtensionField,
11154     &ett_x411_DeliveryControlArgument,
11155     &ett_x411_DeliveryControlResult,
11156     &ett_x411_RefusedOperation,
11157     &ett_x411_T_refused_argument,
11158     &ett_x411_Controls,
11159     &ett_x411_RegisterArgument,
11160     &ett_x411_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass,
11161     &ett_x411_RegisterResult,
11162     &ett_x411_T_non_empty_result,
11163     &ett_x411_ChangeCredentialsArgument,
11164     &ett_x411_UserAddress,
11165     &ett_x411_T_x121,
11166     &ett_x411_Redirections,
11167     &ett_x411_RecipientRedirection,
11168     &ett_x411_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass,
11169     &ett_x411_MessageClass,
11170     &ett_x411_SET_OF_Priority,
11171     &ett_x411_SEQUENCE_OF_Restriction,
11172     &ett_x411_EncodedInformationTypesConstraints,
11173     &ett_x411_RestrictedDelivery,
11174     &ett_x411_Restriction,
11175     &ett_x411_T_source_type,
11176     &ett_x411_ExactOrPattern,
11177     &ett_x411_RegistrationTypes,
11178     &ett_x411_T_standard_parameters,
11179     &ett_x411_T_type_extensions,
11180     &ett_x411_MessageSubmissionEnvelope,
11181     &ett_x411_PerMessageSubmissionFields,
11182     &ett_x411_PerRecipientMessageSubmissionFields,
11183     &ett_x411_ProbeSubmissionEnvelope,
11184     &ett_x411_PerProbeSubmissionFields,
11185     &ett_x411_PerRecipientProbeSubmissionFields,
11186     &ett_x411_MessageDeliveryEnvelope,
11187     &ett_x411_OtherMessageDeliveryFields,
11188     &ett_x411_ReportDeliveryEnvelope,
11189     &ett_x411_PerReportDeliveryFields,
11190     &ett_x411_PerRecipientReportDeliveryFields,
11191     &ett_x411_ReportType,
11192     &ett_x411_DeliveryReport,
11193     &ett_x411_NonDeliveryReport,
11194     &ett_x411_ContentTypes,
11195     &ett_x411_ContentType,
11196     &ett_x411_DeliveredContentType,
11197     &ett_x411_PerMessageIndicators_U,
11198     &ett_x411_OriginatorReportRequest,
11199     &ett_x411_DeliveryFlags,
11200     &ett_x411_OtherRecipientNames,
11201     &ett_x411_ExtensionType,
11202     &ett_x411_Criticality,
11203     &ett_x411_ExtensionField,
11204     &ett_x411_RequestedDeliveryMethod,
11205     &ett_x411_PhysicalDeliveryModes,
11206     &ett_x411_ContentCorrelator,
11207     &ett_x411_RedirectionHistory,
11208     &ett_x411_Redirection,
11209     &ett_x411_IntendedRecipientName,
11210     &ett_x411_DLExpansionHistory,
11211     &ett_x411_DLExpansion,
11212     &ett_x411_OriginatorAndDLExpansionHistory,
11213     &ett_x411_OriginatorAndDLExpansion,
11214     &ett_x411_PerRecipientReportFields,
11215     &ett_x411_T_report_type,
11216     &ett_x411_PerRecipientDeliveryReportFields,
11217     &ett_x411_PerRecipientNonDeliveryReportFields,
11218     &ett_x411_ReportingMTAName,
11219     &ett_x411_ExtendedCertificates,
11220     &ett_x411_ExtendedCertificate,
11221     &ett_x411_DLExemptedRecipients,
11222     &ett_x411_CertificateSelectors,
11223     &ett_x411_MTSIdentifier_U,
11224     &ett_x411_GlobalDomainIdentifier_U,
11225     &ett_x411_PrivateDomainIdentifier,
11226     &ett_x411_ORName_U,
11227     &ett_x411_ORAddress,
11228     &ett_x411_BuiltInStandardAttributes,
11229     &ett_x411_CountryName_U,
11230     &ett_x411_AdministrationDomainName_U,
11231     &ett_x411_PrivateDomainName,
11232     &ett_x411_PersonalName,
11233     &ett_x411_OrganizationalUnitNames,
11234     &ett_x411_BuiltInDomainDefinedAttributes,
11235     &ett_x411_BuiltInDomainDefinedAttribute,
11236     &ett_x411_ExtensionAttributes,
11237     &ett_x411_ExtensionAttribute,
11238     &ett_x411_TeletexPersonalName,
11239     &ett_x411_UniversalPersonalName,
11240     &ett_x411_TeletexOrganizationalUnitNames,
11241     &ett_x411_UniversalOrganizationalUnitNames,
11242     &ett_x411_UniversalOrBMPString,
11243     &ett_x411_T_character_encoding,
11244     &ett_x411_PhysicalDeliveryCountryName,
11245     &ett_x411_PostalCode,
11246     &ett_x411_UnformattedPostalAddress,
11247     &ett_x411_T_printable_address,
11248     &ett_x411_PDSParameter,
11249     &ett_x411_ExtendedNetworkAddress,
11250     &ett_x411_T_e163_4_address,
11251     &ett_x411_TeletexDomainDefinedAttributes,
11252     &ett_x411_TeletexDomainDefinedAttribute,
11253     &ett_x411_UniversalDomainDefinedAttributes,
11254     &ett_x411_UniversalDomainDefinedAttribute,
11255     &ett_x411_EncodedInformationTypes_U,
11256     &ett_x411_BuiltInEncodedInformationTypes,
11257     &ett_x411_ExtendedEncodedInformationTypes,
11258     &ett_x411_NonBasicParameters,
11259     &ett_x411_G3FacsimileNonBasicParameters,
11260     &ett_x411_TeletexNonBasicParameters,
11261     &ett_x411_Token,
11262     &ett_x411_AsymmetricTokenData,
11263     &ett_x411_T_name,
11264     &ett_x411_MTANameAndOptionalGDI,
11265     &ett_x411_AsymmetricToken,
11266     &ett_x411_TokenData,
11267     &ett_x411_MessageTokenSignedData,
11268     &ett_x411_MessageTokenEncryptedData,
11269     &ett_x411_SecurityLabel,
11270     &ett_x411_SecurityCategories,
11271     &ett_x411_SecurityCategory,
11272     &ett_x411_RTSE_apdus,
11273     &ett_x411_RTABapdu,
11274     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields,
11275     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields,
11276     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields,
11277     &ett_x411_T_attempted,
11278     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields,
11279     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields,
11280     &ett_x411_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields,
11281
11282 /*--- End of included file: packet-x411-ettarr.c ---*/
11283 #line 260 "packet-x411-template.c"
11284   };
11285
11286   module_t *x411_module;
11287
11288   /* Register protocol */
11289   proto_x411 = proto_register_protocol(PNAME, PSNAME, PFNAME);
11290   register_dissector("x411", dissect_x411, proto_x411);
11291
11292   proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
11293
11294   /* Register fields and subtrees */
11295   proto_register_field_array(proto_x411, hf, array_length(hf));
11296   proto_register_subtree_array(ett, array_length(ett));
11297
11298   x411_extension_dissector_table = register_dissector_table("x411.extension", "X411-EXTENSION", FT_UINT32, BASE_DEC);
11299   x411_extension_attribute_dissector_table = register_dissector_table("x411.extension-attribute", "X411-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC);
11300   x411_tokendata_dissector_table = register_dissector_table("x411.tokendata", "X411-TOKENDATA", FT_UINT32, BASE_DEC);
11301
11302   /* Register our configuration options for X411, particularly our port */
11303
11304   x411_module = prefs_register_protocol_subtree("OSI/X.400", proto_x411, prefs_register_x411);
11305
11306   prefs_register_uint_preference(x411_module, "tcp.port", "X.411 TCP Port",
11307                                  "Set the port for P1 operations (if other"
11308                                  " than the default of 102)",
11309                                  10, &global_x411_tcp_port);
11310
11311 }
11312
11313
11314 /*--- proto_reg_handoff_x411 --- */
11315 void proto_reg_handoff_x411(void) {
11316   dissector_handle_t x411_handle;
11317
11318
11319 /*--- Included file: packet-x411-dis-tab.c ---*/
11320 #line 1 "packet-x411-dis-tab.c"
11321   dissector_add("x411.extension", 1, create_dissector_handle(dissect_RecipientReassignmentProhibited_PDU, proto_x411));
11322   dissector_add("x411.extension", 2, create_dissector_handle(dissect_OriginatorRequestedAlternateRecipient_PDU, proto_x411));
11323   dissector_add("x411.extension", 3, create_dissector_handle(dissect_DLExpansionProhibited_PDU, proto_x411));
11324   dissector_add("x411.extension", 4, create_dissector_handle(dissect_ConversionWithLossProhibited_PDU, proto_x411));
11325   dissector_add("x411.extension", 5, create_dissector_handle(dissect_LatestDeliveryTime_PDU, proto_x411));
11326   dissector_add("x411.extension", 6, create_dissector_handle(dissect_RequestedDeliveryMethod_PDU, proto_x411));
11327   dissector_add("x411.extension", 7, create_dissector_handle(dissect_PhysicalForwardingProhibited_PDU, proto_x411));
11328   dissector_add("x411.extension", 8, create_dissector_handle(dissect_PhysicalForwardingAddressRequest_PDU, proto_x411));
11329   dissector_add("x411.extension", 9, create_dissector_handle(dissect_PhysicalDeliveryModes_PDU, proto_x411));
11330   dissector_add("x411.extension", 10, create_dissector_handle(dissect_RegisteredMailType_PDU, proto_x411));
11331   dissector_add("x411.extension", 11, create_dissector_handle(dissect_RecipientNumberForAdvice_PDU, proto_x411));
11332   dissector_add("x411.extension", 12, create_dissector_handle(dissect_PhysicalRenditionAttributes_PDU, proto_x411));
11333   dissector_add("x411.extension", 13, create_dissector_handle(dissect_OriginatorReturnAddress_PDU, proto_x411));
11334   dissector_add("x411.extension", 14, create_dissector_handle(dissect_PhysicalDeliveryReportRequest_PDU, proto_x411));
11335   dissector_add("x411.extension", 15, create_dissector_handle(dissect_OriginatorCertificate_PDU, proto_x411));
11336   dissector_add("x411.extension", 16, create_dissector_handle(dissect_MessageToken_PDU, proto_x411));
11337   dissector_add("x411.extension", 17, create_dissector_handle(dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_x411));
11338   dissector_add("x411.extension", 18, create_dissector_handle(dissect_ContentIntegrityCheck_PDU, proto_x411));
11339   dissector_add("x411.extension", 19, create_dissector_handle(dissect_MessageOriginAuthenticationCheck_PDU, proto_x411));
11340   dissector_add("x411.extension", 20, create_dissector_handle(dissect_MessageSecurityLabel_PDU, proto_x411));
11341   dissector_add("x411.extension", 21, create_dissector_handle(dissect_ProofOfSubmissionRequest_PDU, proto_x411));
11342   dissector_add("x411.extension", 22, create_dissector_handle(dissect_ProofOfDeliveryRequest_PDU, proto_x411));
11343   dissector_add("x411.extension", 23, create_dissector_handle(dissect_ContentCorrelator_PDU, proto_x411));
11344   dissector_add("x411.extension", 24, create_dissector_handle(dissect_ProbeOriginAuthenticationCheck_PDU, proto_x411));
11345   dissector_add("x411.extension", 25, create_dissector_handle(dissect_RedirectionHistory_PDU, proto_x411));
11346   dissector_add("x411.extension", 26, create_dissector_handle(dissect_DLExpansionHistory_PDU, proto_x411));
11347   dissector_add("x411.extension", 27, create_dissector_handle(dissect_PhysicalForwardingAddress_PDU, proto_x411));
11348   dissector_add("x411.extension", 28, create_dissector_handle(dissect_RecipientCertificate_PDU, proto_x411));
11349   dissector_add("x411.extension", 29, create_dissector_handle(dissect_ProofOfDelivery_PDU, proto_x411));
11350   dissector_add("x411.extension", 30, create_dissector_handle(dissect_OriginatorAndDLExpansionHistory_PDU, proto_x411));
11351   dissector_add("x411.extension", 31, create_dissector_handle(dissect_ReportingDLName_PDU, proto_x411));
11352   dissector_add("x411.extension", 32, create_dissector_handle(dissect_ReportingMTACertificate_PDU, proto_x411));
11353   dissector_add("x411.extension", 33, create_dissector_handle(dissect_ReportOriginAuthenticationCheck_PDU, proto_x411));
11354   dissector_add("x411.extension", 35, create_dissector_handle(dissect_ProofOfSubmission_PDU, proto_x411));
11355   dissector_add("x411.extension", 37, create_dissector_handle(dissect_TraceInformation_PDU, proto_x411));
11356   dissector_add("x411.extension", 38, create_dissector_handle(dissect_InternalTraceInformation_PDU, proto_x411));
11357   dissector_add("x411.extension", 39, create_dissector_handle(dissect_ReportingMTAName_PDU, proto_x411));
11358   dissector_add("x411.extension", 40, create_dissector_handle(dissect_ExtendedCertificates_PDU, proto_x411));
11359   dissector_add("x411.extension", 42, create_dissector_handle(dissect_DLExemptedRecipients_PDU, proto_x411));
11360   dissector_add("x411.extension", 45, create_dissector_handle(dissect_CertificateSelectors_PDU, proto_x411));
11361   dissector_add("x411.extension-attribute", 1, create_dissector_handle(dissect_CommonName_PDU, proto_x411));
11362   dissector_add("x411.extension-attribute", 2, create_dissector_handle(dissect_TeletexCommonName_PDU, proto_x411));
11363   dissector_add("x411.extension-attribute", 3, create_dissector_handle(dissect_TeletexOrganizationName_PDU, proto_x411));
11364   dissector_add("x411.extension-attribute", 4, create_dissector_handle(dissect_TeletexPersonalName_PDU, proto_x411));
11365   dissector_add("x411.extension-attribute", 5, create_dissector_handle(dissect_TeletexOrganizationalUnitNames_PDU, proto_x411));
11366   dissector_add("x411.extension-attribute", 6, create_dissector_handle(dissect_TeletexDomainDefinedAttributes_PDU, proto_x411));
11367   dissector_add("x411.extension-attribute", 7, create_dissector_handle(dissect_PDSName_PDU, proto_x411));
11368   dissector_add("x411.extension-attribute", 8, create_dissector_handle(dissect_PhysicalDeliveryCountryName_PDU, proto_x411));
11369   dissector_add("x411.extension-attribute", 9, create_dissector_handle(dissect_PostalCode_PDU, proto_x411));
11370   dissector_add("x411.extension-attribute", 10, create_dissector_handle(dissect_PhysicalDeliveryOfficeName_PDU, proto_x411));
11371   dissector_add("x411.extension-attribute", 11, create_dissector_handle(dissect_PhysicalDeliveryOfficeNumber_PDU, proto_x411));
11372   dissector_add("x411.extension-attribute", 12, create_dissector_handle(dissect_ExtensionORAddressComponents_PDU, proto_x411));
11373   dissector_add("x411.extension-attribute", 13, create_dissector_handle(dissect_PhysicalDeliveryPersonalName_PDU, proto_x411));
11374   dissector_add("x411.extension-attribute", 14, create_dissector_handle(dissect_PhysicalDeliveryOrganizationName_PDU, proto_x411));
11375   dissector_add("x411.extension-attribute", 15, create_dissector_handle(dissect_ExtensionPhysicalDeliveryAddressComponents_PDU, proto_x411));
11376   dissector_add("x411.extension-attribute", 16, create_dissector_handle(dissect_UnformattedPostalAddress_PDU, proto_x411));
11377   dissector_add("x411.extension-attribute", 17, create_dissector_handle(dissect_StreetAddress_PDU, proto_x411));
11378   dissector_add("x411.extension-attribute", 18, create_dissector_handle(dissect_PostOfficeBoxAddress_PDU, proto_x411));
11379   dissector_add("x411.extension-attribute", 19, create_dissector_handle(dissect_PosteRestanteAddress_PDU, proto_x411));
11380   dissector_add("x411.extension-attribute", 20, create_dissector_handle(dissect_UniquePostalName_PDU, proto_x411));
11381   dissector_add("x411.extension-attribute", 21, create_dissector_handle(dissect_LocalPostalAttributes_PDU, proto_x411));
11382   dissector_add("x411.extension-attribute", 22, create_dissector_handle(dissect_ExtendedNetworkAddress_PDU, proto_x411));
11383   dissector_add("x411.extension-attribute", 23, create_dissector_handle(dissect_TerminalType_PDU, proto_x411));
11384   dissector_add("x411.extension-attribute", 24, create_dissector_handle(dissect_UniversalCommonName_PDU, proto_x411));
11385   dissector_add("x411.extension-attribute", 25, create_dissector_handle(dissect_UniversalOrganizationName_PDU, proto_x411));
11386   dissector_add("x411.extension-attribute", 26, create_dissector_handle(dissect_UniversalPersonalName_PDU, proto_x411));
11387   dissector_add("x411.extension-attribute", 27, create_dissector_handle(dissect_UniversalOrganizationalUnitNames_PDU, proto_x411));
11388   dissector_add("x411.extension-attribute", 28, create_dissector_handle(dissect_UniversalDomainDefinedAttributes_PDU, proto_x411));
11389   dissector_add("x411.extension-attribute", 29, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeName_PDU, proto_x411));
11390   dissector_add("x411.extension-attribute", 30, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeNumber_PDU, proto_x411));
11391   dissector_add("x411.extension-attribute", 31, create_dissector_handle(dissect_UniversalExtensionORAddressComponents_PDU, proto_x411));
11392   dissector_add("x411.extension-attribute", 32, create_dissector_handle(dissect_UniversalPhysicalDeliveryPersonalName_PDU, proto_x411));
11393   dissector_add("x411.extension-attribute", 33, create_dissector_handle(dissect_UniversalPhysicalDeliveryOrganizationName_PDU, proto_x411));
11394   dissector_add("x411.extension-attribute", 34, create_dissector_handle(dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU, proto_x411));
11395   dissector_add("x411.extension-attribute", 35, create_dissector_handle(dissect_UniversalUnformattedPostalAddress_PDU, proto_x411));
11396   dissector_add("x411.extension-attribute", 36, create_dissector_handle(dissect_UniversalStreetAddress_PDU, proto_x411));
11397   dissector_add("x411.extension-attribute", 37, create_dissector_handle(dissect_UniversalPostOfficeBoxAddress_PDU, proto_x411));
11398   dissector_add("x411.extension-attribute", 38, create_dissector_handle(dissect_UniversalPosteRestanteAddress_PDU, proto_x411));
11399   dissector_add("x411.extension-attribute", 39, create_dissector_handle(dissect_UniversalUniquePostalName_PDU, proto_x411));
11400   dissector_add("x411.extension-attribute", 40, create_dissector_handle(dissect_UniversalLocalPostalAttributes_PDU, proto_x411));
11401   register_ber_oid_dissector("2.6.3.6.0", dissect_AsymmetricToken_PDU, proto_x411, "id-tok-asymmetricToken");
11402   register_ber_oid_dissector("2.6.5.6.0", dissect_MTANameAndOptionalGDI_PDU, proto_x411, "id-on-mtaName");
11403   dissector_add("x411.tokendata", 1, create_dissector_handle(dissect_BindTokenSignedData_PDU, proto_x411));
11404   dissector_add("x411.tokendata", 2, create_dissector_handle(dissect_MessageTokenSignedData_PDU, proto_x411));
11405   dissector_add("x411.tokendata", 3, create_dissector_handle(dissect_MessageTokenEncryptedData_PDU, proto_x411));
11406   dissector_add("x411.tokendata", 4, create_dissector_handle(dissect_BindTokenEncryptedData_PDU, proto_x411));
11407   register_ber_oid_dissector("2.6.5.2.0", dissect_ContentLength_PDU, proto_x411, "id-at-mhs-maximum-content-length");
11408   register_ber_oid_dissector("2.6.5.2.1", dissect_ExtendedContentType_PDU, proto_x411, "id-at-mhs-deliverable-content-types");
11409   register_ber_oid_dissector("2.6.5.2.2", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-exclusively-acceptable-eits");
11410   register_ber_oid_dissector("2.6.5.2.3", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-members");
11411   register_ber_oid_dissector("2.6.5.2.6", dissect_ORAddress_PDU, proto_x411, "id-at-mhs-or-addresses");
11412   register_ber_oid_dissector("2.6.5.2.9", dissect_ExtendedContentType_PDU, proto_x411, "id-at-mhs-supported-content-types");
11413   register_ber_oid_dissector("2.6.5.2.12", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-archive-service");
11414   register_ber_oid_dissector("2.6.5.2.15", dissect_ORName_PDU, proto_x411, "id-at-mhs-dl-subscription-service");
11415   register_ber_oid_dissector("2.6.5.2.17", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-acceptable-eits");
11416   register_ber_oid_dissector("2.6.5.2.18", dissect_ExtendedEncodedInformationType_PDU, proto_x411, "id-at-mhs-unacceptable-eits");
11417   register_ber_oid_dissector("2.16.840.1.101.2.1.5.47", dissect_ORName_PDU, proto_x411, "id-at-aLExemptedAddressProcessor");
11418   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");
11419   register_ber_oid_dissector("2.6.4.3.80", dissect_CertificateSelectors_PDU, proto_x411, "id-att-certificate-selectors");
11420   register_ber_oid_dissector("2.6.4.3.1", dissect_Content_PDU, proto_x411, "id-att-content");
11421   register_ber_oid_dissector("2.6.4.3.3", dissect_ContentCorrelator_PDU, proto_x411, "id-att-content-correlator");
11422   register_ber_oid_dissector("2.6.4.3.4", dissect_ContentIdentifier_PDU, proto_x411, "id-att-content-identifier");
11423   register_ber_oid_dissector("2.6.4.3.5", dissect_ContentIntegrityCheck_PDU, proto_x411, "id-att-content-inetgrity-check");
11424   register_ber_oid_dissector("2.6.4.3.6", dissect_ContentLength_PDU, proto_x411, "id-att-content-length");
11425   register_ber_oid_dissector("2.6.4.3.8", dissect_ExtendedContentType_PDU, proto_x411, "id-att-content-type");
11426   register_ber_oid_dissector("2.6.4.3.9", dissect_ConversionWithLossProhibited_PDU, proto_x411, "id-att-conversion-with-loss-prohibited");
11427   register_ber_oid_dissector("2.6.4.3.51", dissect_DeferredDeliveryTime_PDU, proto_x411, "id-att-deferred-delivery-time");
11428   register_ber_oid_dissector("2.6.4.3.13", dissect_DeliveryFlags_PDU, proto_x411, "id-att-delivery-flags");
11429   register_ber_oid_dissector("2.6.4.3.78", dissect_ORName_PDU, proto_x411, "id-att-dl-exempted-recipients");
11430   register_ber_oid_dissector("2.6.4.3.14", dissect_DLExpansion_PDU, proto_x411, "id-att-dl-expansion-history");
11431   register_ber_oid_dissector("2.6.4.3.53", dissect_DLExpansionProhibited_PDU, proto_x411, "id-att-dl-expansion-prohibited");
11432   register_ber_oid_dissector("2.6.4.3.54", dissect_InternalTraceInformationElement_PDU, proto_x411, "id-att-internal-trace-information");
11433   register_ber_oid_dissector("2.6.4.3.55", dissect_LatestDeliveryTime_PDU, proto_x411, "id-att-latest-delivery-time");
11434   register_ber_oid_dissector("2.6.4.3.18", dissect_MessageDeliveryEnvelope_PDU, proto_x411, "id-att-message-delivery-envelope");
11435   register_ber_oid_dissector("2.6.4.3.20", dissect_MessageDeliveryTime_PDU, proto_x411, "id-att-message-delivery-time");
11436   register_ber_oid_dissector("2.6.4.3.19", dissect_MTSIdentifier_PDU, proto_x411, "id-att-message-identifier");
11437   register_ber_oid_dissector("2.6.4.3.21", dissect_MessageOriginAuthenticationCheck_PDU, proto_x411, "id-at-message-orgin-authentication-check");
11438   register_ber_oid_dissector("2.6.4.3.22", dissect_MessageSecurityLabel_PDU, proto_x411, "id-att-message-security-label");
11439   register_ber_oid_dissector("2.6.4.3.59", dissect_MessageSubmissionEnvelope_PDU, proto_x411, "id-att-message-submission-envelope");
11440   register_ber_oid_dissector("2.6.4.3.23", dissect_MessageSubmissionTime_PDU, proto_x411, "id-att-message-submission-time");
11441   register_ber_oid_dissector("2.6.4.3.24", dissect_MessageToken_PDU, proto_x411, "id-att-message-token");
11442   register_ber_oid_dissector("2.6.4.3.81", dissect_ExtendedCertificates_PDU, proto_x411, "id-att-multiple-originator-certificates");
11443   register_ber_oid_dissector("2.6.4.3.17", dissect_ORName_PDU, proto_x411, "id-att-originally-intended-recipient-name");
11444   register_ber_oid_dissector("2.6.4.3.62", dissect_OriginatingMTACertificate_PDU, proto_x411, "id-att-originating-MTA-certificate");
11445   register_ber_oid_dissector("2.6.4.3.26", dissect_OriginatorCertificate_PDU, proto_x411, "id-att-originator-certificate");
11446   register_ber_oid_dissector("2.6.4.3.27", dissect_ORName_PDU, proto_x411, "id-att-originator-name");
11447   register_ber_oid_dissector("2.6.4.3.63", dissect_OriginatorReportRequest_PDU, proto_x411, "id-att-originator-report-request");
11448   register_ber_oid_dissector("2.6.4.3.64", dissect_OriginatorReturnAddress_PDU, proto_x411, "id-att-originator-return-address");
11449   register_ber_oid_dissector("2.6.4.3.28", dissect_ORName_PDU, proto_x411, "id-att-other-recipient-names");
11450   register_ber_oid_dissector("2.6.4.3.65", dissect_PerMessageIndicators_PDU, proto_x411, "id-att-per-message-indicators");
11451   register_ber_oid_dissector("2.6.4.3.66", dissect_PerRecipientMessageSubmissionFields_PDU, proto_x411, "id-att-per-recipient-message-submission-fields");
11452   register_ber_oid_dissector("2.6.4.3.67", dissect_PerRecipientProbeSubmissionFields_PDU, proto_x411, "id-att-per-recipient-probe-submission-fields");
11453   register_ber_oid_dissector("2.6.4.3.30", dissect_PerRecipientReportDeliveryFields_PDU, proto_x411, "id-att-per-recipient-report-delivery-fields");
11454   register_ber_oid_dissector("2.6.4.3.31", dissect_Priority_PDU, proto_x411, "id-att-priority");
11455   register_ber_oid_dissector("2.6.4.3.68", dissect_ProbeOriginAuthenticationCheck_PDU, proto_x411, "id-att-probe-origin-authentication-check");
11456   register_ber_oid_dissector("2.6.4.3.69", dissect_ProbeSubmissionEnvelope_PDU, proto_x411, "id-att-probe-submission-envelope");
11457   register_ber_oid_dissector("2.6.4.3.32", dissect_ProofOfDeliveryRequest_PDU, proto_x411, "id-att-proof-of-delivery-request");
11458   register_ber_oid_dissector("2.6.4.3.70", dissect_ProofOfSubmission_PDU, proto_x411, "id-att-proof-of-submission");
11459   register_ber_oid_dissector("2.6.4.3.82", dissect_ExtendedCertificates_PDU, proto_x411, "id-att-recipient-certificate");
11460   register_ber_oid_dissector("2.6.4.3.71", dissect_ORName_PDU, proto_x411, "id-att-recipient-names");
11461   register_ber_oid_dissector("2.6.4.3.72", dissect_RecipientReassignmentProhibited_PDU, proto_x411, "id-att-recipient-reassignment-prohibited");
11462   register_ber_oid_dissector("2.6.4.3.33", dissect_Redirection_PDU, proto_x411, "id-at-redirection-history");
11463   register_ber_oid_dissector("2.6.4.3.34", dissect_ReportDeliveryEnvelope_PDU, proto_x411, "id-att-report-delivery-envelope");
11464   register_ber_oid_dissector("2.6.4.3.35", dissect_ReportingDLName_PDU, proto_x411, "id-att-reporting-DL-name");
11465   register_ber_oid_dissector("2.6.4.3.36", dissect_ReportingMTACertificate_PDU, proto_x411, "id-att-reporting-MTA-certificate");
11466   register_ber_oid_dissector("2.6.4.3.37", dissect_ReportOriginAuthenticationCheck_PDU, proto_x411, "id-att-report-origin-authentication-check");
11467   register_ber_oid_dissector("2.6.4.3.38", dissect_SecurityClassification_PDU, proto_x411, "id-att-security-classification");
11468   register_ber_oid_dissector("2.6.4.3.40", dissect_SubjectSubmissionIdentifier_PDU, proto_x411, "id-att-subject-submission-identifier");
11469   register_ber_oid_dissector("2.6.4.3.41", dissect_ORName_PDU, proto_x411, "id-att-this-recipient-name");
11470   register_ber_oid_dissector("2.6.4.3.75", dissect_TraceInformationElement_PDU, proto_x411, "id-att-trace-information");
11471   register_ber_oid_dissector("2.6.1.7.36", dissect_MessageToken_PDU, proto_x411, "id-hat-forwarded-token");
11472
11473
11474 /*--- End of included file: packet-x411-dis-tab.c ---*/
11475 #line 295 "packet-x411-template.c"
11476
11477   /* APPLICATION CONTEXT */
11478
11479   oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
11480
11481   /* ABSTRACT SYNTAXES */
11482
11483   x411_handle = find_dissector("x411");
11484   register_rtse_oid_dissector_handle("2.6.0.2.12", x411_handle, 0, "id-as-mta-rtse", TRUE); 
11485   register_rtse_oid_dissector_handle("2.6.0.2.7", x411_handle, 0, "id-as-mtse", FALSE);
11486
11487   register_ber_syntax_dissector("X.411 Message", proto_x411, dissect_x411_mts_apdu);
11488   register_rtse_oid_dissector_handle("applicationProtocol.1", x411_handle, 0, "mts-transfer-protocol-1984", FALSE);
11489   register_rtse_oid_dissector_handle("applicationProtocol.12", x411_handle, 0, "mta-transfer-protocol", FALSE);
11490
11491   /* remember the tpkt handler for change in preferences */
11492   tpkt_handle = find_dissector("tpkt");
11493
11494   /* APPLICATION CONTEXT */
11495
11496   oid_add_from_string("id-ac-mts-access-88", id_ac_mts_access_88);
11497   oid_add_from_string("id-ac-mts-forced-access-88", id_ac_mts_forced_access_88);
11498   oid_add_from_string("id-ac-mts-access-94", id_ac_mts_access_94);
11499   oid_add_from_string("id-ac-mts-forced-access-94", id_ac_mts_forced_access_94);
11500
11501
11502   /* Register P3 with ROS */
11503   register_ros_protocol_info(id_as_msse, &p3_ros_info, 0, "id-as-msse", FALSE); 
11504
11505   register_ros_protocol_info(id_as_mdse_88, &p3_ros_info, 0, "id-as-mdse-88", FALSE); 
11506   register_ros_protocol_info(id_as_mdse_94, &p3_ros_info, 0, "id-as-mdse-94", FALSE); 
11507
11508   register_ros_protocol_info(id_as_mase_88, &p3_ros_info, 0, "id-as-mase-88", FALSE); 
11509   register_ros_protocol_info(id_as_mase_94, &p3_ros_info, 0, "id-as-mase-94", FALSE); 
11510
11511   register_ros_protocol_info(id_as_mts, &p3_ros_info, 0, "id-as-mts", FALSE); 
11512
11513 }
11514
11515 void prefs_register_x411(void) {
11516   static guint tcp_port = 0;
11517
11518   /* de-register the old port */
11519   /* port 102 is registered by TPKT - don't undo this! */
11520   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11521     dissector_delete("tcp.port", tcp_port, tpkt_handle);
11522
11523   /* Set our port number for future use */
11524   tcp_port = global_x411_tcp_port;
11525
11526   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11527     dissector_add("tcp.port", tcp_port, tpkt_handle);
11528
11529 }