Fixup: tvb_get_string(z) -> tvb_get_string(z)_enc
[metze/wireshark/wip.git] / epan / dissectors / packet-p1.c
1 /* Do not modify this file. Changes will be overwritten.                      */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3 /* packet-p1.c                                                                */
4 /* ../../tools/asn2wrs.py -b -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../../epan/dissectors MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
5
6 /* Input file: packet-p1-template.c */
7
8 #line 1 "../../asn1/p1/packet-p1-template.c"
9 /* packet-p1.c
10  * Routines for X.411 (X.400 Message Transfer)  packet dissection
11  * Graeme Lunt 2005
12  *
13  * Wireshark - Network traffic analyzer
14  * By Gerald Combs <gerald@wireshark.org>
15  * Copyright 1998 Gerald Combs
16  *
17  * This program is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU General Public License
19  * as published by the Free Software Foundation; either version 2
20  * of the License, or (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
30  */
31
32 #include "config.h"
33
34 #include <glib.h>
35 #include <epan/packet.h>
36 #include <epan/prefs.h>
37 #include <epan/oids.h>
38 #include <epan/asn1.h>
39 #include <epan/expert.h>
40 #include <epan/wmem/wmem.h>
41
42 #include "packet-ber.h"
43 #include "packet-acse.h"
44 #include "packet-ros.h"
45 #include "packet-rtse.h"
46
47 #include "packet-x509af.h"
48 #include "packet-x509ce.h"
49 #include "packet-x509if.h"
50 #include "packet-x509sat.h"
51
52 #include "packet-p1.h"
53 #include <epan/strutil.h>
54
55 #define PNAME  "X.411 Message Transfer Service"
56 #define PSNAME "P1"
57 #define PFNAME "p1"
58
59 static guint global_p1_tcp_port = 102;
60 static dissector_handle_t tpkt_handle;
61 static void prefs_register_p1(void); /* forward declaration for use in preferences registration */
62
63 /* Initialize the protocol and registered fields */
64 static int proto_p1 = -1;
65 static int proto_p3 = -1;
66
67 static int hf_p1_MTS_APDU_PDU = -1;
68 static int hf_p1_MTABindArgument_PDU = -1;
69 static int hf_p1_MTABindResult_PDU = -1;
70 static int hf_p1_MTABindError_PDU = -1;
71
72
73 /*--- Included file: packet-p1-hf.c ---*/
74 #line 1 "../../asn1/p1/packet-p1-hf.c"
75 static int hf_p1_InternalTraceInformation_PDU = -1;  /* InternalTraceInformation */
76 static int hf_p1_InternalTraceInformationElement_PDU = -1;  /* InternalTraceInformationElement */
77 static int hf_p1_TraceInformation_PDU = -1;       /* TraceInformation */
78 static int hf_p1_TraceInformationElement_PDU = -1;  /* TraceInformationElement */
79 static int hf_p1_MTSBindArgument_PDU = -1;        /* MTSBindArgument */
80 static int hf_p1_MTSBindResult_PDU = -1;          /* MTSBindResult */
81 static int hf_p1_PAR_mts_bind_error_PDU = -1;     /* PAR_mts_bind_error */
82 static int hf_p1_MessageSubmissionArgument_PDU = -1;  /* MessageSubmissionArgument */
83 static int hf_p1_MessageSubmissionResult_PDU = -1;  /* MessageSubmissionResult */
84 static int hf_p1_ProbeSubmissionArgument_PDU = -1;  /* ProbeSubmissionArgument */
85 static int hf_p1_ProbeSubmissionResult_PDU = -1;  /* ProbeSubmissionResult */
86 static int hf_p1_CancelDeferredDeliveryArgument_PDU = -1;  /* CancelDeferredDeliveryArgument */
87 static int hf_p1_CancelDeferredDeliveryResult_PDU = -1;  /* CancelDeferredDeliveryResult */
88 static int hf_p1_SubmissionControlArgument_PDU = -1;  /* SubmissionControlArgument */
89 static int hf_p1_SubmissionControlResult_PDU = -1;  /* SubmissionControlResult */
90 static int hf_p1_PAR_submission_control_violated_PDU = -1;  /* PAR_submission_control_violated */
91 static int hf_p1_PAR_element_of_service_not_subscribed_PDU = -1;  /* PAR_element_of_service_not_subscribed */
92 static int hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU = -1;  /* PAR_deferred_delivery_cancellation_rejected */
93 static int hf_p1_PAR_originator_invalid_PDU = -1;  /* PAR_originator_invalid */
94 static int hf_p1_ImproperlySpecifiedRecipients_PDU = -1;  /* ImproperlySpecifiedRecipients */
95 static int hf_p1_PAR_message_submission_identifier_invalid_PDU = -1;  /* PAR_message_submission_identifier_invalid */
96 static int hf_p1_PAR_inconsistent_request_PDU = -1;  /* PAR_inconsistent_request */
97 static int hf_p1_SecurityProblem_PDU = -1;        /* SecurityProblem */
98 static int hf_p1_PAR_unsupported_critical_function_PDU = -1;  /* PAR_unsupported_critical_function */
99 static int hf_p1_PAR_remote_bind_error_PDU = -1;  /* PAR_remote_bind_error */
100 static int hf_p1_MessageSubmissionTime_PDU = -1;  /* MessageSubmissionTime */
101 static int hf_p1_MessageDeliveryArgument_PDU = -1;  /* MessageDeliveryArgument */
102 static int hf_p1_MessageDeliveryResult_PDU = -1;  /* MessageDeliveryResult */
103 static int hf_p1_ReportDeliveryArgument_PDU = -1;  /* ReportDeliveryArgument */
104 static int hf_p1_ReportDeliveryResult_PDU = -1;   /* ReportDeliveryResult */
105 static int hf_p1_DeliveryControlArgument_PDU = -1;  /* DeliveryControlArgument */
106 static int hf_p1_DeliveryControlResult_PDU = -1;  /* DeliveryControlResult */
107 static int hf_p1_PAR_delivery_control_violated_PDU = -1;  /* PAR_delivery_control_violated */
108 static int hf_p1_PAR_control_violates_registration_PDU = -1;  /* PAR_control_violates_registration */
109 static int hf_p1_RefusedOperation_PDU = -1;       /* RefusedOperation */
110 static int hf_p1_RecipientCertificate_PDU = -1;   /* RecipientCertificate */
111 static int hf_p1_ProofOfDelivery_PDU = -1;        /* ProofOfDelivery */
112 static int hf_p1_RegisterArgument_PDU = -1;       /* RegisterArgument */
113 static int hf_p1_RegisterResult_PDU = -1;         /* RegisterResult */
114 static int hf_p1_ChangeCredentialsArgument_PDU = -1;  /* ChangeCredentialsArgument */
115 static int hf_p1_RES_change_credentials_PDU = -1;  /* RES_change_credentials */
116 static int hf_p1_PAR_register_rejected_PDU = -1;  /* PAR_register_rejected */
117 static int hf_p1_PAR_new_credentials_unacceptable_PDU = -1;  /* PAR_new_credentials_unacceptable */
118 static int hf_p1_PAR_old_credentials_incorrectly_specified_PDU = -1;  /* PAR_old_credentials_incorrectly_specified */
119 static int hf_p1_MessageSubmissionEnvelope_PDU = -1;  /* MessageSubmissionEnvelope */
120 static int hf_p1_PerRecipientMessageSubmissionFields_PDU = -1;  /* PerRecipientMessageSubmissionFields */
121 static int hf_p1_ProbeSubmissionEnvelope_PDU = -1;  /* ProbeSubmissionEnvelope */
122 static int hf_p1_PerRecipientProbeSubmissionFields_PDU = -1;  /* PerRecipientProbeSubmissionFields */
123 static int hf_p1_MessageDeliveryEnvelope_PDU = -1;  /* MessageDeliveryEnvelope */
124 static int hf_p1_ReportDeliveryEnvelope_PDU = -1;  /* ReportDeliveryEnvelope */
125 static int hf_p1_PerRecipientReportDeliveryFields_PDU = -1;  /* PerRecipientReportDeliveryFields */
126 static int hf_p1_ExtendedContentType_PDU = -1;    /* ExtendedContentType */
127 static int hf_p1_ContentIdentifier_PDU = -1;      /* ContentIdentifier */
128 static int hf_p1_PerMessageIndicators_PDU = -1;   /* PerMessageIndicators */
129 static int hf_p1_OriginatorReportRequest_PDU = -1;  /* OriginatorReportRequest */
130 static int hf_p1_DeferredDeliveryTime_PDU = -1;   /* DeferredDeliveryTime */
131 static int hf_p1_Priority_PDU = -1;               /* Priority */
132 static int hf_p1_ContentLength_PDU = -1;          /* ContentLength */
133 static int hf_p1_MessageDeliveryTime_PDU = -1;    /* MessageDeliveryTime */
134 static int hf_p1_DeliveryFlags_PDU = -1;          /* DeliveryFlags */
135 static int hf_p1_SubjectSubmissionIdentifier_PDU = -1;  /* SubjectSubmissionIdentifier */
136 static int hf_p1_RecipientReassignmentProhibited_PDU = -1;  /* RecipientReassignmentProhibited */
137 static int hf_p1_OriginatorRequestedAlternateRecipient_PDU = -1;  /* OriginatorRequestedAlternateRecipient */
138 static int hf_p1_DLExpansionProhibited_PDU = -1;  /* DLExpansionProhibited */
139 static int hf_p1_ConversionWithLossProhibited_PDU = -1;  /* ConversionWithLossProhibited */
140 static int hf_p1_LatestDeliveryTime_PDU = -1;     /* LatestDeliveryTime */
141 static int hf_p1_RequestedDeliveryMethod_PDU = -1;  /* RequestedDeliveryMethod */
142 static int hf_p1_PhysicalForwardingProhibited_PDU = -1;  /* PhysicalForwardingProhibited */
143 static int hf_p1_PhysicalForwardingAddressRequest_PDU = -1;  /* PhysicalForwardingAddressRequest */
144 static int hf_p1_PhysicalDeliveryModes_PDU = -1;  /* PhysicalDeliveryModes */
145 static int hf_p1_RegisteredMailType_PDU = -1;     /* RegisteredMailType */
146 static int hf_p1_RecipientNumberForAdvice_PDU = -1;  /* RecipientNumberForAdvice */
147 static int hf_p1_PhysicalRenditionAttributes_PDU = -1;  /* PhysicalRenditionAttributes */
148 static int hf_p1_OriginatorReturnAddress_PDU = -1;  /* OriginatorReturnAddress */
149 static int hf_p1_PhysicalDeliveryReportRequest_PDU = -1;  /* PhysicalDeliveryReportRequest */
150 static int hf_p1_OriginatorCertificate_PDU = -1;  /* OriginatorCertificate */
151 static int hf_p1_MessageToken_PDU = -1;           /* MessageToken */
152 static int hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU = -1;  /* ContentConfidentialityAlgorithmIdentifier */
153 static int hf_p1_ContentIntegrityCheck_PDU = -1;  /* ContentIntegrityCheck */
154 static int hf_p1_MessageOriginAuthenticationCheck_PDU = -1;  /* MessageOriginAuthenticationCheck */
155 static int hf_p1_p1_MessageSecurityLabel_PDU = -1;  /* MessageSecurityLabel */
156 static int hf_p1_ProofOfSubmissionRequest_PDU = -1;  /* ProofOfSubmissionRequest */
157 static int hf_p1_ProofOfDeliveryRequest_PDU = -1;  /* ProofOfDeliveryRequest */
158 static int hf_p1_ContentCorrelator_PDU = -1;      /* ContentCorrelator */
159 static int hf_p1_ProbeOriginAuthenticationCheck_PDU = -1;  /* ProbeOriginAuthenticationCheck */
160 static int hf_p1_RedirectionHistory_PDU = -1;     /* RedirectionHistory */
161 static int hf_p1_Redirection_PDU = -1;            /* Redirection */
162 static int hf_p1_DLExpansionHistory_PDU = -1;     /* DLExpansionHistory */
163 static int hf_p1_DLExpansion_PDU = -1;            /* DLExpansion */
164 static int hf_p1_PhysicalForwardingAddress_PDU = -1;  /* PhysicalForwardingAddress */
165 static int hf_p1_OriginatorAndDLExpansionHistory_PDU = -1;  /* OriginatorAndDLExpansionHistory */
166 static int hf_p1_ReportingDLName_PDU = -1;        /* ReportingDLName */
167 static int hf_p1_ReportingMTACertificate_PDU = -1;  /* ReportingMTACertificate */
168 static int hf_p1_ReportOriginAuthenticationCheck_PDU = -1;  /* ReportOriginAuthenticationCheck */
169 static int hf_p1_OriginatingMTACertificate_PDU = -1;  /* OriginatingMTACertificate */
170 static int hf_p1_ProofOfSubmission_PDU = -1;      /* ProofOfSubmission */
171 static int hf_p1_ReportingMTAName_PDU = -1;       /* ReportingMTAName */
172 static int hf_p1_ExtendedCertificates_PDU = -1;   /* ExtendedCertificates */
173 static int hf_p1_DLExemptedRecipients_PDU = -1;   /* DLExemptedRecipients */
174 static int hf_p1_CertificateSelectors_PDU = -1;   /* CertificateSelectors */
175 static int hf_p1_Content_PDU = -1;                /* Content */
176 static int hf_p1_MTSIdentifier_PDU = -1;          /* MTSIdentifier */
177 static int hf_p1_ORName_PDU = -1;                 /* ORName */
178 static int hf_p1_ORAddress_PDU = -1;              /* ORAddress */
179 static int hf_p1_CommonName_PDU = -1;             /* CommonName */
180 static int hf_p1_TeletexCommonName_PDU = -1;      /* TeletexCommonName */
181 static int hf_p1_UniversalCommonName_PDU = -1;    /* UniversalCommonName */
182 static int hf_p1_TeletexOrganizationName_PDU = -1;  /* TeletexOrganizationName */
183 static int hf_p1_UniversalOrganizationName_PDU = -1;  /* UniversalOrganizationName */
184 static int hf_p1_TeletexPersonalName_PDU = -1;    /* TeletexPersonalName */
185 static int hf_p1_UniversalPersonalName_PDU = -1;  /* UniversalPersonalName */
186 static int hf_p1_TeletexOrganizationalUnitNames_PDU = -1;  /* TeletexOrganizationalUnitNames */
187 static int hf_p1_UniversalOrganizationalUnitNames_PDU = -1;  /* UniversalOrganizationalUnitNames */
188 static int hf_p1_PDSName_PDU = -1;                /* PDSName */
189 static int hf_p1_PhysicalDeliveryCountryName_PDU = -1;  /* PhysicalDeliveryCountryName */
190 static int hf_p1_PostalCode_PDU = -1;             /* PostalCode */
191 static int hf_p1_PhysicalDeliveryOfficeName_PDU = -1;  /* PhysicalDeliveryOfficeName */
192 static int hf_p1_UniversalPhysicalDeliveryOfficeName_PDU = -1;  /* UniversalPhysicalDeliveryOfficeName */
193 static int hf_p1_PhysicalDeliveryOfficeNumber_PDU = -1;  /* PhysicalDeliveryOfficeNumber */
194 static int hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU = -1;  /* UniversalPhysicalDeliveryOfficeNumber */
195 static int hf_p1_ExtensionORAddressComponents_PDU = -1;  /* ExtensionORAddressComponents */
196 static int hf_p1_UniversalExtensionORAddressComponents_PDU = -1;  /* UniversalExtensionORAddressComponents */
197 static int hf_p1_PhysicalDeliveryPersonalName_PDU = -1;  /* PhysicalDeliveryPersonalName */
198 static int hf_p1_UniversalPhysicalDeliveryPersonalName_PDU = -1;  /* UniversalPhysicalDeliveryPersonalName */
199 static int hf_p1_PhysicalDeliveryOrganizationName_PDU = -1;  /* PhysicalDeliveryOrganizationName */
200 static int hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU = -1;  /* UniversalPhysicalDeliveryOrganizationName */
201 static int hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* ExtensionPhysicalDeliveryAddressComponents */
202 static int hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* UniversalExtensionPhysicalDeliveryAddressComponents */
203 static int hf_p1_UnformattedPostalAddress_PDU = -1;  /* UnformattedPostalAddress */
204 static int hf_p1_UniversalUnformattedPostalAddress_PDU = -1;  /* UniversalUnformattedPostalAddress */
205 static int hf_p1_StreetAddress_PDU = -1;          /* StreetAddress */
206 static int hf_p1_UniversalStreetAddress_PDU = -1;  /* UniversalStreetAddress */
207 static int hf_p1_PostOfficeBoxAddress_PDU = -1;   /* PostOfficeBoxAddress */
208 static int hf_p1_UniversalPostOfficeBoxAddress_PDU = -1;  /* UniversalPostOfficeBoxAddress */
209 static int hf_p1_PosteRestanteAddress_PDU = -1;   /* PosteRestanteAddress */
210 static int hf_p1_UniversalPosteRestanteAddress_PDU = -1;  /* UniversalPosteRestanteAddress */
211 static int hf_p1_UniquePostalName_PDU = -1;       /* UniquePostalName */
212 static int hf_p1_UniversalUniquePostalName_PDU = -1;  /* UniversalUniquePostalName */
213 static int hf_p1_LocalPostalAttributes_PDU = -1;  /* LocalPostalAttributes */
214 static int hf_p1_UniversalLocalPostalAttributes_PDU = -1;  /* UniversalLocalPostalAttributes */
215 static int hf_p1_ExtendedNetworkAddress_PDU = -1;  /* ExtendedNetworkAddress */
216 static int hf_p1_TerminalType_PDU = -1;           /* TerminalType */
217 static int hf_p1_TeletexDomainDefinedAttributes_PDU = -1;  /* TeletexDomainDefinedAttributes */
218 static int hf_p1_UniversalDomainDefinedAttributes_PDU = -1;  /* UniversalDomainDefinedAttributes */
219 static int hf_p1_ExtendedEncodedInformationType_PDU = -1;  /* ExtendedEncodedInformationType */
220 static int hf_p1_MTANameAndOptionalGDI_PDU = -1;  /* MTANameAndOptionalGDI */
221 static int hf_p1_AsymmetricToken_PDU = -1;        /* AsymmetricToken */
222 static int hf_p1_BindTokenSignedData_PDU = -1;    /* BindTokenSignedData */
223 static int hf_p1_MessageTokenSignedData_PDU = -1;  /* MessageTokenSignedData */
224 static int hf_p1_MessageTokenEncryptedData_PDU = -1;  /* MessageTokenEncryptedData */
225 static int hf_p1_BindTokenEncryptedData_PDU = -1;  /* BindTokenEncryptedData */
226 static int hf_p1_SecurityClassification_PDU = -1;  /* SecurityClassification */
227 static int hf_p1_unauthenticated = -1;            /* NULL */
228 static int hf_p1_authenticated_argument = -1;     /* AuthenticatedArgument */
229 static int hf_p1_authenticated_initiator_name = -1;  /* MTAName */
230 static int hf_p1_initiator_credentials = -1;      /* InitiatorCredentials */
231 static int hf_p1_security_context = -1;           /* SecurityContext */
232 static int hf_p1_authenticated_result = -1;       /* AuthenticatedResult */
233 static int hf_p1_authenticated_responder_name = -1;  /* MTAName */
234 static int hf_p1_responder_credentials = -1;      /* ResponderCredentials */
235 static int hf_p1_message = -1;                    /* Message */
236 static int hf_p1_probe = -1;                      /* Probe */
237 static int hf_p1_report = -1;                     /* Report */
238 static int hf_p1_message_envelope = -1;           /* MessageTransferEnvelope */
239 static int hf_p1_content = -1;                    /* Content */
240 static int hf_p1_report_envelope = -1;            /* ReportTransferEnvelope */
241 static int hf_p1_report_content = -1;             /* ReportTransferContent */
242 static int hf_p1_message_identifier = -1;         /* MessageIdentifier */
243 static int hf_p1_originator_name = -1;            /* MTAOriginatorName */
244 static int hf_p1_original_encoded_information_types = -1;  /* OriginalEncodedInformationTypes */
245 static int hf_p1_content_type = -1;               /* ContentType */
246 static int hf_p1_content_identifier = -1;         /* ContentIdentifier */
247 static int hf_p1_priority = -1;                   /* Priority */
248 static int hf_p1_per_message_indicators = -1;     /* PerMessageIndicators */
249 static int hf_p1_deferred_delivery_time = -1;     /* DeferredDeliveryTime */
250 static int hf_p1_per_domain_bilateral_information = -1;  /* SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation */
251 static int hf_p1_per_domain_bilateral_information_item = -1;  /* PerDomainBilateralInformation */
252 static int hf_p1_trace_information = -1;          /* TraceInformation */
253 static int hf_p1_extensions = -1;                 /* SET_OF_ExtensionField */
254 static int hf_p1_extensions_item = -1;            /* ExtensionField */
255 static int hf_p1_recipient_name = -1;             /* MTARecipientName */
256 static int hf_p1_originally_specified_recipient_number = -1;  /* OriginallySpecifiedRecipientNumber */
257 static int hf_p1_per_recipient_indicators = -1;   /* PerRecipientIndicators */
258 static int hf_p1_explicit_conversion = -1;        /* ExplicitConversion */
259 static int hf_p1_probe_identifier = -1;           /* ProbeIdentifier */
260 static int hf_p1_content_length = -1;             /* ContentLength */
261 static int hf_p1_report_identifier = -1;          /* ReportIdentifier */
262 static int hf_p1_report_destination_name = -1;    /* ReportDestinationName */
263 static int hf_p1_subject_identifier = -1;         /* SubjectIdentifier */
264 static int hf_p1_subject_intermediate_trace_information = -1;  /* SubjectIntermediateTraceInformation */
265 static int hf_p1_returned_content = -1;           /* Content */
266 static int hf_p1_additional_information = -1;     /* AdditionalInformation */
267 static int hf_p1_mta_actual_recipient_name = -1;  /* MTAActualRecipientName */
268 static int hf_p1_last_trace_information = -1;     /* LastTraceInformation */
269 static int hf_p1_report_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
270 static int hf_p1_supplementary_information = -1;  /* SupplementaryInformation */
271 static int hf_p1_country_name = -1;               /* CountryName */
272 static int hf_p1_bilateral_domain = -1;           /* T_bilateral_domain */
273 static int hf_p1_administration_domain_name = -1;  /* AdministrationDomainName */
274 static int hf_p1_private_domain = -1;             /* T_private_domain */
275 static int hf_p1_private_domain_identifier = -1;  /* PrivateDomainIdentifier */
276 static int hf_p1_bilateral_information = -1;      /* T_bilateral_information */
277 static int hf_p1_arrival_time = -1;               /* ArrivalTime */
278 static int hf_p1_converted_encoded_information_types = -1;  /* ConvertedEncodedInformationTypes */
279 static int hf_p1_trace_report_type = -1;          /* ReportType */
280 static int hf_p1_InternalTraceInformation_item = -1;  /* InternalTraceInformationElement */
281 static int hf_p1_global_domain_identifier = -1;   /* GlobalDomainIdentifier */
282 static int hf_p1_mta_name = -1;                   /* MTAName */
283 static int hf_p1_mta_supplied_information = -1;   /* MTASuppliedInformation */
284 static int hf_p1__untag_item = -1;                /* TraceInformationElement */
285 static int hf_p1_domain_supplied_information = -1;  /* DomainSuppliedInformation */
286 static int hf_p1_deferred_time = -1;              /* DeferredTime */
287 static int hf_p1_other_actions = -1;              /* OtherActions */
288 static int hf_p1_initiator_name = -1;             /* ObjectName */
289 static int hf_p1_messages_waiting = -1;           /* MessagesWaiting */
290 static int hf_p1_responder_name = -1;             /* ObjectName */
291 static int hf_p1_user_agent = -1;                 /* ORAddressAndOptionalDirectoryName */
292 static int hf_p1_mTA = -1;                        /* MTAName */
293 static int hf_p1_message_store = -1;              /* ORAddressAndOptionalDirectoryName */
294 static int hf_p1_urgent = -1;                     /* DeliveryQueue */
295 static int hf_p1_normal = -1;                     /* DeliveryQueue */
296 static int hf_p1_non_urgent = -1;                 /* DeliveryQueue */
297 static int hf_p1_messages = -1;                   /* INTEGER_0_ub_queue_size */
298 static int hf_p1_delivery_queue_octets = -1;      /* INTEGER_0_ub_content_length */
299 static int hf_p1_simple = -1;                     /* Password */
300 static int hf_p1_strong = -1;                     /* StrongCredentials */
301 static int hf_p1_protected = -1;                  /* ProtectedPassword */
302 static int hf_p1_ia5_string = -1;                 /* IA5String_SIZE_0_ub_password_length */
303 static int hf_p1_octet_string = -1;               /* OCTET_STRING_SIZE_0_ub_password_length */
304 static int hf_p1_bind_token = -1;                 /* Token */
305 static int hf_p1_certificate = -1;                /* Certificates */
306 static int hf_p1_certificate_selector = -1;       /* CertificateAssertion */
307 static int hf_p1_signature = -1;                  /* Signature */
308 static int hf_p1_time1 = -1;                      /* UTCTime */
309 static int hf_p1_time2 = -1;                      /* UTCTime */
310 static int hf_p1_random1 = -1;                    /* BIT_STRING */
311 static int hf_p1_random2 = -1;                    /* BIT_STRING */
312 static int hf_p1_algorithmIdentifier = -1;        /* AlgorithmIdentifier */
313 static int hf_p1_encrypted = -1;                  /* BIT_STRING */
314 static int hf_p1_SecurityContext_item = -1;       /* SecurityLabel */
315 static int hf_p1_message_submission_envelope = -1;  /* MessageSubmissionEnvelope */
316 static int hf_p1_message_submission_identifier = -1;  /* MessageSubmissionIdentifier */
317 static int hf_p1_message_submission_time = -1;    /* MessageSubmissionTime */
318 static int hf_p1_probe_submission_identifier = -1;  /* ProbeSubmissionIdentifier */
319 static int hf_p1_probe_submission_time = -1;      /* ProbeSubmissionTime */
320 static int hf_p1_ImproperlySpecifiedRecipients_item = -1;  /* RecipientName */
321 static int hf_p1_waiting_operations = -1;         /* Operations */
322 static int hf_p1_waiting_messages = -1;           /* WaitingMessages */
323 static int hf_p1_waiting_content_types = -1;      /* SET_SIZE_0_ub_content_types_OF_ContentType */
324 static int hf_p1_waiting_content_types_item = -1;  /* ContentType */
325 static int hf_p1_waiting_encoded_information_types = -1;  /* EncodedInformationTypes */
326 static int hf_p1_recipient_certificate = -1;      /* RecipientCertificate */
327 static int hf_p1_proof_of_delivery = -1;          /* ProofOfDelivery */
328 static int hf_p1_empty_result = -1;               /* NULL */
329 static int hf_p1_max_extensions = -1;             /* SET_SIZE_1_MAX_OF_ExtensionField */
330 static int hf_p1_max_extensions_item = -1;        /* ExtensionField */
331 static int hf_p1_restrict = -1;                   /* BOOLEAN */
332 static int hf_p1_permissible_operations = -1;     /* Operations */
333 static int hf_p1_permissible_maximum_content_length = -1;  /* ContentLength */
334 static int hf_p1_permissible_lowest_priority = -1;  /* Priority */
335 static int hf_p1_permissible_content_types = -1;  /* ContentTypes */
336 static int hf_p1_permissible_encoded_information_types = -1;  /* PermissibleEncodedInformationTypes */
337 static int hf_p1_permissible_security_context = -1;  /* SecurityContext */
338 static int hf_p1_refused_argument = -1;           /* T_refused_argument */
339 static int hf_p1_built_in_argument = -1;          /* RefusedArgument */
340 static int hf_p1_refused_extension = -1;          /* T_refused_extension */
341 static int hf_p1_refusal_reason = -1;             /* RefusalReason */
342 static int hf_p1_user_name = -1;                  /* UserName */
343 static int hf_p1_user_address = -1;               /* UserAddress */
344 static int hf_p1_deliverable_class = -1;          /* SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass */
345 static int hf_p1_deliverable_class_item = -1;     /* DeliverableClass */
346 static int hf_p1_default_delivery_controls = -1;  /* DefaultDeliveryControls */
347 static int hf_p1_redirections = -1;               /* Redirections */
348 static int hf_p1_restricted_delivery = -1;        /* RestrictedDelivery */
349 static int hf_p1_retrieve_registrations = -1;     /* RegistrationTypes */
350 static int hf_p1_non_empty_result = -1;           /* T_non_empty_result */
351 static int hf_p1_registered_information = -1;     /* RegisterArgument */
352 static int hf_p1_old_credentials = -1;            /* Credentials */
353 static int hf_p1_new_credentials = -1;            /* Credentials */
354 static int hf_p1_x121 = -1;                       /* T_x121 */
355 static int hf_p1_x121_address = -1;               /* T_x121_address */
356 static int hf_p1_tsap_id = -1;                    /* PrintableString_SIZE_1_ub_tsap_id_length */
357 static int hf_p1_presentation = -1;               /* PSAPAddress */
358 static int hf_p1_Redirections_item = -1;          /* RecipientRedirection */
359 static int hf_p1_redirection_classes = -1;        /* SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass */
360 static int hf_p1_redirection_classes_item = -1;   /* RedirectionClass */
361 static int hf_p1_recipient_assigned_alternate_recipient = -1;  /* RecipientAssignedAlternateRecipient */
362 static int hf_p1_content_types = -1;              /* ContentTypes */
363 static int hf_p1_maximum_content_length = -1;     /* ContentLength */
364 static int hf_p1_encoded_information_types_constraints = -1;  /* EncodedInformationTypesConstraints */
365 static int hf_p1_security_labels = -1;            /* SecurityContext */
366 static int hf_p1_class_priority = -1;             /* SET_OF_Priority */
367 static int hf_p1_class_priority_item = -1;        /* Priority */
368 static int hf_p1_objects = -1;                    /* T_objects */
369 static int hf_p1_applies_only_to = -1;            /* SEQUENCE_OF_Restriction */
370 static int hf_p1_applies_only_to_item = -1;       /* Restriction */
371 static int hf_p1_unacceptable_eits = -1;          /* ExtendedEncodedInformationTypes */
372 static int hf_p1_acceptable_eits = -1;            /* ExtendedEncodedInformationTypes */
373 static int hf_p1_exclusively_acceptable_eits = -1;  /* ExtendedEncodedInformationTypes */
374 static int hf_p1_RestrictedDelivery_item = -1;    /* Restriction */
375 static int hf_p1_permitted = -1;                  /* BOOLEAN */
376 static int hf_p1_source_type = -1;                /* T_source_type */
377 static int hf_p1_source_name = -1;                /* ExactOrPattern */
378 static int hf_p1_exact_match = -1;                /* ORName */
379 static int hf_p1_pattern_match = -1;              /* ORName */
380 static int hf_p1_standard_parameters = -1;        /* T_standard_parameters */
381 static int hf_p1_type_extensions = -1;            /* T_type_extensions */
382 static int hf_p1_type_extensions_item = -1;       /* T_type_extensions_item */
383 static int hf_p1_originator_name_01 = -1;         /* OriginatorName */
384 static int hf_p1_submission_recipient_name = -1;  /* RecipientName */
385 static int hf_p1_originator_report_request = -1;  /* OriginatorReportRequest */
386 static int hf_p1_probe_recipient_name = -1;       /* RecipientName */
387 static int hf_p1_message_delivery_identifier = -1;  /* MessageDeliveryIdentifier */
388 static int hf_p1_message_delivery_time = -1;      /* MessageDeliveryTime */
389 static int hf_p1_other_fields = -1;               /* OtherMessageDeliveryFields */
390 static int hf_p1_delivered_content_type = -1;     /* DeliveredContentType */
391 static int hf_p1_delivered_originator_name = -1;  /* DeliveredOriginatorName */
392 static int hf_p1_delivery_flags = -1;             /* DeliveryFlags */
393 static int hf_p1_other_recipient_names = -1;      /* OtherRecipientNames */
394 static int hf_p1_this_recipient_name = -1;        /* ThisRecipientName */
395 static int hf_p1_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
396 static int hf_p1_subject_submission_identifier = -1;  /* SubjectSubmissionIdentifier */
397 static int hf_p1_actual_recipient_name = -1;      /* ActualRecipientName */
398 static int hf_p1_delivery_report_type = -1;       /* ReportType */
399 static int hf_p1_delivery = -1;                   /* DeliveryReport */
400 static int hf_p1_non_delivery = -1;               /* NonDeliveryReport */
401 static int hf_p1_type_of_MTS_user = -1;           /* TypeOfMTSUser */
402 static int hf_p1_non_delivery_reason_code = -1;   /* NonDeliveryReasonCode */
403 static int hf_p1_non_delivery_diagnostic_code = -1;  /* NonDeliveryDiagnosticCode */
404 static int hf_p1_ContentTypes_item = -1;          /* ContentType */
405 static int hf_p1_built_in = -1;                   /* BuiltInContentType */
406 static int hf_p1_extended = -1;                   /* ExtendedContentType */
407 static int hf_p1_OtherRecipientNames_item = -1;   /* OtherRecipientName */
408 static int hf_p1_standard_extension = -1;         /* StandardExtension */
409 static int hf_p1_private_extension = -1;          /* T_private_extension */
410 static int hf_p1_extension_type = -1;             /* ExtensionType */
411 static int hf_p1_criticality = -1;                /* Criticality */
412 static int hf_p1_extension_value = -1;            /* ExtensionValue */
413 static int hf_p1_RequestedDeliveryMethod_item = -1;  /* RequestedDeliveryMethod_item */
414 static int hf_p1_ia5text = -1;                    /* IA5String */
415 static int hf_p1_octets = -1;                     /* OCTET_STRING */
416 static int hf_p1_RedirectionHistory_item = -1;    /* Redirection */
417 static int hf_p1_intended_recipient_name = -1;    /* IntendedRecipientName */
418 static int hf_p1_redirection_reason = -1;         /* RedirectionReason */
419 static int hf_p1_intended_recipient = -1;         /* ORAddressAndOptionalDirectoryName */
420 static int hf_p1_redirection_time = -1;           /* Time */
421 static int hf_p1_DLExpansionHistory_item = -1;    /* DLExpansion */
422 static int hf_p1_dl = -1;                         /* ORAddressAndOptionalDirectoryName */
423 static int hf_p1_dl_expansion_time = -1;          /* Time */
424 static int hf_p1_OriginatorAndDLExpansionHistory_item = -1;  /* OriginatorAndDLExpansion */
425 static int hf_p1_originator_or_dl_name = -1;      /* ORAddressAndOptionalDirectoryName */
426 static int hf_p1_origination_or_expansion_time = -1;  /* Time */
427 static int hf_p1_report_type = -1;                /* T_report_type */
428 static int hf_p1_report_type_delivery = -1;       /* PerRecipientDeliveryReportFields */
429 static int hf_p1_non_delivery_report = -1;        /* PerRecipientNonDeliveryReportFields */
430 static int hf_p1_domain = -1;                     /* GlobalDomainIdentifier */
431 static int hf_p1_mta_directory_name = -1;         /* Name */
432 static int hf_p1_ExtendedCertificates_item = -1;  /* ExtendedCertificate */
433 static int hf_p1_directory_entry = -1;            /* Name */
434 static int hf_p1_DLExemptedRecipients_item = -1;  /* ORAddressAndOrDirectoryName */
435 static int hf_p1_encryption_recipient = -1;       /* CertificateAssertion */
436 static int hf_p1_encryption_originator = -1;      /* CertificateAssertion */
437 static int hf_p1_selectors_content_integrity_check = -1;  /* CertificateAssertion */
438 static int hf_p1_token_signature = -1;            /* CertificateAssertion */
439 static int hf_p1_message_origin_authentication = -1;  /* CertificateAssertion */
440 static int hf_p1_local_identifier = -1;           /* LocalIdentifier */
441 static int hf_p1_numeric_private_domain_identifier = -1;  /* T_numeric_private_domain_identifier */
442 static int hf_p1_printable_private_domain_identifier = -1;  /* T_printable_private_domain_identifier */
443 static int hf_p1_built_in_standard_attributes = -1;  /* BuiltInStandardAttributes */
444 static int hf_p1_built_in_domain_defined_attributes = -1;  /* BuiltInDomainDefinedAttributes */
445 static int hf_p1_extension_attributes = -1;       /* ExtensionAttributes */
446 static int hf_p1_network_address = -1;            /* NetworkAddress */
447 static int hf_p1_terminal_identifier = -1;        /* TerminalIdentifier */
448 static int hf_p1_private_domain_name = -1;        /* PrivateDomainName */
449 static int hf_p1_organization_name = -1;          /* OrganizationName */
450 static int hf_p1_numeric_user_identifier = -1;    /* NumericUserIdentifier */
451 static int hf_p1_personal_name = -1;              /* PersonalName */
452 static int hf_p1_organizational_unit_names = -1;  /* OrganizationalUnitNames */
453 static int hf_p1_x121_dcc_code = -1;              /* T_x121_dcc_code */
454 static int hf_p1_iso_3166_alpha2_code = -1;       /* T_iso_3166_alpha2_code */
455 static int hf_p1_numeric = -1;                    /* T_numeric */
456 static int hf_p1_printable = -1;                  /* T_printable */
457 static int hf_p1_numeric_private_domain_name = -1;  /* T_numeric_private_domain_name */
458 static int hf_p1_printable_private_domain_name = -1;  /* T_printable_private_domain_name */
459 static int hf_p1_printable_surname = -1;          /* T_printable_surname */
460 static int hf_p1_printable_given_name = -1;       /* T_printable_given_name */
461 static int hf_p1_printable_initials = -1;         /* T_printable_initials */
462 static int hf_p1_printable_generation_qualifier = -1;  /* T_printable_generation_qualifier */
463 static int hf_p1_OrganizationalUnitNames_item = -1;  /* OrganizationalUnitName */
464 static int hf_p1_BuiltInDomainDefinedAttributes_item = -1;  /* BuiltInDomainDefinedAttribute */
465 static int hf_p1_printable_type = -1;             /* T_printable_type */
466 static int hf_p1_printable_value = -1;            /* T_printable_value */
467 static int hf_p1_ExtensionAttributes_item = -1;   /* ExtensionAttribute */
468 static int hf_p1_extension_attribute_type = -1;   /* ExtensionAttributeType */
469 static int hf_p1_extension_attribute_value = -1;  /* T_extension_attribute_value */
470 static int hf_p1_teletex_surname = -1;            /* T_teletex_surname */
471 static int hf_p1_teletex_given_name = -1;         /* T_teletex_given_name */
472 static int hf_p1_teletex_initials = -1;           /* T_teletex_initials */
473 static int hf_p1_teletex_generation_qualifier = -1;  /* T_teletex_generation_qualifier */
474 static int hf_p1_universal_surname = -1;          /* UniversalOrBMPString */
475 static int hf_p1_universal_given_name = -1;       /* UniversalOrBMPString */
476 static int hf_p1_universal_initials = -1;         /* UniversalOrBMPString */
477 static int hf_p1_universal_generation_qualifier = -1;  /* UniversalOrBMPString */
478 static int hf_p1_TeletexOrganizationalUnitNames_item = -1;  /* TeletexOrganizationalUnitName */
479 static int hf_p1_UniversalOrganizationalUnitNames_item = -1;  /* UniversalOrganizationalUnitName */
480 static int hf_p1_character_encoding = -1;         /* T_character_encoding */
481 static int hf_p1_two_octets = -1;                 /* BMPString_SIZE_1_ub_string_length */
482 static int hf_p1_four_octets = -1;                /* UniversalString_SIZE_1_ub_string_length */
483 static int hf_p1_iso_639_language_code = -1;      /* PrintableString_SIZE_CONSTR001 */
484 static int hf_p1_x121_dcc_code_01 = -1;           /* T_x121_dcc_code_01 */
485 static int hf_p1_iso_3166_alpha2_code_01 = -1;    /* T_iso_3166_alpha2_code_01 */
486 static int hf_p1_numeric_code = -1;               /* T_numeric_code */
487 static int hf_p1_printable_code = -1;             /* PrintableString_SIZE_1_ub_postal_code_length */
488 static int hf_p1_printable_address = -1;          /* T_printable_address */
489 static int hf_p1_printable_address_item = -1;     /* PrintableString_SIZE_1_ub_pds_parameter_length */
490 static int hf_p1_teletex_string = -1;             /* TeletexString_SIZE_1_ub_unformatted_address_length */
491 static int hf_p1_printable_string = -1;           /* PrintableString_SIZE_1_ub_pds_parameter_length */
492 static int hf_p1_pds_teletex_string = -1;         /* TeletexString_SIZE_1_ub_pds_parameter_length */
493 static int hf_p1_e163_4_address = -1;             /* T_e163_4_address */
494 static int hf_p1_number = -1;                     /* NumericString_SIZE_1_ub_e163_4_number_length */
495 static int hf_p1_sub_address = -1;                /* NumericString_SIZE_1_ub_e163_4_sub_address_length */
496 static int hf_p1_psap_address = -1;               /* PresentationAddress */
497 static int hf_p1_TeletexDomainDefinedAttributes_item = -1;  /* TeletexDomainDefinedAttribute */
498 static int hf_p1_type = -1;                       /* T_type */
499 static int hf_p1_teletex_value = -1;              /* T_teletex_value */
500 static int hf_p1_UniversalDomainDefinedAttributes_item = -1;  /* UniversalDomainDefinedAttribute */
501 static int hf_p1_universal_type = -1;             /* UniversalOrBMPString */
502 static int hf_p1_universal_value = -1;            /* UniversalOrBMPString */
503 static int hf_p1_ExtendedEncodedInformationTypes_item = -1;  /* ExtendedEncodedInformationType */
504 static int hf_p1_g3_facsimile = -1;               /* G3FacsimileNonBasicParameters */
505 static int hf_p1_teletex = -1;                    /* TeletexNonBasicParameters */
506 static int hf_p1_graphic_character_sets = -1;     /* TeletexString */
507 static int hf_p1_control_character_sets = -1;     /* TeletexString */
508 static int hf_p1_page_formats = -1;               /* OCTET_STRING */
509 static int hf_p1_miscellaneous_terminal_capabilities = -1;  /* TeletexString */
510 static int hf_p1_private_use = -1;                /* OCTET_STRING */
511 static int hf_p1_token_type_identifier = -1;      /* TokenTypeIdentifier */
512 static int hf_p1_token = -1;                      /* TokenTypeData */
513 static int hf_p1_signature_algorithm_identifier = -1;  /* AlgorithmIdentifier */
514 static int hf_p1_name = -1;                       /* T_name */
515 static int hf_p1_token_recipient_name = -1;       /* RecipientName */
516 static int hf_p1_token_mta = -1;                  /* MTANameAndOptionalGDI */
517 static int hf_p1_time = -1;                       /* Time */
518 static int hf_p1_signed_data = -1;                /* TokenData */
519 static int hf_p1_encryption_algorithm_identifier = -1;  /* AlgorithmIdentifier */
520 static int hf_p1_encrypted_data = -1;             /* BIT_STRING */
521 static int hf_p1_asymmetric_token_data = -1;      /* AsymmetricTokenData */
522 static int hf_p1_algorithm_identifier = -1;       /* AlgorithmIdentifier */
523 static int hf_p1_token_data_type = -1;            /* TokenDataType */
524 static int hf_p1_value = -1;                      /* T_value */
525 static int hf_p1_content_confidentiality_algorithm_identifier = -1;  /* ContentConfidentialityAlgorithmIdentifier */
526 static int hf_p1_content_integrity_check = -1;    /* ContentIntegrityCheck */
527 static int hf_p1_message_security_label = -1;     /* MessageSecurityLabel */
528 static int hf_p1_proof_of_delivery_request = -1;  /* ProofOfDeliveryRequest */
529 static int hf_p1_message_sequence_number = -1;    /* INTEGER */
530 static int hf_p1_content_confidentiality_key = -1;  /* EncryptionKey */
531 static int hf_p1_content_integrity_key = -1;      /* EncryptionKey */
532 static int hf_p1_security_policy_identifier = -1;  /* SecurityPolicyIdentifier */
533 static int hf_p1_security_classification = -1;    /* SecurityClassification */
534 static int hf_p1_privacy_mark = -1;               /* PrivacyMark */
535 static int hf_p1_security_categories = -1;        /* SecurityCategories */
536 static int hf_p1_SecurityCategories_item = -1;    /* SecurityCategory */
537 static int hf_p1_category_type = -1;              /* SecurityCategoryIdentifier */
538 static int hf_p1_category_value = -1;             /* CategoryValue */
539 static int hf_p1_mta_originator_name = -1;        /* MTAOriginatorName */
540 static int hf_p1_per_recipient_message_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields */
541 static int hf_p1_per_recipient_message_fields_item = -1;  /* PerRecipientMessageTransferFields */
542 static int hf_p1_per_recipient_probe_transfer_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields */
543 static int hf_p1_per_recipient_probe_transfer_fields_item = -1;  /* PerRecipientProbeTransferFields */
544 static int hf_p1_per_recipient_report_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields */
545 static int hf_p1_per_recipient_report_fields_item = -1;  /* PerRecipientReportTransferFields */
546 static int hf_p1_routing_action = -1;             /* RoutingAction */
547 static int hf_p1_attempted = -1;                  /* T_attempted */
548 static int hf_p1_mta = -1;                        /* MTAName */
549 static int hf_p1_attempted_domain = -1;           /* GlobalDomainIdentifier */
550 static int hf_p1_per_recipient_report_delivery_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields */
551 static int hf_p1_per_recipient_report_delivery_fields_item = -1;  /* PerRecipientReportDeliveryFields */
552 static int hf_p1_mts_originator_name = -1;        /* OriginatorName */
553 static int hf_p1_per_recipient_message_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields */
554 static int hf_p1_per_recipient_message_submission_fields_item = -1;  /* PerRecipientMessageSubmissionFields */
555 static int hf_p1_per_recipient_probe_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields */
556 static int hf_p1_per_recipient_probe_submission_fields_item = -1;  /* PerRecipientProbeSubmissionFields */
557 static int hf_p1_directory_name = -1;             /* Name */
558 static int hf_p1_built_in_encoded_information_types = -1;  /* BuiltInEncodedInformationTypes */
559 static int hf_p1_extended_encoded_information_types = -1;  /* ExtendedEncodedInformationTypes */
560 /* named bits */
561 static int hf_p1_PerRecipientIndicators_responsibility = -1;
562 static int hf_p1_PerRecipientIndicators_originating_MTA_report = -1;
563 static int hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report = -1;
564 static int hf_p1_PerRecipientIndicators_originator_report = -1;
565 static int hf_p1_PerRecipientIndicators_originator_non_delivery_report = -1;
566 static int hf_p1_PerRecipientIndicators_reserved_5 = -1;
567 static int hf_p1_PerRecipientIndicators_reserved_6 = -1;
568 static int hf_p1_PerRecipientIndicators_reserved_7 = -1;
569 static int hf_p1_OtherActions_redirected = -1;
570 static int hf_p1_OtherActions_dl_operation = -1;
571 static int hf_p1_Operations_probe_submission_or_report_delivery = -1;
572 static int hf_p1_Operations_message_submission_or_message_delivery = -1;
573 static int hf_p1_WaitingMessages_long_content = -1;
574 static int hf_p1_WaitingMessages_low_priority = -1;
575 static int hf_p1_WaitingMessages_other_security_labels = -1;
576 static int hf_p1_T_source_type_originated_by = -1;
577 static int hf_p1_T_source_type_redirected_by = -1;
578 static int hf_p1_T_source_type_dl_expanded_by = -1;
579 static int hf_p1_T_standard_parameters_user_name = -1;
580 static int hf_p1_T_standard_parameters_user_address = -1;
581 static int hf_p1_T_standard_parameters_deliverable_class = -1;
582 static int hf_p1_T_standard_parameters_default_delivery_controls = -1;
583 static int hf_p1_T_standard_parameters_redirections = -1;
584 static int hf_p1_T_standard_parameters_restricted_delivery = -1;
585 static int hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients = -1;
586 static int hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited = -1;
587 static int hf_p1_PerMessageIndicators_U_alternate_recipient_allowed = -1;
588 static int hf_p1_PerMessageIndicators_U_content_return_request = -1;
589 static int hf_p1_PerMessageIndicators_U_reserved = -1;
590 static int hf_p1_PerMessageIndicators_U_bit_5 = -1;
591 static int hf_p1_PerMessageIndicators_U_bit_6 = -1;
592 static int hf_p1_PerMessageIndicators_U_service_message = -1;
593 static int hf_p1_OriginatorReportRequest_report = -1;
594 static int hf_p1_OriginatorReportRequest_non_delivery_report = -1;
595 static int hf_p1_DeliveryFlags_implicit_conversion_prohibited = -1;
596 static int hf_p1_Criticality_for_submission = -1;
597 static int hf_p1_Criticality_for_transfer = -1;
598 static int hf_p1_Criticality_for_delivery = -1;
599 static int hf_p1_PhysicalDeliveryModes_ordinary_mail = -1;
600 static int hf_p1_PhysicalDeliveryModes_special_delivery = -1;
601 static int hf_p1_PhysicalDeliveryModes_express_mail = -1;
602 static int hf_p1_PhysicalDeliveryModes_counter_collection = -1;
603 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice = -1;
604 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice = -1;
605 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice = -1;
606 static int hf_p1_PhysicalDeliveryModes_bureau_fax_delivery = -1;
607 static int hf_p1_BuiltInEncodedInformationTypes_unknown = -1;
608 static int hf_p1_BuiltInEncodedInformationTypes_ia5_text = -1;
609 static int hf_p1_BuiltInEncodedInformationTypes_g3_facsimile = -1;
610 static int hf_p1_BuiltInEncodedInformationTypes_g4_class_1 = -1;
611 static int hf_p1_BuiltInEncodedInformationTypes_teletex = -1;
612 static int hf_p1_BuiltInEncodedInformationTypes_videotex = -1;
613 static int hf_p1_BuiltInEncodedInformationTypes_voice = -1;
614 static int hf_p1_BuiltInEncodedInformationTypes_sfd = -1;
615 static int hf_p1_BuiltInEncodedInformationTypes_mixed_mode = -1;
616 static int hf_p1_G3FacsimileNonBasicParameters_two_dimensional = -1;
617 static int hf_p1_G3FacsimileNonBasicParameters_fine_resolution = -1;
618 static int hf_p1_G3FacsimileNonBasicParameters_unlimited_length = -1;
619 static int hf_p1_G3FacsimileNonBasicParameters_b4_length = -1;
620 static int hf_p1_G3FacsimileNonBasicParameters_a3_width = -1;
621 static int hf_p1_G3FacsimileNonBasicParameters_b4_width = -1;
622 static int hf_p1_G3FacsimileNonBasicParameters_t6_coding = -1;
623 static int hf_p1_G3FacsimileNonBasicParameters_uncompressed = -1;
624 static int hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728 = -1;
625 static int hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728 = -1;
626 static int hf_p1_G3FacsimileNonBasicParameters_resolution_type = -1;
627 static int hf_p1_G3FacsimileNonBasicParameters_resolution_400x400 = -1;
628 static int hf_p1_G3FacsimileNonBasicParameters_resolution_300x300 = -1;
629 static int hf_p1_G3FacsimileNonBasicParameters_resolution_8x15 = -1;
630 static int hf_p1_G3FacsimileNonBasicParameters_edi = -1;
631 static int hf_p1_G3FacsimileNonBasicParameters_dtm = -1;
632 static int hf_p1_G3FacsimileNonBasicParameters_bft = -1;
633 static int hf_p1_G3FacsimileNonBasicParameters_mixed_mode = -1;
634 static int hf_p1_G3FacsimileNonBasicParameters_character_mode = -1;
635 static int hf_p1_G3FacsimileNonBasicParameters_twelve_bits = -1;
636 static int hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann = -1;
637 static int hf_p1_G3FacsimileNonBasicParameters_full_colour = -1;
638 static int hf_p1_G3FacsimileNonBasicParameters_jpeg = -1;
639 static int hf_p1_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
640
641 /*--- End of included file: packet-p1-hf.c ---*/
642 #line 65 "../../asn1/p1/packet-p1-template.c"
643
644 /* Initialize the subtree pointers */
645 static gint ett_p1 = -1;
646 static gint ett_p3 = -1;
647 static gint ett_p1_content_unknown = -1;
648 static gint ett_p1_bilateral_information = -1;
649 static gint ett_p1_additional_information = -1;
650 static gint ett_p1_unknown_standard_extension = -1;
651 static gint ett_p1_unknown_extension_attribute_type = -1;
652 static gint ett_p1_unknown_tokendata_type = -1;
653
654 /*--- Included file: packet-p1-ett.c ---*/
655 #line 1 "../../asn1/p1/packet-p1-ett.c"
656 static gint ett_p1_MTABindArgument = -1;
657 static gint ett_p1_AuthenticatedArgument = -1;
658 static gint ett_p1_MTABindResult = -1;
659 static gint ett_p1_AuthenticatedResult = -1;
660 static gint ett_p1_MTS_APDU = -1;
661 static gint ett_p1_Message = -1;
662 static gint ett_p1_Report = -1;
663 static gint ett_p1_MessageTransferEnvelope = -1;
664 static gint ett_p1_PerMessageTransferFields = -1;
665 static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation = -1;
666 static gint ett_p1_SET_OF_ExtensionField = -1;
667 static gint ett_p1_PerRecipientMessageTransferFields = -1;
668 static gint ett_p1_ProbeTransferEnvelope = -1;
669 static gint ett_p1_PerProbeTransferFields = -1;
670 static gint ett_p1_PerRecipientProbeTransferFields = -1;
671 static gint ett_p1_ReportTransferEnvelope = -1;
672 static gint ett_p1_ReportTransferContent = -1;
673 static gint ett_p1_PerReportTransferFields = -1;
674 static gint ett_p1_PerRecipientReportTransferFields = -1;
675 static gint ett_p1_PerDomainBilateralInformation = -1;
676 static gint ett_p1_T_bilateral_domain = -1;
677 static gint ett_p1_T_private_domain = -1;
678 static gint ett_p1_PerRecipientIndicators = -1;
679 static gint ett_p1_LastTraceInformation = -1;
680 static gint ett_p1_InternalTraceInformation = -1;
681 static gint ett_p1_InternalTraceInformationElement = -1;
682 static gint ett_p1_MTASuppliedInformation = -1;
683 static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement = -1;
684 static gint ett_p1_TraceInformationElement = -1;
685 static gint ett_p1_DomainSuppliedInformation = -1;
686 static gint ett_p1_AdditionalActions = -1;
687 static gint ett_p1_OtherActions = -1;
688 static gint ett_p1_MTSBindArgument = -1;
689 static gint ett_p1_MTSBindResult = -1;
690 static gint ett_p1_ObjectName = -1;
691 static gint ett_p1_MessagesWaiting = -1;
692 static gint ett_p1_DeliveryQueue = -1;
693 static gint ett_p1_Credentials = -1;
694 static gint ett_p1_Password = -1;
695 static gint ett_p1_StrongCredentials = -1;
696 static gint ett_p1_ProtectedPassword = -1;
697 static gint ett_p1_Signature = -1;
698 static gint ett_p1_SecurityContext = -1;
699 static gint ett_p1_MessageSubmissionArgument = -1;
700 static gint ett_p1_MessageSubmissionResult = -1;
701 static gint ett_p1_ProbeSubmissionResult = -1;
702 static gint ett_p1_ImproperlySpecifiedRecipients = -1;
703 static gint ett_p1_Waiting = -1;
704 static gint ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType = -1;
705 static gint ett_p1_Operations = -1;
706 static gint ett_p1_WaitingMessages = -1;
707 static gint ett_p1_MessageDeliveryArgument = -1;
708 static gint ett_p1_MessageDeliveryResult = -1;
709 static gint ett_p1_ReportDeliveryArgument = -1;
710 static gint ett_p1_ReportDeliveryResult = -1;
711 static gint ett_p1_SET_SIZE_1_MAX_OF_ExtensionField = -1;
712 static gint ett_p1_DeliveryControlArgument = -1;
713 static gint ett_p1_DeliveryControlResult = -1;
714 static gint ett_p1_RefusedOperation = -1;
715 static gint ett_p1_T_refused_argument = -1;
716 static gint ett_p1_Controls = -1;
717 static gint ett_p1_RegisterArgument = -1;
718 static gint ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass = -1;
719 static gint ett_p1_RegisterResult = -1;
720 static gint ett_p1_T_non_empty_result = -1;
721 static gint ett_p1_ChangeCredentialsArgument = -1;
722 static gint ett_p1_UserAddress = -1;
723 static gint ett_p1_T_x121 = -1;
724 static gint ett_p1_Redirections = -1;
725 static gint ett_p1_RecipientRedirection = -1;
726 static gint ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass = -1;
727 static gint ett_p1_MessageClass = -1;
728 static gint ett_p1_SET_OF_Priority = -1;
729 static gint ett_p1_SEQUENCE_OF_Restriction = -1;
730 static gint ett_p1_EncodedInformationTypesConstraints = -1;
731 static gint ett_p1_RestrictedDelivery = -1;
732 static gint ett_p1_Restriction = -1;
733 static gint ett_p1_T_source_type = -1;
734 static gint ett_p1_ExactOrPattern = -1;
735 static gint ett_p1_RegistrationTypes = -1;
736 static gint ett_p1_T_standard_parameters = -1;
737 static gint ett_p1_T_type_extensions = -1;
738 static gint ett_p1_MessageSubmissionEnvelope = -1;
739 static gint ett_p1_PerMessageSubmissionFields = -1;
740 static gint ett_p1_PerRecipientMessageSubmissionFields = -1;
741 static gint ett_p1_ProbeSubmissionEnvelope = -1;
742 static gint ett_p1_PerProbeSubmissionFields = -1;
743 static gint ett_p1_PerRecipientProbeSubmissionFields = -1;
744 static gint ett_p1_MessageDeliveryEnvelope = -1;
745 static gint ett_p1_OtherMessageDeliveryFields = -1;
746 static gint ett_p1_ReportDeliveryEnvelope = -1;
747 static gint ett_p1_PerReportDeliveryFields = -1;
748 static gint ett_p1_PerRecipientReportDeliveryFields = -1;
749 static gint ett_p1_ReportType = -1;
750 static gint ett_p1_DeliveryReport = -1;
751 static gint ett_p1_NonDeliveryReport = -1;
752 static gint ett_p1_ContentTypes = -1;
753 static gint ett_p1_ContentType = -1;
754 static gint ett_p1_DeliveredContentType = -1;
755 static gint ett_p1_PerMessageIndicators_U = -1;
756 static gint ett_p1_OriginatorReportRequest = -1;
757 static gint ett_p1_DeliveryFlags = -1;
758 static gint ett_p1_OtherRecipientNames = -1;
759 static gint ett_p1_ExtensionType = -1;
760 static gint ett_p1_Criticality = -1;
761 static gint ett_p1_ExtensionField = -1;
762 static gint ett_p1_RequestedDeliveryMethod = -1;
763 static gint ett_p1_PhysicalDeliveryModes = -1;
764 static gint ett_p1_ContentCorrelator = -1;
765 static gint ett_p1_RedirectionHistory = -1;
766 static gint ett_p1_Redirection = -1;
767 static gint ett_p1_IntendedRecipientName = -1;
768 static gint ett_p1_DLExpansionHistory = -1;
769 static gint ett_p1_DLExpansion = -1;
770 static gint ett_p1_OriginatorAndDLExpansionHistory = -1;
771 static gint ett_p1_OriginatorAndDLExpansion = -1;
772 static gint ett_p1_PerRecipientReportFields = -1;
773 static gint ett_p1_T_report_type = -1;
774 static gint ett_p1_PerRecipientDeliveryReportFields = -1;
775 static gint ett_p1_PerRecipientNonDeliveryReportFields = -1;
776 static gint ett_p1_ReportingMTAName = -1;
777 static gint ett_p1_ExtendedCertificates = -1;
778 static gint ett_p1_ExtendedCertificate = -1;
779 static gint ett_p1_DLExemptedRecipients = -1;
780 static gint ett_p1_CertificateSelectors = -1;
781 static gint ett_p1_MTSIdentifier_U = -1;
782 static gint ett_p1_GlobalDomainIdentifier_U = -1;
783 static gint ett_p1_PrivateDomainIdentifier = -1;
784 static gint ett_p1_ORName_U = -1;
785 static gint ett_p1_ORAddress = -1;
786 static gint ett_p1_BuiltInStandardAttributes = -1;
787 static gint ett_p1_CountryName_U = -1;
788 static gint ett_p1_AdministrationDomainName_U = -1;
789 static gint ett_p1_PrivateDomainName = -1;
790 static gint ett_p1_PersonalName = -1;
791 static gint ett_p1_OrganizationalUnitNames = -1;
792 static gint ett_p1_BuiltInDomainDefinedAttributes = -1;
793 static gint ett_p1_BuiltInDomainDefinedAttribute = -1;
794 static gint ett_p1_ExtensionAttributes = -1;
795 static gint ett_p1_ExtensionAttribute = -1;
796 static gint ett_p1_TeletexPersonalName = -1;
797 static gint ett_p1_UniversalPersonalName = -1;
798 static gint ett_p1_TeletexOrganizationalUnitNames = -1;
799 static gint ett_p1_UniversalOrganizationalUnitNames = -1;
800 static gint ett_p1_UniversalOrBMPString = -1;
801 static gint ett_p1_T_character_encoding = -1;
802 static gint ett_p1_PhysicalDeliveryCountryName = -1;
803 static gint ett_p1_PostalCode = -1;
804 static gint ett_p1_UnformattedPostalAddress = -1;
805 static gint ett_p1_T_printable_address = -1;
806 static gint ett_p1_PDSParameter = -1;
807 static gint ett_p1_ExtendedNetworkAddress = -1;
808 static gint ett_p1_T_e163_4_address = -1;
809 static gint ett_p1_TeletexDomainDefinedAttributes = -1;
810 static gint ett_p1_TeletexDomainDefinedAttribute = -1;
811 static gint ett_p1_UniversalDomainDefinedAttributes = -1;
812 static gint ett_p1_UniversalDomainDefinedAttribute = -1;
813 static gint ett_p1_EncodedInformationTypes_U = -1;
814 static gint ett_p1_BuiltInEncodedInformationTypes = -1;
815 static gint ett_p1_ExtendedEncodedInformationTypes = -1;
816 static gint ett_p1_NonBasicParameters = -1;
817 static gint ett_p1_G3FacsimileNonBasicParameters = -1;
818 static gint ett_p1_TeletexNonBasicParameters = -1;
819 static gint ett_p1_Token = -1;
820 static gint ett_p1_AsymmetricTokenData = -1;
821 static gint ett_p1_T_name = -1;
822 static gint ett_p1_MTANameAndOptionalGDI = -1;
823 static gint ett_p1_AsymmetricToken = -1;
824 static gint ett_p1_TokenData = -1;
825 static gint ett_p1_MessageTokenSignedData = -1;
826 static gint ett_p1_MessageTokenEncryptedData = -1;
827 static gint ett_p1_SecurityLabel = -1;
828 static gint ett_p1_SecurityCategories = -1;
829 static gint ett_p1_SecurityCategory = -1;
830 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields = -1;
831 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields = -1;
832 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields = -1;
833 static gint ett_p1_T_attempted = -1;
834 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields = -1;
835 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields = -1;
836 static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields = -1;
837
838 /*--- End of included file: packet-p1-ett.c ---*/
839 #line 76 "../../asn1/p1/packet-p1-template.c"
840
841 static expert_field ei_p1_unknown_extension_attribute_type = EI_INIT;
842 static expert_field ei_p1_unknown_standard_extension = EI_INIT;
843 static expert_field ei_p1_unknown_built_in_content_type = EI_INIT;
844 static expert_field ei_p1_unknown_tokendata_type = EI_INIT;
845
846 /* Dissector tables */
847 static dissector_table_t p1_extension_dissector_table;
848 static dissector_table_t p1_extension_attribute_dissector_table;
849 static dissector_table_t p1_tokendata_dissector_table;
850
851
852 /*--- Included file: packet-p1-table.c ---*/
853 #line 1 "../../asn1/p1/packet-p1-table.c"
854
855 /* P3 ABSTRACT-OPERATIONS */
856 const value_string p3_opr_code_string_vals[] = {
857         { op_ros_bind, "mts_bind" },
858         { op_message_submission, "message_submission" },
859         { op_probe_submission, "probe_submission" },
860         { op_cancel_deferred_delivery, "cancel_deferred_delivery" },
861         { op_submission_control, "submission_control" },
862         { op_message_delivery, "message_delivery" },
863         { op_report_delivery, "report_delivery" },
864         { op_delivery_control, "delivery_control" },
865         { op_register, "register" },
866         { op_change_credentials, "change_credentials" },
867         { 0, NULL }
868 };
869
870
871 /* P3 ERRORS */
872 static const value_string p3_err_code_string_vals[] = {
873         { err_ros_bind, "mts_bind_error" },
874         { err_submission_control_violated, "submission_control_violated" },
875         { err_element_of_service_not_subscribed, "element_of_service_not_subscribed" },
876         { err_deferred_delivery_cancellation_rejected, "deferred_delivery_cancellation_rejected" },
877         { err_originator_invalid, "originator_invalid" },
878         { err_recipient_improperly_specified, "recipient_improperly_specified" },
879         { err_message_submission_identifier_invalid, "message_submission_identifier_invalid" },
880         { err_inconsistent_request, "inconsistent_request" },
881         { err_security_error, "security_error" },
882         { err_unsupported_critical_function, "unsupported_critical_function" },
883         { err_remote_bind_error, "remote_bind_error" },
884         { err_delivery_control_violated, "delivery_control_violated" },
885         { err_control_violates_registration, "control_violates_registration" },
886         { err_operation_refused, "operation_refused" },
887         { err_register_rejected, "register_rejected" },
888         { err_new_credentials_unacceptable, "new_credentials_unacceptable" },
889         { err_old_credentials_incorrectly_specified, "old_credentials_incorrectly_specified" },
890           { 0, NULL }
891 };
892
893
894 /*--- End of included file: packet-p1-table.c ---*/
895 #line 88 "../../asn1/p1/packet-p1-template.c"
896
897 typedef struct p1_address_ctx {
898         gboolean do_address;
899         const char *content_type_id;
900         gboolean report_unknown_content_type;
901         wmem_strbuf_t* oraddress;
902 } p1_address_ctx_t;
903
904 static void set_do_address(asn1_ctx_t* actx, gboolean do_address)
905 {
906         p1_address_ctx_t* ctx;
907
908         if (actx->subtree.tree_ctx == NULL) {
909                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
910         }
911
912         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
913         ctx->do_address = do_address;
914 }
915
916 static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
917 {
918         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
919
920         if (ctx && ctx->do_address) {
921                 if (addr) {
922                         wmem_strbuf_append(ctx->oraddress, addr);
923                 }
924                 if (tvb_string) {
925                         wmem_strbuf_append(ctx->oraddress, tvb_format_text(tvb_string, 0, tvb_length(tvb_string)));
926                 }
927         }
928
929 }
930
931 static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
932 {
933         wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
934         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
935
936         do_address(addr, tvb_string, actx);
937
938         if (ctx && ctx->do_address && ddatype && tvb_string)
939                 wmem_strbuf_append(ddatype, tvb_format_text(tvb_string, 0, tvb_length(tvb_string)));
940 }
941
942 static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx, proto_tree* tree)
943 {
944         wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
945         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
946
947         do_address(addr, tvb_string, actx);
948
949         if (ctx && ctx->do_address && tvb_string && ddatype) {
950                 if (wmem_strbuf_get_len(ddatype) > 0) {
951                         proto_item_append_text (tree, " (%s=%s)", wmem_strbuf_get_str(ddatype), tvb_format_text(tvb_string, 0, tvb_length(tvb_string)));
952                 }
953         }
954 }
955
956
957 /*--- Included file: packet-p1-fn.c ---*/
958 #line 1 "../../asn1/p1/packet-p1-fn.c"
959
960
961 static int
962 dissect_p1_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_) {
963   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
964
965   return offset;
966 }
967
968
969
970 static int
971 dissect_p1_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_) {
972 #line 696 "../../asn1/p1/p1.cnf"
973         tvbuff_t        *mtaname = NULL;
974         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
975
976           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
977                                                         actx, tree, tvb, offset,
978                                                         1, ub_mta_name_length, hf_index, &mtaname);
979
980
981         if (ctx && ctx->do_address) {
982                 proto_item_append_text(actx->subtree.tree, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
983         } else {
984                 if (mtaname) {
985                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
986                 }
987         }
988
989
990
991   return offset;
992 }
993
994
995
996 static int
997 dissect_p1_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_) {
998   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
999                                                         actx, tree, tvb, offset,
1000                                                         0, ub_password_length, hf_index, NULL);
1001
1002   return offset;
1003 }
1004
1005
1006
1007 static int
1008 dissect_p1_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_) {
1009   offset = dissect_ber_constrained_octet_string(implicit_tag, actx, tree, tvb, offset,
1010                                                    0, ub_password_length, hf_index, NULL);
1011
1012   return offset;
1013 }
1014
1015
1016 static const value_string p1_Password_vals[] = {
1017   {   0, "ia5-string" },
1018   {   1, "octet-string" },
1019   { 0, NULL }
1020 };
1021
1022 static const ber_choice_t Password_choice[] = {
1023   {   0, &hf_p1_ia5_string       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_IA5String_SIZE_0_ub_password_length },
1024   {   1, &hf_p1_octet_string     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_OCTET_STRING_SIZE_0_ub_password_length },
1025   { 0, NULL, 0, 0, 0, NULL }
1026 };
1027
1028 static int
1029 dissect_p1_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_) {
1030   offset = dissect_ber_choice(actx, tree, tvb, offset,
1031                                  Password_choice, hf_index, ett_p1_Password,
1032                                  NULL);
1033
1034   return offset;
1035 }
1036
1037
1038
1039 static int
1040 dissect_p1_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_) {
1041   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
1042
1043   return offset;
1044 }
1045
1046
1047
1048 static int
1049 dissect_p1_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_) {
1050 #line 1154 "../../asn1/p1/p1.cnf"
1051
1052         if(actx->external.direct_reference)
1053                 call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1054
1055
1056
1057   return offset;
1058 }
1059
1060
1061 static const ber_sequence_t Token_sequence[] = {
1062   { &hf_p1_token_type_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeIdentifier },
1063   { &hf_p1_token            , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeData },
1064   { NULL, 0, 0, 0, NULL }
1065 };
1066
1067 static int
1068 dissect_p1_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_) {
1069   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1070                                    Token_sequence, hf_index, ett_p1_Token);
1071
1072   return offset;
1073 }
1074
1075
1076 static const ber_sequence_t StrongCredentials_set[] = {
1077   { &hf_p1_bind_token       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Token },
1078   { &hf_p1_certificate      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
1079   { &hf_p1_certificate_selector, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1080   { NULL, 0, 0, 0, NULL }
1081 };
1082
1083 static int
1084 dissect_p1_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_) {
1085   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1086                               StrongCredentials_set, hf_index, ett_p1_StrongCredentials);
1087
1088   return offset;
1089 }
1090
1091
1092
1093 static int
1094 dissect_p1_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_) {
1095   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1096                                     NULL, hf_index, -1,
1097                                     NULL);
1098
1099   return offset;
1100 }
1101
1102
1103 static const ber_sequence_t Signature_sequence[] = {
1104   { &hf_p1_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1105   { &hf_p1_encrypted        , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_BIT_STRING },
1106   { NULL, 0, 0, 0, NULL }
1107 };
1108
1109 static int
1110 dissect_p1_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_) {
1111   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1112                                    Signature_sequence, hf_index, ett_p1_Signature);
1113
1114   return offset;
1115 }
1116
1117
1118
1119 static int
1120 dissect_p1_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_) {
1121   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1122
1123   return offset;
1124 }
1125
1126
1127 static const ber_sequence_t ProtectedPassword_set[] = {
1128   { &hf_p1_signature        , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_Signature },
1129   { &hf_p1_time1            , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
1130   { &hf_p1_time2            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
1131   { &hf_p1_random1          , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
1132   { &hf_p1_random2          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
1133   { NULL, 0, 0, 0, NULL }
1134 };
1135
1136 static int
1137 dissect_p1_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_) {
1138   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1139                               ProtectedPassword_set, hf_index, ett_p1_ProtectedPassword);
1140
1141   return offset;
1142 }
1143
1144
1145 const value_string p1_Credentials_vals[] = {
1146   {   0, "simple" },
1147   {   1, "strong" },
1148   {   2, "protected" },
1149   { 0, NULL }
1150 };
1151
1152 static const ber_choice_t Credentials_choice[] = {
1153   {   0, &hf_p1_simple           , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_p1_Password },
1154   {   1, &hf_p1_strong           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StrongCredentials },
1155   {   2, &hf_p1_protected        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ProtectedPassword },
1156   { 0, NULL, 0, 0, 0, NULL }
1157 };
1158
1159 int
1160 dissect_p1_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_) {
1161 #line 1162 "../../asn1/p1/p1.cnf"
1162   gint credentials = -1;
1163
1164     offset = dissect_ber_choice(actx, tree, tvb, offset,
1165                                  Credentials_choice, hf_index, ett_p1_Credentials,
1166                                  &credentials);
1167
1168
1169   if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
1170     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_Credentials_vals[credentials].strptr);
1171   }
1172
1173
1174
1175   return offset;
1176 }
1177
1178
1179
1180 int
1181 dissect_p1_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_) {
1182   offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1183
1184   return offset;
1185 }
1186
1187
1188
1189 static int
1190 dissect_p1_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_) {
1191   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1192
1193   return offset;
1194 }
1195
1196
1197 static const value_string p1_SecurityClassification_vals[] = {
1198   {   0, "unmarked" },
1199   {   1, "unclassified" },
1200   {   2, "restricted" },
1201   {   3, "confidential" },
1202   {   4, "secret" },
1203   {   5, "top-secret" },
1204   { 0, NULL }
1205 };
1206
1207
1208 static int
1209 dissect_p1_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_) {
1210   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1211                                                             0U, ub_integer_options, hf_index, NULL);
1212
1213   return offset;
1214 }
1215
1216
1217
1218 static int
1219 dissect_p1_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_) {
1220   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1221                                                         actx, tree, tvb, offset,
1222                                                         1, ub_privacy_mark_length, hf_index, NULL);
1223
1224   return offset;
1225 }
1226
1227
1228
1229 static int
1230 dissect_p1_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_) {
1231   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
1232
1233   return offset;
1234 }
1235
1236
1237
1238 static int
1239 dissect_p1_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_) {
1240 #line 562 "../../asn1/p1/p1.cnf"
1241         const char *name;
1242
1243         if (actx->external.direct_reference) {
1244                 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1245                 name = oid_resolved_from_string(actx->external.direct_reference);
1246                 proto_item_append_text(tree, " (%s)", name ? name : actx->external.direct_reference);
1247         } else {
1248                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1249         }
1250
1251
1252
1253   return offset;
1254 }
1255
1256
1257
1258 static int
1259 dissect_p1_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_) {
1260   offset = dissect_p1_SecurityCategoryValue(implicit_tag, tvb, offset, actx, tree, hf_index);
1261
1262   return offset;
1263 }
1264
1265
1266 static const ber_sequence_t SecurityCategory_sequence[] = {
1267   { &hf_p1_category_type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SecurityCategoryIdentifier },
1268   { &hf_p1_category_value   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_CategoryValue },
1269   { NULL, 0, 0, 0, NULL }
1270 };
1271
1272 static int
1273 dissect_p1_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_) {
1274   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1275                                    SecurityCategory_sequence, hf_index, ett_p1_SecurityCategory);
1276
1277   return offset;
1278 }
1279
1280
1281 static const ber_sequence_t SecurityCategories_set_of[1] = {
1282   { &hf_p1_SecurityCategories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategory },
1283 };
1284
1285 static int
1286 dissect_p1_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_) {
1287   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1288                                              1, ub_security_categories, SecurityCategories_set_of, hf_index, ett_p1_SecurityCategories);
1289
1290   return offset;
1291 }
1292
1293
1294 static const ber_sequence_t SecurityLabel_set[] = {
1295   { &hf_p1_security_policy_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityPolicyIdentifier },
1296   { &hf_p1_security_classification, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityClassification },
1297   { &hf_p1_privacy_mark     , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrivacyMark },
1298   { &hf_p1_security_categories, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategories },
1299   { NULL, 0, 0, 0, NULL }
1300 };
1301
1302 int
1303 dissect_p1_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_) {
1304   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1305                               SecurityLabel_set, hf_index, ett_p1_SecurityLabel);
1306
1307   return offset;
1308 }
1309
1310
1311 static const ber_sequence_t SecurityContext_set_of[1] = {
1312   { &hf_p1_SecurityContext_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityLabel },
1313 };
1314
1315 int
1316 dissect_p1_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_) {
1317   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1318                                              1, ub_security_labels, SecurityContext_set_of, hf_index, ett_p1_SecurityContext);
1319
1320   return offset;
1321 }
1322
1323
1324 static const ber_sequence_t AuthenticatedArgument_set[] = {
1325   { &hf_p1_authenticated_initiator_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
1326   { &hf_p1_initiator_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
1327   { &hf_p1_security_context , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
1328   { NULL, 0, 0, 0, NULL }
1329 };
1330
1331 static int
1332 dissect_p1_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_) {
1333   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1334                               AuthenticatedArgument_set, hf_index, ett_p1_AuthenticatedArgument);
1335
1336   return offset;
1337 }
1338
1339
1340 static const value_string p1_MTABindArgument_vals[] = {
1341   {   0, "unauthenticated" },
1342   {   1, "authenticated" },
1343   { 0, NULL }
1344 };
1345
1346 static const ber_choice_t MTABindArgument_choice[] = {
1347   {   0, &hf_p1_unauthenticated  , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
1348   {   1, &hf_p1_authenticated_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedArgument },
1349   { 0, NULL, 0, 0, 0, NULL }
1350 };
1351
1352 static int
1353 dissect_p1_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_) {
1354   offset = dissect_ber_choice(actx, tree, tvb, offset,
1355                                  MTABindArgument_choice, hf_index, ett_p1_MTABindArgument,
1356                                  NULL);
1357
1358   return offset;
1359 }
1360
1361
1362
1363 int
1364 dissect_p1_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_) {
1365   offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1366
1367   return offset;
1368 }
1369
1370
1371 static const ber_sequence_t AuthenticatedResult_set[] = {
1372   { &hf_p1_authenticated_responder_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
1373   { &hf_p1_responder_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
1374   { NULL, 0, 0, 0, NULL }
1375 };
1376
1377 static int
1378 dissect_p1_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_) {
1379   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1380                               AuthenticatedResult_set, hf_index, ett_p1_AuthenticatedResult);
1381
1382   return offset;
1383 }
1384
1385
1386 static const value_string p1_MTABindResult_vals[] = {
1387   {   0, "unauthenticated" },
1388   {   1, "authenticated" },
1389   { 0, NULL }
1390 };
1391
1392 static const ber_choice_t MTABindResult_choice[] = {
1393   {   0, &hf_p1_unauthenticated  , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
1394   {   1, &hf_p1_authenticated_result, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedResult },
1395   { 0, NULL, 0, 0, 0, NULL }
1396 };
1397
1398 static int
1399 dissect_p1_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_) {
1400   offset = dissect_ber_choice(actx, tree, tvb, offset,
1401                                  MTABindResult_choice, hf_index, ett_p1_MTABindResult,
1402                                  NULL);
1403
1404   return offset;
1405 }
1406
1407
1408 static const value_string p1_MTABindError_vals[] = {
1409   {   0, "busy" },
1410   {   2, "authentication-error" },
1411   {   3, "unacceptable-dialogue-mode" },
1412   {   4, "unacceptable-security-context" },
1413   {   5, "inadequate-association-confidentiality" },
1414   { 0, NULL }
1415 };
1416
1417
1418 static int
1419 dissect_p1_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_) {
1420 #line 1145 "../../asn1/p1/p1.cnf"
1421   int error = -1;
1422     offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1423                                                             0U, ub_integer_options, hf_index, &error);
1424
1425   if((error != -1))
1426     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, p1_MTABindError_vals, "error(%d)"));
1427
1428
1429
1430   return offset;
1431 }
1432
1433
1434
1435 static int
1436 dissect_p1_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_) {
1437 #line 842 "../../asn1/p1/p1.cnf"
1438         tvbuff_t        *nstring = NULL;
1439
1440           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1441                                                         actx, tree, tvb, offset,
1442                                                         ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
1443
1444
1445         do_address(NULL, nstring, actx);
1446
1447
1448
1449   return offset;
1450 }
1451
1452
1453
1454 static int
1455 dissect_p1_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_) {
1456 #line 800 "../../asn1/p1/p1.cnf"
1457         tvbuff_t        *nstring = NULL;
1458
1459           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1460                                                         actx, tree, tvb, offset,
1461                                                         ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
1462
1463
1464         do_address(NULL, nstring, actx);
1465
1466
1467
1468   return offset;
1469 }
1470
1471
1472 static const value_string p1_CountryName_U_vals[] = {
1473   {   0, "x121-dcc-code" },
1474   {   1, "iso-3166-alpha2-code" },
1475   { 0, NULL }
1476 };
1477
1478 static const ber_choice_t CountryName_U_choice[] = {
1479   {   0, &hf_p1_x121_dcc_code    , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_dcc_code },
1480   {   1, &hf_p1_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_iso_3166_alpha2_code },
1481   { 0, NULL, 0, 0, 0, NULL }
1482 };
1483
1484 static int
1485 dissect_p1_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_) {
1486   offset = dissect_ber_choice(actx, tree, tvb, offset,
1487                                  CountryName_U_choice, hf_index, ett_p1_CountryName_U,
1488                                  NULL);
1489
1490   return offset;
1491 }
1492
1493
1494
1495 static int
1496 dissect_p1_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_) {
1497 #line 596 "../../asn1/p1/p1.cnf"
1498         do_address("/C=", NULL, actx);
1499
1500           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1501                                       hf_index, BER_CLASS_APP, 1, TRUE, dissect_p1_CountryName_U);
1502
1503
1504
1505
1506   return offset;
1507 }
1508
1509
1510
1511 static int
1512 dissect_p1_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_) {
1513 #line 849 "../../asn1/p1/p1.cnf"
1514         tvbuff_t        *nstring = NULL;
1515
1516           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1517                                                         actx, tree, tvb, offset,
1518                                                         0, ub_domain_name_length, hf_index, &nstring);
1519
1520
1521         do_address(NULL, nstring, actx);
1522
1523
1524
1525   return offset;
1526 }
1527
1528
1529
1530 static int
1531 dissect_p1_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_) {
1532 #line 807 "../../asn1/p1/p1.cnf"
1533         tvbuff_t        *nstring = NULL;
1534
1535           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1536                                                         actx, tree, tvb, offset,
1537                                                         0, ub_domain_name_length, hf_index, &nstring);
1538
1539
1540         do_address(NULL, nstring, actx);
1541
1542
1543
1544   return offset;
1545 }
1546
1547
1548 static const value_string p1_AdministrationDomainName_U_vals[] = {
1549   {   0, "numeric" },
1550   {   1, "printable" },
1551   { 0, NULL }
1552 };
1553
1554 static const ber_choice_t AdministrationDomainName_U_choice[] = {
1555   {   0, &hf_p1_numeric          , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric },
1556   {   1, &hf_p1_printable        , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable },
1557   { 0, NULL, 0, 0, 0, NULL }
1558 };
1559
1560 static int
1561 dissect_p1_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_) {
1562   offset = dissect_ber_choice(actx, tree, tvb, offset,
1563                                  AdministrationDomainName_U_choice, hf_index, ett_p1_AdministrationDomainName_U,
1564                                  NULL);
1565
1566   return offset;
1567 }
1568
1569
1570
1571 static int
1572 dissect_p1_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_) {
1573 #line 601 "../../asn1/p1/p1.cnf"
1574         do_address("/A=", NULL, actx);
1575
1576           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1577                                       hf_index, BER_CLASS_APP, 2, TRUE, dissect_p1_AdministrationDomainName_U);
1578
1579
1580
1581
1582   return offset;
1583 }
1584
1585
1586
1587 static int
1588 dissect_p1_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_) {
1589 #line 863 "../../asn1/p1/p1.cnf"
1590         tvbuff_t        *nstring = NULL;
1591
1592           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1593                                                         actx, tree, tvb, offset,
1594                                                         1, ub_domain_name_length, hf_index, &nstring);
1595
1596
1597         do_address(NULL, nstring, actx);
1598
1599
1600
1601   return offset;
1602 }
1603
1604
1605
1606 static int
1607 dissect_p1_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_) {
1608 #line 821 "../../asn1/p1/p1.cnf"
1609         tvbuff_t        *nstring = NULL;
1610
1611           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1612                                                         actx, tree, tvb, offset,
1613                                                         1, ub_domain_name_length, hf_index, &nstring);
1614
1615
1616         do_address(NULL, nstring, actx);
1617
1618
1619
1620   return offset;
1621 }
1622
1623
1624 static const value_string p1_PrivateDomainIdentifier_vals[] = {
1625   {   0, "numeric" },
1626   {   1, "printable" },
1627   { 0, NULL }
1628 };
1629
1630 static const ber_choice_t PrivateDomainIdentifier_choice[] = {
1631   {   0, &hf_p1_numeric_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_identifier },
1632   {   1, &hf_p1_printable_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_identifier },
1633   { 0, NULL, 0, 0, 0, NULL }
1634 };
1635
1636 static int
1637 dissect_p1_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_) {
1638 #line 736 "../../asn1/p1/p1.cnf"
1639
1640         do_address("/P=", NULL, actx);
1641
1642           offset = dissect_ber_choice(actx, tree, tvb, offset,
1643                                  PrivateDomainIdentifier_choice, hf_index, ett_p1_PrivateDomainIdentifier,
1644                                  NULL);
1645
1646
1647
1648
1649   return offset;
1650 }
1651
1652
1653 static const ber_sequence_t GlobalDomainIdentifier_U_sequence[] = {
1654   { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
1655   { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
1656   { &hf_p1_private_domain_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
1657   { NULL, 0, 0, 0, NULL }
1658 };
1659
1660 static int
1661 dissect_p1_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_) {
1662   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1663                                    GlobalDomainIdentifier_U_sequence, hf_index, ett_p1_GlobalDomainIdentifier_U);
1664
1665   return offset;
1666 }
1667
1668
1669
1670 static int
1671 dissect_p1_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_) {
1672 #line 1024 "../../asn1/p1/p1.cnf"
1673         p1_address_ctx_t* ctx;
1674
1675         if (actx->subtree.tree_ctx == NULL) {
1676                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
1677         }
1678
1679         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1680         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
1681
1682         actx->subtree.tree = tree;
1683
1684           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1685                                       hf_index, BER_CLASS_APP, 3, TRUE, dissect_p1_GlobalDomainIdentifier_U);
1686
1687
1688         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0)) {
1689                 proto_item_append_text(actx->subtree.tree, " (%s/", wmem_strbuf_get_str(ctx->oraddress));
1690
1691                 if (hf_index == hf_p1_subject_identifier) {
1692                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s/", wmem_strbuf_get_str(ctx->oraddress));
1693                 }
1694         }
1695
1696
1697
1698
1699   return offset;
1700 }
1701
1702
1703
1704 static int
1705 dissect_p1_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_) {
1706 #line 1050 "../../asn1/p1/p1.cnf"
1707         tvbuff_t        *id = NULL;
1708         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1709
1710           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1711                                                         actx, tree, tvb, offset,
1712                                                         1, ub_local_id_length, hf_index, &id);
1713
1714
1715         if(id) {
1716                 if (ctx && ctx->do_address)
1717                         proto_item_append_text(actx->subtree.tree, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1718
1719                 if (hf_index == hf_p1_subject_identifier)
1720                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1721         }
1722
1723
1724
1725   return offset;
1726 }
1727
1728
1729 static const ber_sequence_t MTSIdentifier_U_sequence[] = {
1730   { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
1731   { &hf_p1_local_identifier , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_LocalIdentifier },
1732   { NULL, 0, 0, 0, NULL }
1733 };
1734
1735 static int
1736 dissect_p1_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_) {
1737   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1738                                    MTSIdentifier_U_sequence, hf_index, ett_p1_MTSIdentifier_U);
1739
1740   return offset;
1741 }
1742
1743
1744
1745 static int
1746 dissect_p1_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_) {
1747 #line 1064 "../../asn1/p1/p1.cnf"
1748
1749         set_do_address(actx, TRUE);
1750
1751           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1752                                       hf_index, BER_CLASS_APP, 4, TRUE, dissect_p1_MTSIdentifier_U);
1753
1754
1755         set_do_address(actx, FALSE);
1756
1757
1758
1759   return offset;
1760 }
1761
1762
1763
1764 static int
1765 dissect_p1_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_) {
1766 #line 1019 "../../asn1/p1/p1.cnf"
1767         actx->subtree.tree = NULL;
1768
1769           offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
1770
1771
1772
1773
1774   return offset;
1775 }
1776
1777
1778
1779 static int
1780 dissect_p1_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_) {
1781 #line 713 "../../asn1/p1/p1.cnf"
1782         tvbuff_t        *string = NULL;
1783
1784           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1785                                                         actx, tree, tvb, offset,
1786                                                         1, ub_x121_address_length, hf_index, &string);
1787
1788
1789         do_address("/PX121=", string, actx);
1790
1791
1792
1793   return offset;
1794 }
1795
1796
1797
1798 static int
1799 dissect_p1_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_) {
1800   offset = dissect_p1_X121Address(implicit_tag, tvb, offset, actx, tree, hf_index);
1801
1802   return offset;
1803 }
1804
1805
1806
1807 static int
1808 dissect_p1_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_) {
1809 #line 723 "../../asn1/p1/p1.cnf"
1810         tvbuff_t        *string = NULL;
1811
1812           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1813                                                         actx, tree, tvb, offset,
1814                                                         1, ub_terminal_id_length, hf_index, &string);
1815
1816
1817         do_address("/UA-ID=", string, actx);
1818
1819
1820
1821   return offset;
1822 }
1823
1824
1825
1826 static int
1827 dissect_p1_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_) {
1828 #line 856 "../../asn1/p1/p1.cnf"
1829         tvbuff_t        *nstring = NULL;
1830
1831           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1832                                                         actx, tree, tvb, offset,
1833                                                         1, ub_domain_name_length, hf_index, &nstring);
1834
1835
1836         do_address(NULL, nstring, actx);
1837
1838
1839
1840   return offset;
1841 }
1842
1843
1844
1845 static int
1846 dissect_p1_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_) {
1847 #line 814 "../../asn1/p1/p1.cnf"
1848         tvbuff_t        *nstring = NULL;
1849
1850           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1851                                                         actx, tree, tvb, offset,
1852                                                         1, ub_domain_name_length, hf_index, &nstring);
1853
1854
1855         do_address(NULL, nstring, actx);
1856
1857
1858
1859   return offset;
1860 }
1861
1862
1863 static const value_string p1_PrivateDomainName_vals[] = {
1864   {   0, "numeric" },
1865   {   1, "printable" },
1866   { 0, NULL }
1867 };
1868
1869 static const ber_choice_t PrivateDomainName_choice[] = {
1870   {   0, &hf_p1_numeric_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_name },
1871   {   1, &hf_p1_printable_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_name },
1872   { 0, NULL, 0, 0, 0, NULL }
1873 };
1874
1875 static int
1876 dissect_p1_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_) {
1877 #line 730 "../../asn1/p1/p1.cnf"
1878
1879         do_address("/P=", NULL, actx);
1880
1881           offset = dissect_ber_choice(actx, tree, tvb, offset,
1882                                  PrivateDomainName_choice, hf_index, ett_p1_PrivateDomainName,
1883                                  NULL);
1884
1885
1886
1887
1888   return offset;
1889 }
1890
1891
1892
1893 static int
1894 dissect_p1_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_) {
1895 #line 745 "../../asn1/p1/p1.cnf"
1896         tvbuff_t        *string = NULL;
1897
1898           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1899                                                         actx, tree, tvb, offset,
1900                                                         1, ub_organization_name_length, hf_index, &string);
1901
1902
1903         do_address("/O=", string, actx);
1904
1905
1906
1907   return offset;
1908 }
1909
1910
1911
1912 static int
1913 dissect_p1_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_) {
1914   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1915                                                         actx, tree, tvb, offset,
1916                                                         1, ub_numeric_user_id_length, hf_index, NULL);
1917
1918   return offset;
1919 }
1920
1921
1922
1923 static int
1924 dissect_p1_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_) {
1925 #line 904 "../../asn1/p1/p1.cnf"
1926         tvbuff_t        *pstring = NULL;
1927
1928           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1929                                                         actx, tree, tvb, offset,
1930                                                         1, ub_surname_length, hf_index, &pstring);
1931
1932
1933         do_address("/S=", pstring, actx);
1934
1935
1936
1937   return offset;
1938 }
1939
1940
1941
1942 static int
1943 dissect_p1_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_) {
1944 #line 911 "../../asn1/p1/p1.cnf"
1945         tvbuff_t        *pstring = NULL;
1946
1947           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1948                                                         actx, tree, tvb, offset,
1949                                                         1, ub_given_name_length, hf_index, &pstring);
1950
1951
1952         do_address("/G=", pstring, actx);
1953
1954
1955
1956   return offset;
1957 }
1958
1959
1960
1961 static int
1962 dissect_p1_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_) {
1963 #line 918 "../../asn1/p1/p1.cnf"
1964         tvbuff_t        *pstring = NULL;
1965
1966           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1967                                                         actx, tree, tvb, offset,
1968                                                         1, ub_initials_length, hf_index, &pstring);
1969
1970
1971         do_address("/I=", pstring, actx);
1972
1973
1974
1975   return offset;
1976 }
1977
1978
1979
1980 static int
1981 dissect_p1_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_) {
1982 #line 925 "../../asn1/p1/p1.cnf"
1983         tvbuff_t        *pstring = NULL;
1984
1985           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1986                                                         actx, tree, tvb, offset,
1987                                                         1, ub_generation_qualifier_length, hf_index, &pstring);
1988
1989
1990         do_address("/Q=", pstring, actx);
1991
1992
1993
1994   return offset;
1995 }
1996
1997
1998 static const ber_sequence_t PersonalName_set[] = {
1999   { &hf_p1_printable_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_printable_surname },
2000   { &hf_p1_printable_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_given_name },
2001   { &hf_p1_printable_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_initials },
2002   { &hf_p1_printable_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_generation_qualifier },
2003   { NULL, 0, 0, 0, NULL }
2004 };
2005
2006 static int
2007 dissect_p1_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_) {
2008   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2009                               PersonalName_set, hf_index, ett_p1_PersonalName);
2010
2011   return offset;
2012 }
2013
2014
2015
2016 static int
2017 dissect_p1_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_) {
2018 #line 765 "../../asn1/p1/p1.cnf"
2019         tvbuff_t        *string = NULL;
2020
2021         do_address("/OU=", string, actx);
2022
2023
2024
2025   return offset;
2026 }
2027
2028
2029 static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
2030   { &hf_p1_OrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_OrganizationalUnitName },
2031 };
2032
2033 static int
2034 dissect_p1_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_) {
2035   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2036                                                   1, ub_organizational_units, OrganizationalUnitNames_sequence_of, hf_index, ett_p1_OrganizationalUnitNames);
2037
2038   return offset;
2039 }
2040
2041
2042 static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
2043   { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
2044   { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
2045   { &hf_p1_network_address  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NetworkAddress },
2046   { &hf_p1_terminal_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TerminalIdentifier },
2047   { &hf_p1_private_domain_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainName },
2048   { &hf_p1_organization_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationName },
2049   { &hf_p1_numeric_user_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NumericUserIdentifier },
2050   { &hf_p1_personal_name    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_PersonalName },
2051   { &hf_p1_organizational_unit_names, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationalUnitNames },
2052   { NULL, 0, 0, 0, NULL }
2053 };
2054
2055 static int
2056 dissect_p1_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_) {
2057 #line 1081 "../../asn1/p1/p1.cnf"
2058         actx->subtree.tree = tree;
2059
2060           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2061                                    BuiltInStandardAttributes_sequence, hf_index, ett_p1_BuiltInStandardAttributes);
2062
2063
2064
2065
2066   return offset;
2067 }
2068
2069
2070
2071 static int
2072 dissect_p1_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_) {
2073 #line 960 "../../asn1/p1/p1.cnf"
2074         tvbuff_t        *pstring = NULL;
2075
2076           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2077                                                         actx, tree, tvb, offset,
2078                                                         1, ub_domain_defined_attribute_type_length, hf_index, &pstring);
2079
2080
2081         do_address_str("/DD.", pstring, actx);
2082
2083
2084
2085   return offset;
2086 }
2087
2088
2089
2090 static int
2091 dissect_p1_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_) {
2092 #line 967 "../../asn1/p1/p1.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_value_length, hf_index, &pstring);
2098
2099
2100         do_address_str_tree("=", pstring, actx, tree);
2101
2102
2103
2104   return offset;
2105 }
2106
2107
2108 static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
2109   { &hf_p1_printable_type   , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_type },
2110   { &hf_p1_printable_value  , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_value },
2111   { NULL, 0, 0, 0, NULL }
2112 };
2113
2114 static int
2115 dissect_p1_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_) {
2116 #line 974 "../../asn1/p1/p1.cnf"
2117         actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
2118
2119           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2120                                    BuiltInDomainDefinedAttribute_sequence, hf_index, ett_p1_BuiltInDomainDefinedAttribute);
2121
2122
2123
2124
2125   return offset;
2126 }
2127
2128
2129 static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
2130   { &hf_p1_BuiltInDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttribute },
2131 };
2132
2133 static int
2134 dissect_p1_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_) {
2135   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2136                                                   1, ub_domain_defined_attributes, BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_p1_BuiltInDomainDefinedAttributes);
2137
2138   return offset;
2139 }
2140
2141
2142 static const value_string p1_ExtensionAttributeType_vals[] = {
2143   {   1, "common-name" },
2144   {   2, "teletex-common-name" },
2145   {   3, "teletex-organization-name" },
2146   {   4, "teletex-personal-name" },
2147   {   5, "teletex-organizational-unit-names" },
2148   {   6, "teletex-domain-defined-attributes" },
2149   {   7, "pds-name" },
2150   {   8, "physical-delivery-country-name" },
2151   {   9, "postal-code" },
2152   {  10, "physical-delivery-office-name" },
2153   {  11, "physical-delivery-office-number" },
2154   {  12, "extension-OR-address-components" },
2155   {  13, "physical-delivery-personal-name" },
2156   {  14, "physical-delivery-organization-name" },
2157   {  15, "extension-physical-delivery-address-components" },
2158   {  16, "unformatted-postal-address" },
2159   {  17, "street-address" },
2160   {  18, "post-office-box-address" },
2161   {  19, "poste-restante-address" },
2162   {  20, "unique-postal-name" },
2163   {  21, "local-postal-attributes" },
2164   {  22, "extended-network-address" },
2165   {  23, "terminal-type" },
2166   {  24, "universal-common-name" },
2167   {  25, "universal-organization-name" },
2168   {  26, "universal-personal-name" },
2169   {  27, "universal-organizational-unit-names" },
2170   {  28, "universal-domain-defined-attributes" },
2171   {  29, "universal-physical-delivery-office-name" },
2172   {  30, "universal-physical-delivery-office-number" },
2173   {  31, "universal-extension-OR-address-components" },
2174   {  32, "universal-physical-delivery-personal-name" },
2175   {  33, "universal-physical-delivery-organization-name" },
2176   {  34, "universal-extension-physical-delivery-address-components" },
2177   {  35, "universal-unformatted-postal-address" },
2178   {  36, "universal-street-address" },
2179   {  37, "universal-post-office-box-address" },
2180   {  38, "universal-poste-restante-address" },
2181   {  39, "universal-unique-postal-name" },
2182   {  40, "universal-local-postal-attributes" },
2183   { 0, NULL }
2184 };
2185
2186
2187 static int
2188 dissect_p1_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_) {
2189   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2190                                                 &actx->external.indirect_reference);
2191
2192   return offset;
2193 }
2194
2195
2196
2197 static int
2198 dissect_p1_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_) {
2199 #line 576 "../../asn1/p1/p1.cnf"
2200
2201         proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %d"));
2202         if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
2203                 offset =tvb_length(tvb);
2204         } else {
2205                 proto_item *item = NULL;
2206                 proto_tree *next_tree = NULL;
2207
2208                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
2209                         "Dissector for extension-attribute-type %d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
2210                 next_tree = proto_item_add_subtree(item, ett_p1_unknown_extension_attribute_type);
2211                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
2212                 expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type);
2213         }
2214
2215
2216
2217
2218   return offset;
2219 }
2220
2221
2222 static const ber_sequence_t ExtensionAttribute_sequence[] = {
2223   { &hf_p1_extension_attribute_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ExtensionAttributeType },
2224   { &hf_p1_extension_attribute_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_T_extension_attribute_value },
2225   { NULL, 0, 0, 0, NULL }
2226 };
2227
2228 static int
2229 dissect_p1_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_) {
2230   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2231                                    ExtensionAttribute_sequence, hf_index, ett_p1_ExtensionAttribute);
2232
2233   return offset;
2234 }
2235
2236
2237 static const ber_sequence_t ExtensionAttributes_set_of[1] = {
2238   { &hf_p1_ExtensionAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttribute },
2239 };
2240
2241 static int
2242 dissect_p1_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_) {
2243   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2244                                              1, ub_extension_attributes, ExtensionAttributes_set_of, hf_index, ett_p1_ExtensionAttributes);
2245
2246   return offset;
2247 }
2248
2249
2250 static const ber_sequence_t ORName_U_sequence[] = {
2251   { &hf_p1_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInStandardAttributes },
2252   { &hf_p1_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttributes },
2253   { &hf_p1_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttributes },
2254   { &hf_p1_directory_name   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
2255   { NULL, 0, 0, 0, NULL }
2256 };
2257
2258 static int
2259 dissect_p1_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_) {
2260   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2261                                    ORName_U_sequence, hf_index, ett_p1_ORName_U);
2262
2263   return offset;
2264 }
2265
2266
2267
2268 int
2269 dissect_p1_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_) {
2270 #line 1000 "../../asn1/p1/p1.cnf"
2271         p1_address_ctx_t* ctx;
2272
2273         if (actx->subtree.tree_ctx == NULL) {
2274                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
2275         }
2276
2277         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2278         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
2279
2280         actx->subtree.tree = NULL;
2281         set_do_address(actx, TRUE);
2282
2283           offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2284                                       hf_index, BER_CLASS_APP, 0, TRUE, dissect_p1_ORName_U);
2285
2286
2287         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
2288                 proto_item_append_text(actx->subtree.tree, " (%s/)", wmem_strbuf_get_str(ctx->oraddress));
2289
2290         set_do_address(actx, FALSE);
2291
2292
2293   return offset;
2294 }
2295
2296
2297
2298 static int
2299 dissect_p1_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_) {
2300   offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
2301
2302   return offset;
2303 }
2304
2305
2306
2307 static int
2308 dissect_p1_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_) {
2309   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
2310
2311   return offset;
2312 }
2313
2314
2315 static const asn_namedbit BuiltInEncodedInformationTypes_bits[] = {
2316   {  0, &hf_p1_BuiltInEncodedInformationTypes_unknown, -1, -1, "unknown", NULL },
2317   {  2, &hf_p1_BuiltInEncodedInformationTypes_ia5_text, -1, -1, "ia5-text", NULL },
2318   {  3, &hf_p1_BuiltInEncodedInformationTypes_g3_facsimile, -1, -1, "g3-facsimile", NULL },
2319   {  4, &hf_p1_BuiltInEncodedInformationTypes_g4_class_1, -1, -1, "g4-class-1", NULL },
2320   {  5, &hf_p1_BuiltInEncodedInformationTypes_teletex, -1, -1, "teletex", NULL },
2321   {  6, &hf_p1_BuiltInEncodedInformationTypes_videotex, -1, -1, "videotex", NULL },
2322   {  7, &hf_p1_BuiltInEncodedInformationTypes_voice, -1, -1, "voice", NULL },
2323   {  8, &hf_p1_BuiltInEncodedInformationTypes_sfd, -1, -1, "sfd", NULL },
2324   {  9, &hf_p1_BuiltInEncodedInformationTypes_mixed_mode, -1, -1, "mixed-mode", NULL },
2325   { 0, NULL, 0, 0, NULL, NULL }
2326 };
2327
2328 static int
2329 dissect_p1_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_) {
2330   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2331                                                 0, ub_built_in_encoded_information_types, BuiltInEncodedInformationTypes_bits, hf_index, ett_p1_BuiltInEncodedInformationTypes,
2332                                                 NULL);
2333
2334   return offset;
2335 }
2336
2337
2338 static const asn_namedbit G3FacsimileNonBasicParameters_bits[] = {
2339   {  8, &hf_p1_G3FacsimileNonBasicParameters_two_dimensional, -1, -1, "two-dimensional", NULL },
2340   {  9, &hf_p1_G3FacsimileNonBasicParameters_fine_resolution, -1, -1, "fine-resolution", NULL },
2341   { 20, &hf_p1_G3FacsimileNonBasicParameters_unlimited_length, -1, -1, "unlimited-length", NULL },
2342   { 21, &hf_p1_G3FacsimileNonBasicParameters_b4_length, -1, -1, "b4-length", NULL },
2343   { 22, &hf_p1_G3FacsimileNonBasicParameters_a3_width, -1, -1, "a3-width", NULL },
2344   { 23, &hf_p1_G3FacsimileNonBasicParameters_b4_width, -1, -1, "b4-width", NULL },
2345   { 25, &hf_p1_G3FacsimileNonBasicParameters_t6_coding, -1, -1, "t6-coding", NULL },
2346   { 30, &hf_p1_G3FacsimileNonBasicParameters_uncompressed, -1, -1, "uncompressed", NULL },
2347   { 37, &hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728, -1, -1, "width-middle-864-of-1728", NULL },
2348   { 38, &hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728, -1, -1, "width-middle-1216-of-1728", NULL },
2349   { 44, &hf_p1_G3FacsimileNonBasicParameters_resolution_type, -1, -1, "resolution-type", NULL },
2350   { 45, &hf_p1_G3FacsimileNonBasicParameters_resolution_400x400, -1, -1, "resolution-400x400", NULL },
2351   { 46, &hf_p1_G3FacsimileNonBasicParameters_resolution_300x300, -1, -1, "resolution-300x300", NULL },
2352   { 47, &hf_p1_G3FacsimileNonBasicParameters_resolution_8x15, -1, -1, "resolution-8x15", NULL },
2353   { 49, &hf_p1_G3FacsimileNonBasicParameters_edi, -1, -1, "edi", NULL },
2354   { 50, &hf_p1_G3FacsimileNonBasicParameters_dtm, -1, -1, "dtm", NULL },
2355   { 51, &hf_p1_G3FacsimileNonBasicParameters_bft, -1, -1, "bft", NULL },
2356   { 58, &hf_p1_G3FacsimileNonBasicParameters_mixed_mode, -1, -1, "mixed-mode", NULL },
2357   { 60, &hf_p1_G3FacsimileNonBasicParameters_character_mode, -1, -1, "character-mode", NULL },
2358   { 65, &hf_p1_G3FacsimileNonBasicParameters_twelve_bits, -1, -1, "twelve-bits", NULL },
2359   { 66, &hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann, -1, -1, "preferred-huffmann", NULL },
2360   { 67, &hf_p1_G3FacsimileNonBasicParameters_full_colour, -1, -1, "full-colour", NULL },
2361   { 68, &hf_p1_G3FacsimileNonBasicParameters_jpeg, -1, -1, "jpeg", NULL },
2362   { 71, &hf_p1_G3FacsimileNonBasicParameters_processable_mode_26, -1, -1, "processable-mode-26", NULL },
2363   { 0, NULL, 0, 0, NULL, NULL }
2364 };
2365
2366 int
2367 dissect_p1_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_) {
2368   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2369                                     G3FacsimileNonBasicParameters_bits, hf_index, ett_p1_G3FacsimileNonBasicParameters,
2370                                     NULL);
2371
2372   return offset;
2373 }
2374
2375
2376
2377 static int
2378 dissect_p1_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_) {
2379   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
2380                                             actx, tree, tvb, offset, hf_index,
2381                                             NULL);
2382
2383   return offset;
2384 }
2385
2386
2387
2388 static int
2389 dissect_p1_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_) {
2390   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2391                                        NULL);
2392
2393   return offset;
2394 }
2395
2396
2397 static const ber_sequence_t TeletexNonBasicParameters_set[] = {
2398   { &hf_p1_graphic_character_sets, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2399   { &hf_p1_control_character_sets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2400   { &hf_p1_page_formats     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
2401   { &hf_p1_miscellaneous_terminal_capabilities, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2402   { &hf_p1_private_use      , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
2403   { NULL, 0, 0, 0, NULL }
2404 };
2405
2406 int
2407 dissect_p1_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_) {
2408   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2409                               TeletexNonBasicParameters_set, hf_index, ett_p1_TeletexNonBasicParameters);
2410
2411   return offset;
2412 }
2413
2414
2415
2416 static int
2417 dissect_p1_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_) {
2418   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2419
2420   return offset;
2421 }
2422
2423
2424 static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
2425   { &hf_p1_ExtendedEncodedInformationTypes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedEncodedInformationType },
2426 };
2427
2428 static int
2429 dissect_p1_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_) {
2430   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2431                                              1, ub_encoded_information_types, ExtendedEncodedInformationTypes_set_of, hf_index, ett_p1_ExtendedEncodedInformationTypes);
2432
2433   return offset;
2434 }
2435
2436
2437 static const ber_sequence_t EncodedInformationTypes_U_set[] = {
2438   { &hf_p1_built_in_encoded_information_types, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInEncodedInformationTypes },
2439   { &hf_p1_g3_facsimile     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_G3FacsimileNonBasicParameters },
2440   { &hf_p1_teletex          , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexNonBasicParameters },
2441   { &hf_p1_extended_encoded_information_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
2442   { NULL, 0, 0, 0, NULL }
2443 };
2444
2445 static int
2446 dissect_p1_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_) {
2447   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2448                               EncodedInformationTypes_U_set, hf_index, ett_p1_EncodedInformationTypes_U);
2449
2450   return offset;
2451 }
2452
2453
2454
2455 int
2456 dissect_p1_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_) {
2457   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2458                                       hf_index, BER_CLASS_APP, 5, TRUE, dissect_p1_EncodedInformationTypes_U);
2459
2460   return offset;
2461 }
2462
2463
2464
2465 int
2466 dissect_p1_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_) {
2467   offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2468
2469   return offset;
2470 }
2471
2472
2473 static const value_string p1_BuiltInContentType_U_vals[] = {
2474   {   0, "unidentified" },
2475   {   1, "external" },
2476   {   2, "interpersonal-messaging-1984" },
2477   {  22, "interpersonal-messaging-1988" },
2478   {  35, "edi-messaging" },
2479   {  40, "voice-messaging" },
2480   { 0, NULL }
2481 };
2482
2483
2484 static int
2485 dissect_p1_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_) {
2486 #line 643 "../../asn1/p1/p1.cnf"
2487         static guint32  ict = -1;
2488         p1_address_ctx_t* ctx;
2489
2490         if (actx->subtree.tree_ctx == NULL)
2491                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
2492
2493         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2494
2495     offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
2496                                                             0U, ub_built_in_content_type, hf_index, &ict);
2497
2498
2499         /* convert integer content type to oid for dispatch when the content is found */
2500         switch(ict) {
2501         case 2:
2502                 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.0");
2503                 break;
2504         case 22:
2505                 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.1");
2506                 break;
2507         default:
2508                 ctx->content_type_id = NULL;
2509                 break;
2510         }
2511
2512
2513
2514   return offset;
2515 }
2516
2517
2518
2519 static int
2520 dissect_p1_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_) {
2521   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2522                                       hf_index, BER_CLASS_APP, 6, TRUE, dissect_p1_BuiltInContentType_U);
2523
2524   return offset;
2525 }
2526
2527
2528
2529 int
2530 dissect_p1_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_) {
2531 #line 622 "../../asn1/p1/p1.cnf"
2532         const char *name = NULL;
2533         p1_address_ctx_t* ctx;
2534
2535         if (actx->subtree.tree_ctx == NULL)
2536                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
2537
2538         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2539
2540           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &ctx->content_type_id);
2541
2542
2543         if(ctx->content_type_id) {
2544                 name = oid_resolved_from_string(ctx->content_type_id);
2545
2546                 if(!name) name = ctx->content_type_id;
2547
2548                 proto_item_append_text(tree, " (%s)", name);
2549         }
2550
2551
2552
2553   return offset;
2554 }
2555
2556
2557 const value_string p1_ContentType_vals[] = {
2558   {   0, "built-in" },
2559   {   1, "extended" },
2560   { 0, NULL }
2561 };
2562
2563 static const ber_choice_t ContentType_choice[] = {
2564   {   0, &hf_p1_built_in         , BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInContentType },
2565   {   1, &hf_p1_extended         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
2566   { 0, NULL, 0, 0, 0, NULL }
2567 };
2568
2569 int
2570 dissect_p1_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_) {
2571   offset = dissect_ber_choice(actx, tree, tvb, offset,
2572                                  ContentType_choice, hf_index, ett_p1_ContentType,
2573                                  NULL);
2574
2575   return offset;
2576 }
2577
2578
2579
2580 static int
2581 dissect_p1_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_) {
2582   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2583                                                         actx, tree, tvb, offset,
2584                                                         1, ub_content_id_length, hf_index, NULL);
2585
2586   return offset;
2587 }
2588
2589
2590
2591 int
2592 dissect_p1_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_) {
2593   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2594                                       hf_index, BER_CLASS_APP, 10, TRUE, dissect_p1_PrintableString_SIZE_1_ub_content_id_length);
2595
2596   return offset;
2597 }
2598
2599
2600 static const value_string p1_Priority_U_vals[] = {
2601   {   0, "normal" },
2602   {   1, "non-urgent" },
2603   {   2, "urgent" },
2604   { 0, NULL }
2605 };
2606
2607
2608 static int
2609 dissect_p1_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_) {
2610   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2611                                   NULL);
2612
2613   return offset;
2614 }
2615
2616
2617
2618 static int
2619 dissect_p1_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_) {
2620   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2621                                       hf_index, BER_CLASS_APP, 7, TRUE, dissect_p1_Priority_U);
2622
2623   return offset;
2624 }
2625
2626
2627 static const asn_namedbit PerMessageIndicators_U_bits[] = {
2628   {  0, &hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients, -1, -1, "disclosure-of-other-recipients", NULL },
2629   {  1, &hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
2630   {  2, &hf_p1_PerMessageIndicators_U_alternate_recipient_allowed, -1, -1, "alternate-recipient-allowed", NULL },
2631   {  3, &hf_p1_PerMessageIndicators_U_content_return_request, -1, -1, "content-return-request", NULL },
2632   {  4, &hf_p1_PerMessageIndicators_U_reserved, -1, -1, "reserved", NULL },
2633   {  5, &hf_p1_PerMessageIndicators_U_bit_5, -1, -1, "bit-5", NULL },
2634   {  6, &hf_p1_PerMessageIndicators_U_bit_6, -1, -1, "bit-6", NULL },
2635   {  7, &hf_p1_PerMessageIndicators_U_service_message, -1, -1, "service-message", NULL },
2636   { 0, NULL, 0, 0, NULL, NULL }
2637 };
2638
2639 static int
2640 dissect_p1_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_) {
2641   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2642                                                 0, ub_bit_options, PerMessageIndicators_U_bits, hf_index, ett_p1_PerMessageIndicators_U,
2643                                                 NULL);
2644
2645   return offset;
2646 }
2647
2648
2649
2650 int
2651 dissect_p1_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_) {
2652   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2653                                       hf_index, BER_CLASS_APP, 8, TRUE, dissect_p1_PerMessageIndicators_U);
2654
2655   return offset;
2656 }
2657
2658
2659
2660 static int
2661 dissect_p1_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_) {
2662 #line 1123 "../../asn1/p1/p1.cnf"
2663         tvbuff_t *arrival = NULL;
2664         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2665
2666           offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
2667
2668
2669         if(arrival && ctx && ctx->do_address)
2670                 proto_item_append_text(actx->subtree.tree, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
2671
2672
2673
2674   return offset;
2675 }
2676
2677
2678
2679 static int
2680 dissect_p1_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_) {
2681   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2682
2683   return offset;
2684 }
2685
2686
2687 static const ber_sequence_t T_private_domain_sequence[] = {
2688   { &hf_p1_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_AdministrationDomainName },
2689   { &hf_p1_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
2690   { NULL, 0, 0, 0, NULL }
2691 };
2692
2693 static int
2694 dissect_p1_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_) {
2695   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2696                                    T_private_domain_sequence, hf_index, ett_p1_T_private_domain);
2697
2698   return offset;
2699 }
2700
2701
2702 static const value_string p1_T_bilateral_domain_vals[] = {
2703   {   0, "administration-domain-name" },
2704   {   1, "private-domain" },
2705   { 0, NULL }
2706 };
2707
2708 static const ber_choice_t T_bilateral_domain_choice[] = {
2709   {   0, &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
2710   {   1, &hf_p1_private_domain   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_T_private_domain },
2711   { 0, NULL, 0, 0, 0, NULL }
2712 };
2713
2714 static int
2715 dissect_p1_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_) {
2716   offset = dissect_ber_choice(actx, tree, tvb, offset,
2717                                  T_bilateral_domain_choice, hf_index, ett_p1_T_bilateral_domain,
2718                                  NULL);
2719
2720   return offset;
2721 }
2722
2723
2724
2725 static int
2726 dissect_p1_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_) {
2727 #line 1190 "../../asn1/p1/p1.cnf"
2728         proto_item *item = NULL;
2729         int         loffset = 0;
2730         guint32     len = 0;
2731
2732         /* work out the length */
2733         loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
2734         (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
2735
2736         /* create some structure so we can tell what this unknown ASN.1 represents */
2737         item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
2738         tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
2739
2740         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
2741
2742
2743
2744   return offset;
2745 }
2746
2747
2748 static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
2749   { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
2750   { &hf_p1_bilateral_domain , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_bilateral_domain },
2751   { &hf_p1_bilateral_information, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p1_T_bilateral_information },
2752   { NULL, 0, 0, 0, NULL }
2753 };
2754
2755 static int
2756 dissect_p1_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_) {
2757   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2758                                    PerDomainBilateralInformation_sequence, hf_index, ett_p1_PerDomainBilateralInformation);
2759
2760   return offset;
2761 }
2762
2763
2764 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of[1] = {
2765   { &hf_p1_per_domain_bilateral_information_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_PerDomainBilateralInformation },
2766 };
2767
2768 static int
2769 dissect_p1_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_) {
2770   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2771                                                   1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation);
2772
2773   return offset;
2774 }
2775
2776
2777
2778 static int
2779 dissect_p1_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_) {
2780   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2781
2782   return offset;
2783 }
2784
2785
2786 static const value_string p1_RoutingAction_vals[] = {
2787   {   0, "relayed" },
2788   {   1, "rerouted" },
2789   { 0, NULL }
2790 };
2791
2792
2793 static int
2794 dissect_p1_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_) {
2795 #line 1135 "../../asn1/p1/p1.cnf"
2796         int action = 0;
2797
2798           offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2799                                   &action);
2800
2801
2802         proto_item_append_text(actx->subtree.tree, " %s", val_to_str(action, p1_RoutingAction_vals, "action(%d)"));
2803
2804
2805
2806   return offset;
2807 }
2808
2809
2810
2811 static int
2812 dissect_p1_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_) {
2813   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2814
2815   return offset;
2816 }
2817
2818
2819
2820 static int
2821 dissect_p1_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_) {
2822   offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2823
2824   return offset;
2825 }
2826
2827
2828 static const asn_namedbit OtherActions_bits[] = {
2829   {  0, &hf_p1_OtherActions_redirected, -1, -1, "redirected", NULL },
2830   {  1, &hf_p1_OtherActions_dl_operation, -1, -1, "dl-operation", NULL },
2831   { 0, NULL, 0, 0, NULL, NULL }
2832 };
2833
2834 static int
2835 dissect_p1_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_) {
2836   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2837                                                 0, ub_bit_options, OtherActions_bits, hf_index, ett_p1_OtherActions,
2838                                                 NULL);
2839
2840   return offset;
2841 }
2842
2843
2844 static const ber_sequence_t DomainSuppliedInformation_set[] = {
2845   { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
2846   { &hf_p1_routing_action   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
2847   { &hf_p1_attempted_domain , BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
2848   { &hf_p1_deferred_time    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
2849   { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
2850   { &hf_p1_other_actions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
2851   { NULL, 0, 0, 0, NULL }
2852 };
2853
2854 static int
2855 dissect_p1_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_) {
2856 #line 1102 "../../asn1/p1/p1.cnf"
2857
2858         set_do_address(actx, FALSE);
2859
2860           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2861                               DomainSuppliedInformation_set, hf_index, ett_p1_DomainSuppliedInformation);
2862
2863
2864         set_do_address(actx, TRUE);
2865         proto_item_append_text(tree, ")");
2866
2867
2868
2869   return offset;
2870 }
2871
2872
2873 static const ber_sequence_t TraceInformationElement_sequence[] = {
2874   { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
2875   { &hf_p1_domain_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_DomainSuppliedInformation },
2876   { NULL, 0, 0, 0, NULL }
2877 };
2878
2879 static int
2880 dissect_p1_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_) {
2881 #line 1086 "../../asn1/p1/p1.cnf"
2882
2883         set_do_address(actx, TRUE);
2884
2885           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2886                                    TraceInformationElement_sequence, hf_index, ett_p1_TraceInformationElement);
2887
2888
2889         set_do_address(actx, FALSE);
2890
2891
2892
2893   return offset;
2894 }
2895
2896
2897 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of[1] = {
2898   { &hf_p1__untag_item      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformationElement },
2899 };
2900
2901 static int
2902 dissect_p1_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_) {
2903   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2904                                                   1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2905
2906   return offset;
2907 }
2908
2909
2910
2911 static int
2912 dissect_p1_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_) {
2913   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2914                                       hf_index, BER_CLASS_APP, 9, TRUE, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2915
2916   return offset;
2917 }
2918
2919
2920 static const value_string p1_StandardExtension_vals[] = {
2921   {   1, "recipient-reassignment-prohibited" },
2922   {   2, "originator-requested-alternate-recipient" },
2923   {   3, "dl-expansion-prohibited" },
2924   {   4, "conversion-with-loss-prohibited" },
2925   {   5, "latest-delivery-time" },
2926   {   6, "requested-delivery-method" },
2927   {   7, "physical-forwarding-prohibited" },
2928   {   8, "physical-forwarding-address-request" },
2929   {   9, "physical-delivery-modes" },
2930   {  10, "registered-mail-type" },
2931   {  11, "recipient-number-for-advice" },
2932   {  12, "physical-rendition-attributes" },
2933   {  13, "originator-return-address" },
2934   {  14, "physical-delivery-report-request" },
2935   {  15, "originator-certificate" },
2936   {  16, "message-token" },
2937   {  17, "content-confidentiality-algorithm-identifier" },
2938   {  18, "content-integrity-check" },
2939   {  19, "message-origin-authentication-check" },
2940   {  20, "message-security-label" },
2941   {  21, "proof-of-submission-request" },
2942   {  22, "proof-of-delivery-request" },
2943   {  23, "content-correlator" },
2944   {  24, "probe-origin-authentication-check" },
2945   {  25, "redirection-history" },
2946   {  26, "dl-expansion-history" },
2947   {  27, "physical-forwarding-address" },
2948   {  28, "recipient-certificate" },
2949   {  29, "proof-of-delivery" },
2950   {  30, "originator-and-DL-expansion-history" },
2951   {  31, "reporting-DL-name" },
2952   {  32, "reporting-MTA-certificate" },
2953   {  33, "report-origin-authentication-check" },
2954   {  34, "originating-MTA-certificate" },
2955   {  35, "proof-of-submission" },
2956   {  36, "forwarding-request" },
2957   {  37, "trace-information" },
2958   {  38, "internal-trace-information" },
2959   {  39, "reporting-MTA-name" },
2960   {  40, "multiple-originator-certificates" },
2961   {  41, "blind-copy-recipients" },
2962   {  42, "dl-exempted-recipients" },
2963   {  43, "body-part-encryption-token" },
2964   {  44, "forwarded-content-token" },
2965   {  45, "certificate-selectors" },
2966   { 0, NULL }
2967 };
2968
2969
2970 static int
2971 dissect_p1_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_) {
2972 #line 608 "../../asn1/p1/p1.cnf"
2973         actx->external.indirect_ref_present = TRUE;
2974         actx->external.direct_ref_present = FALSE;
2975           offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2976                                                 &actx->external.indirect_reference);
2977
2978
2979
2980
2981   return offset;
2982 }
2983
2984
2985
2986 static int
2987 dissect_p1_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_) {
2988 #line 613 "../../asn1/p1/p1.cnf"
2989         actx->external.indirect_ref_present = FALSE;
2990         actx->external.direct_reference = NULL;
2991           offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
2992
2993         actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
2994
2995
2996
2997   return offset;
2998 }
2999
3000
3001 static const value_string p1_ExtensionType_vals[] = {
3002   {   0, "standard-extension" },
3003   {   3, "private-extension" },
3004   { 0, NULL }
3005 };
3006
3007 static const ber_choice_t ExtensionType_choice[] = {
3008   {   0, &hf_p1_standard_extension, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StandardExtension },
3009   {   3, &hf_p1_private_extension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_T_private_extension },
3010   { 0, NULL, 0, 0, 0, NULL }
3011 };
3012
3013 static int
3014 dissect_p1_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_) {
3015   offset = dissect_ber_choice(actx, tree, tvb, offset,
3016                                  ExtensionType_choice, hf_index, ett_p1_ExtensionType,
3017                                  NULL);
3018
3019   return offset;
3020 }
3021
3022
3023 static const asn_namedbit Criticality_bits[] = {
3024   {  0, &hf_p1_Criticality_for_submission, -1, -1, "for-submission", NULL },
3025   {  1, &hf_p1_Criticality_for_transfer, -1, -1, "for-transfer", NULL },
3026   {  2, &hf_p1_Criticality_for_delivery, -1, -1, "for-delivery", NULL },
3027   { 0, NULL, 0, 0, NULL, NULL }
3028 };
3029
3030 static int
3031 dissect_p1_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_) {
3032   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3033                                                 0, ub_bit_options, Criticality_bits, hf_index, ett_p1_Criticality,
3034                                                 NULL);
3035
3036   return offset;
3037 }
3038
3039
3040
3041 static int
3042 dissect_p1_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_) {
3043 #line 535 "../../asn1/p1/p1.cnf"
3044         const char *name;
3045
3046         if(actx->external.indirect_ref_present) {
3047                 proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_StandardExtension_vals, "standard-extension %d"));
3048                 if (dissector_try_uint(p1_extension_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
3049                         offset = tvb_length(tvb);
3050                 } else {
3051                         proto_item *item = NULL;
3052                         proto_tree *next_tree = NULL;
3053
3054                         item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
3055                                 "Dissector for standard-extension %d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
3056                         next_tree = proto_item_add_subtree(item, ett_p1_unknown_standard_extension);
3057                         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
3058                         expert_add_info(actx->pinfo, item, &ei_p1_unknown_standard_extension);
3059                 }
3060         } else if (actx->external.direct_ref_present) {
3061                 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
3062                 name = oid_resolved_from_string(actx->external.direct_reference);
3063                 proto_item_append_text(tree, " (%s)", name ? name : actx->external.direct_reference);
3064         }
3065
3066
3067
3068
3069   return offset;
3070 }
3071
3072
3073 static const ber_sequence_t ExtensionField_sequence[] = {
3074   { &hf_p1_extension_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExtensionType },
3075   { &hf_p1_criticality      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Criticality },
3076   { &hf_p1_extension_value  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtensionValue },
3077   { NULL, 0, 0, 0, NULL }
3078 };
3079
3080 int
3081 dissect_p1_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_) {
3082   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3083                                    ExtensionField_sequence, hf_index, ett_p1_ExtensionField);
3084
3085   return offset;
3086 }
3087
3088
3089 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
3090   { &hf_p1_extensions_item  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
3091 };
3092
3093 static int
3094 dissect_p1_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_) {
3095   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3096                                  SET_OF_ExtensionField_set_of, hf_index, ett_p1_SET_OF_ExtensionField);
3097
3098   return offset;
3099 }
3100
3101
3102
3103 static int
3104 dissect_p1_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_) {
3105   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3106
3107   return offset;
3108 }
3109
3110
3111
3112 static int
3113 dissect_p1_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_) {
3114   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3115                                                             1U, ub_recipients, hf_index, NULL);
3116
3117   return offset;
3118 }
3119
3120
3121 static const asn_namedbit PerRecipientIndicators_bits[] = {
3122   {  0, &hf_p1_PerRecipientIndicators_responsibility, -1, -1, "responsibility", NULL },
3123   {  1, &hf_p1_PerRecipientIndicators_originating_MTA_report, -1, -1, "originating-MTA-report", NULL },
3124   {  2, &hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report, -1, -1, "originating-MTA-non-delivery-report", NULL },
3125   {  3, &hf_p1_PerRecipientIndicators_originator_report, -1, -1, "originator-report", NULL },
3126   {  4, &hf_p1_PerRecipientIndicators_originator_non_delivery_report, -1, -1, "originator-non-delivery-report", NULL },
3127   {  5, &hf_p1_PerRecipientIndicators_reserved_5, -1, -1, "reserved-5", NULL },
3128   {  6, &hf_p1_PerRecipientIndicators_reserved_6, -1, -1, "reserved-6", NULL },
3129   {  7, &hf_p1_PerRecipientIndicators_reserved_7, -1, -1, "reserved-7", NULL },
3130   { 0, NULL, 0, 0, NULL, NULL }
3131 };
3132
3133 static int
3134 dissect_p1_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_) {
3135   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3136                                                 8, ub_bit_options, PerRecipientIndicators_bits, hf_index, ett_p1_PerRecipientIndicators,
3137                                                 NULL);
3138
3139   return offset;
3140 }
3141
3142
3143 static const value_string p1_ExplicitConversion_vals[] = {
3144   {   0, "ia5-text-to-teletex" },
3145   {   8, "ia5-text-to-g3-facsimile" },
3146   {   9, "ia5-text-to-g4-class-1" },
3147   {  10, "ia5-text-to-videotex" },
3148   {  11, "teletex-to-ia5-text" },
3149   {  12, "teletex-to-g3-facsimile" },
3150   {  13, "teletex-to-g4-class-1" },
3151   {  14, "teletex-to-videotex" },
3152   {  16, "videotex-to-ia5-text" },
3153   {  17, "videotex-to-teletex" },
3154   { 0, NULL }
3155 };
3156
3157
3158 static int
3159 dissect_p1_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_) {
3160   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3161                                                             0U, ub_integer_options, hf_index, NULL);
3162
3163   return offset;
3164 }
3165
3166
3167 static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
3168   { &hf_p1_recipient_name   , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
3169   { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3170   { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3171   { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
3172   { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3173   { NULL, 0, 0, 0, NULL }
3174 };
3175
3176 static int
3177 dissect_p1_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_) {
3178   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3179                               PerRecipientMessageTransferFields_set, hf_index, ett_p1_PerRecipientMessageTransferFields);
3180
3181   return offset;
3182 }
3183
3184
3185 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
3186   { &hf_p1_per_recipient_message_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageTransferFields },
3187 };
3188
3189 static int
3190 dissect_p1_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_) {
3191   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3192                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields);
3193
3194   return offset;
3195 }
3196
3197
3198 static const ber_sequence_t MessageTransferEnvelope_set[] = {
3199   { &hf_p1_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageIdentifier },
3200   { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
3201   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3202   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3203   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3204   { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
3205   { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
3206   { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
3207   { &hf_p1_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3208   { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3209   { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3210   { &hf_p1_per_recipient_message_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields },
3211   { NULL, 0, 0, 0, NULL }
3212 };
3213
3214 static int
3215 dissect_p1_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_) {
3216   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3217                               MessageTransferEnvelope_set, hf_index, ett_p1_MessageTransferEnvelope);
3218
3219   return offset;
3220 }
3221
3222
3223
3224 int
3225 dissect_p1_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_) {
3226 #line 667 "../../asn1/p1/p1.cnf"
3227         tvbuff_t *next_tvb;
3228         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
3229
3230         /* we can do this now constructed octet strings are supported */
3231         offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
3232         proto_item_set_text(actx->created_item, "content (%u bytes)", tvb_length (next_tvb));
3233
3234         if (next_tvb) {
3235                 if (ctx && ctx->content_type_id) {
3236                         (void) call_ber_oid_callback(ctx->content_type_id, next_tvb, 0, actx->pinfo, actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->private_data);
3237         } else if (ctx && ctx->report_unknown_content_type) {
3238                 proto_item *item = NULL;
3239                 proto_tree *next_tree = NULL;
3240
3241                 proto_tree_add_expert(actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->pinfo, &ei_p1_unknown_built_in_content_type,
3242                                                           next_tvb, 0, tvb_length_remaining(tvb, offset));
3243                 if (item) {
3244                         next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
3245                 }
3246                 dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
3247                 } else {
3248                         proto_item_append_text (actx->created_item, " (unknown content-type)");
3249                 }
3250         }
3251
3252
3253
3254   return offset;
3255 }
3256
3257
3258 static const ber_sequence_t Message_sequence[] = {
3259   { &hf_p1_message_envelope , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageTransferEnvelope },
3260   { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
3261   { NULL, 0, 0, 0, NULL }
3262 };
3263
3264 static int
3265 dissect_p1_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_) {
3266   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3267                                    Message_sequence, hf_index, ett_p1_Message);
3268
3269   return offset;
3270 }
3271
3272
3273
3274 static int
3275 dissect_p1_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_) {
3276   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3277
3278   return offset;
3279 }
3280
3281
3282
3283 int
3284 dissect_p1_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_) {
3285   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3286                                                             0U, ub_content_length, hf_index, NULL);
3287
3288   return offset;
3289 }
3290
3291
3292 static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
3293   { &hf_p1_recipient_name   , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
3294   { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3295   { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3296   { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
3297   { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3298   { NULL, 0, 0, 0, NULL }
3299 };
3300
3301 static int
3302 dissect_p1_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_) {
3303   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3304                               PerRecipientProbeTransferFields_set, hf_index, ett_p1_PerRecipientProbeTransferFields);
3305
3306   return offset;
3307 }
3308
3309
3310 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
3311   { &hf_p1_per_recipient_probe_transfer_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeTransferFields },
3312 };
3313
3314 static int
3315 dissect_p1_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_) {
3316   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3317                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields);
3318
3319   return offset;
3320 }
3321
3322
3323 static const ber_sequence_t ProbeTransferEnvelope_set[] = {
3324   { &hf_p1_probe_identifier , BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeIdentifier },
3325   { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
3326   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3327   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3328   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3329   { &hf_p1_content_length   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
3330   { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
3331   { &hf_p1_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
3332   { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3333   { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3334   { &hf_p1_per_recipient_probe_transfer_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields },
3335   { NULL, 0, 0, 0, NULL }
3336 };
3337
3338 static int
3339 dissect_p1_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_) {
3340   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3341                               ProbeTransferEnvelope_set, hf_index, ett_p1_ProbeTransferEnvelope);
3342
3343   return offset;
3344 }
3345
3346
3347
3348 static int
3349 dissect_p1_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_) {
3350   offset = dissect_p1_ProbeTransferEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
3351
3352   return offset;
3353 }
3354
3355
3356
3357 static int
3358 dissect_p1_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_) {
3359   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3360
3361   return offset;
3362 }
3363
3364
3365
3366 static int
3367 dissect_p1_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_) {
3368   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3369
3370   return offset;
3371 }
3372
3373
3374 static const ber_sequence_t ReportTransferEnvelope_set[] = {
3375   { &hf_p1_report_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ReportIdentifier },
3376   { &hf_p1_report_destination_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ReportDestinationName },
3377   { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3378   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3379   { NULL, 0, 0, 0, NULL }
3380 };
3381
3382 static int
3383 dissect_p1_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_) {
3384   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3385                               ReportTransferEnvelope_set, hf_index, ett_p1_ReportTransferEnvelope);
3386
3387   return offset;
3388 }
3389
3390
3391
3392 static int
3393 dissect_p1_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_) {
3394   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3395
3396   return offset;
3397 }
3398
3399
3400
3401 static int
3402 dissect_p1_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_) {
3403   offset = dissect_p1_MessageOrProbeIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3404
3405   return offset;
3406 }
3407
3408
3409
3410 static int
3411 dissect_p1_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_) {
3412   offset = dissect_p1_TraceInformation(implicit_tag, tvb, offset, actx, tree, hf_index);
3413
3414   return offset;
3415 }
3416
3417
3418
3419 static int
3420 dissect_p1_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_) {
3421 #line 517 "../../asn1/p1/p1.cnf"
3422    proto_item *item = NULL;
3423    int         loffset = 0;
3424    guint32     len = 0;
3425
3426    /* work out the length */
3427    loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
3428    (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
3429
3430    item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
3431    tree = proto_item_add_subtree(item, ett_p1_additional_information);
3432    proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
3433
3434    offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
3435
3436
3437
3438   return offset;
3439 }
3440
3441
3442
3443 static int
3444 dissect_p1_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_) {
3445   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3446
3447   return offset;
3448 }
3449
3450
3451
3452 int
3453 dissect_p1_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_) {
3454   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
3455
3456   return offset;
3457 }
3458
3459
3460 static const value_string p1_TypeOfMTSUser_vals[] = {
3461   {   0, "public" },
3462   {   1, "private" },
3463   {   2, "ms" },
3464   {   3, "dl" },
3465   {   4, "pdau" },
3466   {   5, "physical-recipient" },
3467   {   6, "other" },
3468   { 0, NULL }
3469 };
3470
3471
3472 static int
3473 dissect_p1_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_) {
3474   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3475                                                             0U, ub_mts_user_types, hf_index, NULL);
3476
3477   return offset;
3478 }
3479
3480
3481 static const ber_sequence_t DeliveryReport_set[] = {
3482   { &hf_p1_message_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageDeliveryTime },
3483   { &hf_p1_type_of_MTS_user , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TypeOfMTSUser },
3484   { NULL, 0, 0, 0, NULL }
3485 };
3486
3487 static int
3488 dissect_p1_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_) {
3489   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3490                               DeliveryReport_set, hf_index, ett_p1_DeliveryReport);
3491
3492   return offset;
3493 }
3494
3495
3496 const value_string p1_NonDeliveryReasonCode_vals[] = {
3497   {   0, "transfer-failure" },
3498   {   1, "unable-to-transfer" },
3499   {   2, "conversion-not-performed" },
3500   {   3, "physical-rendition-not-performed" },
3501   {   4, "physical-delivery-not-performed" },
3502   {   5, "restricted-delivery" },
3503   {   6, "directory-operation-unsuccessful" },
3504   {   7, "deferred-delivery-not-performed" },
3505   {   8, "transfer-failure-for-security-reason" },
3506   { 0, NULL }
3507 };
3508
3509
3510 int
3511 dissect_p1_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_) {
3512   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3513                                                             0U, ub_reason_codes, hf_index, NULL);
3514
3515   return offset;
3516 }
3517
3518
3519 const value_string p1_NonDeliveryDiagnosticCode_vals[] = {
3520   {   0, "unrecognised-OR-name" },
3521   {   1, "ambiguous-OR-name" },
3522   {   2, "mts-congestion" },
3523   {   3, "loop-detected" },
3524   {   4, "recipient-unavailable" },
3525   {   5, "maximum-time-expired" },
3526   {   6, "encoded-information-types-unsupported" },
3527   {   7, "content-too-long" },
3528   {   8, "conversion-impractical" },
3529   {   9, "implicit-conversion-prohibited" },
3530   {  10, "implicit-conversion-not-subscribed" },
3531   {  11, "invalid-arguments" },
3532   {  12, "content-syntax-error" },
3533   {  13, "size-constraint-violation" },
3534   {  14, "protocol-violation" },
3535   {  15, "content-type-not-supported" },
3536   {  16, "too-many-recipients" },
3537   {  17, "no-bilateral-agreement" },
3538   {  18, "unsupported-critical-function" },
3539   {  19, "conversion-with-loss-prohibited" },
3540   {  20, "line-too-long" },
3541   {  21, "page-split" },
3542   {  22, "pictorial-symbol-loss" },
3543   {  23, "punctuation-symbol-loss" },
3544   {  24, "alphabetic-character-loss" },
3545   {  25, "multiple-information-loss" },
3546   {  26, "recipient-reassignment-prohibited" },
3547   {  27, "redirection-loop-detected" },
3548   {  28, "dl-expansion-prohibited" },
3549   {  29, "no-dl-submit-permission" },
3550   {  30, "dl-expansion-failure" },
3551   {  31, "physical-rendition-attributes-not-supported" },
3552   {  32, "undeliverable-mail-physical-delivery-address-incorrect" },
3553   {  33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
3554   {  34, "undeliverable-mail-physical-delivery-address-incomplete" },
3555   {  35, "undeliverable-mail-recipient-unknown" },
3556   {  36, "undeliverable-mail-recipient-deceased" },
3557   {  37, "undeliverable-mail-organization-expired" },
3558   {  38, "undeliverable-mail-recipient-refused-to-accept" },
3559   {  39, "undeliverable-mail-recipient-did-not-claim" },
3560   {  40, "undeliverable-mail-recipient-changed-address-permanently" },
3561   {  41, "undeliverable-mail-recipient-changed-address-temporarily" },
3562   {  42, "undeliverable-mail-recipient-changed-temporary-address" },
3563   {  43, "undeliverable-mail-new-address-unknown" },
3564   {  44, "undeliverable-mail-recipient-did-not-want-forwarding" },
3565   {  45, "undeliverable-mail-originator-prohibited-forwarding" },
3566   {  46, "secure-messaging-error" },
3567   {  47, "unable-to-downgrade" },
3568   {  48, "unable-to-complete-transfer" },
3569   {  49, "transfer-attempts-limit-reached" },
3570   {  50, "incorrect-notification-type" },
3571   {  51, "dl-expansion-prohibited-by-security-policy" },
3572   {  52, "forbidden-alternate-recipient" },
3573   {  53, "security-policy-violation" },
3574   {  54, "security-services-refusal" },
3575   {  55, "unauthorised-dl-member" },
3576   {  56, "unauthorised-dl-name" },
3577   {  57, "unauthorised-originally-intended-recipient-name" },
3578   {  58, "unauthorised-originator-name" },
3579   {  59, "unauthorised-recipient-name" },
3580   {  60, "unreliable-system" },
3581   {  61, "authentication-failure-on-subject-message" },
3582   {  62, "decryption-failed" },
3583   {  63, "decryption-key-unobtainable" },
3584   {  64, "double-envelope-creation-failure" },
3585   {  65, "double-enveloping-message-restoring-failure" },
3586   {  66, "failure-of-proof-of-message" },
3587   {  67, "integrity-failure-on-subject-message" },
3588   {  68, "invalid-security-label" },
3589   {  69, "key-failure" },
3590   {  70, "mandatory-parameter-absence" },
3591   {  71, "operation-security-failure" },
3592   {  72, "repudiation-failure-of-message" },
3593   {  73, "security-context-failure" },
3594   {  74, "token-decryption-failed" },
3595   {  75, "token-error" },
3596   {  76, "unknown-security-label" },
3597   {  77, "unsupported-algorithm-identifier" },
3598   {  78, "unsupported-security-policy" },
3599   { 0, NULL }
3600 };
3601
3602
3603 int
3604 dissect_p1_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_) {
3605   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3606                                                             0U, ub_diagnostic_codes, hf_index, NULL);
3607
3608   return offset;
3609 }
3610
3611
3612 static const ber_sequence_t NonDeliveryReport_set[] = {
3613   { &hf_p1_non_delivery_reason_code, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReasonCode },
3614   { &hf_p1_non_delivery_diagnostic_code, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryDiagnosticCode },
3615   { NULL, 0, 0, 0, NULL }
3616 };
3617
3618 static int
3619 dissect_p1_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_) {
3620   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3621                               NonDeliveryReport_set, hf_index, ett_p1_NonDeliveryReport);
3622
3623   return offset;
3624 }
3625
3626
3627 static const value_string p1_ReportType_vals[] = {
3628   {   0, "delivery" },
3629   {   1, "non-delivery" },
3630   { 0, NULL }
3631 };
3632
3633 static const ber_choice_t ReportType_choice[] = {
3634   {   0, &hf_p1_delivery         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryReport },
3635   {   1, &hf_p1_non_delivery     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReport },
3636   { 0, NULL, 0, 0, 0, NULL }
3637 };
3638
3639 static int
3640 dissect_p1_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_) {
3641 #line 1222 "../../asn1/p1/p1.cnf"
3642         gint report = -1;
3643
3644           offset = dissect_ber_choice(actx, tree, tvb, offset,
3645                                  ReportType_choice, hf_index, ett_p1_ReportType,
3646                                  &report);
3647
3648
3649                 if( (report!=-1) && p1_ReportType_vals[report].strptr ){
3650                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_ReportType_vals[report].strptr);
3651         }
3652
3653
3654
3655   return offset;
3656 }
3657
3658
3659 static const ber_sequence_t LastTraceInformation_set[] = {
3660   { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
3661   { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
3662   { &hf_p1_trace_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
3663   { NULL, 0, 0, 0, NULL }
3664 };
3665
3666 static int
3667 dissect_p1_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_) {
3668   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3669                               LastTraceInformation_set, hf_index, ett_p1_LastTraceInformation);
3670
3671   return offset;
3672 }
3673
3674
3675
3676 static int
3677 dissect_p1_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_) {
3678   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3679
3680   return offset;
3681 }
3682
3683
3684
3685 int
3686 dissect_p1_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_) {
3687   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
3688                                                         actx, tree, tvb, offset,
3689                                                         1, ub_supplementary_info_length, hf_index, NULL);
3690
3691   return offset;
3692 }
3693
3694
3695 static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
3696   { &hf_p1_mta_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAActualRecipientName },
3697   { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3698   { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3699   { &hf_p1_last_trace_information, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_LastTraceInformation },
3700   { &hf_p1_report_originally_intended_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
3701   { &hf_p1_supplementary_information, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
3702   { &hf_p1_extensions       , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3703   { NULL, 0, 0, 0, NULL }
3704 };
3705
3706 static int
3707 dissect_p1_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_) {
3708   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3709                               PerRecipientReportTransferFields_set, hf_index, ett_p1_PerRecipientReportTransferFields);
3710
3711   return offset;
3712 }
3713
3714
3715 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of[1] = {
3716   { &hf_p1_per_recipient_report_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportTransferFields },
3717 };
3718
3719 static int
3720 dissect_p1_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_) {
3721   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3722                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields);
3723
3724   return offset;
3725 }
3726
3727
3728 static const ber_sequence_t ReportTransferContent_set[] = {
3729   { &hf_p1_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIdentifier },
3730   { &hf_p1_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIntermediateTraceInformation },
3731   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3732   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3733   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3734   { &hf_p1_returned_content , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
3735   { &hf_p1_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_AdditionalInformation },
3736   { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3737   { &hf_p1_per_recipient_report_fields, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields },
3738   { NULL, 0, 0, 0, NULL }
3739 };
3740
3741 static int
3742 dissect_p1_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_) {
3743   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3744                               ReportTransferContent_set, hf_index, ett_p1_ReportTransferContent);
3745
3746   return offset;
3747 }
3748
3749
3750 static const ber_sequence_t Report_sequence[] = {
3751   { &hf_p1_report_envelope  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferEnvelope },
3752   { &hf_p1_report_content   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferContent },
3753   { NULL, 0, 0, 0, NULL }
3754 };
3755
3756 static int
3757 dissect_p1_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_) {
3758   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3759                                    Report_sequence, hf_index, ett_p1_Report);
3760
3761   return offset;
3762 }
3763
3764
3765 static const value_string p1_MTS_APDU_vals[] = {
3766   {   0, "message" },
3767   {   2, "probe" },
3768   {   1, "report" },
3769   { 0, NULL }
3770 };
3771
3772 static const ber_choice_t MTS_APDU_choice[] = {
3773   {   0, &hf_p1_message          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_Message },
3774   {   2, &hf_p1_probe            , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_Probe },
3775   {   1, &hf_p1_report           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_Report },
3776   { 0, NULL, 0, 0, 0, NULL }
3777 };
3778
3779 static int
3780 dissect_p1_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_) {
3781 #line 1208 "../../asn1/p1/p1.cnf"
3782         gint apdu = -1;
3783
3784           offset = dissect_ber_choice(actx, tree, tvb, offset,
3785                                  MTS_APDU_choice, hf_index, ett_p1_MTS_APDU,
3786                                  &apdu);
3787
3788
3789         if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
3790                 if(apdu != 0) { /* we don't show "message" - sub-dissectors have better idea */
3791                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_MTS_APDU_vals[apdu].strptr);
3792                 }
3793         }
3794
3795
3796
3797   return offset;
3798 }
3799
3800
3801
3802
3803
3804 static const value_string p1_T_attempted_vals[] = {
3805   {   0, "mta" },
3806   {   1, "domain" },
3807   { 0, NULL }
3808 };
3809
3810 static const ber_choice_t T_attempted_choice[] = {
3811   {   0, &hf_p1_mta              , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
3812   {   1, &hf_p1_domain           , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
3813   { 0, NULL, 0, 0, 0, NULL }
3814 };
3815
3816 static int
3817 dissect_p1_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_) {
3818   offset = dissect_ber_choice(actx, tree, tvb, offset,
3819                                  T_attempted_choice, hf_index, ett_p1_T_attempted,
3820                                  NULL);
3821
3822   return offset;
3823 }
3824
3825
3826 static const ber_sequence_t MTASuppliedInformation_set[] = {
3827   { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
3828   { &hf_p1_routing_action   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
3829   { &hf_p1_attempted        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_attempted },
3830   { &hf_p1_deferred_time    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
3831   { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
3832   { &hf_p1_other_actions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
3833   { NULL, 0, 0, 0, NULL }
3834 };
3835
3836 static int
3837 dissect_p1_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_) {
3838 #line 1111 "../../asn1/p1/p1.cnf"
3839
3840         set_do_address(actx, FALSE);
3841
3842           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3843                               MTASuppliedInformation_set, hf_index, ett_p1_MTASuppliedInformation);
3844
3845
3846         set_do_address(actx, TRUE);
3847         proto_item_append_text(tree, ")");
3848
3849
3850
3851   return offset;
3852 }
3853
3854
3855 static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
3856   { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
3857   { &hf_p1_mta_name         , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
3858   { &hf_p1_mta_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MTASuppliedInformation },
3859   { NULL, 0, 0, 0, NULL }
3860 };
3861
3862 static int
3863 dissect_p1_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_) {
3864 #line 1094 "../../asn1/p1/p1.cnf"
3865
3866         set_do_address(actx, TRUE);
3867
3868           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3869                                    InternalTraceInformationElement_sequence, hf_index, ett_p1_InternalTraceInformationElement);
3870
3871
3872         set_do_address(actx, FALSE);
3873
3874
3875
3876   return offset;
3877 }
3878
3879
3880 static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
3881   { &hf_p1_InternalTraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_InternalTraceInformationElement },
3882 };
3883
3884 static int
3885 dissect_p1_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_) {
3886   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3887                                                   1, ub_transfers, InternalTraceInformation_sequence_of, hf_index, ett_p1_InternalTraceInformation);
3888
3889   return offset;
3890 }
3891
3892
3893
3894
3895 static const value_string p1_ObjectName_vals[] = {
3896   {   0, "user-agent" },
3897   {   1, "mTA" },
3898   {   2, "message-store" },
3899   { 0, NULL }
3900 };
3901
3902 static const ber_choice_t ObjectName_choice[] = {
3903   {   0, &hf_p1_user_agent       , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
3904   {   1, &hf_p1_mTA              , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
3905   {   2, &hf_p1_message_store    , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
3906   { 0, NULL, 0, 0, 0, NULL }
3907 };
3908
3909 static int
3910 dissect_p1_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_) {
3911   offset = dissect_ber_choice(actx, tree, tvb, offset,
3912                                  ObjectName_choice, hf_index, ett_p1_ObjectName,
3913                                  NULL);
3914
3915   return offset;
3916 }
3917
3918
3919
3920 static int
3921 dissect_p1_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_) {
3922   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3923                                                             0U, ub_queue_size, hf_index, NULL);
3924
3925   return offset;
3926 }
3927
3928
3929
3930 static int
3931 dissect_p1_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_) {
3932   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3933                                                             0U, ub_content_length, hf_index, NULL);
3934
3935   return offset;
3936 }
3937
3938
3939 static const ber_sequence_t DeliveryQueue_set[] = {
3940   { &hf_p1_messages         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_queue_size },
3941   { &hf_p1_delivery_queue_octets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_content_length },
3942   { NULL, 0, 0, 0, NULL }
3943 };
3944
3945 static int
3946 dissect_p1_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_) {
3947   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3948                               DeliveryQueue_set, hf_index, ett_p1_DeliveryQueue);
3949
3950   return offset;
3951 }
3952
3953
3954 static const ber_sequence_t MessagesWaiting_set[] = {
3955   { &hf_p1_urgent           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3956   { &hf_p1_normal           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3957   { &hf_p1_non_urgent       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3958   { NULL, 0, 0, 0, NULL }
3959 };
3960
3961 static int
3962 dissect_p1_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_) {
3963   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3964                               MessagesWaiting_set, hf_index, ett_p1_MessagesWaiting);
3965
3966   return offset;
3967 }
3968
3969
3970 static const ber_sequence_t MTSBindArgument_set[] = {
3971   { &hf_p1_initiator_name   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
3972   { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
3973   { &hf_p1_initiator_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
3974   { &hf_p1_security_context , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
3975   { &hf_p1_extensions       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3976   { NULL, 0, 0, 0, NULL }
3977 };
3978
3979 static int
3980 dissect_p1_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_) {
3981   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3982                               MTSBindArgument_set, hf_index, ett_p1_MTSBindArgument);
3983
3984   return offset;
3985 }
3986
3987
3988 static const ber_sequence_t MTSBindResult_set[] = {
3989   { &hf_p1_responder_name   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
3990   { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
3991   { &hf_p1_responder_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
3992   { &hf_p1_extensions       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3993   { NULL, 0, 0, 0, NULL }
3994 };
3995
3996 static int
3997 dissect_p1_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_) {
3998 #line 1246 "../../asn1/p1/p1.cnf"
3999         /* TODO: there may be other entry points where this global should be initialized... */
4000         actx->subtree.tree = NULL;
4001
4002   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4003                               MTSBindResult_set, hf_index, ett_p1_MTSBindResult);
4004
4005   return offset;
4006 }
4007
4008
4009 static const value_string p1_PAR_mts_bind_error_vals[] = {
4010   {   0, "busy" },
4011   {   2, "authentication-error" },
4012   {   3, "unacceptable-dialogue-mode" },
4013   {   4, "unacceptable-security-context" },
4014   {   5, "inadequate-association-confidentiality" },
4015   { 0, NULL }
4016 };
4017
4018
4019 static int
4020 dissect_p1_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_) {
4021   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4022                                                             0U, ub_integer_options, hf_index, NULL);
4023
4024   return offset;
4025 }
4026
4027
4028
4029 int
4030 dissect_p1_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_) {
4031   offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
4032
4033   return offset;
4034 }
4035
4036
4037
4038 int
4039 dissect_p1_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_) {
4040   offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4041
4042   return offset;
4043 }
4044
4045
4046
4047 static int
4048 dissect_p1_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_) {
4049   offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4050
4051   return offset;
4052 }
4053
4054
4055 static const asn_namedbit OriginatorReportRequest_bits[] = {
4056   {  3, &hf_p1_OriginatorReportRequest_report, -1, -1, "report", NULL },
4057   {  4, &hf_p1_OriginatorReportRequest_non_delivery_report, -1, -1, "non-delivery-report", NULL },
4058   { 0, NULL, 0, 0, NULL, NULL }
4059 };
4060
4061 static int
4062 dissect_p1_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_) {
4063   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4064                                                 0, ub_bit_options, OriginatorReportRequest_bits, hf_index, ett_p1_OriginatorReportRequest,
4065                                                 NULL);
4066
4067   return offset;
4068 }
4069
4070
4071 static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
4072   { &hf_p1_submission_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4073   { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
4074   { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
4075   { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4076   { NULL, 0, 0, 0, NULL }
4077 };
4078
4079 static int
4080 dissect_p1_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_) {
4081   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4082                               PerRecipientMessageSubmissionFields_set, hf_index, ett_p1_PerRecipientMessageSubmissionFields);
4083
4084   return offset;
4085 }
4086
4087
4088 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
4089   { &hf_p1_per_recipient_message_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageSubmissionFields },
4090 };
4091
4092 static int
4093 dissect_p1_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_) {
4094   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4095                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields);
4096
4097   return offset;
4098 }
4099
4100
4101 static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
4102   { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
4103   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4104   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4105   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4106   { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4107   { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
4108   { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
4109   { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4110   { &hf_p1_per_recipient_message_submission_fields, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields },
4111   { NULL, 0, 0, 0, NULL }
4112 };
4113
4114 int
4115 dissect_p1_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_) {
4116   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4117                               MessageSubmissionEnvelope_set, hf_index, ett_p1_MessageSubmissionEnvelope);
4118
4119   return offset;
4120 }
4121
4122
4123 static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
4124   { &hf_p1_message_submission_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionEnvelope },
4125   { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
4126   { NULL, 0, 0, 0, NULL }
4127 };
4128
4129 static int
4130 dissect_p1_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_) {
4131 #line 1231 "../../asn1/p1/p1.cnf"
4132         p1_initialize_content_globals(actx, tree, TRUE);
4133           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4134                                    MessageSubmissionArgument_sequence, hf_index, ett_p1_MessageSubmissionArgument);
4135
4136         p1_initialize_content_globals(actx, NULL, FALSE);
4137
4138
4139
4140   return offset;
4141 }
4142
4143
4144
4145 int
4146 dissect_p1_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_) {
4147   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4148
4149   return offset;
4150 }
4151
4152
4153
4154 int
4155 dissect_p1_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_) {
4156   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4157
4158   return offset;
4159 }
4160
4161
4162 static const ber_sequence_t MessageSubmissionResult_set[] = {
4163   { &hf_p1_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionIdentifier },
4164   { &hf_p1_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
4165   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4166   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4167   { NULL, 0, 0, 0, NULL }
4168 };
4169
4170 static int
4171 dissect_p1_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_) {
4172   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4173                               MessageSubmissionResult_set, hf_index, ett_p1_MessageSubmissionResult);
4174
4175   return offset;
4176 }
4177
4178
4179 static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
4180   { &hf_p1_probe_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4181   { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
4182   { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
4183   { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4184   { NULL, 0, 0, 0, NULL }
4185 };
4186
4187 int
4188 dissect_p1_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_) {
4189   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4190                               PerRecipientProbeSubmissionFields_set, hf_index, ett_p1_PerRecipientProbeSubmissionFields);
4191
4192   return offset;
4193 }
4194
4195
4196 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
4197   { &hf_p1_per_recipient_probe_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeSubmissionFields },
4198 };
4199
4200 static int
4201 dissect_p1_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_) {
4202   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4203                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields);
4204
4205   return offset;
4206 }
4207
4208
4209 static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
4210   { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
4211   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4212   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4213   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4214   { &hf_p1_content_length   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4215   { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
4216   { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4217   { &hf_p1_per_recipient_probe_submission_fields, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields },
4218   { NULL, 0, 0, 0, NULL }
4219 };
4220
4221 int
4222 dissect_p1_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_) {
4223   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4224                               ProbeSubmissionEnvelope_set, hf_index, ett_p1_ProbeSubmissionEnvelope);
4225
4226   return offset;
4227 }
4228
4229
4230
4231 static int
4232 dissect_p1_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_) {
4233   offset = dissect_p1_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
4234
4235   return offset;
4236 }
4237
4238
4239
4240 int
4241 dissect_p1_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_) {
4242   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4243
4244   return offset;
4245 }
4246
4247
4248
4249 int
4250 dissect_p1_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_) {
4251   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4252
4253   return offset;
4254 }
4255
4256
4257 static const ber_sequence_t ProbeSubmissionResult_set[] = {
4258   { &hf_p1_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeSubmissionIdentifier },
4259   { &hf_p1_probe_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ProbeSubmissionTime },
4260   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4261   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4262   { NULL, 0, 0, 0, NULL }
4263 };
4264
4265 static int
4266 dissect_p1_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_) {
4267   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4268                               ProbeSubmissionResult_set, hf_index, ett_p1_ProbeSubmissionResult);
4269
4270   return offset;
4271 }
4272
4273
4274
4275 static int
4276 dissect_p1_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_) {
4277   offset = dissect_p1_MessageSubmissionIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4278
4279   return offset;
4280 }
4281
4282
4283
4284 static int
4285 dissect_p1_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_) {
4286   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4287
4288   return offset;
4289 }
4290
4291
4292
4293 static int
4294 dissect_p1_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_) {
4295   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4296
4297   return offset;
4298 }
4299
4300
4301 static const asn_namedbit Operations_bits[] = {
4302   {  0, &hf_p1_Operations_probe_submission_or_report_delivery, -1, -1, "probe-submission-or-report-delivery", NULL },
4303   {  1, &hf_p1_Operations_message_submission_or_message_delivery, -1, -1, "message-submission-or-message-delivery", NULL },
4304   { 0, NULL, 0, 0, NULL, NULL }
4305 };
4306
4307 static int
4308 dissect_p1_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_) {
4309   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4310                                                 0, ub_bit_options, Operations_bits, hf_index, ett_p1_Operations,
4311                                                 NULL);
4312
4313   return offset;
4314 }
4315
4316
4317 static const ber_sequence_t ContentTypes_set_of[1] = {
4318   { &hf_p1_ContentTypes_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4319 };
4320
4321 static int
4322 dissect_p1_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_) {
4323   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4324                                              1, ub_content_types, ContentTypes_set_of, hf_index, ett_p1_ContentTypes);
4325
4326   return offset;
4327 }
4328
4329
4330 static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
4331   { &hf_p1_unacceptable_eits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4332   { &hf_p1_acceptable_eits  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4333   { &hf_p1_exclusively_acceptable_eits, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4334   { NULL, 0, 0, 0, NULL }
4335 };
4336
4337 int
4338 dissect_p1_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_) {
4339   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4340                                    EncodedInformationTypesConstraints_sequence, hf_index, ett_p1_EncodedInformationTypesConstraints);
4341
4342   return offset;
4343 }
4344
4345
4346
4347 static int
4348 dissect_p1_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_) {
4349   offset = dissect_p1_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, actx, tree, hf_index);
4350
4351   return offset;
4352 }
4353
4354
4355 static const ber_sequence_t Controls_set[] = {
4356   { &hf_p1_restrict         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BOOLEAN },
4357   { &hf_p1_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4358   { &hf_p1_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4359   { &hf_p1_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4360   { &hf_p1_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
4361   { &hf_p1_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PermissibleEncodedInformationTypes },
4362   { &hf_p1_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
4363   { NULL, 0, 0, 0, NULL }
4364 };
4365
4366 static int
4367 dissect_p1_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_) {
4368   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4369                               Controls_set, hf_index, ett_p1_Controls);
4370
4371   return offset;
4372 }
4373
4374
4375
4376 static int
4377 dissect_p1_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_) {
4378   offset = dissect_p1_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
4379
4380   return offset;
4381 }
4382
4383
4384
4385 static int
4386 dissect_p1_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_) {
4387   offset = dissect_p1_SubmissionControls(implicit_tag, tvb, offset, actx, tree, hf_index);
4388
4389   return offset;
4390 }
4391
4392
4393 static const asn_namedbit WaitingMessages_bits[] = {
4394   {  0, &hf_p1_WaitingMessages_long_content, -1, -1, "long-content", NULL },
4395   {  1, &hf_p1_WaitingMessages_low_priority, -1, -1, "low-priority", NULL },
4396   {  2, &hf_p1_WaitingMessages_other_security_labels, -1, -1, "other-security-labels", NULL },
4397   { 0, NULL, 0, 0, NULL, NULL }
4398 };
4399
4400 static int
4401 dissect_p1_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_) {
4402   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4403                                                 0, ub_bit_options, WaitingMessages_bits, hf_index, ett_p1_WaitingMessages,
4404                                                 NULL);
4405
4406   return offset;
4407 }
4408
4409
4410 static const ber_sequence_t SET_SIZE_0_ub_content_types_OF_ContentType_set_of[1] = {
4411   { &hf_p1_waiting_content_types_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4412 };
4413
4414 static int
4415 dissect_p1_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_) {
4416   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4417                                              0, ub_content_types, SET_SIZE_0_ub_content_types_OF_ContentType_set_of, hf_index, ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType);
4418
4419   return offset;
4420 }
4421
4422
4423 static const ber_sequence_t Waiting_set[] = {
4424   { &hf_p1_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4425   { &hf_p1_waiting_messages , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_WaitingMessages },
4426   { &hf_p1_waiting_content_types, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_SIZE_0_ub_content_types_OF_ContentType },
4427   { &hf_p1_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_EncodedInformationTypes },
4428   { NULL, 0, 0, 0, NULL }
4429 };
4430
4431 static int
4432 dissect_p1_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_) {
4433   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4434                               Waiting_set, hf_index, ett_p1_Waiting);
4435
4436   return offset;
4437 }
4438
4439
4440
4441 static int
4442 dissect_p1_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_) {
4443   offset = dissect_p1_Waiting(implicit_tag, tvb, offset, actx, tree, hf_index);
4444
4445   return offset;
4446 }
4447
4448
4449
4450 static int
4451 dissect_p1_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_) {
4452   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4453
4454   return offset;
4455 }
4456
4457
4458
4459 static int
4460 dissect_p1_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_) {
4461   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4462
4463   return offset;
4464 }
4465
4466
4467
4468 static int
4469 dissect_p1_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_) {
4470   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4471
4472   return offset;
4473 }
4474
4475
4476
4477 static int
4478 dissect_p1_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_) {
4479   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4480
4481   return offset;
4482 }
4483
4484
4485 static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
4486   { &hf_p1_ImproperlySpecifiedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4487 };
4488
4489 int
4490 dissect_p1_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_) {
4491   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4492                                                   1, ub_recipients, ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_p1_ImproperlySpecifiedRecipients);
4493
4494   return offset;
4495 }
4496
4497
4498
4499 static int
4500 dissect_p1_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_) {
4501   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4502
4503   return offset;
4504 }
4505
4506
4507
4508 static int
4509 dissect_p1_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_) {
4510   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4511
4512   return offset;
4513 }
4514
4515
4516 const value_string p1_SecurityProblem_vals[] = {
4517   {   0, "assemby-instructions-conflict-with-security-services" },
4518   {   1, "authentication-problem" },
4519   {   2, "authentication-failure-on-subject-message" },
4520   {   3, "confidentiality-association-problem" },
4521   {   4, "decryption-failed" },
4522   {   5, "decryption-key-unobtainable" },
4523   {   6, "failure-of-proof-of-message" },
4524   {   7, "forbidden-user-security-label-register" },
4525   {   8, "incompatible-change-with-original-security-context" },
4526   {   9, "integrity-failure-on-subject-message" },
4527   {  10, "invalid-security-label" },
4528   {  11, "invalid-security-label-update" },
4529   {  12, "key-failure" },
4530   {  13, "mandatory-parameter-absence" },
4531   {  14, "operation-security-failure" },
4532   {  15, "redirection-prohibited" },
4533   {  16, "refused-alternate-recipient-name" },
4534   {  17, "repudiation-failure-of-message" },
4535   {  18, "responder-credentials-checking-problem" },
4536   {  19, "security-context-failure" },
4537   {  20, "security-context-problem" },
4538   {  21, "security-policy-violation" },
4539   {  22, "security-services-refusal" },
4540   {  23, "token-decryption-failed" },
4541   {  24, "token-error" },
4542   {  25, "unable-to-aggregate-security-labels" },
4543   {  26, "unauthorised-dl-name" },
4544   {  27, "unauthorised-entry-class" },
4545   {  28, "unauthorised-originally-intended-recipient-name" },
4546   {  29, "unauthorised-originator-name" },
4547   {  30, "unauthorised-recipient-name" },
4548   {  31, "unauthorised-security-label-update" },
4549   {  32, "unauthorised-user-name" },
4550   {  33, "unknown-security-label" },
4551   {  34, "unsupported-algorithm-identifier" },
4552   {  35, "unsupported-security-policy" },
4553   { 0, NULL }
4554 };
4555
4556
4557 int
4558 dissect_p1_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_) {
4559   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4560                                                             0U, ub_security_problems, hf_index, NULL);
4561
4562   return offset;
4563 }
4564
4565
4566
4567 static int
4568 dissect_p1_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_) {
4569   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4570
4571   return offset;
4572 }
4573
4574
4575
4576 static int
4577 dissect_p1_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_) {
4578   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4579
4580   return offset;
4581 }
4582
4583
4584
4585 int
4586 dissect_p1_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_) {
4587   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4588
4589   return offset;
4590 }
4591
4592
4593 static const value_string p1_DeliveredContentType_vals[] = {
4594   {   0, "built-in" },
4595   {   1, "extended" },
4596   { 0, NULL }
4597 };
4598
4599 static const ber_choice_t DeliveredContentType_choice[] = {
4600   {   0, &hf_p1_built_in         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInContentType },
4601   {   1, &hf_p1_extended         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
4602   { 0, NULL, 0, 0, 0, NULL }
4603 };
4604
4605 static int
4606 dissect_p1_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_) {
4607   offset = dissect_ber_choice(actx, tree, tvb, offset,
4608                                  DeliveredContentType_choice, hf_index, ett_p1_DeliveredContentType,
4609                                  NULL);
4610
4611   return offset;
4612 }
4613
4614
4615
4616 static int
4617 dissect_p1_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_) {
4618   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4619
4620   return offset;
4621 }
4622
4623
4624 static const asn_namedbit DeliveryFlags_bits[] = {
4625   {  1, &hf_p1_DeliveryFlags_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
4626   { 0, NULL, 0, 0, NULL, NULL }
4627 };
4628
4629 static int
4630 dissect_p1_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_) {
4631   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4632                                                 0, ub_bit_options, DeliveryFlags_bits, hf_index, ett_p1_DeliveryFlags,
4633                                                 NULL);
4634
4635   return offset;
4636 }
4637
4638
4639
4640 static int
4641 dissect_p1_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_) {
4642   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4643
4644   return offset;
4645 }
4646
4647
4648 static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
4649   { &hf_p1_OtherRecipientNames_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OtherRecipientName },
4650 };
4651
4652 static int
4653 dissect_p1_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_) {
4654   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4655                                                   1, ub_recipients, OtherRecipientNames_sequence_of, hf_index, ett_p1_OtherRecipientNames);
4656
4657   return offset;
4658 }
4659
4660
4661
4662 static int
4663 dissect_p1_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_) {
4664   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4665
4666   return offset;
4667 }
4668
4669
4670 static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
4671   { &hf_p1_delivered_content_type, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_DeliveredContentType },
4672   { &hf_p1_delivered_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_DeliveredOriginatorName },
4673   { &hf_p1_original_encoded_information_types, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginalEncodedInformationTypes },
4674   { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4675   { &hf_p1_delivery_flags   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeliveryFlags },
4676   { &hf_p1_other_recipient_names, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherRecipientNames },
4677   { &hf_p1_this_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ThisRecipientName },
4678   { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
4679   { &hf_p1_converted_encoded_information_types, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ConvertedEncodedInformationTypes },
4680   { &hf_p1_message_submission_time, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
4681   { &hf_p1_content_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIdentifier },
4682   { &hf_p1_extensions       , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4683   { NULL, 0, 0, 0, NULL }
4684 };
4685
4686 int
4687 dissect_p1_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_) {
4688   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4689                               OtherMessageDeliveryFields_set, hf_index, ett_p1_OtherMessageDeliveryFields);
4690
4691   return offset;
4692 }
4693
4694
4695 static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
4696   { &hf_p1_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryIdentifier },
4697   { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
4698   { &hf_p1_other_fields     , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_OtherMessageDeliveryFields },
4699   { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
4700   { NULL, 0, 0, 0, NULL }
4701 };
4702
4703 static int
4704 dissect_p1_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_) {
4705 #line 1236 "../../asn1/p1/p1.cnf"
4706         p1_initialize_content_globals(actx, tree, TRUE);
4707           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4708                                    MessageDeliveryArgument_sequence, hf_index, ett_p1_MessageDeliveryArgument);
4709
4710         p1_initialize_content_globals(actx, NULL, FALSE);
4711
4712
4713
4714   return offset;
4715 }
4716
4717
4718
4719 static int
4720 dissect_p1_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_) {
4721   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
4722
4723   return offset;
4724 }
4725
4726
4727
4728 static int
4729 dissect_p1_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_) {
4730   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
4731
4732   return offset;
4733 }
4734
4735
4736 static const ber_sequence_t MessageDeliveryResult_set[] = {
4737   { &hf_p1_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientCertificate },
4738   { &hf_p1_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDelivery },
4739   { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4740   { NULL, 0, 0, 0, NULL }
4741 };
4742
4743 static int
4744 dissect_p1_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_) {
4745   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4746                               MessageDeliveryResult_set, hf_index, ett_p1_MessageDeliveryResult);
4747
4748   return offset;
4749 }
4750
4751
4752
4753 static int
4754 dissect_p1_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_) {
4755   offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4756
4757   return offset;
4758 }
4759
4760
4761
4762 static int
4763 dissect_p1_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_) {
4764   offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4765
4766   return offset;
4767 }
4768
4769
4770 static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
4771   { &hf_p1_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ActualRecipientName },
4772   { &hf_p1_delivery_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
4773   { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
4774   { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
4775   { &hf_p1_supplementary_information, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
4776   { &hf_p1_extensions       , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4777   { NULL, 0, 0, 0, NULL }
4778 };
4779
4780 static int
4781 dissect_p1_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_) {
4782   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4783                               PerRecipientReportDeliveryFields_set, hf_index, ett_p1_PerRecipientReportDeliveryFields);
4784
4785   return offset;
4786 }
4787
4788
4789 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
4790   { &hf_p1_per_recipient_report_delivery_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportDeliveryFields },
4791 };
4792
4793 static int
4794 dissect_p1_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_) {
4795   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4796                                                   1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields);
4797
4798   return offset;
4799 }
4800
4801
4802 static const ber_sequence_t ReportDeliveryArgument_set[] = {
4803   { &hf_p1_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectSubmissionIdentifier },
4804   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4805   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4806   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4807   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4808   { &hf_p1_per_recipient_report_delivery_fields, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields },
4809   { &hf_p1_returned_content , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
4810   { NULL, 0, 0, 0, NULL }
4811 };
4812
4813 static int
4814 dissect_p1_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_) {
4815 #line 1241 "../../asn1/p1/p1.cnf"
4816         p1_initialize_content_globals(actx, tree, TRUE);
4817           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4818                               ReportDeliveryArgument_set, hf_index, ett_p1_ReportDeliveryArgument);
4819
4820         p1_initialize_content_globals(actx, NULL, FALSE);
4821
4822
4823
4824   return offset;
4825 }
4826
4827
4828 static const ber_sequence_t SET_SIZE_1_MAX_OF_ExtensionField_set_of[1] = {
4829   { &hf_p1_max_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
4830 };
4831
4832 static int
4833 dissect_p1_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_) {
4834   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4835                                              1, NO_BOUND, SET_SIZE_1_MAX_OF_ExtensionField_set_of, hf_index, ett_p1_SET_SIZE_1_MAX_OF_ExtensionField);
4836
4837   return offset;
4838 }
4839
4840
4841 static const value_string p1_ReportDeliveryResult_vals[] = {
4842   {   0, "empty-result" },
4843   {   1, "extensions" },
4844   { 0, NULL }
4845 };
4846
4847 static const ber_choice_t ReportDeliveryResult_choice[] = {
4848   {   0, &hf_p1_empty_result     , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
4849   {   1, &hf_p1_max_extensions   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_SET_SIZE_1_MAX_OF_ExtensionField },
4850   { 0, NULL, 0, 0, 0, NULL }
4851 };
4852
4853 static int
4854 dissect_p1_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_) {
4855   offset = dissect_ber_choice(actx, tree, tvb, offset,
4856                                  ReportDeliveryResult_choice, hf_index, ett_p1_ReportDeliveryResult,
4857                                  NULL);
4858
4859   return offset;
4860 }
4861
4862
4863 static const ber_sequence_t DeliveryControlArgument_set[] = {
4864   { &hf_p1_restrict         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BOOLEAN },
4865   { &hf_p1_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4866   { &hf_p1_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4867   { &hf_p1_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4868   { &hf_p1_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
4869   { &hf_p1_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PermissibleEncodedInformationTypes },
4870   { &hf_p1_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
4871   { &hf_p1_extensions       , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4872   { NULL, 0, 0, 0, NULL }
4873 };
4874
4875 static int
4876 dissect_p1_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_) {
4877   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4878                               DeliveryControlArgument_set, hf_index, ett_p1_DeliveryControlArgument);
4879
4880   return offset;
4881 }
4882
4883
4884 static const ber_sequence_t DeliveryControlResult_set[] = {
4885   { &hf_p1_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4886   { &hf_p1_waiting_messages , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_WaitingMessages },
4887   { &hf_p1_waiting_content_types, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_SIZE_0_ub_content_types_OF_ContentType },
4888   { &hf_p1_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_EncodedInformationTypes },
4889   { &hf_p1_extensions       , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4890   { NULL, 0, 0, 0, NULL }
4891 };
4892
4893 static int
4894 dissect_p1_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_) {
4895   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4896                               DeliveryControlResult_set, hf_index, ett_p1_DeliveryControlResult);
4897
4898   return offset;
4899 }
4900
4901
4902
4903 static int
4904 dissect_p1_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_) {
4905   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4906
4907   return offset;
4908 }
4909
4910
4911
4912 static int
4913 dissect_p1_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_) {
4914   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4915
4916   return offset;
4917 }
4918
4919
4920 static const value_string p1_RefusedArgument_vals[] = {
4921   {   0, "user-name" },
4922   {   1, "user-address" },
4923   {   2, "deliverable-content-types" },
4924   {   3, "deliverable-maximum-content-length" },
4925   {   4, "deliverable-encoded-information-types-constraints" },
4926   {   5, "deliverable-security-labels" },
4927   {   6, "recipient-assigned-redirections" },
4928   {   7, "restricted-delivery" },
4929   {   8, "retrieve-registrations" },
4930   {  10, "restrict" },
4931   {  11, "permissible-operations" },
4932   {  12, "permissible-lowest-priority" },
4933   {  13, "permissible-encoded-information-types" },
4934   {  14, "permissible-content-types" },
4935   {  15, "permissible-maximum-content-length" },
4936   {  16, "permissible-security-context" },
4937   { 0, NULL }
4938 };
4939
4940
4941 static int
4942 dissect_p1_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_) {
4943   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4944                                                             0U, ub_integer_options, hf_index, NULL);
4945
4946   return offset;
4947 }
4948
4949
4950
4951 static int
4952 dissect_p1_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_) {
4953 #line 593 "../../asn1/p1/p1.cnf"
4954 /*XXX not implemented yet */
4955
4956
4957
4958   return offset;
4959 }
4960
4961
4962 static const value_string p1_T_refused_argument_vals[] = {
4963   {   0, "built-in-argument" },
4964   {   1, "refused-extension" },
4965   { 0, NULL }
4966 };
4967
4968 static const ber_choice_t T_refused_argument_choice[] = {
4969   {   0, &hf_p1_built_in_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_RefusedArgument },
4970   {   1, &hf_p1_refused_extension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_p1_T_refused_extension },
4971   { 0, NULL, 0, 0, 0, NULL }
4972 };
4973
4974 static int
4975 dissect_p1_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_) {
4976   offset = dissect_ber_choice(actx, tree, tvb, offset,
4977                                  T_refused_argument_choice, hf_index, ett_p1_T_refused_argument,
4978                                  NULL);
4979
4980   return offset;
4981 }
4982
4983
4984 static const value_string p1_RefusalReason_vals[] = {
4985   {   0, "facility-unavailable" },
4986   {   1, "facility-not-subscribed" },
4987   {   2, "parameter-unacceptable" },
4988   { 0, NULL }
4989 };
4990
4991
4992 static int
4993 dissect_p1_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_) {
4994   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4995                                                             0U, ub_integer_options, hf_index, NULL);
4996
4997   return offset;
4998 }
4999
5000
5001 static const ber_sequence_t RefusedOperation_set[] = {
5002   { &hf_p1_refused_argument , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_refused_argument },
5003   { &hf_p1_refusal_reason   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RefusalReason },
5004   { NULL, 0, 0, 0, NULL }
5005 };
5006
5007 static int
5008 dissect_p1_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_) {
5009   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5010                               RefusedOperation_set, hf_index, ett_p1_RefusedOperation);
5011
5012   return offset;
5013 }
5014
5015
5016
5017 static int
5018 dissect_p1_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_) {
5019   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5020
5021   return offset;
5022 }
5023
5024
5025
5026 static int
5027 dissect_p1_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_) {
5028 #line 835 "../../asn1/p1/p1.cnf"
5029         tvbuff_t        *nstring = NULL;
5030
5031           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5032                                                         actx, tree, tvb, offset,
5033                                                         1, ub_x121_address_length, hf_index, &nstring);
5034
5035
5036         do_address(NULL, nstring, actx);
5037
5038
5039
5040   return offset;
5041 }
5042
5043
5044
5045 static int
5046 dissect_p1_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_) {
5047   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
5048                                                         actx, tree, tvb, offset,
5049                                                         1, ub_tsap_id_length, hf_index, NULL);
5050
5051   return offset;
5052 }
5053
5054
5055 static const ber_sequence_t T_x121_sequence[] = {
5056   { &hf_p1_x121_address     , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_address },
5057   { &hf_p1_tsap_id          , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_tsap_id_length },
5058   { NULL, 0, 0, 0, NULL }
5059 };
5060
5061 static int
5062 dissect_p1_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_) {
5063   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5064                                    T_x121_sequence, hf_index, ett_p1_T_x121);
5065
5066   return offset;
5067 }
5068
5069
5070
5071 static int
5072 dissect_p1_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_) {
5073   offset = dissect_x509sat_PresentationAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5074
5075   return offset;
5076 }
5077
5078
5079 static const value_string p1_UserAddress_vals[] = {
5080   {   0, "x121" },
5081   {   1, "presentation" },
5082   { 0, NULL }
5083 };
5084
5085 static const ber_choice_t UserAddress_choice[] = {
5086   {   0, &hf_p1_x121             , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_x121 },
5087   {   1, &hf_p1_presentation     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PSAPAddress },
5088   { 0, NULL, 0, 0, 0, NULL }
5089 };
5090
5091 static int
5092 dissect_p1_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_) {
5093   offset = dissect_ber_choice(actx, tree, tvb, offset,
5094                                  UserAddress_choice, hf_index, ett_p1_UserAddress,
5095                                  NULL);
5096
5097   return offset;
5098 }
5099
5100
5101 static const ber_sequence_t SET_OF_Priority_set_of[1] = {
5102   { &hf_p1_class_priority_item, BER_CLASS_APP, 7, BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
5103 };
5104
5105 static int
5106 dissect_p1_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_) {
5107   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5108                                  SET_OF_Priority_set_of, hf_index, ett_p1_SET_OF_Priority);
5109
5110   return offset;
5111 }
5112
5113
5114 static const value_string p1_T_objects_vals[] = {
5115   {   0, "messages" },
5116   {   1, "reports" },
5117   {   2, "both" },
5118   { 0, NULL }
5119 };
5120
5121
5122 static int
5123 dissect_p1_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_) {
5124   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5125                                   NULL);
5126
5127   return offset;
5128 }
5129
5130
5131 static const asn_namedbit T_source_type_bits[] = {
5132   {  0, &hf_p1_T_source_type_originated_by, -1, -1, "originated-by", NULL },
5133   {  1, &hf_p1_T_source_type_redirected_by, -1, -1, "redirected-by", NULL },
5134   {  2, &hf_p1_T_source_type_dl_expanded_by, -1, -1, "dl-expanded-by", NULL },
5135   { 0, NULL, 0, 0, NULL, NULL }
5136 };
5137
5138 static int
5139 dissect_p1_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_) {
5140   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5141                                     T_source_type_bits, hf_index, ett_p1_T_source_type,
5142                                     NULL);
5143
5144   return offset;
5145 }
5146
5147
5148 static const value_string p1_ExactOrPattern_vals[] = {
5149   {   0, "exact-match" },
5150   {   1, "pattern-match" },
5151   { 0, NULL }
5152 };
5153
5154 static const ber_choice_t ExactOrPattern_choice[] = {
5155   {   0, &hf_p1_exact_match      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
5156   {   1, &hf_p1_pattern_match    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
5157   { 0, NULL, 0, 0, 0, NULL }
5158 };
5159
5160 static int
5161 dissect_p1_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_) {
5162   offset = dissect_ber_choice(actx, tree, tvb, offset,
5163                                  ExactOrPattern_choice, hf_index, ett_p1_ExactOrPattern,
5164                                  NULL);
5165
5166   return offset;
5167 }
5168
5169
5170 static const ber_sequence_t Restriction_set[] = {
5171   { &hf_p1_permitted        , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BOOLEAN },
5172   { &hf_p1_source_type      , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_source_type },
5173   { &hf_p1_source_name      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExactOrPattern },
5174   { NULL, 0, 0, 0, NULL }
5175 };
5176
5177 static int
5178 dissect_p1_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_) {
5179   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5180                               Restriction_set, hf_index, ett_p1_Restriction);
5181
5182   return offset;
5183 }
5184
5185
5186 static const ber_sequence_t SEQUENCE_OF_Restriction_sequence_of[1] = {
5187   { &hf_p1_applies_only_to_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_Restriction },
5188 };
5189
5190 static int
5191 dissect_p1_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_) {
5192   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5193                                       SEQUENCE_OF_Restriction_sequence_of, hf_index, ett_p1_SEQUENCE_OF_Restriction);
5194
5195   return offset;
5196 }
5197
5198
5199 static const ber_sequence_t MessageClass_set[] = {
5200   { &hf_p1_content_types    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
5201   { &hf_p1_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
5202   { &hf_p1_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncodedInformationTypesConstraints },
5203   { &hf_p1_security_labels  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
5204   { &hf_p1_class_priority   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_Priority },
5205   { &hf_p1_objects          , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_objects },
5206   { &hf_p1_applies_only_to  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_OF_Restriction },
5207   { &hf_p1_extensions       , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5208   { NULL, 0, 0, 0, NULL }
5209 };
5210
5211 static int
5212 dissect_p1_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_) {
5213   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5214                               MessageClass_set, hf_index, ett_p1_MessageClass);
5215
5216   return offset;
5217 }
5218
5219
5220
5221 static int
5222 dissect_p1_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_) {
5223   offset = dissect_p1_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5224
5225   return offset;
5226 }
5227
5228
5229 static const ber_sequence_t SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of[1] = {
5230   { &hf_p1_deliverable_class_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_DeliverableClass },
5231 };
5232
5233 static int
5234 dissect_p1_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_) {
5235   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5236                                              1, ub_deliverable_class, SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of, hf_index, ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass);
5237
5238   return offset;
5239 }
5240
5241
5242
5243 static int
5244 dissect_p1_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_) {
5245   offset = dissect_p1_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
5246
5247   return offset;
5248 }
5249
5250
5251
5252 static int
5253 dissect_p1_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_) {
5254   offset = dissect_p1_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5255
5256   return offset;
5257 }
5258
5259
5260 static const ber_sequence_t SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of[1] = {
5261   { &hf_p1_redirection_classes_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_RedirectionClass },
5262 };
5263
5264 static int
5265 dissect_p1_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_) {
5266   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5267                                              1, ub_redirection_classes, SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of, hf_index, ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass);
5268
5269   return offset;
5270 }
5271
5272
5273
5274 static int
5275 dissect_p1_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_) {
5276   offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5277
5278   return offset;
5279 }
5280
5281
5282 static const ber_sequence_t RecipientRedirection_set[] = {
5283   { &hf_p1_redirection_classes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass },
5284   { &hf_p1_recipient_assigned_alternate_recipient, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientAssignedAlternateRecipient },
5285   { NULL, 0, 0, 0, NULL }
5286 };
5287
5288 static int
5289 dissect_p1_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_) {
5290   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5291                               RecipientRedirection_set, hf_index, ett_p1_RecipientRedirection);
5292
5293   return offset;
5294 }
5295
5296
5297 static const ber_sequence_t Redirections_sequence_of[1] = {
5298   { &hf_p1_Redirections_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientRedirection },
5299 };
5300
5301 static int
5302 dissect_p1_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_) {
5303   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5304                                                   1, ub_redirections, Redirections_sequence_of, hf_index, ett_p1_Redirections);
5305
5306   return offset;
5307 }
5308
5309
5310 static const ber_sequence_t RestrictedDelivery_sequence_of[1] = {
5311   { &hf_p1_RestrictedDelivery_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_Restriction },
5312 };
5313
5314 static int
5315 dissect_p1_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_) {
5316   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5317                                                   1, ub_restrictions, RestrictedDelivery_sequence_of, hf_index, ett_p1_RestrictedDelivery);
5318
5319   return offset;
5320 }
5321
5322
5323 static const asn_namedbit T_standard_parameters_bits[] = {
5324   {  0, &hf_p1_T_standard_parameters_user_name, -1, -1, "user-name", NULL },
5325   {  1, &hf_p1_T_standard_parameters_user_address, -1, -1, "user-address", NULL },
5326   {  2, &hf_p1_T_standard_parameters_deliverable_class, -1, -1, "deliverable-class", NULL },
5327   {  3, &hf_p1_T_standard_parameters_default_delivery_controls, -1, -1, "default-delivery-controls", NULL },
5328   {  4, &hf_p1_T_standard_parameters_redirections, -1, -1, "redirections", NULL },
5329   {  5, &hf_p1_T_standard_parameters_restricted_delivery, -1, -1, "restricted-delivery", NULL },
5330   { 0, NULL, 0, 0, NULL, NULL }
5331 };
5332
5333 static int
5334 dissect_p1_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_) {
5335   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5336                                     T_standard_parameters_bits, hf_index, ett_p1_T_standard_parameters,
5337                                     NULL);
5338
5339   return offset;
5340 }
5341
5342
5343
5344 static int
5345 dissect_p1_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_) {
5346 #line 532 "../../asn1/p1/p1.cnf"
5347 /*XXX not implemented yet */
5348
5349
5350
5351   return offset;
5352 }
5353
5354
5355 static const ber_sequence_t T_type_extensions_set_of[1] = {
5356   { &hf_p1_type_extensions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_type_extensions_item },
5357 };
5358
5359 static int
5360 dissect_p1_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_) {
5361   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5362                                  T_type_extensions_set_of, hf_index, ett_p1_T_type_extensions);
5363
5364   return offset;
5365 }
5366
5367
5368 static const ber_sequence_t RegistrationTypes_sequence[] = {
5369   { &hf_p1_standard_parameters, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_standard_parameters },
5370   { &hf_p1_type_extensions  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_type_extensions },
5371   { NULL, 0, 0, 0, NULL }
5372 };
5373
5374 static int
5375 dissect_p1_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_) {
5376   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5377                                    RegistrationTypes_sequence, hf_index, ett_p1_RegistrationTypes);
5378
5379   return offset;
5380 }
5381
5382
5383 static const ber_sequence_t RegisterArgument_set[] = {
5384   { &hf_p1_user_name        , BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_UserName },
5385   { &hf_p1_user_address     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_UserAddress },
5386   { &hf_p1_deliverable_class, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass },
5387   { &hf_p1_default_delivery_controls, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p1_DefaultDeliveryControls },
5388   { &hf_p1_redirections     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Redirections },
5389   { &hf_p1_restricted_delivery, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RestrictedDelivery },
5390   { &hf_p1_retrieve_registrations, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RegistrationTypes },
5391   { &hf_p1_extensions       , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5392   { NULL, 0, 0, 0, NULL }
5393 };
5394
5395 static int
5396 dissect_p1_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_) {
5397   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5398                               RegisterArgument_set, hf_index, ett_p1_RegisterArgument);
5399
5400   return offset;
5401 }
5402
5403
5404 static const ber_sequence_t T_non_empty_result_set[] = {
5405   { &hf_p1_registered_information, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RegisterArgument },
5406   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5407   { NULL, 0, 0, 0, NULL }
5408 };
5409
5410 static int
5411 dissect_p1_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_) {
5412   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5413                               T_non_empty_result_set, hf_index, ett_p1_T_non_empty_result);
5414
5415   return offset;
5416 }
5417
5418
5419 static const value_string p1_RegisterResult_vals[] = {
5420   {   0, "empty-result" },
5421   {   1, "non-empty-result" },
5422   { 0, NULL }
5423 };
5424
5425 static const ber_choice_t RegisterResult_choice[] = {
5426   {   0, &hf_p1_empty_result     , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
5427   {   1, &hf_p1_non_empty_result , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_T_non_empty_result },
5428   { 0, NULL, 0, 0, 0, NULL }
5429 };
5430
5431 static int
5432 dissect_p1_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_) {
5433   offset = dissect_ber_choice(actx, tree, tvb, offset,
5434                                  RegisterResult_choice, hf_index, ett_p1_RegisterResult,
5435                                  NULL);
5436
5437   return offset;
5438 }
5439
5440
5441
5442 static int
5443 dissect_p1_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_) {
5444   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5445
5446   return offset;
5447 }
5448
5449
5450 static const ber_sequence_t ChangeCredentialsArgument_set[] = {
5451   { &hf_p1_old_credentials  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_Credentials },
5452   { &hf_p1_new_credentials  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_Credentials },
5453   { NULL, 0, 0, 0, NULL }
5454 };
5455
5456 static int
5457 dissect_p1_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_) {
5458   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5459                               ChangeCredentialsArgument_set, hf_index, ett_p1_ChangeCredentialsArgument);
5460
5461   return offset;
5462 }
5463
5464
5465
5466 static int
5467 dissect_p1_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_) {
5468   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5469
5470   return offset;
5471 }
5472
5473
5474
5475 static int
5476 dissect_p1_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_) {
5477   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5478
5479   return offset;
5480 }
5481
5482
5483
5484 static int
5485 dissect_p1_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_) {
5486   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5487
5488   return offset;
5489 }
5490
5491
5492
5493
5494 static const ber_sequence_t MessageDeliveryEnvelope_sequence[] = {
5495   { &hf_p1_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryIdentifier },
5496   { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
5497   { &hf_p1_other_fields     , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_OtherMessageDeliveryFields },
5498   { NULL, 0, 0, 0, NULL }
5499 };
5500
5501 static int
5502 dissect_p1_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_) {
5503   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5504                                    MessageDeliveryEnvelope_sequence, hf_index, ett_p1_MessageDeliveryEnvelope);
5505
5506   return offset;
5507 }
5508
5509
5510 static const ber_sequence_t ReportDeliveryEnvelope_set[] = {
5511   { &hf_p1_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectSubmissionIdentifier },
5512   { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
5513   { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
5514   { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
5515   { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5516   { &hf_p1_per_recipient_report_delivery_fields, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields },
5517   { NULL, 0, 0, 0, NULL }
5518 };
5519
5520 static int
5521 dissect_p1_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_) {
5522   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5523                               ReportDeliveryEnvelope_set, hf_index, ett_p1_ReportDeliveryEnvelope);
5524
5525   return offset;
5526 }
5527
5528
5529
5530 static const value_string p1_RecipientReassignmentProhibited_vals[] = {
5531   {   0, "recipient-reassignment-allowed" },
5532   {   1, "recipient-reassignment-prohibited" },
5533   { 0, NULL }
5534 };
5535
5536
5537 static int
5538 dissect_p1_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_) {
5539   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5540                                   NULL);
5541
5542   return offset;
5543 }
5544
5545
5546
5547 static int
5548 dissect_p1_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_) {
5549   offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5550
5551   return offset;
5552 }
5553
5554
5555 static const value_string p1_DLExpansionProhibited_vals[] = {
5556   {   0, "dl-expansion-allowed" },
5557   {   1, "dl-expansion-prohibited" },
5558   { 0, NULL }
5559 };
5560
5561
5562 static int
5563 dissect_p1_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_) {
5564   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5565                                   NULL);
5566
5567   return offset;
5568 }
5569
5570
5571 static const value_string p1_ConversionWithLossProhibited_vals[] = {
5572   {   0, "conversion-with-loss-allowed" },
5573   {   1, "conversion-with-loss-prohibited" },
5574   { 0, NULL }
5575 };
5576
5577
5578 static int
5579 dissect_p1_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_) {
5580   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5581                                   NULL);
5582
5583   return offset;
5584 }
5585
5586
5587
5588 static int
5589 dissect_p1_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_) {
5590   offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
5591
5592   return offset;
5593 }
5594
5595
5596 static const value_string p1_RequestedDeliveryMethod_item_vals[] = {
5597   {   0, "any-delivery-method" },
5598   {   1, "mhs-delivery" },
5599   {   2, "physical-delivery" },
5600   {   3, "telex-delivery" },
5601   {   4, "teletex-delivery" },
5602   {   5, "g3-facsimile-delivery" },
5603   {   6, "g4-facsimile-delivery" },
5604   {   7, "ia5-terminal-delivery" },
5605   {   8, "videotex-delivery" },
5606   {   9, "telephone-delivery" },
5607   { 0, NULL }
5608 };
5609
5610
5611 static int
5612 dissect_p1_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_) {
5613   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5614                                                             0U, ub_integer_options, hf_index, NULL);
5615
5616   return offset;
5617 }
5618
5619
5620 static const ber_sequence_t RequestedDeliveryMethod_sequence_of[1] = {
5621   { &hf_p1_RequestedDeliveryMethod_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p1_RequestedDeliveryMethod_item },
5622 };
5623
5624 int
5625 dissect_p1_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_) {
5626   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5627                                       RequestedDeliveryMethod_sequence_of, hf_index, ett_p1_RequestedDeliveryMethod);
5628
5629   return offset;
5630 }
5631
5632
5633 static const value_string p1_PhysicalForwardingProhibited_vals[] = {
5634   {   0, "physical-forwarding-allowed" },
5635   {   1, "physical-forwarding-prohibited" },
5636   { 0, NULL }
5637 };
5638
5639
5640 static int
5641 dissect_p1_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_) {
5642   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5643                                   NULL);
5644
5645   return offset;
5646 }
5647
5648
5649 static const value_string p1_PhysicalForwardingAddressRequest_vals[] = {
5650   {   0, "physical-forwarding-address-not-requested" },
5651   {   1, "physical-forwarding-address-requested" },
5652   { 0, NULL }
5653 };
5654
5655
5656 static int
5657 dissect_p1_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_) {
5658   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5659                                   NULL);
5660
5661   return offset;
5662 }
5663
5664
5665 static const asn_namedbit PhysicalDeliveryModes_bits[] = {
5666   {  0, &hf_p1_PhysicalDeliveryModes_ordinary_mail, -1, -1, "ordinary-mail", NULL },
5667   {  1, &hf_p1_PhysicalDeliveryModes_special_delivery, -1, -1, "special-delivery", NULL },
5668   {  2, &hf_p1_PhysicalDeliveryModes_express_mail, -1, -1, "express-mail", NULL },
5669   {  3, &hf_p1_PhysicalDeliveryModes_counter_collection, -1, -1, "counter-collection", NULL },
5670   {  4, &hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice, -1, -1, "counter-collection-with-telephone-advice", NULL },
5671   {  5, &hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice, -1, -1, "counter-collection-with-telex-advice", NULL },
5672   {  6, &hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice, -1, -1, "counter-collection-with-teletex-advice", NULL },
5673   {  7, &hf_p1_PhysicalDeliveryModes_bureau_fax_delivery, -1, -1, "bureau-fax-delivery", NULL },
5674   { 0, NULL, 0, 0, NULL, NULL }
5675 };
5676
5677 static int
5678 dissect_p1_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_) {
5679   offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
5680                                                 0, ub_bit_options, PhysicalDeliveryModes_bits, hf_index, ett_p1_PhysicalDeliveryModes,
5681                                                 NULL);
5682
5683   return offset;
5684 }
5685
5686
5687 static const value_string p1_RegisteredMailType_vals[] = {
5688   {   0, "non-registered-mail" },
5689   {   1, "registered-mail" },
5690   {   2, "registered-mail-to-addressee-in-person" },
5691   { 0, NULL }
5692 };
5693
5694
5695 static int
5696 dissect_p1_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_) {
5697   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5698                                                             0U, ub_integer_options, hf_index, NULL);
5699
5700   return offset;
5701 }
5702
5703
5704
5705 static int
5706 dissect_p1_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_) {
5707   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5708                                                         actx, tree, tvb, offset,
5709                                                         1, ub_recipient_number_for_advice_length, hf_index, NULL);
5710
5711   return offset;
5712 }
5713
5714
5715
5716 static int
5717 dissect_p1_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_) {
5718   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5719
5720   return offset;
5721 }
5722
5723
5724 static const ber_sequence_t ORAddress_sequence[] = {
5725   { &hf_p1_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInStandardAttributes },
5726   { &hf_p1_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttributes },
5727   { &hf_p1_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttributes },
5728   { NULL, 0, 0, 0, NULL }
5729 };
5730
5731 int
5732 dissect_p1_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_) {
5733 #line 979 "../../asn1/p1/p1.cnf"
5734         p1_address_ctx_t* ctx;
5735
5736         if (actx->subtree.tree_ctx == NULL) {
5737                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
5738         }
5739
5740         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
5741         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
5742
5743         actx->subtree.tree = NULL;
5744         set_do_address(actx, TRUE);
5745
5746           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5747                                    ORAddress_sequence, hf_index, ett_p1_ORAddress);
5748
5749
5750
5751         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
5752                 proto_item_append_text(actx->subtree.tree, " (%s/)", wmem_strbuf_get_str(ctx->oraddress));
5753
5754         set_do_address(actx, FALSE);
5755
5756
5757
5758   return offset;
5759 }
5760
5761
5762
5763 static int
5764 dissect_p1_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_) {
5765   offset = dissect_p1_ORAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5766
5767   return offset;
5768 }
5769
5770
5771 static const value_string p1_PhysicalDeliveryReportRequest_vals[] = {
5772   {   0, "return-of-undeliverable-mail-by-PDS" },
5773   {   1, "return-of-notification-by-PDS" },
5774   {   2, "return-of-notification-by-MHS" },
5775   {   3, "return-of-notification-by-MHS-and-PDS" },
5776   { 0, NULL }
5777 };
5778
5779
5780 static int
5781 dissect_p1_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_) {
5782   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5783                                                             0U, ub_integer_options, hf_index, NULL);
5784
5785   return offset;
5786 }
5787
5788
5789
5790 static int
5791 dissect_p1_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_) {
5792   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
5793
5794   return offset;
5795 }
5796
5797
5798
5799 int
5800 dissect_p1_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_) {
5801   offset = dissect_p1_Token(implicit_tag, tvb, offset, actx, tree, hf_index);
5802
5803   return offset;
5804 }
5805
5806
5807
5808 static int
5809 dissect_p1_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_) {
5810   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
5811
5812   return offset;
5813 }
5814
5815
5816
5817 int
5818 dissect_p1_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_) {
5819   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5820
5821   return offset;
5822 }
5823
5824
5825
5826 int
5827 dissect_p1_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_) {
5828   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5829
5830   return offset;
5831 }
5832
5833
5834
5835 int
5836 dissect_p1_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_) {
5837   offset = dissect_p1_SecurityLabel(implicit_tag, tvb, offset, actx, tree, hf_index);
5838
5839   return offset;
5840 }
5841
5842
5843 static const value_string p1_ProofOfSubmissionRequest_vals[] = {
5844   {   0, "proof-of-submission-not-requested" },
5845   {   1, "proof-of-submission-requested" },
5846   { 0, NULL }
5847 };
5848
5849
5850 static int
5851 dissect_p1_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_) {
5852   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5853                                   NULL);
5854
5855   return offset;
5856 }
5857
5858
5859 static const value_string p1_ProofOfDeliveryRequest_vals[] = {
5860   {   0, "proof-of-delivery-not-requested" },
5861   {   1, "proof-of-delivery-requested" },
5862   { 0, NULL }
5863 };
5864
5865
5866 static int
5867 dissect_p1_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_) {
5868   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5869                                   NULL);
5870
5871   return offset;
5872 }
5873
5874
5875
5876 static int
5877 dissect_p1_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_) {
5878   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
5879                                             actx, tree, tvb, offset, hf_index,
5880                                             NULL);
5881
5882   return offset;
5883 }
5884
5885
5886 static const value_string p1_ContentCorrelator_vals[] = {
5887   {   0, "ia5text" },
5888   {   1, "octets" },
5889   { 0, NULL }
5890 };
5891
5892 static const ber_choice_t ContentCorrelator_choice[] = {
5893   {   0, &hf_p1_ia5text          , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_IA5String },
5894   {   1, &hf_p1_octets           , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_OCTET_STRING },
5895   { 0, NULL, 0, 0, 0, NULL }
5896 };
5897
5898 static int
5899 dissect_p1_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_) {
5900   offset = dissect_ber_choice(actx, tree, tvb, offset,
5901                                  ContentCorrelator_choice, hf_index, ett_p1_ContentCorrelator,
5902                                  NULL);
5903
5904   return offset;
5905 }
5906
5907
5908
5909 static int
5910 dissect_p1_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_) {
5911   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5912
5913   return offset;
5914 }
5915
5916
5917 static const ber_sequence_t IntendedRecipientName_sequence[] = {
5918   { &hf_p1_intended_recipient, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
5919   { &hf_p1_redirection_time , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
5920   { NULL, 0, 0, 0, NULL }
5921 };
5922
5923 static int
5924 dissect_p1_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_) {
5925   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5926                                    IntendedRecipientName_sequence, hf_index, ett_p1_IntendedRecipientName);
5927
5928   return offset;
5929 }
5930
5931
5932 static const value_string p1_RedirectionReason_vals[] = {
5933   {   0, "recipient-assigned-alternate-recipient" },
5934   {   1, "originator-requested-alternate-recipient" },
5935   {   2, "recipient-MD-assigned-alternate-recipient" },
5936   {   3, "directory-look-up" },
5937   {   4, "alias" },
5938   { 0, NULL }
5939 };
5940
5941
5942 static int
5943 dissect_p1_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_) {
5944   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5945                                   NULL);
5946
5947   return offset;
5948 }
5949
5950
5951 static const ber_sequence_t Redirection_sequence[] = {
5952   { &hf_p1_intended_recipient_name, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_IntendedRecipientName },
5953   { &hf_p1_redirection_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_p1_RedirectionReason },
5954   { NULL, 0, 0, 0, NULL }
5955 };
5956
5957 static int
5958 dissect_p1_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_) {
5959   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5960                                    Redirection_sequence, hf_index, ett_p1_Redirection);
5961
5962   return offset;
5963 }
5964
5965
5966 static const ber_sequence_t RedirectionHistory_sequence_of[1] = {
5967   { &hf_p1_RedirectionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_Redirection },
5968 };
5969
5970 static int
5971 dissect_p1_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_) {
5972   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5973                                                   1, ub_redirections, RedirectionHistory_sequence_of, hf_index, ett_p1_RedirectionHistory);
5974
5975   return offset;
5976 }
5977
5978
5979 static const ber_sequence_t DLExpansion_sequence[] = {
5980   { &hf_p1_dl               , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
5981   { &hf_p1_dl_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
5982   { NULL, 0, 0, 0, NULL }
5983 };
5984
5985 static int
5986 dissect_p1_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_) {
5987   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5988                                    DLExpansion_sequence, hf_index, ett_p1_DLExpansion);
5989
5990   return offset;
5991 }
5992
5993
5994 static const ber_sequence_t DLExpansionHistory_sequence_of[1] = {
5995   { &hf_p1_DLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_DLExpansion },
5996 };
5997
5998 static int
5999 dissect_p1_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_) {
6000   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6001                                                   1, ub_dl_expansions, DLExpansionHistory_sequence_of, hf_index, ett_p1_DLExpansionHistory);
6002
6003   return offset;
6004 }
6005
6006
6007
6008 static int
6009 dissect_p1_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_) {
6010   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6011
6012   return offset;
6013 }
6014
6015
6016 static const ber_sequence_t OriginatorAndDLExpansion_sequence[] = {
6017   { &hf_p1_originator_or_dl_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
6018   { &hf_p1_origination_or_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
6019   { NULL, 0, 0, 0, NULL }
6020 };
6021
6022 static int
6023 dissect_p1_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_) {
6024   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6025                                    OriginatorAndDLExpansion_sequence, hf_index, ett_p1_OriginatorAndDLExpansion);
6026
6027   return offset;
6028 }
6029
6030
6031 static const ber_sequence_t OriginatorAndDLExpansionHistory_sequence_of[1] = {
6032   { &hf_p1_OriginatorAndDLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorAndDLExpansion },
6033 };
6034
6035 static int
6036 dissect_p1_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_) {
6037   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6038                                                   2, ub_orig_and_dl_expansions, OriginatorAndDLExpansionHistory_sequence_of, hf_index, ett_p1_OriginatorAndDLExpansionHistory);
6039
6040   return offset;
6041 }
6042
6043
6044
6045 static int
6046 dissect_p1_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_) {
6047   offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6048
6049   return offset;
6050 }
6051
6052
6053
6054 static int
6055 dissect_p1_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_) {
6056   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6057
6058   return offset;
6059 }
6060
6061
6062
6063 static int
6064 dissect_p1_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_) {
6065   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6066
6067   return offset;
6068 }
6069
6070
6071 static const ber_sequence_t PerRecipientDeliveryReportFields_sequence[] = {
6072   { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
6073   { &hf_p1_type_of_MTS_user , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p1_TypeOfMTSUser },
6074   { &hf_p1_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientCertificate },
6075   { &hf_p1_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDelivery },
6076   { NULL, 0, 0, 0, NULL }
6077 };
6078
6079 static int
6080 dissect_p1_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_) {
6081   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6082                                    PerRecipientDeliveryReportFields_sequence, hf_index, ett_p1_PerRecipientDeliveryReportFields);
6083
6084   return offset;
6085 }
6086
6087
6088 static const ber_sequence_t PerRecipientNonDeliveryReportFields_sequence[] = {
6089   { &hf_p1_non_delivery_reason_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p1_NonDeliveryReasonCode },
6090   { &hf_p1_non_delivery_diagnostic_code, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_NonDeliveryDiagnosticCode },
6091   { NULL, 0, 0, 0, NULL }
6092 };
6093
6094 static int
6095 dissect_p1_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_) {
6096   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6097                                    PerRecipientNonDeliveryReportFields_sequence, hf_index, ett_p1_PerRecipientNonDeliveryReportFields);
6098
6099   return offset;
6100 }
6101
6102
6103 static const value_string p1_T_report_type_vals[] = {
6104   {   0, "delivery" },
6105   {   1, "non-delivery" },
6106   { 0, NULL }
6107 };
6108
6109 static const ber_choice_t T_report_type_choice[] = {
6110   {   0, &hf_p1_report_type_delivery, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientDeliveryReportFields },
6111   {   1, &hf_p1_non_delivery_report, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientNonDeliveryReportFields },
6112   { 0, NULL, 0, 0, 0, NULL }
6113 };
6114
6115 static int
6116 dissect_p1_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_) {
6117   offset = dissect_ber_choice(actx, tree, tvb, offset,
6118                                  T_report_type_choice, hf_index, ett_p1_T_report_type,
6119                                  NULL);
6120
6121   return offset;
6122 }
6123
6124
6125
6126
6127 int
6128 dissect_p1_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_) {
6129   offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6130
6131   return offset;
6132 }
6133
6134
6135
6136 int
6137 dissect_p1_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_) {
6138   offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6139
6140   return offset;
6141 }
6142
6143
6144 static const ber_sequence_t ReportingMTAName_sequence[] = {
6145   { &hf_p1_domain           , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
6146   { &hf_p1_mta_name         , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
6147   { &hf_p1_mta_directory_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6148   { NULL, 0, 0, 0, NULL }
6149 };
6150
6151 static int
6152 dissect_p1_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_) {
6153   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6154                                    ReportingMTAName_sequence, hf_index, ett_p1_ReportingMTAName);
6155
6156   return offset;
6157 }
6158
6159
6160 static const value_string p1_ExtendedCertificate_vals[] = {
6161   {   0, "directory-entry" },
6162   {   1, "certificate" },
6163   { 0, NULL }
6164 };
6165
6166 static const ber_choice_t ExtendedCertificate_choice[] = {
6167   {   0, &hf_p1_directory_entry  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6168   {   1, &hf_p1_certificate      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
6169   { 0, NULL, 0, 0, 0, NULL }
6170 };
6171
6172 static int
6173 dissect_p1_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_) {
6174   offset = dissect_ber_choice(actx, tree, tvb, offset,
6175                                  ExtendedCertificate_choice, hf_index, ett_p1_ExtendedCertificate,
6176                                  NULL);
6177
6178   return offset;
6179 }
6180
6181
6182 static const ber_sequence_t ExtendedCertificates_set_of[1] = {
6183   { &hf_p1_ExtendedCertificates_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExtendedCertificate },
6184 };
6185
6186 int
6187 dissect_p1_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_) {
6188   offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
6189                                              1, ub_certificates, ExtendedCertificates_set_of, hf_index, ett_p1_ExtendedCertificates);
6190
6191   return offset;
6192 }
6193
6194
6195 static const ber_sequence_t DLExemptedRecipients_set_of[1] = {
6196   { &hf_p1_DLExemptedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOrDirectoryName },
6197 };
6198
6199 static int
6200 dissect_p1_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_) {
6201   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
6202                                  DLExemptedRecipients_set_of, hf_index, ett_p1_DLExemptedRecipients);
6203
6204   return offset;
6205 }
6206
6207
6208 static const ber_sequence_t CertificateSelectors_set[] = {
6209   { &hf_p1_encryption_recipient, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6210   { &hf_p1_encryption_originator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6211   { &hf_p1_selectors_content_integrity_check, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6212   { &hf_p1_token_signature  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6213   { &hf_p1_message_origin_authentication, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6214   { NULL, 0, 0, 0, NULL }
6215 };
6216
6217 static int
6218 dissect_p1_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_) {
6219   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6220                               CertificateSelectors_set, hf_index, ett_p1_CertificateSelectors);
6221
6222   return offset;
6223 }
6224
6225
6226
6227 static int
6228 dissect_p1_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_) {
6229 #line 783 "../../asn1/p1/p1.cnf"
6230         tvbuff_t        *string = NULL;
6231
6232           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6233                                                         actx, tree, tvb, offset,
6234                                                         1, ub_common_name_length, hf_index, &string);
6235
6236
6237         do_address("/CN=", string, actx);
6238
6239
6240
6241   return offset;
6242 }
6243
6244
6245
6246 static int
6247 dissect_p1_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_) {
6248 #line 793 "../../asn1/p1/p1.cnf"
6249         tvbuff_t        *string = NULL;
6250
6251           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6252                                                         actx, tree, tvb, offset,
6253                                                         1, ub_common_name_length, hf_index, &string);
6254
6255
6256         do_address("/CN=", string, actx);
6257
6258
6259
6260   return offset;
6261 }
6262
6263
6264
6265 static int
6266 dissect_p1_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_) {
6267   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
6268                                                         actx, tree, tvb, offset,
6269                                                         1, ub_string_length, hf_index, NULL);
6270
6271   return offset;
6272 }
6273
6274
6275
6276 static int
6277 dissect_p1_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_) {
6278   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
6279                                                         actx, tree, tvb, offset,
6280                                                         1, ub_string_length, hf_index, NULL);
6281
6282   return offset;
6283 }
6284
6285
6286 static const value_string p1_T_character_encoding_vals[] = {
6287   {   0, "two-octets" },
6288   {   1, "four-octets" },
6289   { 0, NULL }
6290 };
6291
6292 static const ber_choice_t T_character_encoding_choice[] = {
6293   {   0, &hf_p1_two_octets       , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_p1_BMPString_SIZE_1_ub_string_length },
6294   {   1, &hf_p1_four_octets      , BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalString_SIZE_1_ub_string_length },
6295   { 0, NULL, 0, 0, 0, NULL }
6296 };
6297
6298 static int
6299 dissect_p1_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_) {
6300   offset = dissect_ber_choice(actx, tree, tvb, offset,
6301                                  T_character_encoding_choice, hf_index, ett_p1_T_character_encoding,
6302                                  NULL);
6303
6304   return offset;
6305 }
6306
6307
6308
6309 static int
6310 dissect_p1_PrintableString_SIZE_CONSTR001(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6311   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6312                                                         actx, tree, tvb, offset,
6313                                                         2, 5, hf_index, NULL);
6314
6315   return offset;
6316 }
6317
6318
6319 static const ber_sequence_t UniversalOrBMPString_set[] = {
6320   { &hf_p1_character_encoding, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_character_encoding },
6321   { &hf_p1_iso_639_language_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_CONSTR001 },
6322   { NULL, 0, 0, 0, NULL }
6323 };
6324
6325 int
6326 dissect_p1_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_) {
6327   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6328                               UniversalOrBMPString_set, hf_index, ett_p1_UniversalOrBMPString);
6329
6330   return offset;
6331 }
6332
6333
6334
6335 static int
6336 dissect_p1_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_) {
6337   offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6338
6339   return offset;
6340 }
6341
6342
6343
6344 static int
6345 dissect_p1_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_) {
6346 #line 755 "../../asn1/p1/p1.cnf"
6347         tvbuff_t        *string = NULL;
6348
6349           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6350                                                         actx, tree, tvb, offset,
6351                                                         1, ub_organization_name_length, hf_index, &string);
6352
6353
6354         do_address("/O=", string, actx);
6355
6356
6357
6358   return offset;
6359 }
6360
6361
6362
6363 static int
6364 dissect_p1_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_) {
6365   offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6366
6367   return offset;
6368 }
6369
6370
6371
6372 static int
6373 dissect_p1_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_) {
6374 #line 932 "../../asn1/p1/p1.cnf"
6375         tvbuff_t        *tstring = NULL;
6376
6377           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6378                                                         actx, tree, tvb, offset,
6379                                                         1, ub_surname_length, hf_index, &tstring);
6380
6381
6382         do_address("/S=", tstring, actx);
6383
6384
6385
6386   return offset;
6387 }
6388
6389
6390
6391 static int
6392 dissect_p1_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_) {
6393 #line 939 "../../asn1/p1/p1.cnf"
6394         tvbuff_t        *tstring = NULL;
6395
6396           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6397                                                         actx, tree, tvb, offset,
6398                                                         1, ub_given_name_length, hf_index, &tstring);
6399
6400
6401         do_address("/G=", tstring, actx);
6402
6403
6404
6405   return offset;
6406 }
6407
6408
6409
6410 static int
6411 dissect_p1_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_) {
6412 #line 946 "../../asn1/p1/p1.cnf"
6413         tvbuff_t        *tstring = NULL;
6414
6415           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6416                                                         actx, tree, tvb, offset,
6417                                                         1, ub_initials_length, hf_index, &tstring);
6418
6419
6420         do_address("/I=", tstring, actx);
6421
6422
6423
6424   return offset;
6425 }
6426
6427
6428
6429 static int
6430 dissect_p1_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_) {
6431 #line 953 "../../asn1/p1/p1.cnf"
6432         tvbuff_t        *tstring = NULL;
6433
6434           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6435                                                         actx, tree, tvb, offset,
6436                                                         1, ub_generation_qualifier_length, hf_index, &tstring);
6437
6438
6439         do_address("/Q=", tstring, actx);
6440
6441
6442
6443   return offset;
6444 }
6445
6446
6447 static const ber_sequence_t TeletexPersonalName_set[] = {
6448   { &hf_p1_teletex_surname  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_surname },
6449   { &hf_p1_teletex_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_given_name },
6450   { &hf_p1_teletex_initials , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_initials },
6451   { &hf_p1_teletex_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_generation_qualifier },
6452   { NULL, 0, 0, 0, NULL }
6453 };
6454
6455 static int
6456 dissect_p1_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_) {
6457   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6458                               TeletexPersonalName_set, hf_index, ett_p1_TeletexPersonalName);
6459
6460   return offset;
6461 }
6462
6463
6464 static const ber_sequence_t UniversalPersonalName_set[] = {
6465   { &hf_p1_universal_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6466   { &hf_p1_universal_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6467   { &hf_p1_universal_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6468   { &hf_p1_universal_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6469   { NULL, 0, 0, 0, NULL }
6470 };
6471
6472 static int
6473 dissect_p1_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_) {
6474   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6475                               UniversalPersonalName_set, hf_index, ett_p1_UniversalPersonalName);
6476
6477   return offset;
6478 }
6479
6480
6481
6482 static int
6483 dissect_p1_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_) {
6484 #line 773 "../../asn1/p1/p1.cnf"
6485         tvbuff_t        *string = NULL;
6486
6487           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6488                                                         actx, tree, tvb, offset,
6489                                                         1, ub_organizational_unit_name_length, hf_index, &string);
6490
6491
6492         do_address("/OU=", string, actx);
6493
6494
6495
6496   return offset;
6497 }
6498
6499
6500 static const ber_sequence_t TeletexOrganizationalUnitNames_sequence_of[1] = {
6501   { &hf_p1_TeletexOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_TeletexOrganizationalUnitName },
6502 };
6503
6504 static int
6505 dissect_p1_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_) {
6506   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6507                                                   1, ub_organizational_units, TeletexOrganizationalUnitNames_sequence_of, hf_index, ett_p1_TeletexOrganizationalUnitNames);
6508
6509   return offset;
6510 }
6511
6512
6513
6514 static int
6515 dissect_p1_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_) {
6516   offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6517
6518   return offset;
6519 }
6520
6521
6522 static const ber_sequence_t UniversalOrganizationalUnitNames_sequence_of[1] = {
6523   { &hf_p1_UniversalOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrganizationalUnitName },
6524 };
6525
6526 static int
6527 dissect_p1_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_) {
6528   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6529                                                   1, ub_organizational_units, UniversalOrganizationalUnitNames_sequence_of, hf_index, ett_p1_UniversalOrganizationalUnitNames);
6530
6531   return offset;
6532 }
6533
6534
6535
6536 static int
6537 dissect_p1_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_) {
6538   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6539                                                         actx, tree, tvb, offset,
6540                                                         1, ub_pds_name_length, hf_index, NULL);
6541
6542   return offset;
6543 }
6544
6545
6546
6547 static int
6548 dissect_p1_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_) {
6549 #line 870 "../../asn1/p1/p1.cnf"
6550         tvbuff_t        *nstring = NULL;
6551
6552           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6553                                                         actx, tree, tvb, offset,
6554                                                         ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
6555
6556
6557         do_address(NULL, nstring, actx);
6558
6559
6560
6561   return offset;
6562 }
6563
6564
6565
6566 static int
6567 dissect_p1_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_) {
6568 #line 828 "../../asn1/p1/p1.cnf"
6569         tvbuff_t        *nstring = NULL;
6570
6571           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6572                                                         actx, tree, tvb, offset,
6573                                                         ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
6574
6575
6576         do_address(NULL, nstring, actx);
6577
6578
6579
6580   return offset;
6581 }
6582
6583
6584 static const value_string p1_PhysicalDeliveryCountryName_vals[] = {
6585   {   0, "x121-dcc-code" },
6586   {   1, "iso-3166-alpha2-code" },
6587   { 0, NULL }
6588 };
6589
6590 static const ber_choice_t PhysicalDeliveryCountryName_choice[] = {
6591   {   0, &hf_p1_x121_dcc_code_01 , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_dcc_code_01 },
6592   {   1, &hf_p1_iso_3166_alpha2_code_01, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_iso_3166_alpha2_code_01 },
6593   { 0, NULL, 0, 0, 0, NULL }
6594 };
6595
6596 static int
6597 dissect_p1_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_) {
6598   offset = dissect_ber_choice(actx, tree, tvb, offset,
6599                                  PhysicalDeliveryCountryName_choice, hf_index, ett_p1_PhysicalDeliveryCountryName,
6600                                  NULL);
6601
6602   return offset;
6603 }
6604
6605
6606
6607 static int
6608 dissect_p1_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_) {
6609 #line 877 "../../asn1/p1/p1.cnf"
6610         tvbuff_t        *nstring = NULL;
6611
6612           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6613                                                         actx, tree, tvb, offset,
6614                                                         1, ub_postal_code_length, hf_index, &nstring);
6615
6616
6617         do_address(NULL, nstring, actx);
6618
6619
6620
6621
6622   return offset;
6623 }
6624
6625
6626
6627 static int
6628 dissect_p1_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_) {
6629   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6630                                                         actx, tree, tvb, offset,
6631                                                         1, ub_postal_code_length, hf_index, NULL);
6632
6633   return offset;
6634 }
6635
6636
6637 static const value_string p1_PostalCode_vals[] = {
6638   {   0, "numeric-code" },
6639   {   1, "printable-code" },
6640   { 0, NULL }
6641 };
6642
6643 static const ber_choice_t PostalCode_choice[] = {
6644   {   0, &hf_p1_numeric_code     , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_code },
6645   {   1, &hf_p1_printable_code   , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_postal_code_length },
6646   { 0, NULL, 0, 0, 0, NULL }
6647 };
6648
6649 static int
6650 dissect_p1_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_) {
6651   offset = dissect_ber_choice(actx, tree, tvb, offset,
6652                                  PostalCode_choice, hf_index, ett_p1_PostalCode,
6653                                  NULL);
6654
6655   return offset;
6656 }
6657
6658
6659
6660 static int
6661 dissect_p1_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_) {
6662   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6663                                                         actx, tree, tvb, offset,
6664                                                         1, ub_pds_parameter_length, hf_index, NULL);
6665
6666   return offset;
6667 }
6668
6669
6670
6671 static int
6672 dissect_p1_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_) {
6673   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6674                                                         actx, tree, tvb, offset,
6675                                                         1, ub_pds_parameter_length, hf_index, NULL);
6676
6677   return offset;
6678 }
6679
6680
6681 static const ber_sequence_t PDSParameter_set[] = {
6682   { &hf_p1_printable_string , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_pds_parameter_length },
6683   { &hf_p1_pds_teletex_string, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_TeletexString_SIZE_1_ub_pds_parameter_length },
6684   { NULL, 0, 0, 0, NULL }
6685 };
6686
6687 static int
6688 dissect_p1_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_) {
6689   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6690                               PDSParameter_set, hf_index, ett_p1_PDSParameter);
6691
6692   return offset;
6693 }
6694
6695
6696
6697 static int
6698 dissect_p1_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_) {
6699   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6700
6701   return offset;
6702 }
6703
6704
6705
6706 static int
6707 dissect_p1_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_) {
6708   offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6709
6710   return offset;
6711 }
6712
6713
6714
6715 static int
6716 dissect_p1_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_) {
6717   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6718
6719   return offset;
6720 }
6721
6722
6723
6724 static int
6725 dissect_p1_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_) {
6726   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6727
6728   return offset;
6729 }
6730
6731
6732
6733 static int
6734 dissect_p1_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_) {
6735   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6736
6737   return offset;
6738 }
6739
6740
6741
6742 static int
6743 dissect_p1_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_) {
6744   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6745
6746   return offset;
6747 }
6748
6749
6750
6751 static int
6752 dissect_p1_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_) {
6753   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6754
6755   return offset;
6756 }
6757
6758
6759
6760 static int
6761 dissect_p1_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_) {
6762   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6763
6764   return offset;
6765 }
6766
6767
6768
6769 static int
6770 dissect_p1_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_) {
6771   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6772
6773   return offset;
6774 }
6775
6776
6777
6778 static int
6779 dissect_p1_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_) {
6780   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6781
6782   return offset;
6783 }
6784
6785
6786
6787 static int
6788 dissect_p1_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_) {
6789   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6790
6791   return offset;
6792 }
6793
6794
6795
6796 static int
6797 dissect_p1_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_) {
6798   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6799
6800   return offset;
6801 }
6802
6803
6804
6805 static int
6806 dissect_p1_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_) {
6807   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6808
6809   return offset;
6810 }
6811
6812
6813 static const ber_sequence_t T_printable_address_sequence_of[1] = {
6814   { &hf_p1_printable_address_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_pds_parameter_length },
6815 };
6816
6817 static int
6818 dissect_p1_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_) {
6819   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6820                                                   1, ub_pds_physical_address_lines, T_printable_address_sequence_of, hf_index, ett_p1_T_printable_address);
6821
6822   return offset;
6823 }
6824
6825
6826
6827 static int
6828 dissect_p1_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_) {
6829   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6830                                                         actx, tree, tvb, offset,
6831                                                         1, ub_unformatted_address_length, hf_index, NULL);
6832
6833   return offset;
6834 }
6835
6836
6837 static const ber_sequence_t UnformattedPostalAddress_set[] = {
6838   { &hf_p1_printable_address, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_address },
6839   { &hf_p1_teletex_string   , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_TeletexString_SIZE_1_ub_unformatted_address_length },
6840   { NULL, 0, 0, 0, NULL }
6841 };
6842
6843 static int
6844 dissect_p1_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_) {
6845   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6846                               UnformattedPostalAddress_set, hf_index, ett_p1_UnformattedPostalAddress);
6847
6848   return offset;
6849 }
6850
6851
6852
6853 static int
6854 dissect_p1_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_) {
6855   offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6856
6857   return offset;
6858 }
6859
6860
6861
6862 static int
6863 dissect_p1_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_) {
6864   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6865
6866   return offset;
6867 }
6868
6869
6870
6871 static int
6872 dissect_p1_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_) {
6873   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6874
6875   return offset;
6876 }
6877
6878
6879
6880 static int
6881 dissect_p1_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_) {
6882   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6883
6884   return offset;
6885 }
6886
6887
6888
6889 static int
6890 dissect_p1_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_) {
6891   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6892
6893   return offset;
6894 }
6895
6896
6897
6898 static int
6899 dissect_p1_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_) {
6900   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6901
6902   return offset;
6903 }
6904
6905
6906
6907 static int
6908 dissect_p1_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_) {
6909   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6910
6911   return offset;
6912 }
6913
6914
6915
6916 static int
6917 dissect_p1_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_) {
6918   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6919
6920   return offset;
6921 }
6922
6923
6924
6925 static int
6926 dissect_p1_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_) {
6927   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6928
6929   return offset;
6930 }
6931
6932
6933
6934 static int
6935 dissect_p1_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_) {
6936   offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6937
6938   return offset;
6939 }
6940
6941
6942
6943 static int
6944 dissect_p1_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_) {
6945   offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6946
6947   return offset;
6948 }
6949
6950
6951
6952 static int
6953 dissect_p1_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_) {
6954   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6955                                                         actx, tree, tvb, offset,
6956                                                         1, ub_e163_4_number_length, hf_index, NULL);
6957
6958   return offset;
6959 }
6960
6961
6962
6963 static int
6964 dissect_p1_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_) {
6965   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6966                                                         actx, tree, tvb, offset,
6967                                                         1, ub_e163_4_sub_address_length, hf_index, NULL);
6968
6969   return offset;
6970 }
6971
6972
6973 static const ber_sequence_t T_e163_4_address_sequence[] = {
6974   { &hf_p1_number           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_NumericString_SIZE_1_ub_e163_4_number_length },
6975   { &hf_p1_sub_address      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NumericString_SIZE_1_ub_e163_4_sub_address_length },
6976   { NULL, 0, 0, 0, NULL }
6977 };
6978
6979 static int
6980 dissect_p1_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_) {
6981   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6982                                    T_e163_4_address_sequence, hf_index, ett_p1_T_e163_4_address);
6983
6984   return offset;
6985 }
6986
6987
6988 static const value_string p1_ExtendedNetworkAddress_vals[] = {
6989   {   0, "e163-4-address" },
6990   {   1, "psap-address" },
6991   { 0, NULL }
6992 };
6993
6994 static const ber_choice_t ExtendedNetworkAddress_choice[] = {
6995   {   0, &hf_p1_e163_4_address   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_T_e163_4_address },
6996   {   1, &hf_p1_psap_address     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509sat_PresentationAddress },
6997   { 0, NULL, 0, 0, 0, NULL }
6998 };
6999
7000 static int
7001 dissect_p1_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_) {
7002   offset = dissect_ber_choice(actx, tree, tvb, offset,
7003                                  ExtendedNetworkAddress_choice, hf_index, ett_p1_ExtendedNetworkAddress,
7004                                  NULL);
7005
7006   return offset;
7007 }
7008
7009
7010 static const value_string p1_TerminalType_vals[] = {
7011   {   3, "telex" },
7012   {   4, "teletex" },
7013   {   5, "g3-facsimile" },
7014   {   6, "g4-facsimile" },
7015   {   7, "ia5-terminal" },
7016   {   8, "videotex" },
7017   { 0, NULL }
7018 };
7019
7020
7021 static int
7022 dissect_p1_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_) {
7023   offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
7024                                                             0U, ub_integer_options, hf_index, NULL);
7025
7026   return offset;
7027 }
7028
7029
7030
7031 static int
7032 dissect_p1_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_) {
7033 #line 885 "../../asn1/p1/p1.cnf"
7034         tvbuff_t        *tstring = NULL;
7035
7036           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
7037                                                         actx, tree, tvb, offset,
7038                                                         1, ub_domain_defined_attribute_type_length, hf_index, &tstring);
7039
7040
7041         do_address_str("/DD.", tstring, actx);
7042
7043
7044
7045   return offset;
7046 }
7047
7048
7049
7050 static int
7051 dissect_p1_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_) {
7052 #line 892 "../../asn1/p1/p1.cnf"
7053         tvbuff_t        *tstring = NULL;
7054
7055           offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
7056                                                         actx, tree, tvb, offset,
7057                                                         1, ub_domain_defined_attribute_value_length, hf_index, &tstring);
7058
7059
7060         do_address_str_tree("=", tstring, actx, tree);
7061
7062
7063
7064   return offset;
7065 }
7066
7067
7068 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
7069   { &hf_p1_type             , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_T_type },
7070   { &hf_p1_teletex_value    , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_T_teletex_value },
7071   { NULL, 0, 0, 0, NULL }
7072 };
7073
7074 static int
7075 dissect_p1_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_) {
7076 #line 899 "../../asn1/p1/p1.cnf"
7077         actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
7078
7079           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7080                                    TeletexDomainDefinedAttribute_sequence, hf_index, ett_p1_TeletexDomainDefinedAttribute);
7081
7082
7083
7084
7085   return offset;
7086 }
7087
7088
7089 static const ber_sequence_t TeletexDomainDefinedAttributes_sequence_of[1] = {
7090   { &hf_p1_TeletexDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_TeletexDomainDefinedAttribute },
7091 };
7092
7093 static int
7094 dissect_p1_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_) {
7095   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7096                                                   1, ub_domain_defined_attributes, TeletexDomainDefinedAttributes_sequence_of, hf_index, ett_p1_TeletexDomainDefinedAttributes);
7097
7098   return offset;
7099 }
7100
7101
7102 static const ber_sequence_t UniversalDomainDefinedAttribute_sequence[] = {
7103   { &hf_p1_universal_type   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrBMPString },
7104   { &hf_p1_universal_value  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrBMPString },
7105   { NULL, 0, 0, 0, NULL }
7106 };
7107
7108 static int
7109 dissect_p1_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_) {
7110   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7111                                    UniversalDomainDefinedAttribute_sequence, hf_index, ett_p1_UniversalDomainDefinedAttribute);
7112
7113   return offset;
7114 }
7115
7116
7117 static const ber_sequence_t UniversalDomainDefinedAttributes_sequence_of[1] = {
7118   { &hf_p1_UniversalDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalDomainDefinedAttribute },
7119 };
7120
7121 static int
7122 dissect_p1_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_) {
7123   offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7124                                                   1, ub_domain_defined_attributes, UniversalDomainDefinedAttributes_sequence_of, hf_index, ett_p1_UniversalDomainDefinedAttributes);
7125
7126   return offset;
7127 }
7128
7129
7130
7131 static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
7132   { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
7133   { &hf_p1_mta_name         , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
7134   { NULL, 0, 0, 0, NULL }
7135 };
7136
7137 static int
7138 dissect_p1_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_) {
7139 #line 1072 "../../asn1/p1/p1.cnf"
7140
7141         set_do_address(actx, TRUE);
7142
7143           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7144                                    MTANameAndOptionalGDI_sequence, hf_index, ett_p1_MTANameAndOptionalGDI);
7145
7146
7147         set_do_address(actx, FALSE);
7148         proto_item_append_text(tree, ")");
7149
7150
7151
7152   return offset;
7153 }
7154
7155
7156 static const value_string p1_T_name_vals[] = {
7157   {   0, "recipient-name" },
7158   {   1, "mta" },
7159   { 0, NULL }
7160 };
7161
7162 static const ber_choice_t T_name_choice[] = {
7163   {   0, &hf_p1_token_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
7164   {   1, &hf_p1_token_mta        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_MTANameAndOptionalGDI },
7165   { 0, NULL, 0, 0, 0, NULL }
7166 };
7167
7168 static int
7169 dissect_p1_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_) {
7170   offset = dissect_ber_choice(actx, tree, tvb, offset,
7171                                  T_name_choice, hf_index, ett_p1_T_name,
7172                                  NULL);
7173
7174   return offset;
7175 }
7176
7177
7178 static const value_string p1_TokenDataType_vals[] = {
7179   {   1, "bind-token-signed-data" },
7180   {   2, "message-token-signed-data" },
7181   {   3, "message-token-encrypted-data" },
7182   {   4, "bind-token-encrypted-data" },
7183   { 0, NULL }
7184 };
7185
7186
7187 static int
7188 dissect_p1_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_) {
7189   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7190                                                 &actx->external.indirect_reference);
7191
7192   return offset;
7193 }
7194
7195
7196
7197 static int
7198 dissect_p1_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_) {
7199 #line 1174 "../../asn1/p1/p1.cnf"
7200
7201         proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %d"));
7202         if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
7203                 offset = tvb_length(tvb);
7204         } else {
7205                 proto_item *item = NULL;
7206                 proto_tree *next_tree = NULL;
7207
7208                 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
7209                         "Dissector for tokendata-type %d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
7210                 next_tree = proto_item_add_subtree(item, ett_p1_unknown_tokendata_type);
7211                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
7212                 expert_add_info(actx->pinfo, item, &ei_p1_unknown_tokendata_type);
7213         }
7214
7215
7216
7217   return offset;
7218 }
7219
7220
7221 static const ber_sequence_t TokenData_sequence[] = {
7222   { &hf_p1_token_data_type  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_TokenDataType },
7223   { &hf_p1_value            , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_T_value },
7224   { NULL, 0, 0, 0, NULL }
7225 };
7226
7227 static int
7228 dissect_p1_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_) {
7229   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7230                                    TokenData_sequence, hf_index, ett_p1_TokenData);
7231
7232   return offset;
7233 }
7234
7235
7236 static const ber_sequence_t AsymmetricTokenData_sequence[] = {
7237   { &hf_p1_signature_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7238   { &hf_p1_name             , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_name },
7239   { &hf_p1_time             , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
7240   { &hf_p1_signed_data      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TokenData },
7241   { &hf_p1_encryption_algorithm_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_AlgorithmIdentifier },
7242   { &hf_p1_encrypted_data   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
7243   { NULL, 0, 0, 0, NULL }
7244 };
7245
7246 static int
7247 dissect_p1_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_) {
7248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7249                                    AsymmetricTokenData_sequence, hf_index, ett_p1_AsymmetricTokenData);
7250
7251   return offset;
7252 }
7253
7254
7255 static const ber_sequence_t AsymmetricToken_sequence[] = {
7256   { &hf_p1_asymmetric_token_data, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_AsymmetricTokenData },
7257   { &hf_p1_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7258   { &hf_p1_encrypted        , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_BIT_STRING },
7259   { NULL, 0, 0, 0, NULL }
7260 };
7261
7262 static int
7263 dissect_p1_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_) {
7264   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7265                                    AsymmetricToken_sequence, hf_index, ett_p1_AsymmetricToken);
7266
7267   return offset;
7268 }
7269
7270
7271
7272 static int
7273 dissect_p1_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_) {
7274   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7275                                     NULL, hf_index, -1,
7276                                     NULL);
7277
7278   return offset;
7279 }
7280
7281
7282
7283 static int
7284 dissect_p1_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_) {
7285   offset = dissect_p1_RandomNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
7286
7287   return offset;
7288 }
7289
7290
7291
7292 static int
7293 dissect_p1_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_) {
7294   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7295                                                 NULL);
7296
7297   return offset;
7298 }
7299
7300
7301 static const ber_sequence_t MessageTokenSignedData_sequence[] = {
7302   { &hf_p1_content_confidentiality_algorithm_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentConfidentialityAlgorithmIdentifier },
7303   { &hf_p1_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIntegrityCheck },
7304   { &hf_p1_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageSecurityLabel },
7305   { &hf_p1_proof_of_delivery_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDeliveryRequest },
7306   { &hf_p1_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER },
7307   { NULL, 0, 0, 0, NULL }
7308 };
7309
7310 static int
7311 dissect_p1_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_) {
7312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7313                                    MessageTokenSignedData_sequence, hf_index, ett_p1_MessageTokenSignedData);
7314
7315   return offset;
7316 }
7317
7318
7319
7320 static int
7321 dissect_p1_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_) {
7322   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7323                                     NULL, hf_index, -1,
7324                                     NULL);
7325
7326   return offset;
7327 }
7328
7329
7330 static const ber_sequence_t MessageTokenEncryptedData_sequence[] = {
7331   { &hf_p1_content_confidentiality_key, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncryptionKey },
7332   { &hf_p1_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIntegrityCheck },
7333   { &hf_p1_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageSecurityLabel },
7334   { &hf_p1_content_integrity_key, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncryptionKey },
7335   { &hf_p1_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER },
7336   { NULL, 0, 0, 0, NULL }
7337 };
7338
7339 static int
7340 dissect_p1_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_) {
7341   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7342                                    MessageTokenEncryptedData_sequence, hf_index, ett_p1_MessageTokenEncryptedData);
7343
7344   return offset;
7345 }
7346
7347
7348
7349 static int
7350 dissect_p1_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_) {
7351   offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
7352
7353   return offset;
7354 }
7355
7356 /*--- PDUs ---*/
7357
7358 static void dissect_InternalTraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7359   asn1_ctx_t asn1_ctx;
7360   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7361   dissect_p1_InternalTraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_InternalTraceInformation_PDU);
7362 }
7363 static void dissect_InternalTraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7364   asn1_ctx_t asn1_ctx;
7365   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7366   dissect_p1_InternalTraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_InternalTraceInformationElement_PDU);
7367 }
7368 static void dissect_TraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7369   asn1_ctx_t asn1_ctx;
7370   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7371   dissect_p1_TraceInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TraceInformation_PDU);
7372 }
7373 static void dissect_TraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7374   asn1_ctx_t asn1_ctx;
7375   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7376   dissect_p1_TraceInformationElement(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TraceInformationElement_PDU);
7377 }
7378 static int dissect_MTSBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7379   int offset = 0;
7380   asn1_ctx_t asn1_ctx;
7381   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7382   offset = dissect_p1_MTSBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MTSBindArgument_PDU);
7383   return offset;
7384 }
7385 static int dissect_MTSBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7386   int offset = 0;
7387   asn1_ctx_t asn1_ctx;
7388   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7389   offset = dissect_p1_MTSBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MTSBindResult_PDU);
7390   return offset;
7391 }
7392 static int dissect_PAR_mts_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7393   int offset = 0;
7394   asn1_ctx_t asn1_ctx;
7395   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7396   offset = dissect_p1_PAR_mts_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_mts_bind_error_PDU);
7397   return offset;
7398 }
7399 static int dissect_MessageSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7400   int offset = 0;
7401   asn1_ctx_t asn1_ctx;
7402   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7403   offset = dissect_p1_MessageSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionArgument_PDU);
7404   return offset;
7405 }
7406 static int dissect_MessageSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7407   int offset = 0;
7408   asn1_ctx_t asn1_ctx;
7409   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7410   offset = dissect_p1_MessageSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionResult_PDU);
7411   return offset;
7412 }
7413 static int dissect_ProbeSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7414   int offset = 0;
7415   asn1_ctx_t asn1_ctx;
7416   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7417   offset = dissect_p1_ProbeSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeSubmissionArgument_PDU);
7418   return offset;
7419 }
7420 static int dissect_ProbeSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7421   int offset = 0;
7422   asn1_ctx_t asn1_ctx;
7423   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7424   offset = dissect_p1_ProbeSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeSubmissionResult_PDU);
7425   return offset;
7426 }
7427 static int dissect_CancelDeferredDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7428   int offset = 0;
7429   asn1_ctx_t asn1_ctx;
7430   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7431   offset = dissect_p1_CancelDeferredDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_CancelDeferredDeliveryArgument_PDU);
7432   return offset;
7433 }
7434 static int dissect_CancelDeferredDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7435   int offset = 0;
7436   asn1_ctx_t asn1_ctx;
7437   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7438   offset = dissect_p1_CancelDeferredDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_CancelDeferredDeliveryResult_PDU);
7439   return offset;
7440 }
7441 static int dissect_SubmissionControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7442   int offset = 0;
7443   asn1_ctx_t asn1_ctx;
7444   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7445   offset = dissect_p1_SubmissionControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_SubmissionControlArgument_PDU);
7446   return offset;
7447 }
7448 static int dissect_SubmissionControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7449   int offset = 0;
7450   asn1_ctx_t asn1_ctx;
7451   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7452   offset = dissect_p1_SubmissionControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_SubmissionControlResult_PDU);
7453   return offset;
7454 }
7455 static int dissect_PAR_submission_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7456   int offset = 0;
7457   asn1_ctx_t asn1_ctx;
7458   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7459   offset = dissect_p1_PAR_submission_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_submission_control_violated_PDU);
7460   return offset;
7461 }
7462 static int dissect_PAR_element_of_service_not_subscribed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7463   int offset = 0;
7464   asn1_ctx_t asn1_ctx;
7465   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7466   offset = dissect_p1_PAR_element_of_service_not_subscribed(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_element_of_service_not_subscribed_PDU);
7467   return offset;
7468 }
7469 static int dissect_PAR_deferred_delivery_cancellation_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7470   int offset = 0;
7471   asn1_ctx_t asn1_ctx;
7472   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7473   offset = dissect_p1_PAR_deferred_delivery_cancellation_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU);
7474   return offset;
7475 }
7476 static int dissect_PAR_originator_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7477   int offset = 0;
7478   asn1_ctx_t asn1_ctx;
7479   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7480   offset = dissect_p1_PAR_originator_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_originator_invalid_PDU);
7481   return offset;
7482 }
7483 static int dissect_ImproperlySpecifiedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7484   int offset = 0;
7485   asn1_ctx_t asn1_ctx;
7486   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7487   offset = dissect_p1_ImproperlySpecifiedRecipients(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ImproperlySpecifiedRecipients_PDU);
7488   return offset;
7489 }
7490 static int dissect_PAR_message_submission_identifier_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7491   int offset = 0;
7492   asn1_ctx_t asn1_ctx;
7493   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7494   offset = dissect_p1_PAR_message_submission_identifier_invalid(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_message_submission_identifier_invalid_PDU);
7495   return offset;
7496 }
7497 static int dissect_PAR_inconsistent_request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7498   int offset = 0;
7499   asn1_ctx_t asn1_ctx;
7500   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7501   offset = dissect_p1_PAR_inconsistent_request(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_inconsistent_request_PDU);
7502   return offset;
7503 }
7504 static int dissect_SecurityProblem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7505   int offset = 0;
7506   asn1_ctx_t asn1_ctx;
7507   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7508   offset = dissect_p1_SecurityProblem(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_SecurityProblem_PDU);
7509   return offset;
7510 }
7511 static int dissect_PAR_unsupported_critical_function_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7512   int offset = 0;
7513   asn1_ctx_t asn1_ctx;
7514   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7515   offset = dissect_p1_PAR_unsupported_critical_function(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_unsupported_critical_function_PDU);
7516   return offset;
7517 }
7518 static int dissect_PAR_remote_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7519   int offset = 0;
7520   asn1_ctx_t asn1_ctx;
7521   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7522   offset = dissect_p1_PAR_remote_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_remote_bind_error_PDU);
7523   return offset;
7524 }
7525 static void dissect_MessageSubmissionTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7526   asn1_ctx_t asn1_ctx;
7527   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7528   dissect_p1_MessageSubmissionTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageSubmissionTime_PDU);
7529 }
7530 static int dissect_MessageDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7531   int offset = 0;
7532   asn1_ctx_t asn1_ctx;
7533   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7534   offset = dissect_p1_MessageDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryArgument_PDU);
7535   return offset;
7536 }
7537 static int dissect_MessageDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7538   int offset = 0;
7539   asn1_ctx_t asn1_ctx;
7540   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7541   offset = dissect_p1_MessageDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryResult_PDU);
7542   return offset;
7543 }
7544 static int dissect_ReportDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7545   int offset = 0;
7546   asn1_ctx_t asn1_ctx;
7547   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7548   offset = dissect_p1_ReportDeliveryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ReportDeliveryArgument_PDU);
7549   return offset;
7550 }
7551 static int dissect_ReportDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7552   int offset = 0;
7553   asn1_ctx_t asn1_ctx;
7554   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7555   offset = dissect_p1_ReportDeliveryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ReportDeliveryResult_PDU);
7556   return offset;
7557 }
7558 static int dissect_DeliveryControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7559   int offset = 0;
7560   asn1_ctx_t asn1_ctx;
7561   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7562   offset = dissect_p1_DeliveryControlArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_DeliveryControlArgument_PDU);
7563   return offset;
7564 }
7565 static int dissect_DeliveryControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7566   int offset = 0;
7567   asn1_ctx_t asn1_ctx;
7568   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7569   offset = dissect_p1_DeliveryControlResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_DeliveryControlResult_PDU);
7570   return offset;
7571 }
7572 static int dissect_PAR_delivery_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7573   int offset = 0;
7574   asn1_ctx_t asn1_ctx;
7575   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7576   offset = dissect_p1_PAR_delivery_control_violated(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_delivery_control_violated_PDU);
7577   return offset;
7578 }
7579 static int dissect_PAR_control_violates_registration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7580   int offset = 0;
7581   asn1_ctx_t asn1_ctx;
7582   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7583   offset = dissect_p1_PAR_control_violates_registration(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_control_violates_registration_PDU);
7584   return offset;
7585 }
7586 static int dissect_RefusedOperation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7587   int offset = 0;
7588   asn1_ctx_t asn1_ctx;
7589   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7590   offset = dissect_p1_RefusedOperation(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_RefusedOperation_PDU);
7591   return offset;
7592 }
7593 static void dissect_RecipientCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7594   asn1_ctx_t asn1_ctx;
7595   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7596   dissect_p1_RecipientCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RecipientCertificate_PDU);
7597 }
7598 static void dissect_ProofOfDelivery_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7599   asn1_ctx_t asn1_ctx;
7600   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7601   dissect_p1_ProofOfDelivery(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProofOfDelivery_PDU);
7602 }
7603 static int dissect_RegisterArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7604   int offset = 0;
7605   asn1_ctx_t asn1_ctx;
7606   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7607   offset = dissect_p1_RegisterArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_RegisterArgument_PDU);
7608   return offset;
7609 }
7610 static int dissect_RegisterResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7611   int offset = 0;
7612   asn1_ctx_t asn1_ctx;
7613   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7614   offset = dissect_p1_RegisterResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_RegisterResult_PDU);
7615   return offset;
7616 }
7617 static int dissect_ChangeCredentialsArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7618   int offset = 0;
7619   asn1_ctx_t asn1_ctx;
7620   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7621   offset = dissect_p1_ChangeCredentialsArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_ChangeCredentialsArgument_PDU);
7622   return offset;
7623 }
7624 static int dissect_RES_change_credentials_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7625   int offset = 0;
7626   asn1_ctx_t asn1_ctx;
7627   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7628   offset = dissect_p1_RES_change_credentials(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_RES_change_credentials_PDU);
7629   return offset;
7630 }
7631 static int dissect_PAR_register_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7632   int offset = 0;
7633   asn1_ctx_t asn1_ctx;
7634   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7635   offset = dissect_p1_PAR_register_rejected(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_register_rejected_PDU);
7636   return offset;
7637 }
7638 static int dissect_PAR_new_credentials_unacceptable_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7639   int offset = 0;
7640   asn1_ctx_t asn1_ctx;
7641   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7642   offset = dissect_p1_PAR_new_credentials_unacceptable(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_new_credentials_unacceptable_PDU);
7643   return offset;
7644 }
7645 static int dissect_PAR_old_credentials_incorrectly_specified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7646   int offset = 0;
7647   asn1_ctx_t asn1_ctx;
7648   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7649   offset = dissect_p1_PAR_old_credentials_incorrectly_specified(FALSE, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_old_credentials_incorrectly_specified_PDU);
7650   return offset;
7651 }
7652 static void dissect_MessageSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7653   asn1_ctx_t asn1_ctx;
7654   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7655   dissect_p1_MessageSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageSubmissionEnvelope_PDU);
7656 }
7657 static void dissect_PerRecipientMessageSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7658   asn1_ctx_t asn1_ctx;
7659   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7660   dissect_p1_PerRecipientMessageSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PerRecipientMessageSubmissionFields_PDU);
7661 }
7662 static void dissect_ProbeSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7663   asn1_ctx_t asn1_ctx;
7664   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7665   dissect_p1_ProbeSubmissionEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProbeSubmissionEnvelope_PDU);
7666 }
7667 static void dissect_PerRecipientProbeSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7668   asn1_ctx_t asn1_ctx;
7669   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7670   dissect_p1_PerRecipientProbeSubmissionFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PerRecipientProbeSubmissionFields_PDU);
7671 }
7672 static void dissect_MessageDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7673   asn1_ctx_t asn1_ctx;
7674   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7675   dissect_p1_MessageDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageDeliveryEnvelope_PDU);
7676 }
7677 static void dissect_ReportDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7678   asn1_ctx_t asn1_ctx;
7679   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7680   dissect_p1_ReportDeliveryEnvelope(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ReportDeliveryEnvelope_PDU);
7681 }
7682 static void dissect_PerRecipientReportDeliveryFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7683   asn1_ctx_t asn1_ctx;
7684   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7685   dissect_p1_PerRecipientReportDeliveryFields(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PerRecipientReportDeliveryFields_PDU);
7686 }
7687 static void dissect_ExtendedContentType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7688   asn1_ctx_t asn1_ctx;
7689   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7690   dissect_p1_ExtendedContentType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtendedContentType_PDU);
7691 }
7692 static void dissect_ContentIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7693   asn1_ctx_t asn1_ctx;
7694   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7695   dissect_p1_ContentIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ContentIdentifier_PDU);
7696 }
7697 static void dissect_PerMessageIndicators_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7698   asn1_ctx_t asn1_ctx;
7699   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7700   dissect_p1_PerMessageIndicators(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PerMessageIndicators_PDU);
7701 }
7702 static void dissect_OriginatorReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7703   asn1_ctx_t asn1_ctx;
7704   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7705   dissect_p1_OriginatorReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatorReportRequest_PDU);
7706 }
7707 static void dissect_DeferredDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7708   asn1_ctx_t asn1_ctx;
7709   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7710   dissect_p1_DeferredDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DeferredDeliveryTime_PDU);
7711 }
7712 static void dissect_Priority_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7713   asn1_ctx_t asn1_ctx;
7714   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7715   dissect_p1_Priority(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_Priority_PDU);
7716 }
7717 static void dissect_ContentLength_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7718   asn1_ctx_t asn1_ctx;
7719   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7720   dissect_p1_ContentLength(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ContentLength_PDU);
7721 }
7722 static void dissect_MessageDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7723   asn1_ctx_t asn1_ctx;
7724   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7725   dissect_p1_MessageDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageDeliveryTime_PDU);
7726 }
7727 static void dissect_DeliveryFlags_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7728   asn1_ctx_t asn1_ctx;
7729   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7730   dissect_p1_DeliveryFlags(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DeliveryFlags_PDU);
7731 }
7732 static void dissect_SubjectSubmissionIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7733   asn1_ctx_t asn1_ctx;
7734   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7735   dissect_p1_SubjectSubmissionIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_SubjectSubmissionIdentifier_PDU);
7736 }
7737 static void dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7738   asn1_ctx_t asn1_ctx;
7739   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7740   dissect_p1_RecipientReassignmentProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RecipientReassignmentProhibited_PDU);
7741 }
7742 static void dissect_OriginatorRequestedAlternateRecipient_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7743   asn1_ctx_t asn1_ctx;
7744   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7745   dissect_p1_OriginatorRequestedAlternateRecipient(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatorRequestedAlternateRecipient_PDU);
7746 }
7747 static void dissect_DLExpansionProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7748   asn1_ctx_t asn1_ctx;
7749   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7750   dissect_p1_DLExpansionProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DLExpansionProhibited_PDU);
7751 }
7752 static void dissect_ConversionWithLossProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7753   asn1_ctx_t asn1_ctx;
7754   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7755   dissect_p1_ConversionWithLossProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ConversionWithLossProhibited_PDU);
7756 }
7757 static void dissect_LatestDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7758   asn1_ctx_t asn1_ctx;
7759   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7760   dissect_p1_LatestDeliveryTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_LatestDeliveryTime_PDU);
7761 }
7762 static void dissect_RequestedDeliveryMethod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7763   asn1_ctx_t asn1_ctx;
7764   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7765   dissect_p1_RequestedDeliveryMethod(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RequestedDeliveryMethod_PDU);
7766 }
7767 static void dissect_PhysicalForwardingProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7768   asn1_ctx_t asn1_ctx;
7769   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7770   dissect_p1_PhysicalForwardingProhibited(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalForwardingProhibited_PDU);
7771 }
7772 static void dissect_PhysicalForwardingAddressRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7773   asn1_ctx_t asn1_ctx;
7774   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7775   dissect_p1_PhysicalForwardingAddressRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalForwardingAddressRequest_PDU);
7776 }
7777 static void dissect_PhysicalDeliveryModes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7778   asn1_ctx_t asn1_ctx;
7779   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7780   dissect_p1_PhysicalDeliveryModes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryModes_PDU);
7781 }
7782 static void dissect_RegisteredMailType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7783   asn1_ctx_t asn1_ctx;
7784   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7785   dissect_p1_RegisteredMailType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RegisteredMailType_PDU);
7786 }
7787 static void dissect_RecipientNumberForAdvice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7788   asn1_ctx_t asn1_ctx;
7789   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7790   dissect_p1_RecipientNumberForAdvice(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RecipientNumberForAdvice_PDU);
7791 }
7792 static void dissect_PhysicalRenditionAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7793   asn1_ctx_t asn1_ctx;
7794   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7795   dissect_p1_PhysicalRenditionAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalRenditionAttributes_PDU);
7796 }
7797 static void dissect_OriginatorReturnAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7798   asn1_ctx_t asn1_ctx;
7799   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7800   dissect_p1_OriginatorReturnAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatorReturnAddress_PDU);
7801 }
7802 static void dissect_PhysicalDeliveryReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7803   asn1_ctx_t asn1_ctx;
7804   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7805   dissect_p1_PhysicalDeliveryReportRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryReportRequest_PDU);
7806 }
7807 static void dissect_OriginatorCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7808   asn1_ctx_t asn1_ctx;
7809   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7810   dissect_p1_OriginatorCertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatorCertificate_PDU);
7811 }
7812 static void dissect_MessageToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7813   asn1_ctx_t asn1_ctx;
7814   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7815   dissect_p1_MessageToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageToken_PDU);
7816 }
7817 static void dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7818   asn1_ctx_t asn1_ctx;
7819   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7820   dissect_p1_ContentConfidentialityAlgorithmIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU);
7821 }
7822 static void dissect_ContentIntegrityCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7823   asn1_ctx_t asn1_ctx;
7824   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7825   dissect_p1_ContentIntegrityCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ContentIntegrityCheck_PDU);
7826 }
7827 static void dissect_MessageOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7828   asn1_ctx_t asn1_ctx;
7829   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7830   dissect_p1_MessageOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageOriginAuthenticationCheck_PDU);
7831 }
7832 void dissect_p1_MessageSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7833   asn1_ctx_t asn1_ctx;
7834   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7835   dissect_p1_MessageSecurityLabel(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_p1_MessageSecurityLabel_PDU);
7836 }
7837 static void dissect_ProofOfSubmissionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7838   asn1_ctx_t asn1_ctx;
7839   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7840   dissect_p1_ProofOfSubmissionRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProofOfSubmissionRequest_PDU);
7841 }
7842 static void dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7843   asn1_ctx_t asn1_ctx;
7844   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7845   dissect_p1_ProofOfDeliveryRequest(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProofOfDeliveryRequest_PDU);
7846 }
7847 static void dissect_ContentCorrelator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7848   asn1_ctx_t asn1_ctx;
7849   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7850   dissect_p1_ContentCorrelator(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ContentCorrelator_PDU);
7851 }
7852 static void dissect_ProbeOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7853   asn1_ctx_t asn1_ctx;
7854   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7855   dissect_p1_ProbeOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProbeOriginAuthenticationCheck_PDU);
7856 }
7857 static void dissect_RedirectionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7858   asn1_ctx_t asn1_ctx;
7859   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7860   dissect_p1_RedirectionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_RedirectionHistory_PDU);
7861 }
7862 static void dissect_Redirection_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7863   asn1_ctx_t asn1_ctx;
7864   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7865   dissect_p1_Redirection(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_Redirection_PDU);
7866 }
7867 static void dissect_DLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7868   asn1_ctx_t asn1_ctx;
7869   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7870   dissect_p1_DLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DLExpansionHistory_PDU);
7871 }
7872 static void dissect_DLExpansion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7873   asn1_ctx_t asn1_ctx;
7874   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7875   dissect_p1_DLExpansion(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DLExpansion_PDU);
7876 }
7877 static void dissect_PhysicalForwardingAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7878   asn1_ctx_t asn1_ctx;
7879   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7880   dissect_p1_PhysicalForwardingAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalForwardingAddress_PDU);
7881 }
7882 static void dissect_OriginatorAndDLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7883   asn1_ctx_t asn1_ctx;
7884   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7885   dissect_p1_OriginatorAndDLExpansionHistory(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatorAndDLExpansionHistory_PDU);
7886 }
7887 static void dissect_ReportingDLName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7888   asn1_ctx_t asn1_ctx;
7889   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7890   dissect_p1_ReportingDLName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ReportingDLName_PDU);
7891 }
7892 static void dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7893   asn1_ctx_t asn1_ctx;
7894   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7895   dissect_p1_ReportingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ReportingMTACertificate_PDU);
7896 }
7897 static void dissect_ReportOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7898   asn1_ctx_t asn1_ctx;
7899   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7900   dissect_p1_ReportOriginAuthenticationCheck(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ReportOriginAuthenticationCheck_PDU);
7901 }
7902 static void dissect_OriginatingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7903   asn1_ctx_t asn1_ctx;
7904   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7905   dissect_p1_OriginatingMTACertificate(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_OriginatingMTACertificate_PDU);
7906 }
7907 static void dissect_ProofOfSubmission_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7908   asn1_ctx_t asn1_ctx;
7909   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7910   dissect_p1_ProofOfSubmission(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ProofOfSubmission_PDU);
7911 }
7912 static void dissect_ReportingMTAName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7913   asn1_ctx_t asn1_ctx;
7914   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7915   dissect_p1_ReportingMTAName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ReportingMTAName_PDU);
7916 }
7917 static void dissect_ExtendedCertificates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7918   asn1_ctx_t asn1_ctx;
7919   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7920   dissect_p1_ExtendedCertificates(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtendedCertificates_PDU);
7921 }
7922 static void dissect_DLExemptedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7923   asn1_ctx_t asn1_ctx;
7924   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7925   dissect_p1_DLExemptedRecipients(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_DLExemptedRecipients_PDU);
7926 }
7927 static void dissect_CertificateSelectors_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7928   asn1_ctx_t asn1_ctx;
7929   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7930   dissect_p1_CertificateSelectors(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_CertificateSelectors_PDU);
7931 }
7932 static void dissect_Content_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7933   asn1_ctx_t asn1_ctx;
7934   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7935   dissect_p1_Content(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_Content_PDU);
7936 }
7937 static void dissect_MTSIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7938   asn1_ctx_t asn1_ctx;
7939   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7940   dissect_p1_MTSIdentifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MTSIdentifier_PDU);
7941 }
7942 static void dissect_ORName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7943   asn1_ctx_t asn1_ctx;
7944   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7945   dissect_p1_ORName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ORName_PDU);
7946 }
7947 static void dissect_ORAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7948   asn1_ctx_t asn1_ctx;
7949   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7950   dissect_p1_ORAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ORAddress_PDU);
7951 }
7952 static void dissect_CommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7953   asn1_ctx_t asn1_ctx;
7954   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7955   dissect_p1_CommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_CommonName_PDU);
7956 }
7957 static void dissect_TeletexCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7958   asn1_ctx_t asn1_ctx;
7959   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7960   dissect_p1_TeletexCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TeletexCommonName_PDU);
7961 }
7962 static void dissect_UniversalCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7963   asn1_ctx_t asn1_ctx;
7964   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7965   dissect_p1_UniversalCommonName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalCommonName_PDU);
7966 }
7967 static void dissect_TeletexOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7968   asn1_ctx_t asn1_ctx;
7969   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7970   dissect_p1_TeletexOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TeletexOrganizationName_PDU);
7971 }
7972 static void dissect_UniversalOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7973   asn1_ctx_t asn1_ctx;
7974   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7975   dissect_p1_UniversalOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalOrganizationName_PDU);
7976 }
7977 static void dissect_TeletexPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7978   asn1_ctx_t asn1_ctx;
7979   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7980   dissect_p1_TeletexPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TeletexPersonalName_PDU);
7981 }
7982 static void dissect_UniversalPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7983   asn1_ctx_t asn1_ctx;
7984   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7985   dissect_p1_UniversalPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPersonalName_PDU);
7986 }
7987 static void dissect_TeletexOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7988   asn1_ctx_t asn1_ctx;
7989   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7990   dissect_p1_TeletexOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TeletexOrganizationalUnitNames_PDU);
7991 }
7992 static void dissect_UniversalOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7993   asn1_ctx_t asn1_ctx;
7994   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7995   dissect_p1_UniversalOrganizationalUnitNames(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalOrganizationalUnitNames_PDU);
7996 }
7997 static void dissect_PDSName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7998   asn1_ctx_t asn1_ctx;
7999   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8000   dissect_p1_PDSName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PDSName_PDU);
8001 }
8002 static void dissect_PhysicalDeliveryCountryName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8003   asn1_ctx_t asn1_ctx;
8004   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8005   dissect_p1_PhysicalDeliveryCountryName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryCountryName_PDU);
8006 }
8007 static void dissect_PostalCode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
8008   asn1_ctx_t asn1_ctx;
8009   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8010   dissect_p1_PostalCode(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PostalCode_PDU);
8011 }
8012 static void dissect_PhysicalDeliveryOfficeName_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_p1_PhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOfficeName_PDU);
8016 }
8017 static void dissect_UniversalPhysicalDeliveryOfficeName_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_p1_UniversalPhysicalDeliveryOfficeName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOfficeName_PDU);
8021 }
8022 static void dissect_PhysicalDeliveryOfficeNumber_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_p1_PhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOfficeNumber_PDU);
8026 }
8027 static void dissect_UniversalPhysicalDeliveryOfficeNumber_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_p1_UniversalPhysicalDeliveryOfficeNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU);
8031 }
8032 static void dissect_ExtensionORAddressComponents_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_p1_ExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtensionORAddressComponents_PDU);
8036 }
8037 static void dissect_UniversalExtensionORAddressComponents_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_p1_UniversalExtensionORAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalExtensionORAddressComponents_PDU);
8041 }
8042 static void dissect_PhysicalDeliveryPersonalName_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_p1_PhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryPersonalName_PDU);
8046 }
8047 static void dissect_UniversalPhysicalDeliveryPersonalName_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_p1_UniversalPhysicalDeliveryPersonalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryPersonalName_PDU);
8051 }
8052 static void dissect_PhysicalDeliveryOrganizationName_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_p1_PhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOrganizationName_PDU);
8056 }
8057 static void dissect_UniversalPhysicalDeliveryOrganizationName_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_p1_UniversalPhysicalDeliveryOrganizationName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU);
8061 }
8062 static void dissect_ExtensionPhysicalDeliveryAddressComponents_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_p1_ExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU);
8066 }
8067 static void dissect_UniversalExtensionPhysicalDeliveryAddressComponents_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_p1_UniversalExtensionPhysicalDeliveryAddressComponents(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU);
8071 }
8072 static void dissect_UnformattedPostalAddress_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_p1_UnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UnformattedPostalAddress_PDU);
8076 }
8077 static void dissect_UniversalUnformattedPostalAddress_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_p1_UniversalUnformattedPostalAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalUnformattedPostalAddress_PDU);
8081 }
8082 static void dissect_StreetAddress_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_p1_StreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_StreetAddress_PDU);
8086 }
8087 static void dissect_UniversalStreetAddress_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_p1_UniversalStreetAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalStreetAddress_PDU);
8091 }
8092 static void dissect_PostOfficeBoxAddress_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_p1_PostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PostOfficeBoxAddress_PDU);
8096 }
8097 static void dissect_UniversalPostOfficeBoxAddress_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_p1_UniversalPostOfficeBoxAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPostOfficeBoxAddress_PDU);
8101 }
8102 static void dissect_PosteRestanteAddress_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_p1_PosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_PosteRestanteAddress_PDU);
8106 }
8107 static void dissect_UniversalPosteRestanteAddress_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_p1_UniversalPosteRestanteAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalPosteRestanteAddress_PDU);
8111 }
8112 static void dissect_UniquePostalName_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_p1_UniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniquePostalName_PDU);
8116 }
8117 static void dissect_UniversalUniquePostalName_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_p1_UniversalUniquePostalName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalUniquePostalName_PDU);
8121 }
8122 static void dissect_LocalPostalAttributes_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_p1_LocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_LocalPostalAttributes_PDU);
8126 }
8127 static void dissect_UniversalLocalPostalAttributes_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_p1_UniversalLocalPostalAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalLocalPostalAttributes_PDU);
8131 }
8132 static void dissect_ExtendedNetworkAddress_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_p1_ExtendedNetworkAddress(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtendedNetworkAddress_PDU);
8136 }
8137 static void dissect_TerminalType_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_p1_TerminalType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TerminalType_PDU);
8141 }
8142 static void dissect_TeletexDomainDefinedAttributes_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_p1_TeletexDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_TeletexDomainDefinedAttributes_PDU);
8146 }
8147 static void dissect_UniversalDomainDefinedAttributes_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_p1_UniversalDomainDefinedAttributes(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_UniversalDomainDefinedAttributes_PDU);
8151 }
8152 static void dissect_ExtendedEncodedInformationType_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_p1_ExtendedEncodedInformationType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_ExtendedEncodedInformationType_PDU);
8156 }
8157 static void dissect_MTANameAndOptionalGDI_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_p1_MTANameAndOptionalGDI(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MTANameAndOptionalGDI_PDU);
8161 }
8162 static void dissect_AsymmetricToken_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_p1_AsymmetricToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_AsymmetricToken_PDU);
8166 }
8167 static void dissect_BindTokenSignedData_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_p1_BindTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_BindTokenSignedData_PDU);
8171 }
8172 static void dissect_MessageTokenSignedData_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_p1_MessageTokenSignedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageTokenSignedData_PDU);
8176 }
8177 static void dissect_MessageTokenEncryptedData_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_p1_MessageTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MessageTokenEncryptedData_PDU);
8181 }
8182 static void dissect_BindTokenEncryptedData_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_p1_BindTokenEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_BindTokenEncryptedData_PDU);
8186 }
8187 static void dissect_SecurityClassification_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_p1_SecurityClassification(FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_SecurityClassification_PDU);
8191 }
8192
8193
8194 /*--- End of included file: packet-p1-fn.c ---*/
8195 #line 149 "../../asn1/p1/packet-p1-template.c"
8196
8197
8198 /*--- Included file: packet-p1-table11.c ---*/
8199 #line 1 "../../asn1/p1/packet-p1-table11.c"
8200
8201 static const ros_opr_t p3_opr_tab[] = {
8202   /* mts-bind */
8203   { op_ros_bind              ,  dissect_MTSBindArgument_PDU,    dissect_MTSBindResult_PDU },
8204   /* message-submission */
8205   { op_message_submission    ,  dissect_MessageSubmissionArgument_PDU,  dissect_MessageSubmissionResult_PDU },
8206   /* probe-submission */
8207   { op_probe_submission      ,  dissect_ProbeSubmissionArgument_PDU,    dissect_ProbeSubmissionResult_PDU },
8208   /* cancel-deferred-delivery */
8209   { op_cancel_deferred_delivery,        dissect_CancelDeferredDeliveryArgument_PDU,     dissect_CancelDeferredDeliveryResult_PDU },
8210   /* submission-control */
8211   { op_submission_control    ,  dissect_SubmissionControlArgument_PDU,  dissect_SubmissionControlResult_PDU },
8212   /* message-delivery */
8213   { op_message_delivery      ,  dissect_MessageDeliveryArgument_PDU,    dissect_MessageDeliveryResult_PDU },
8214   /* report-delivery */
8215   { op_report_delivery       ,  dissect_ReportDeliveryArgument_PDU,     dissect_ReportDeliveryResult_PDU },
8216   /* delivery-control */
8217   { op_delivery_control      ,  dissect_DeliveryControlArgument_PDU,    dissect_DeliveryControlResult_PDU },
8218   /* register */
8219   { op_register              ,  dissect_RegisterArgument_PDU,   dissect_RegisterResult_PDU },
8220   /* change-credentials */
8221   { op_change_credentials    ,  dissect_ChangeCredentialsArgument_PDU,  dissect_RES_change_credentials_PDU },
8222   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
8223 };
8224
8225
8226 /*--- End of included file: packet-p1-table11.c ---*/
8227 #line 151 "../../asn1/p1/packet-p1-template.c"
8228
8229 /*--- Included file: packet-p1-table21.c ---*/
8230 #line 1 "../../asn1/p1/packet-p1-table21.c"
8231
8232 static const ros_err_t p3_err_tab[] = {
8233   /* mts-bind-error*/
8234   { err_ros_bind,       dissect_PAR_mts_bind_error_PDU },
8235   /* submission-control-violated*/
8236   { err_submission_control_violated,    dissect_PAR_submission_control_violated_PDU },
8237   /* element-of-service-not-subscribed*/
8238   { err_element_of_service_not_subscribed,      dissect_PAR_element_of_service_not_subscribed_PDU },
8239   /* deferred-delivery-cancellation-rejected*/
8240   { err_deferred_delivery_cancellation_rejected,        dissect_PAR_deferred_delivery_cancellation_rejected_PDU },
8241   /* originator-invalid*/
8242   { err_originator_invalid,     dissect_PAR_originator_invalid_PDU },
8243   /* recipient-improperly-specified*/
8244   { err_recipient_improperly_specified, dissect_ImproperlySpecifiedRecipients_PDU },
8245   /* message-submission-identifier-invalid*/
8246   { err_message_submission_identifier_invalid,  dissect_PAR_message_submission_identifier_invalid_PDU },
8247   /* inconsistent-request*/
8248   { err_inconsistent_request,   dissect_PAR_inconsistent_request_PDU },
8249   /* security-error*/
8250   { err_security_error, dissect_SecurityProblem_PDU },
8251   /* unsupported-critical-function*/
8252   { err_unsupported_critical_function,  dissect_PAR_unsupported_critical_function_PDU },
8253   /* remote-bind-error*/
8254   { err_remote_bind_error,      dissect_PAR_remote_bind_error_PDU },
8255   /* delivery-control-violated*/
8256   { err_delivery_control_violated,      dissect_PAR_delivery_control_violated_PDU },
8257   /* control-violates-registration*/
8258   { err_control_violates_registration,  dissect_PAR_control_violates_registration_PDU },
8259   /* operation-refused*/
8260   { err_operation_refused,      dissect_RefusedOperation_PDU },
8261   /* register-rejected*/
8262   { err_register_rejected,      dissect_PAR_register_rejected_PDU },
8263   /* new-credentials-unacceptable*/
8264   { err_new_credentials_unacceptable,   dissect_PAR_new_credentials_unacceptable_PDU },
8265   /* old-credentials-incorrectly-specified*/
8266   { err_old_credentials_incorrectly_specified,  dissect_PAR_old_credentials_incorrectly_specified_PDU },
8267   { 0,  (new_dissector_t)(-1) },
8268 };
8269
8270
8271 /*--- End of included file: packet-p1-table21.c ---*/
8272 #line 152 "../../asn1/p1/packet-p1-template.c"
8273
8274 static const ros_info_t p3_ros_info = {
8275   "P3",
8276   &proto_p3,
8277   &ett_p3,
8278   p3_opr_code_string_vals,
8279   p3_opr_tab,
8280   p3_err_code_string_vals,
8281   p3_err_tab
8282 };
8283
8284 void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type)
8285 {
8286         p1_address_ctx_t* ctx;
8287
8288         if (actx->subtree.tree_ctx == NULL) {
8289                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
8290         }
8291
8292         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
8293
8294         actx->subtree.top_tree = tree;
8295         actx->external.direct_reference = NULL;
8296         ctx->content_type_id = NULL;
8297         ctx->report_unknown_content_type = report_unknown_cont_type;
8298 }
8299
8300 const char* p1_get_last_oraddress (asn1_ctx_t* actx)
8301 {
8302         p1_address_ctx_t* ctx;
8303
8304         if ((actx == NULL) || (actx->subtree.tree_ctx == NULL))
8305                 return "";
8306
8307         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
8308         if (wmem_strbuf_get_len(ctx->oraddress) <= 0)
8309                 return "";
8310
8311         return wmem_strbuf_get_str(ctx->oraddress);
8312 }
8313
8314 /*
8315  * Dissect P1 MTS APDU
8316  */
8317 void
8318 dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8319 {
8320         proto_item *item=NULL;
8321         proto_tree *tree=NULL;
8322         asn1_ctx_t asn1_ctx;
8323         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8324
8325         /* save parent_tree so subdissectors can create new top nodes */
8326         p1_initialize_content_globals (&asn1_ctx, parent_tree, TRUE);
8327
8328         if(parent_tree){
8329                 item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
8330                 tree = proto_item_add_subtree(item, ett_p1);
8331         }
8332
8333         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8334         col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
8335
8336         dissect_p1_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MTS_APDU_PDU);
8337         p1_initialize_content_globals (&asn1_ctx, NULL, FALSE);
8338 }
8339
8340 /*
8341 * Dissect P1 PDUs inside a PPDU.
8342 */
8343 static int
8344 dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
8345 {
8346         int offset = 0;
8347         int old_offset;
8348         proto_item *item;
8349         proto_tree *tree;
8350         struct SESSION_DATA_STRUCTURE* session;
8351         int (*p1_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
8352         const char *p1_op_name;
8353         int hf_p1_index = -1;
8354         asn1_ctx_t asn1_ctx;
8355         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8356
8357         /* do we have operation information from the ROS dissector? */
8358         if (data == NULL)
8359                 return 0;
8360         session  = (struct SESSION_DATA_STRUCTURE*)data;
8361
8362         /* save parent_tree so subdissectors can create new top nodes */
8363         p1_initialize_content_globals (&asn1_ctx, parent_tree, TRUE);
8364
8365         asn1_ctx.private_data = session;
8366
8367         item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
8368         tree = proto_item_add_subtree(item, ett_p1);
8369
8370         col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8371         col_clear(pinfo->cinfo, COL_INFO);
8372
8373         switch(session->ros_op & ROS_OP_MASK) {
8374         case (ROS_OP_BIND | ROS_OP_ARGUMENT):   /*  BindInvoke */
8375           p1_dissector = dissect_p1_MTABindArgument;
8376           p1_op_name = "Bind-Argument";
8377           hf_p1_index = hf_p1_MTABindArgument_PDU;
8378           break;
8379         case (ROS_OP_BIND | ROS_OP_RESULT):     /*  BindResult */
8380           p1_dissector = dissect_p1_MTABindResult;
8381           p1_op_name = "Bind-Result";
8382           hf_p1_index = hf_p1_MTABindResult_PDU;
8383           break;
8384         case (ROS_OP_BIND | ROS_OP_ERROR):      /*  BindError */
8385           p1_dissector = dissect_p1_MTABindError;
8386           p1_op_name = "Bind-Error";
8387           hf_p1_index = hf_p1_MTABindError_PDU;
8388           break;
8389         case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /*  Invoke Argument */
8390           p1_dissector = dissect_p1_MTS_APDU;
8391           p1_op_name = "Transfer";
8392           hf_p1_index = hf_p1_MTS_APDU_PDU;
8393           break;
8394         default:
8395           proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P1 PDU");
8396           return tvb_length(tvb);
8397         }
8398
8399         col_set_str(pinfo->cinfo, COL_INFO, p1_op_name);
8400
8401         while (tvb_reported_length_remaining(tvb, offset) > 0){
8402                 old_offset=offset;
8403                 offset=(*p1_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_p1_index);
8404                 if(offset == old_offset){
8405                         proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte P1 PDU");
8406                         break;
8407                 }
8408         }
8409         p1_initialize_content_globals (&asn1_ctx, NULL, FALSE);
8410         return tvb_length(tvb);
8411 }
8412
8413
8414 /*--- proto_register_p1 -------------------------------------------*/
8415 void proto_register_p1(void) {
8416
8417   /* List of fields */
8418   static hf_register_info hf[] =
8419   {
8420       /* "Created by defining PDU in .cnf */
8421     { &hf_p1_MTABindArgument_PDU,
8422       { "MTABindArgument", "p1.MTABindArgument",
8423         FT_UINT32, BASE_DEC, VALS(p1_MTABindArgument_vals), 0,
8424         "p1.MTABindArgument", HFILL }},
8425     { &hf_p1_MTABindResult_PDU,
8426       { "MTABindResult", "p1.MTABindResult",
8427         FT_UINT32, BASE_DEC, VALS(p1_MTABindResult_vals), 0,
8428         "p1.MTABindResult", HFILL }},
8429     { &hf_p1_MTABindError_PDU,
8430       { "MTABindError", "p1.MTABindError",
8431         FT_UINT32, BASE_DEC, VALS(p1_MTABindError_vals), 0,
8432         "p1.MTABindError", HFILL }},
8433     { &hf_p1_MTS_APDU_PDU,
8434       { "MTS-APDU", "p1.MTS_APDU",
8435         FT_UINT32, BASE_DEC, VALS(p1_MTS_APDU_vals), 0,
8436         "p1.MTS_APDU", HFILL }},
8437
8438
8439 /*--- Included file: packet-p1-hfarr.c ---*/
8440 #line 1 "../../asn1/p1/packet-p1-hfarr.c"
8441     { &hf_p1_InternalTraceInformation_PDU,
8442       { "InternalTraceInformation", "p1.InternalTraceInformation",
8443         FT_UINT32, BASE_DEC, NULL, 0,
8444         NULL, HFILL }},
8445     { &hf_p1_InternalTraceInformationElement_PDU,
8446       { "InternalTraceInformationElement", "p1.InternalTraceInformationElement_element",
8447         FT_NONE, BASE_NONE, NULL, 0,
8448         NULL, HFILL }},
8449     { &hf_p1_TraceInformation_PDU,
8450       { "TraceInformation", "p1.TraceInformation",
8451         FT_UINT32, BASE_DEC, NULL, 0,
8452         NULL, HFILL }},
8453     { &hf_p1_TraceInformationElement_PDU,
8454       { "TraceInformationElement", "p1.TraceInformationElement_element",
8455         FT_NONE, BASE_NONE, NULL, 0,
8456         NULL, HFILL }},
8457     { &hf_p1_MTSBindArgument_PDU,
8458       { "MTSBindArgument", "p1.MTSBindArgument_element",
8459         FT_NONE, BASE_NONE, NULL, 0,
8460         NULL, HFILL }},
8461     { &hf_p1_MTSBindResult_PDU,
8462       { "MTSBindResult", "p1.MTSBindResult_element",
8463         FT_NONE, BASE_NONE, NULL, 0,
8464         NULL, HFILL }},
8465     { &hf_p1_PAR_mts_bind_error_PDU,
8466       { "PAR-mts-bind-error", "p1.PAR_mts_bind_error",
8467         FT_UINT32, BASE_DEC, VALS(p1_PAR_mts_bind_error_vals), 0,
8468         NULL, HFILL }},
8469     { &hf_p1_MessageSubmissionArgument_PDU,
8470       { "MessageSubmissionArgument", "p1.MessageSubmissionArgument_element",
8471         FT_NONE, BASE_NONE, NULL, 0,
8472         NULL, HFILL }},
8473     { &hf_p1_MessageSubmissionResult_PDU,
8474       { "MessageSubmissionResult", "p1.MessageSubmissionResult_element",
8475         FT_NONE, BASE_NONE, NULL, 0,
8476         NULL, HFILL }},
8477     { &hf_p1_ProbeSubmissionArgument_PDU,
8478       { "ProbeSubmissionArgument", "p1.ProbeSubmissionArgument_element",
8479         FT_NONE, BASE_NONE, NULL, 0,
8480         NULL, HFILL }},
8481     { &hf_p1_ProbeSubmissionResult_PDU,
8482       { "ProbeSubmissionResult", "p1.ProbeSubmissionResult_element",
8483         FT_NONE, BASE_NONE, NULL, 0,
8484         NULL, HFILL }},
8485     { &hf_p1_CancelDeferredDeliveryArgument_PDU,
8486       { "CancelDeferredDeliveryArgument", "p1.CancelDeferredDeliveryArgument_element",
8487         FT_NONE, BASE_NONE, NULL, 0,
8488         NULL, HFILL }},
8489     { &hf_p1_CancelDeferredDeliveryResult_PDU,
8490       { "CancelDeferredDeliveryResult", "p1.CancelDeferredDeliveryResult_element",
8491         FT_NONE, BASE_NONE, NULL, 0,
8492         NULL, HFILL }},
8493     { &hf_p1_SubmissionControlArgument_PDU,
8494       { "SubmissionControlArgument", "p1.SubmissionControlArgument_element",
8495         FT_NONE, BASE_NONE, NULL, 0,
8496         NULL, HFILL }},
8497     { &hf_p1_SubmissionControlResult_PDU,
8498       { "SubmissionControlResult", "p1.SubmissionControlResult_element",
8499         FT_NONE, BASE_NONE, NULL, 0,
8500         NULL, HFILL }},
8501     { &hf_p1_PAR_submission_control_violated_PDU,
8502       { "PAR-submission-control-violated", "p1.PAR_submission_control_violated_element",
8503         FT_NONE, BASE_NONE, NULL, 0,
8504         NULL, HFILL }},
8505     { &hf_p1_PAR_element_of_service_not_subscribed_PDU,
8506       { "PAR-element-of-service-not-subscribed", "p1.PAR_element_of_service_not_subscribed_element",
8507         FT_NONE, BASE_NONE, NULL, 0,
8508         NULL, HFILL }},
8509     { &hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU,
8510       { "PAR-deferred-delivery-cancellation-rejected", "p1.PAR_deferred_delivery_cancellation_rejected_element",
8511         FT_NONE, BASE_NONE, NULL, 0,
8512         NULL, HFILL }},
8513     { &hf_p1_PAR_originator_invalid_PDU,
8514       { "PAR-originator-invalid", "p1.PAR_originator_invalid_element",
8515         FT_NONE, BASE_NONE, NULL, 0,
8516         NULL, HFILL }},
8517     { &hf_p1_ImproperlySpecifiedRecipients_PDU,
8518       { "ImproperlySpecifiedRecipients", "p1.ImproperlySpecifiedRecipients",
8519         FT_UINT32, BASE_DEC, NULL, 0,
8520         NULL, HFILL }},
8521     { &hf_p1_PAR_message_submission_identifier_invalid_PDU,
8522       { "PAR-message-submission-identifier-invalid", "p1.PAR_message_submission_identifier_invalid_element",
8523         FT_NONE, BASE_NONE, NULL, 0,
8524         NULL, HFILL }},
8525     { &hf_p1_PAR_inconsistent_request_PDU,
8526       { "PAR-inconsistent-request", "p1.PAR_inconsistent_request_element",
8527         FT_NONE, BASE_NONE, NULL, 0,
8528         NULL, HFILL }},
8529     { &hf_p1_SecurityProblem_PDU,
8530       { "SecurityProblem", "p1.SecurityProblem",
8531         FT_UINT32, BASE_DEC, VALS(p1_SecurityProblem_vals), 0,
8532         NULL, HFILL }},
8533     { &hf_p1_PAR_unsupported_critical_function_PDU,
8534       { "PAR-unsupported-critical-function", "p1.PAR_unsupported_critical_function_element",
8535         FT_NONE, BASE_NONE, NULL, 0,
8536         NULL, HFILL }},
8537     { &hf_p1_PAR_remote_bind_error_PDU,
8538       { "PAR-remote-bind-error", "p1.PAR_remote_bind_error_element",
8539         FT_NONE, BASE_NONE, NULL, 0,
8540         NULL, HFILL }},
8541     { &hf_p1_MessageSubmissionTime_PDU,
8542       { "MessageSubmissionTime", "p1.MessageSubmissionTime",
8543         FT_STRING, BASE_NONE, NULL, 0,
8544         NULL, HFILL }},
8545     { &hf_p1_MessageDeliveryArgument_PDU,
8546       { "MessageDeliveryArgument", "p1.MessageDeliveryArgument_element",
8547         FT_NONE, BASE_NONE, NULL, 0,
8548         NULL, HFILL }},
8549     { &hf_p1_MessageDeliveryResult_PDU,
8550       { "MessageDeliveryResult", "p1.MessageDeliveryResult_element",
8551         FT_NONE, BASE_NONE, NULL, 0,
8552         NULL, HFILL }},
8553     { &hf_p1_ReportDeliveryArgument_PDU,
8554       { "ReportDeliveryArgument", "p1.ReportDeliveryArgument_element",
8555         FT_NONE, BASE_NONE, NULL, 0,
8556         NULL, HFILL }},
8557     { &hf_p1_ReportDeliveryResult_PDU,
8558       { "ReportDeliveryResult", "p1.ReportDeliveryResult",
8559         FT_UINT32, BASE_DEC, VALS(p1_ReportDeliveryResult_vals), 0,
8560         NULL, HFILL }},
8561     { &hf_p1_DeliveryControlArgument_PDU,
8562       { "DeliveryControlArgument", "p1.DeliveryControlArgument_element",
8563         FT_NONE, BASE_NONE, NULL, 0,
8564         NULL, HFILL }},
8565     { &hf_p1_DeliveryControlResult_PDU,
8566       { "DeliveryControlResult", "p1.DeliveryControlResult_element",
8567         FT_NONE, BASE_NONE, NULL, 0,
8568         NULL, HFILL }},
8569     { &hf_p1_PAR_delivery_control_violated_PDU,
8570       { "PAR-delivery-control-violated", "p1.PAR_delivery_control_violated_element",
8571         FT_NONE, BASE_NONE, NULL, 0,
8572         NULL, HFILL }},
8573     { &hf_p1_PAR_control_violates_registration_PDU,
8574       { "PAR-control-violates-registration", "p1.PAR_control_violates_registration_element",
8575         FT_NONE, BASE_NONE, NULL, 0,
8576         NULL, HFILL }},
8577     { &hf_p1_RefusedOperation_PDU,
8578       { "RefusedOperation", "p1.RefusedOperation_element",
8579         FT_NONE, BASE_NONE, NULL, 0,
8580         NULL, HFILL }},
8581     { &hf_p1_RecipientCertificate_PDU,
8582       { "RecipientCertificate", "p1.RecipientCertificate_element",
8583         FT_NONE, BASE_NONE, NULL, 0,
8584         NULL, HFILL }},
8585     { &hf_p1_ProofOfDelivery_PDU,
8586       { "ProofOfDelivery", "p1.ProofOfDelivery_element",
8587         FT_NONE, BASE_NONE, NULL, 0,
8588         NULL, HFILL }},
8589     { &hf_p1_RegisterArgument_PDU,
8590       { "RegisterArgument", "p1.RegisterArgument_element",
8591         FT_NONE, BASE_NONE, NULL, 0,
8592         NULL, HFILL }},
8593     { &hf_p1_RegisterResult_PDU,
8594       { "RegisterResult", "p1.RegisterResult",
8595         FT_UINT32, BASE_DEC, VALS(p1_RegisterResult_vals), 0,
8596         NULL, HFILL }},
8597     { &hf_p1_ChangeCredentialsArgument_PDU,
8598       { "ChangeCredentialsArgument", "p1.ChangeCredentialsArgument_element",
8599         FT_NONE, BASE_NONE, NULL, 0,
8600         NULL, HFILL }},
8601     { &hf_p1_RES_change_credentials_PDU,
8602       { "RES-change-credentials", "p1.RES_change_credentials_element",
8603         FT_NONE, BASE_NONE, NULL, 0,
8604         NULL, HFILL }},
8605     { &hf_p1_PAR_register_rejected_PDU,
8606       { "PAR-register-rejected", "p1.PAR_register_rejected_element",
8607         FT_NONE, BASE_NONE, NULL, 0,
8608         NULL, HFILL }},
8609     { &hf_p1_PAR_new_credentials_unacceptable_PDU,
8610       { "PAR-new-credentials-unacceptable", "p1.PAR_new_credentials_unacceptable_element",
8611         FT_NONE, BASE_NONE, NULL, 0,
8612         NULL, HFILL }},
8613     { &hf_p1_PAR_old_credentials_incorrectly_specified_PDU,
8614       { "PAR-old-credentials-incorrectly-specified", "p1.PAR_old_credentials_incorrectly_specified_element",
8615         FT_NONE, BASE_NONE, NULL, 0,
8616         NULL, HFILL }},
8617     { &hf_p1_MessageSubmissionEnvelope_PDU,
8618       { "MessageSubmissionEnvelope", "p1.MessageSubmissionEnvelope_element",
8619         FT_NONE, BASE_NONE, NULL, 0,
8620         NULL, HFILL }},
8621     { &hf_p1_PerRecipientMessageSubmissionFields_PDU,
8622       { "PerRecipientMessageSubmissionFields", "p1.PerRecipientMessageSubmissionFields_element",
8623         FT_NONE, BASE_NONE, NULL, 0,
8624         NULL, HFILL }},
8625     { &hf_p1_ProbeSubmissionEnvelope_PDU,
8626       { "ProbeSubmissionEnvelope", "p1.ProbeSubmissionEnvelope_element",
8627         FT_NONE, BASE_NONE, NULL, 0,
8628         NULL, HFILL }},
8629     { &hf_p1_PerRecipientProbeSubmissionFields_PDU,
8630       { "PerRecipientProbeSubmissionFields", "p1.PerRecipientProbeSubmissionFields_element",
8631         FT_NONE, BASE_NONE, NULL, 0,
8632         NULL, HFILL }},
8633     { &hf_p1_MessageDeliveryEnvelope_PDU,
8634       { "MessageDeliveryEnvelope", "p1.MessageDeliveryEnvelope_element",
8635         FT_NONE, BASE_NONE, NULL, 0,
8636         NULL, HFILL }},
8637     { &hf_p1_ReportDeliveryEnvelope_PDU,
8638       { "ReportDeliveryEnvelope", "p1.ReportDeliveryEnvelope_element",
8639         FT_NONE, BASE_NONE, NULL, 0,
8640         NULL, HFILL }},
8641     { &hf_p1_PerRecipientReportDeliveryFields_PDU,
8642       { "PerRecipientReportDeliveryFields", "p1.PerRecipientReportDeliveryFields_element",
8643         FT_NONE, BASE_NONE, NULL, 0,
8644         NULL, HFILL }},
8645     { &hf_p1_ExtendedContentType_PDU,
8646       { "ExtendedContentType", "p1.ExtendedContentType",
8647         FT_OID, BASE_NONE, NULL, 0,
8648         NULL, HFILL }},
8649     { &hf_p1_ContentIdentifier_PDU,
8650       { "ContentIdentifier", "p1.ContentIdentifier",
8651         FT_STRING, BASE_NONE, NULL, 0,
8652         NULL, HFILL }},
8653     { &hf_p1_PerMessageIndicators_PDU,
8654       { "PerMessageIndicators", "p1.PerMessageIndicators",
8655         FT_BYTES, BASE_NONE, NULL, 0,
8656         NULL, HFILL }},
8657     { &hf_p1_OriginatorReportRequest_PDU,
8658       { "OriginatorReportRequest", "p1.OriginatorReportRequest",
8659         FT_BYTES, BASE_NONE, NULL, 0,
8660         NULL, HFILL }},
8661     { &hf_p1_DeferredDeliveryTime_PDU,
8662       { "DeferredDeliveryTime", "p1.DeferredDeliveryTime",
8663         FT_STRING, BASE_NONE, NULL, 0,
8664         NULL, HFILL }},
8665     { &hf_p1_Priority_PDU,
8666       { "Priority", "p1.Priority",
8667         FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
8668         NULL, HFILL }},
8669     { &hf_p1_ContentLength_PDU,
8670       { "ContentLength", "p1.ContentLength",
8671         FT_UINT32, BASE_DEC, NULL, 0,
8672         NULL, HFILL }},
8673     { &hf_p1_MessageDeliveryTime_PDU,
8674       { "MessageDeliveryTime", "p1.MessageDeliveryTime",
8675         FT_STRING, BASE_NONE, NULL, 0,
8676         NULL, HFILL }},
8677     { &hf_p1_DeliveryFlags_PDU,
8678       { "DeliveryFlags", "p1.DeliveryFlags",
8679         FT_BYTES, BASE_NONE, NULL, 0,
8680         NULL, HFILL }},
8681     { &hf_p1_SubjectSubmissionIdentifier_PDU,
8682       { "SubjectSubmissionIdentifier", "p1.SubjectSubmissionIdentifier_element",
8683         FT_NONE, BASE_NONE, NULL, 0,
8684         NULL, HFILL }},
8685     { &hf_p1_RecipientReassignmentProhibited_PDU,
8686       { "RecipientReassignmentProhibited", "p1.RecipientReassignmentProhibited",
8687         FT_UINT32, BASE_DEC, VALS(p1_RecipientReassignmentProhibited_vals), 0,
8688         NULL, HFILL }},
8689     { &hf_p1_OriginatorRequestedAlternateRecipient_PDU,
8690       { "OriginatorRequestedAlternateRecipient", "p1.OriginatorRequestedAlternateRecipient_element",
8691         FT_NONE, BASE_NONE, NULL, 0,
8692         NULL, HFILL }},
8693     { &hf_p1_DLExpansionProhibited_PDU,
8694       { "DLExpansionProhibited", "p1.DLExpansionProhibited",
8695         FT_UINT32, BASE_DEC, VALS(p1_DLExpansionProhibited_vals), 0,
8696         NULL, HFILL }},
8697     { &hf_p1_ConversionWithLossProhibited_PDU,
8698       { "ConversionWithLossProhibited", "p1.ConversionWithLossProhibited",
8699         FT_UINT32, BASE_DEC, VALS(p1_ConversionWithLossProhibited_vals), 0,
8700         NULL, HFILL }},
8701     { &hf_p1_LatestDeliveryTime_PDU,
8702       { "LatestDeliveryTime", "p1.LatestDeliveryTime",
8703         FT_STRING, BASE_NONE, NULL, 0,
8704         NULL, HFILL }},
8705     { &hf_p1_RequestedDeliveryMethod_PDU,
8706       { "RequestedDeliveryMethod", "p1.RequestedDeliveryMethod",
8707         FT_UINT32, BASE_DEC, NULL, 0,
8708         NULL, HFILL }},
8709     { &hf_p1_PhysicalForwardingProhibited_PDU,
8710       { "PhysicalForwardingProhibited", "p1.PhysicalForwardingProhibited",
8711         FT_UINT32, BASE_DEC, VALS(p1_PhysicalForwardingProhibited_vals), 0,
8712         NULL, HFILL }},
8713     { &hf_p1_PhysicalForwardingAddressRequest_PDU,
8714       { "PhysicalForwardingAddressRequest", "p1.PhysicalForwardingAddressRequest",
8715         FT_UINT32, BASE_DEC, VALS(p1_PhysicalForwardingAddressRequest_vals), 0,
8716         NULL, HFILL }},
8717     { &hf_p1_PhysicalDeliveryModes_PDU,
8718       { "PhysicalDeliveryModes", "p1.PhysicalDeliveryModes",
8719         FT_BYTES, BASE_NONE, NULL, 0,
8720         NULL, HFILL }},
8721     { &hf_p1_RegisteredMailType_PDU,
8722       { "RegisteredMailType", "p1.RegisteredMailType",
8723         FT_UINT32, BASE_DEC, VALS(p1_RegisteredMailType_vals), 0,
8724         NULL, HFILL }},
8725     { &hf_p1_RecipientNumberForAdvice_PDU,
8726       { "RecipientNumberForAdvice", "p1.RecipientNumberForAdvice",
8727         FT_STRING, BASE_NONE, NULL, 0,
8728         NULL, HFILL }},
8729     { &hf_p1_PhysicalRenditionAttributes_PDU,
8730       { "PhysicalRenditionAttributes", "p1.PhysicalRenditionAttributes",
8731         FT_OID, BASE_NONE, NULL, 0,
8732         NULL, HFILL }},
8733     { &hf_p1_OriginatorReturnAddress_PDU,
8734       { "OriginatorReturnAddress", "p1.OriginatorReturnAddress_element",
8735         FT_NONE, BASE_NONE, NULL, 0,
8736         NULL, HFILL }},
8737     { &hf_p1_PhysicalDeliveryReportRequest_PDU,
8738       { "PhysicalDeliveryReportRequest", "p1.PhysicalDeliveryReportRequest",
8739         FT_UINT32, BASE_DEC, VALS(p1_PhysicalDeliveryReportRequest_vals), 0,
8740         NULL, HFILL }},
8741     { &hf_p1_OriginatorCertificate_PDU,
8742       { "OriginatorCertificate", "p1.OriginatorCertificate_element",
8743         FT_NONE, BASE_NONE, NULL, 0,
8744         NULL, HFILL }},
8745     { &hf_p1_MessageToken_PDU,
8746       { "MessageToken", "p1.MessageToken_element",
8747         FT_NONE, BASE_NONE, NULL, 0,
8748         NULL, HFILL }},
8749     { &hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU,
8750       { "ContentConfidentialityAlgorithmIdentifier", "p1.ContentConfidentialityAlgorithmIdentifier_element",
8751         FT_NONE, BASE_NONE, NULL, 0,
8752         NULL, HFILL }},
8753     { &hf_p1_ContentIntegrityCheck_PDU,
8754       { "ContentIntegrityCheck", "p1.ContentIntegrityCheck_element",
8755         FT_NONE, BASE_NONE, NULL, 0,
8756         NULL, HFILL }},
8757     { &hf_p1_MessageOriginAuthenticationCheck_PDU,
8758       { "MessageOriginAuthenticationCheck", "p1.MessageOriginAuthenticationCheck_element",
8759         FT_NONE, BASE_NONE, NULL, 0,
8760         NULL, HFILL }},
8761     { &hf_p1_p1_MessageSecurityLabel_PDU,
8762       { "MessageSecurityLabel", "p1.MessageSecurityLabel_element",
8763         FT_NONE, BASE_NONE, NULL, 0,
8764         NULL, HFILL }},
8765     { &hf_p1_ProofOfSubmissionRequest_PDU,
8766       { "ProofOfSubmissionRequest", "p1.ProofOfSubmissionRequest",
8767         FT_UINT32, BASE_DEC, VALS(p1_ProofOfSubmissionRequest_vals), 0,
8768         NULL, HFILL }},
8769     { &hf_p1_ProofOfDeliveryRequest_PDU,
8770       { "ProofOfDeliveryRequest", "p1.ProofOfDeliveryRequest",
8771         FT_UINT32, BASE_DEC, VALS(p1_ProofOfDeliveryRequest_vals), 0,
8772         NULL, HFILL }},
8773     { &hf_p1_ContentCorrelator_PDU,
8774       { "ContentCorrelator", "p1.ContentCorrelator",
8775         FT_UINT32, BASE_DEC, VALS(p1_ContentCorrelator_vals), 0,
8776         NULL, HFILL }},
8777     { &hf_p1_ProbeOriginAuthenticationCheck_PDU,
8778       { "ProbeOriginAuthenticationCheck", "p1.ProbeOriginAuthenticationCheck_element",
8779         FT_NONE, BASE_NONE, NULL, 0,
8780         NULL, HFILL }},
8781     { &hf_p1_RedirectionHistory_PDU,
8782       { "RedirectionHistory", "p1.RedirectionHistory",
8783         FT_UINT32, BASE_DEC, NULL, 0,
8784         NULL, HFILL }},
8785     { &hf_p1_Redirection_PDU,
8786       { "Redirection", "p1.Redirection_element",
8787         FT_NONE, BASE_NONE, NULL, 0,
8788         NULL, HFILL }},
8789     { &hf_p1_DLExpansionHistory_PDU,
8790       { "DLExpansionHistory", "p1.DLExpansionHistory",
8791         FT_UINT32, BASE_DEC, NULL, 0,
8792         NULL, HFILL }},
8793     { &hf_p1_DLExpansion_PDU,
8794       { "DLExpansion", "p1.DLExpansion_element",
8795         FT_NONE, BASE_NONE, NULL, 0,
8796         NULL, HFILL }},
8797     { &hf_p1_PhysicalForwardingAddress_PDU,
8798       { "PhysicalForwardingAddress", "p1.PhysicalForwardingAddress_element",
8799         FT_NONE, BASE_NONE, NULL, 0,
8800         NULL, HFILL }},
8801     { &hf_p1_OriginatorAndDLExpansionHistory_PDU,
8802       { "OriginatorAndDLExpansionHistory", "p1.OriginatorAndDLExpansionHistory",
8803         FT_UINT32, BASE_DEC, NULL, 0,
8804         NULL, HFILL }},
8805     { &hf_p1_ReportingDLName_PDU,
8806       { "ReportingDLName", "p1.ReportingDLName_element",
8807         FT_NONE, BASE_NONE, NULL, 0,
8808         NULL, HFILL }},
8809     { &hf_p1_ReportingMTACertificate_PDU,
8810       { "ReportingMTACertificate", "p1.ReportingMTACertificate_element",
8811         FT_NONE, BASE_NONE, NULL, 0,
8812         NULL, HFILL }},
8813     { &hf_p1_ReportOriginAuthenticationCheck_PDU,
8814       { "ReportOriginAuthenticationCheck", "p1.ReportOriginAuthenticationCheck_element",
8815         FT_NONE, BASE_NONE, NULL, 0,
8816         NULL, HFILL }},
8817     { &hf_p1_OriginatingMTACertificate_PDU,
8818       { "OriginatingMTACertificate", "p1.OriginatingMTACertificate_element",
8819         FT_NONE, BASE_NONE, NULL, 0,
8820         NULL, HFILL }},
8821     { &hf_p1_ProofOfSubmission_PDU,
8822       { "ProofOfSubmission", "p1.ProofOfSubmission_element",
8823         FT_NONE, BASE_NONE, NULL, 0,
8824         NULL, HFILL }},
8825     { &hf_p1_ReportingMTAName_PDU,
8826       { "ReportingMTAName", "p1.ReportingMTAName_element",
8827         FT_NONE, BASE_NONE, NULL, 0,
8828         NULL, HFILL }},
8829     { &hf_p1_ExtendedCertificates_PDU,
8830       { "ExtendedCertificates", "p1.ExtendedCertificates",
8831         FT_UINT32, BASE_DEC, NULL, 0,
8832         NULL, HFILL }},
8833     { &hf_p1_DLExemptedRecipients_PDU,
8834       { "DLExemptedRecipients", "p1.DLExemptedRecipients",
8835         FT_UINT32, BASE_DEC, NULL, 0,
8836         NULL, HFILL }},
8837     { &hf_p1_CertificateSelectors_PDU,
8838       { "CertificateSelectors", "p1.CertificateSelectors_element",
8839         FT_NONE, BASE_NONE, NULL, 0,
8840         NULL, HFILL }},
8841     { &hf_p1_Content_PDU,
8842       { "Content", "p1.Content",
8843         FT_BYTES, BASE_NONE, NULL, 0,
8844         NULL, HFILL }},
8845     { &hf_p1_MTSIdentifier_PDU,
8846       { "MTSIdentifier", "p1.MTSIdentifier_element",
8847         FT_NONE, BASE_NONE, NULL, 0,
8848         NULL, HFILL }},
8849     { &hf_p1_ORName_PDU,
8850       { "ORName", "p1.ORName_element",
8851         FT_NONE, BASE_NONE, NULL, 0,
8852         NULL, HFILL }},
8853     { &hf_p1_ORAddress_PDU,
8854       { "ORAddress", "p1.ORAddress_element",
8855         FT_NONE, BASE_NONE, NULL, 0,
8856         NULL, HFILL }},
8857     { &hf_p1_CommonName_PDU,
8858       { "CommonName", "p1.CommonName",
8859         FT_STRING, BASE_NONE, NULL, 0,
8860         NULL, HFILL }},
8861     { &hf_p1_TeletexCommonName_PDU,
8862       { "TeletexCommonName", "p1.TeletexCommonName",
8863         FT_STRING, BASE_NONE, NULL, 0,
8864         NULL, HFILL }},
8865     { &hf_p1_UniversalCommonName_PDU,
8866       { "UniversalCommonName", "p1.UniversalCommonName_element",
8867         FT_NONE, BASE_NONE, NULL, 0,
8868         NULL, HFILL }},
8869     { &hf_p1_TeletexOrganizationName_PDU,
8870       { "TeletexOrganizationName", "p1.TeletexOrganizationName",
8871         FT_STRING, BASE_NONE, NULL, 0,
8872         NULL, HFILL }},
8873     { &hf_p1_UniversalOrganizationName_PDU,
8874       { "UniversalOrganizationName", "p1.UniversalOrganizationName_element",
8875         FT_NONE, BASE_NONE, NULL, 0,
8876         NULL, HFILL }},
8877     { &hf_p1_TeletexPersonalName_PDU,
8878       { "TeletexPersonalName", "p1.TeletexPersonalName_element",
8879         FT_NONE, BASE_NONE, NULL, 0,
8880         NULL, HFILL }},
8881     { &hf_p1_UniversalPersonalName_PDU,
8882       { "UniversalPersonalName", "p1.UniversalPersonalName_element",
8883         FT_NONE, BASE_NONE, NULL, 0,
8884         NULL, HFILL }},
8885     { &hf_p1_TeletexOrganizationalUnitNames_PDU,
8886       { "TeletexOrganizationalUnitNames", "p1.TeletexOrganizationalUnitNames",
8887         FT_UINT32, BASE_DEC, NULL, 0,
8888         NULL, HFILL }},
8889     { &hf_p1_UniversalOrganizationalUnitNames_PDU,
8890       { "UniversalOrganizationalUnitNames", "p1.UniversalOrganizationalUnitNames",
8891         FT_UINT32, BASE_DEC, NULL, 0,
8892         NULL, HFILL }},
8893     { &hf_p1_PDSName_PDU,
8894       { "PDSName", "p1.PDSName",
8895         FT_STRING, BASE_NONE, NULL, 0,
8896         NULL, HFILL }},
8897     { &hf_p1_PhysicalDeliveryCountryName_PDU,
8898       { "PhysicalDeliveryCountryName", "p1.PhysicalDeliveryCountryName",
8899         FT_UINT32, BASE_DEC, VALS(p1_PhysicalDeliveryCountryName_vals), 0,
8900         NULL, HFILL }},
8901     { &hf_p1_PostalCode_PDU,
8902       { "PostalCode", "p1.PostalCode",
8903         FT_UINT32, BASE_DEC, VALS(p1_PostalCode_vals), 0,
8904         NULL, HFILL }},
8905     { &hf_p1_PhysicalDeliveryOfficeName_PDU,
8906       { "PhysicalDeliveryOfficeName", "p1.PhysicalDeliveryOfficeName_element",
8907         FT_NONE, BASE_NONE, NULL, 0,
8908         NULL, HFILL }},
8909     { &hf_p1_UniversalPhysicalDeliveryOfficeName_PDU,
8910       { "UniversalPhysicalDeliveryOfficeName", "p1.UniversalPhysicalDeliveryOfficeName_element",
8911         FT_NONE, BASE_NONE, NULL, 0,
8912         NULL, HFILL }},
8913     { &hf_p1_PhysicalDeliveryOfficeNumber_PDU,
8914       { "PhysicalDeliveryOfficeNumber", "p1.PhysicalDeliveryOfficeNumber_element",
8915         FT_NONE, BASE_NONE, NULL, 0,
8916         NULL, HFILL }},
8917     { &hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU,
8918       { "UniversalPhysicalDeliveryOfficeNumber", "p1.UniversalPhysicalDeliveryOfficeNumber_element",
8919         FT_NONE, BASE_NONE, NULL, 0,
8920         NULL, HFILL }},
8921     { &hf_p1_ExtensionORAddressComponents_PDU,
8922       { "ExtensionORAddressComponents", "p1.ExtensionORAddressComponents_element",
8923         FT_NONE, BASE_NONE, NULL, 0,
8924         NULL, HFILL }},
8925     { &hf_p1_UniversalExtensionORAddressComponents_PDU,
8926       { "UniversalExtensionORAddressComponents", "p1.UniversalExtensionORAddressComponents_element",
8927         FT_NONE, BASE_NONE, NULL, 0,
8928         NULL, HFILL }},
8929     { &hf_p1_PhysicalDeliveryPersonalName_PDU,
8930       { "PhysicalDeliveryPersonalName", "p1.PhysicalDeliveryPersonalName_element",
8931         FT_NONE, BASE_NONE, NULL, 0,
8932         NULL, HFILL }},
8933     { &hf_p1_UniversalPhysicalDeliveryPersonalName_PDU,
8934       { "UniversalPhysicalDeliveryPersonalName", "p1.UniversalPhysicalDeliveryPersonalName_element",
8935         FT_NONE, BASE_NONE, NULL, 0,
8936         NULL, HFILL }},
8937     { &hf_p1_PhysicalDeliveryOrganizationName_PDU,
8938       { "PhysicalDeliveryOrganizationName", "p1.PhysicalDeliveryOrganizationName_element",
8939         FT_NONE, BASE_NONE, NULL, 0,
8940         NULL, HFILL }},
8941     { &hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU,
8942       { "UniversalPhysicalDeliveryOrganizationName", "p1.UniversalPhysicalDeliveryOrganizationName_element",
8943         FT_NONE, BASE_NONE, NULL, 0,
8944         NULL, HFILL }},
8945     { &hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU,
8946       { "ExtensionPhysicalDeliveryAddressComponents", "p1.ExtensionPhysicalDeliveryAddressComponents_element",
8947         FT_NONE, BASE_NONE, NULL, 0,
8948         NULL, HFILL }},
8949     { &hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU,
8950       { "UniversalExtensionPhysicalDeliveryAddressComponents", "p1.UniversalExtensionPhysicalDeliveryAddressComponents_element",
8951         FT_NONE, BASE_NONE, NULL, 0,
8952         NULL, HFILL }},
8953     { &hf_p1_UnformattedPostalAddress_PDU,
8954       { "UnformattedPostalAddress", "p1.UnformattedPostalAddress_element",
8955         FT_NONE, BASE_NONE, NULL, 0,
8956         NULL, HFILL }},
8957     { &hf_p1_UniversalUnformattedPostalAddress_PDU,
8958       { "UniversalUnformattedPostalAddress", "p1.UniversalUnformattedPostalAddress_element",
8959         FT_NONE, BASE_NONE, NULL, 0,
8960         NULL, HFILL }},
8961     { &hf_p1_StreetAddress_PDU,
8962       { "StreetAddress", "p1.StreetAddress_element",
8963         FT_NONE, BASE_NONE, NULL, 0,
8964         NULL, HFILL }},
8965     { &hf_p1_UniversalStreetAddress_PDU,
8966       { "UniversalStreetAddress", "p1.UniversalStreetAddress_element",
8967         FT_NONE, BASE_NONE, NULL, 0,
8968         NULL, HFILL }},
8969     { &hf_p1_PostOfficeBoxAddress_PDU,
8970       { "PostOfficeBoxAddress", "p1.PostOfficeBoxAddress_element",
8971         FT_NONE, BASE_NONE, NULL, 0,
8972         NULL, HFILL }},
8973     { &hf_p1_UniversalPostOfficeBoxAddress_PDU,
8974       { "UniversalPostOfficeBoxAddress", "p1.UniversalPostOfficeBoxAddress_element",
8975         FT_NONE, BASE_NONE, NULL, 0,
8976         NULL, HFILL }},
8977     { &hf_p1_PosteRestanteAddress_PDU,
8978       { "PosteRestanteAddress", "p1.PosteRestanteAddress_element",
8979         FT_NONE, BASE_NONE, NULL, 0,
8980         NULL, HFILL }},
8981     { &hf_p1_UniversalPosteRestanteAddress_PDU,
8982       { "UniversalPosteRestanteAddress", "p1.UniversalPosteRestanteAddress_element",
8983         FT_NONE, BASE_NONE, NULL, 0,
8984         NULL, HFILL }},
8985     { &hf_p1_UniquePostalName_PDU,
8986       { "UniquePostalName", "p1.UniquePostalName_element",
8987         FT_NONE, BASE_NONE, NULL, 0,
8988         NULL, HFILL }},
8989     { &hf_p1_UniversalUniquePostalName_PDU,
8990       { "UniversalUniquePostalName", "p1.UniversalUniquePostalName_element",
8991         FT_NONE, BASE_NONE, NULL, 0,
8992         NULL, HFILL }},
8993     { &hf_p1_LocalPostalAttributes_PDU,
8994       { "LocalPostalAttributes", "p1.LocalPostalAttributes_element",
8995         FT_NONE, BASE_NONE, NULL, 0,
8996         NULL, HFILL }},
8997     { &hf_p1_UniversalLocalPostalAttributes_PDU,
8998       { "UniversalLocalPostalAttributes", "p1.UniversalLocalPostalAttributes_element",
8999         FT_NONE, BASE_NONE, NULL, 0,
9000         NULL, HFILL }},
9001     { &hf_p1_ExtendedNetworkAddress_PDU,
9002       { "ExtendedNetworkAddress", "p1.ExtendedNetworkAddress",
9003         FT_UINT32, BASE_DEC, VALS(p1_ExtendedNetworkAddress_vals), 0,
9004         NULL, HFILL }},
9005     { &hf_p1_TerminalType_PDU,
9006       { "TerminalType", "p1.TerminalType",
9007         FT_UINT32, BASE_DEC, VALS(p1_TerminalType_vals), 0,
9008         NULL, HFILL }},
9009     { &hf_p1_TeletexDomainDefinedAttributes_PDU,
9010       { "TeletexDomainDefinedAttributes", "p1.TeletexDomainDefinedAttributes",
9011         FT_UINT32, BASE_DEC, NULL, 0,
9012         NULL, HFILL }},
9013     { &hf_p1_UniversalDomainDefinedAttributes_PDU,
9014       { "UniversalDomainDefinedAttributes", "p1.UniversalDomainDefinedAttributes",
9015         FT_UINT32, BASE_DEC, NULL, 0,
9016         NULL, HFILL }},
9017     { &hf_p1_ExtendedEncodedInformationType_PDU,
9018       { "ExtendedEncodedInformationType", "p1.ExtendedEncodedInformationType",
9019         FT_OID, BASE_NONE, NULL, 0,
9020         NULL, HFILL }},
9021     { &hf_p1_MTANameAndOptionalGDI_PDU,
9022       { "MTANameAndOptionalGDI", "p1.MTANameAndOptionalGDI_element",
9023         FT_NONE, BASE_NONE, NULL, 0,
9024         NULL, HFILL }},
9025     { &hf_p1_AsymmetricToken_PDU,
9026       { "AsymmetricToken", "p1.AsymmetricToken_element",
9027         FT_NONE, BASE_NONE, NULL, 0,
9028         NULL, HFILL }},
9029     { &hf_p1_BindTokenSignedData_PDU,
9030       { "BindTokenSignedData", "p1.BindTokenSignedData",
9031         FT_BYTES, BASE_NONE, NULL, 0,
9032         NULL, HFILL }},
9033     { &hf_p1_MessageTokenSignedData_PDU,
9034       { "MessageTokenSignedData", "p1.MessageTokenSignedData_element",
9035         FT_NONE, BASE_NONE, NULL, 0,
9036         NULL, HFILL }},
9037     { &hf_p1_MessageTokenEncryptedData_PDU,
9038       { "MessageTokenEncryptedData", "p1.MessageTokenEncryptedData_element",
9039         FT_NONE, BASE_NONE, NULL, 0,
9040         NULL, HFILL }},
9041     { &hf_p1_BindTokenEncryptedData_PDU,
9042       { "BindTokenEncryptedData", "p1.BindTokenEncryptedData_element",
9043         FT_NONE, BASE_NONE, NULL, 0,
9044         NULL, HFILL }},
9045     { &hf_p1_SecurityClassification_PDU,
9046       { "SecurityClassification", "p1.SecurityClassification",
9047         FT_UINT32, BASE_DEC, VALS(p1_SecurityClassification_vals), 0,
9048         NULL, HFILL }},
9049     { &hf_p1_unauthenticated,
9050       { "unauthenticated", "p1.unauthenticated_element",
9051         FT_NONE, BASE_NONE, NULL, 0,
9052         NULL, HFILL }},
9053     { &hf_p1_authenticated_argument,
9054       { "authenticated", "p1.authenticated_element",
9055         FT_NONE, BASE_NONE, NULL, 0,
9056         "AuthenticatedArgument", HFILL }},
9057     { &hf_p1_authenticated_initiator_name,
9058       { "initiator-name", "p1.initiator_name",
9059         FT_STRING, BASE_NONE, NULL, 0,
9060         "MTAName", HFILL }},
9061     { &hf_p1_initiator_credentials,
9062       { "initiator-credentials", "p1.initiator_credentials",
9063         FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9064         "InitiatorCredentials", HFILL }},
9065     { &hf_p1_security_context,
9066       { "security-context", "p1.security_context",
9067         FT_UINT32, BASE_DEC, NULL, 0,
9068         "SecurityContext", HFILL }},
9069     { &hf_p1_authenticated_result,
9070       { "authenticated", "p1.authenticated_element",
9071         FT_NONE, BASE_NONE, NULL, 0,
9072         "AuthenticatedResult", HFILL }},
9073     { &hf_p1_authenticated_responder_name,
9074       { "responder-name", "p1.responder_name",
9075         FT_STRING, BASE_NONE, NULL, 0,
9076         "MTAName", HFILL }},
9077     { &hf_p1_responder_credentials,
9078       { "responder-credentials", "p1.responder_credentials",
9079         FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9080         "ResponderCredentials", HFILL }},
9081     { &hf_p1_message,
9082       { "message", "p1.message_element",
9083         FT_NONE, BASE_NONE, NULL, 0,
9084         NULL, HFILL }},
9085     { &hf_p1_probe,
9086       { "probe", "p1.probe_element",
9087         FT_NONE, BASE_NONE, NULL, 0,
9088         NULL, HFILL }},
9089     { &hf_p1_report,
9090       { "report", "p1.report_element",
9091         FT_NONE, BASE_NONE, NULL, 0,
9092         NULL, HFILL }},
9093     { &hf_p1_message_envelope,
9094       { "envelope", "p1.envelope_element",
9095         FT_NONE, BASE_NONE, NULL, 0,
9096         "MessageTransferEnvelope", HFILL }},
9097     { &hf_p1_content,
9098       { "content", "p1.content",
9099         FT_BYTES, BASE_NONE, NULL, 0,
9100         NULL, HFILL }},
9101     { &hf_p1_report_envelope,
9102       { "envelope", "p1.envelope_element",
9103         FT_NONE, BASE_NONE, NULL, 0,
9104         "ReportTransferEnvelope", HFILL }},
9105     { &hf_p1_report_content,
9106       { "content", "p1.content_element",
9107         FT_NONE, BASE_NONE, NULL, 0,
9108         "ReportTransferContent", HFILL }},
9109     { &hf_p1_message_identifier,
9110       { "message-identifier", "p1.message_identifier_element",
9111         FT_NONE, BASE_NONE, NULL, 0,
9112         "MessageIdentifier", HFILL }},
9113     { &hf_p1_originator_name,
9114       { "originator-name", "p1.originator_name_element",
9115         FT_NONE, BASE_NONE, NULL, 0,
9116         "MTAOriginatorName", HFILL }},
9117     { &hf_p1_original_encoded_information_types,
9118       { "original-encoded-information-types", "p1.original_encoded_information_types_element",
9119         FT_NONE, BASE_NONE, NULL, 0,
9120         "OriginalEncodedInformationTypes", HFILL }},
9121     { &hf_p1_content_type,
9122       { "content-type", "p1.content_type",
9123         FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9124         "ContentType", HFILL }},
9125     { &hf_p1_content_identifier,
9126       { "content-identifier", "p1.content_identifier",
9127         FT_STRING, BASE_NONE, NULL, 0,
9128         "ContentIdentifier", HFILL }},
9129     { &hf_p1_priority,
9130       { "priority", "p1.priority",
9131         FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9132         NULL, HFILL }},
9133     { &hf_p1_per_message_indicators,
9134       { "per-message-indicators", "p1.per_message_indicators",
9135         FT_BYTES, BASE_NONE, NULL, 0,
9136         "PerMessageIndicators", HFILL }},
9137     { &hf_p1_deferred_delivery_time,
9138       { "deferred-delivery-time", "p1.deferred_delivery_time",
9139         FT_STRING, BASE_NONE, NULL, 0,
9140         "DeferredDeliveryTime", HFILL }},
9141     { &hf_p1_per_domain_bilateral_information,
9142       { "per-domain-bilateral-information", "p1.per_domain_bilateral_information",
9143         FT_UINT32, BASE_DEC, NULL, 0,
9144         "SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation", HFILL }},
9145     { &hf_p1_per_domain_bilateral_information_item,
9146       { "PerDomainBilateralInformation", "p1.PerDomainBilateralInformation_element",
9147         FT_NONE, BASE_NONE, NULL, 0,
9148         NULL, HFILL }},
9149     { &hf_p1_trace_information,
9150       { "trace-information", "p1.trace_information",
9151         FT_UINT32, BASE_DEC, NULL, 0,
9152         "TraceInformation", HFILL }},
9153     { &hf_p1_extensions,
9154       { "extensions", "p1.extensions",
9155         FT_UINT32, BASE_DEC, NULL, 0,
9156         "SET_OF_ExtensionField", HFILL }},
9157     { &hf_p1_extensions_item,
9158       { "ExtensionField", "p1.ExtensionField_element",
9159         FT_NONE, BASE_NONE, NULL, 0,
9160         NULL, HFILL }},
9161     { &hf_p1_recipient_name,
9162       { "recipient-name", "p1.recipient_name_element",
9163         FT_NONE, BASE_NONE, NULL, 0,
9164         "MTARecipientName", HFILL }},
9165     { &hf_p1_originally_specified_recipient_number,
9166       { "originally-specified-recipient-number", "p1.originally_specified_recipient_number",
9167         FT_UINT32, BASE_DEC, NULL, 0,
9168         "OriginallySpecifiedRecipientNumber", HFILL }},
9169     { &hf_p1_per_recipient_indicators,
9170       { "per-recipient-indicators", "p1.per_recipient_indicators",
9171         FT_BYTES, BASE_NONE, NULL, 0,
9172         "PerRecipientIndicators", HFILL }},
9173     { &hf_p1_explicit_conversion,
9174       { "explicit-conversion", "p1.explicit_conversion",
9175         FT_UINT32, BASE_DEC, VALS(p1_ExplicitConversion_vals), 0,
9176         "ExplicitConversion", HFILL }},
9177     { &hf_p1_probe_identifier,
9178       { "probe-identifier", "p1.probe_identifier_element",
9179         FT_NONE, BASE_NONE, NULL, 0,
9180         "ProbeIdentifier", HFILL }},
9181     { &hf_p1_content_length,
9182       { "content-length", "p1.content_length",
9183         FT_UINT32, BASE_DEC, NULL, 0,
9184         "ContentLength", HFILL }},
9185     { &hf_p1_report_identifier,
9186       { "report-identifier", "p1.report_identifier_element",
9187         FT_NONE, BASE_NONE, NULL, 0,
9188         "ReportIdentifier", HFILL }},
9189     { &hf_p1_report_destination_name,
9190       { "report-destination-name", "p1.report_destination_name_element",
9191         FT_NONE, BASE_NONE, NULL, 0,
9192         "ReportDestinationName", HFILL }},
9193     { &hf_p1_subject_identifier,
9194       { "subject-identifier", "p1.subject_identifier_element",
9195         FT_NONE, BASE_NONE, NULL, 0,
9196         "SubjectIdentifier", HFILL }},
9197     { &hf_p1_subject_intermediate_trace_information,
9198       { "subject-intermediate-trace-information", "p1.subject_intermediate_trace_information",
9199         FT_UINT32, BASE_DEC, NULL, 0,
9200         "SubjectIntermediateTraceInformation", HFILL }},
9201     { &hf_p1_returned_content,
9202       { "returned-content", "p1.returned_content",
9203         FT_BYTES, BASE_NONE, NULL, 0,
9204         "Content", HFILL }},
9205     { &hf_p1_additional_information,
9206       { "additional-information", "p1.additional_information_element",
9207         FT_NONE, BASE_NONE, NULL, 0,
9208         "AdditionalInformation", HFILL }},
9209     { &hf_p1_mta_actual_recipient_name,
9210       { "actual-recipient-name", "p1.actual_recipient_name_element",
9211         FT_NONE, BASE_NONE, NULL, 0,
9212         "MTAActualRecipientName", HFILL }},
9213     { &hf_p1_last_trace_information,
9214       { "last-trace-information", "p1.last_trace_information_element",
9215         FT_NONE, BASE_NONE, NULL, 0,
9216         "LastTraceInformation", HFILL }},
9217     { &hf_p1_report_originally_intended_recipient_name,
9218       { "originally-intended-recipient-name", "p1.originally_intended_recipient_name_element",
9219         FT_NONE, BASE_NONE, NULL, 0,
9220         "OriginallyIntendedRecipientName", HFILL }},
9221     { &hf_p1_supplementary_information,
9222       { "supplementary-information", "p1.supplementary_information",
9223         FT_STRING, BASE_NONE, NULL, 0,
9224         "SupplementaryInformation", HFILL }},
9225     { &hf_p1_country_name,
9226       { "country-name", "p1.country_name",
9227         FT_UINT32, BASE_DEC, VALS(p1_CountryName_U_vals), 0,
9228         "CountryName", HFILL }},
9229     { &hf_p1_bilateral_domain,
9230       { "domain", "p1.domain",
9231         FT_UINT32, BASE_DEC, VALS(p1_T_bilateral_domain_vals), 0,
9232         "T_bilateral_domain", HFILL }},
9233     { &hf_p1_administration_domain_name,
9234       { "administration-domain-name", "p1.administration_domain_name",
9235         FT_UINT32, BASE_DEC, VALS(p1_AdministrationDomainName_U_vals), 0,
9236         "AdministrationDomainName", HFILL }},
9237     { &hf_p1_private_domain,
9238       { "private-domain", "p1.private_domain_element",
9239         FT_NONE, BASE_NONE, NULL, 0,
9240         NULL, HFILL }},
9241     { &hf_p1_private_domain_identifier,
9242       { "private-domain-identifier", "p1.private_domain_identifier",
9243         FT_UINT32, BASE_DEC, VALS(p1_PrivateDomainIdentifier_vals), 0,
9244         "PrivateDomainIdentifier", HFILL }},
9245     { &hf_p1_bilateral_information,
9246       { "bilateral-information", "p1.bilateral_information_element",
9247         FT_NONE, BASE_NONE, NULL, 0,
9248         NULL, HFILL }},
9249     { &hf_p1_arrival_time,
9250       { "arrival-time", "p1.arrival_time",
9251         FT_STRING, BASE_NONE, NULL, 0,
9252         "ArrivalTime", HFILL }},
9253     { &hf_p1_converted_encoded_information_types,
9254       { "converted-encoded-information-types", "p1.converted_encoded_information_types_element",
9255         FT_NONE, BASE_NONE, NULL, 0,
9256         "ConvertedEncodedInformationTypes", HFILL }},
9257     { &hf_p1_trace_report_type,
9258       { "report-type", "p1.report_type",
9259         FT_UINT32, BASE_DEC, VALS(p1_ReportType_vals), 0,
9260         "ReportType", HFILL }},
9261     { &hf_p1_InternalTraceInformation_item,
9262       { "InternalTraceInformationElement", "p1.InternalTraceInformationElement_element",
9263         FT_NONE, BASE_NONE, NULL, 0,
9264         NULL, HFILL }},
9265     { &hf_p1_global_domain_identifier,
9266       { "global-domain-identifier", "p1.global_domain_identifier_element",
9267         FT_NONE, BASE_NONE, NULL, 0,
9268         "GlobalDomainIdentifier", HFILL }},
9269     { &hf_p1_mta_name,
9270       { "mta-name", "p1.mta_name",
9271         FT_STRING, BASE_NONE, NULL, 0,
9272         "MTAName", HFILL }},
9273     { &hf_p1_mta_supplied_information,
9274       { "mta-supplied-information", "p1.mta_supplied_information_element",
9275         FT_NONE, BASE_NONE, NULL, 0,
9276         "MTASuppliedInformation", HFILL }},
9277     { &hf_p1__untag_item,
9278       { "TraceInformationElement", "p1.TraceInformationElement_element",
9279         FT_NONE, BASE_NONE, NULL, 0,
9280         NULL, HFILL }},
9281     { &hf_p1_domain_supplied_information,
9282       { "domain-supplied-information", "p1.domain_supplied_information_element",
9283         FT_NONE, BASE_NONE, NULL, 0,
9284         "DomainSuppliedInformation", HFILL }},
9285     { &hf_p1_deferred_time,
9286       { "deferred-time", "p1.deferred_time",
9287         FT_STRING, BASE_NONE, NULL, 0,
9288         "DeferredTime", HFILL }},
9289     { &hf_p1_other_actions,
9290       { "other-actions", "p1.other_actions",
9291         FT_BYTES, BASE_NONE, NULL, 0,
9292         "OtherActions", HFILL }},
9293     { &hf_p1_initiator_name,
9294       { "initiator-name", "p1.initiator_name",
9295         FT_UINT32, BASE_DEC, VALS(p1_ObjectName_vals), 0,
9296         "ObjectName", HFILL }},
9297     { &hf_p1_messages_waiting,
9298       { "messages-waiting", "p1.messages_waiting_element",
9299         FT_NONE, BASE_NONE, NULL, 0,
9300         "MessagesWaiting", HFILL }},
9301     { &hf_p1_responder_name,
9302       { "responder-name", "p1.responder_name",
9303         FT_UINT32, BASE_DEC, VALS(p1_ObjectName_vals), 0,
9304         "ObjectName", HFILL }},
9305     { &hf_p1_user_agent,
9306       { "user-agent", "p1.user_agent_element",
9307         FT_NONE, BASE_NONE, NULL, 0,
9308         "ORAddressAndOptionalDirectoryName", HFILL }},
9309     { &hf_p1_mTA,
9310       { "mTA", "p1.mTA",
9311         FT_STRING, BASE_NONE, NULL, 0,
9312         "MTAName", HFILL }},
9313     { &hf_p1_message_store,
9314       { "message-store", "p1.message_store_element",
9315         FT_NONE, BASE_NONE, NULL, 0,
9316         "ORAddressAndOptionalDirectoryName", HFILL }},
9317     { &hf_p1_urgent,
9318       { "urgent", "p1.urgent_element",
9319         FT_NONE, BASE_NONE, NULL, 0,
9320         "DeliveryQueue", HFILL }},
9321     { &hf_p1_normal,
9322       { "normal", "p1.normal_element",
9323         FT_NONE, BASE_NONE, NULL, 0,
9324         "DeliveryQueue", HFILL }},
9325     { &hf_p1_non_urgent,
9326       { "non-urgent", "p1.non_urgent_element",
9327         FT_NONE, BASE_NONE, NULL, 0,
9328         "DeliveryQueue", HFILL }},
9329     { &hf_p1_messages,
9330       { "messages", "p1.messages",
9331         FT_UINT32, BASE_DEC, NULL, 0,
9332         "INTEGER_0_ub_queue_size", HFILL }},
9333     { &hf_p1_delivery_queue_octets,
9334       { "octets", "p1.octets",
9335         FT_UINT32, BASE_DEC, NULL, 0,
9336         "INTEGER_0_ub_content_length", HFILL }},
9337     { &hf_p1_simple,
9338       { "simple", "p1.simple",
9339         FT_UINT32, BASE_DEC, VALS(p1_Password_vals), 0,
9340         "Password", HFILL }},
9341     { &hf_p1_strong,
9342       { "strong", "p1.strong_element",
9343         FT_NONE, BASE_NONE, NULL, 0,
9344         "StrongCredentials", HFILL }},
9345     { &hf_p1_protected,
9346       { "protected", "p1.protected_element",
9347         FT_NONE, BASE_NONE, NULL, 0,
9348         "ProtectedPassword", HFILL }},
9349     { &hf_p1_ia5_string,
9350       { "ia5-string", "p1.ia5_string",
9351         FT_STRING, BASE_NONE, NULL, 0,
9352         "IA5String_SIZE_0_ub_password_length", HFILL }},
9353     { &hf_p1_octet_string,
9354       { "octet-string", "p1.octet_string",
9355         FT_BYTES, BASE_NONE, NULL, 0,
9356         "OCTET_STRING_SIZE_0_ub_password_length", HFILL }},
9357     { &hf_p1_bind_token,
9358       { "bind-token", "p1.bind_token_element",
9359         FT_NONE, BASE_NONE, NULL, 0,
9360         "Token", HFILL }},
9361     { &hf_p1_certificate,
9362       { "certificate", "p1.certificate_element",
9363         FT_NONE, BASE_NONE, NULL, 0,
9364         "Certificates", HFILL }},
9365     { &hf_p1_certificate_selector,
9366       { "certificate-selector", "p1.certificate_selector_element",
9367         FT_NONE, BASE_NONE, NULL, 0,
9368         "CertificateAssertion", HFILL }},
9369     { &hf_p1_signature,
9370       { "signature", "p1.signature_element",
9371         FT_NONE, BASE_NONE, NULL, 0,
9372         NULL, HFILL }},
9373     { &hf_p1_time1,
9374       { "time1", "p1.time1",
9375         FT_STRING, BASE_NONE, NULL, 0,
9376         "UTCTime", HFILL }},
9377     { &hf_p1_time2,
9378       { "time2", "p1.time2",
9379         FT_STRING, BASE_NONE, NULL, 0,
9380         "UTCTime", HFILL }},
9381     { &hf_p1_random1,
9382       { "random1", "p1.random1",
9383         FT_BYTES, BASE_NONE, NULL, 0,
9384         "BIT_STRING", HFILL }},
9385     { &hf_p1_random2,
9386       { "random2", "p1.random2",
9387         FT_BYTES, BASE_NONE, NULL, 0,
9388         "BIT_STRING", HFILL }},
9389     { &hf_p1_algorithmIdentifier,
9390       { "algorithmIdentifier", "p1.algorithmIdentifier_element",
9391         FT_NONE, BASE_NONE, NULL, 0,
9392         NULL, HFILL }},
9393     { &hf_p1_encrypted,
9394       { "encrypted", "p1.encrypted",
9395         FT_BYTES, BASE_NONE, NULL, 0,
9396         "BIT_STRING", HFILL }},
9397     { &hf_p1_SecurityContext_item,
9398       { "SecurityLabel", "p1.SecurityLabel_element",
9399         FT_NONE, BASE_NONE, NULL, 0,
9400         NULL, HFILL }},
9401     { &hf_p1_message_submission_envelope,
9402       { "envelope", "p1.envelope_element",
9403         FT_NONE, BASE_NONE, NULL, 0,
9404         "MessageSubmissionEnvelope", HFILL }},
9405     { &hf_p1_message_submission_identifier,
9406       { "message-submission-identifier", "p1.message_submission_identifier_element",
9407         FT_NONE, BASE_NONE, NULL, 0,
9408         "MessageSubmissionIdentifier", HFILL }},
9409     { &hf_p1_message_submission_time,
9410       { "message-submission-time", "p1.message_submission_time",
9411         FT_STRING, BASE_NONE, NULL, 0,
9412         "MessageSubmissionTime", HFILL }},
9413     { &hf_p1_probe_submission_identifier,
9414       { "probe-submission-identifier", "p1.probe_submission_identifier_element",
9415         FT_NONE, BASE_NONE, NULL, 0,
9416         "ProbeSubmissionIdentifier", HFILL }},
9417     { &hf_p1_probe_submission_time,
9418       { "probe-submission-time", "p1.probe_submission_time",
9419         FT_STRING, BASE_NONE, NULL, 0,
9420         "ProbeSubmissionTime", HFILL }},
9421     { &hf_p1_ImproperlySpecifiedRecipients_item,
9422       { "RecipientName", "p1.RecipientName_element",
9423         FT_NONE, BASE_NONE, NULL, 0,
9424         NULL, HFILL }},
9425     { &hf_p1_waiting_operations,
9426       { "waiting-operations", "p1.waiting_operations",
9427         FT_BYTES, BASE_NONE, NULL, 0,
9428         "Operations", HFILL }},
9429     { &hf_p1_waiting_messages,
9430       { "waiting-messages", "p1.waiting_messages",
9431         FT_BYTES, BASE_NONE, NULL, 0,
9432         "WaitingMessages", HFILL }},
9433     { &hf_p1_waiting_content_types,
9434       { "waiting-content-types", "p1.waiting_content_types",
9435         FT_UINT32, BASE_DEC, NULL, 0,
9436         "SET_SIZE_0_ub_content_types_OF_ContentType", HFILL }},
9437     { &hf_p1_waiting_content_types_item,
9438       { "ContentType", "p1.ContentType",
9439         FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9440         NULL, HFILL }},
9441     { &hf_p1_waiting_encoded_information_types,
9442       { "waiting-encoded-information-types", "p1.waiting_encoded_information_types_element",
9443         FT_NONE, BASE_NONE, NULL, 0,
9444         "EncodedInformationTypes", HFILL }},
9445     { &hf_p1_recipient_certificate,
9446       { "recipient-certificate", "p1.recipient_certificate_element",
9447         FT_NONE, BASE_NONE, NULL, 0,
9448         "RecipientCertificate", HFILL }},
9449     { &hf_p1_proof_of_delivery,
9450       { "proof-of-delivery", "p1.proof_of_delivery_element",
9451         FT_NONE, BASE_NONE, NULL, 0,
9452         "ProofOfDelivery", HFILL }},
9453     { &hf_p1_empty_result,
9454       { "empty-result", "p1.empty_result_element",
9455         FT_NONE, BASE_NONE, NULL, 0,
9456         NULL, HFILL }},
9457     { &hf_p1_max_extensions,
9458       { "extensions", "p1.extensions",
9459         FT_UINT32, BASE_DEC, NULL, 0,
9460         "SET_SIZE_1_MAX_OF_ExtensionField", HFILL }},
9461     { &hf_p1_max_extensions_item,
9462       { "ExtensionField", "p1.ExtensionField_element",
9463         FT_NONE, BASE_NONE, NULL, 0,
9464         NULL, HFILL }},
9465     { &hf_p1_restrict,
9466       { "restrict", "p1.restrict",
9467         FT_BOOLEAN, BASE_NONE, NULL, 0,
9468         "BOOLEAN", HFILL }},
9469     { &hf_p1_permissible_operations,
9470       { "permissible-operations", "p1.permissible_operations",
9471         FT_BYTES, BASE_NONE, NULL, 0,
9472         "Operations", HFILL }},
9473     { &hf_p1_permissible_maximum_content_length,
9474       { "permissible-maximum-content-length", "p1.permissible_maximum_content_length",
9475         FT_UINT32, BASE_DEC, NULL, 0,
9476         "ContentLength", HFILL }},
9477     { &hf_p1_permissible_lowest_priority,
9478       { "permissible-lowest-priority", "p1.permissible_lowest_priority",
9479         FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9480         "Priority", HFILL }},
9481     { &hf_p1_permissible_content_types,
9482       { "permissible-content-types", "p1.permissible_content_types",
9483         FT_UINT32, BASE_DEC, NULL, 0,
9484         "ContentTypes", HFILL }},
9485     { &hf_p1_permissible_encoded_information_types,
9486       { "permissible-encoded-information-types", "p1.permissible_encoded_information_types_element",
9487         FT_NONE, BASE_NONE, NULL, 0,
9488         "PermissibleEncodedInformationTypes", HFILL }},
9489     { &hf_p1_permissible_security_context,
9490       { "permissible-security-context", "p1.permissible_security_context",
9491         FT_UINT32, BASE_DEC, NULL, 0,
9492         "SecurityContext", HFILL }},
9493     { &hf_p1_refused_argument,
9494       { "refused-argument", "p1.refused_argument",
9495         FT_UINT32, BASE_DEC, VALS(p1_T_refused_argument_vals), 0,
9496         NULL, HFILL }},
9497     { &hf_p1_built_in_argument,
9498       { "built-in-argument", "p1.built_in_argument",
9499         FT_UINT32, BASE_DEC, VALS(p1_RefusedArgument_vals), 0,
9500         "RefusedArgument", HFILL }},
9501     { &hf_p1_refused_extension,
9502       { "refused-extension", "p1.refused_extension",
9503         FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9504         NULL, HFILL }},
9505     { &hf_p1_refusal_reason,
9506       { "refusal-reason", "p1.refusal_reason",
9507         FT_UINT32, BASE_DEC, VALS(p1_RefusalReason_vals), 0,
9508         "RefusalReason", HFILL }},
9509     { &hf_p1_user_name,
9510       { "user-name", "p1.user_name_element",
9511         FT_NONE, BASE_NONE, NULL, 0,
9512         "UserName", HFILL }},
9513     { &hf_p1_user_address,
9514       { "user-address", "p1.user_address",
9515         FT_UINT32, BASE_DEC, VALS(p1_UserAddress_vals), 0,
9516         "UserAddress", HFILL }},
9517     { &hf_p1_deliverable_class,
9518       { "deliverable-class", "p1.deliverable_class",
9519         FT_UINT32, BASE_DEC, NULL, 0,
9520         "SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass", HFILL }},
9521     { &hf_p1_deliverable_class_item,
9522       { "DeliverableClass", "p1.DeliverableClass_element",
9523         FT_NONE, BASE_NONE, NULL, 0,
9524         NULL, HFILL }},
9525     { &hf_p1_default_delivery_controls,
9526       { "default-delivery-controls", "p1.default_delivery_controls_element",
9527         FT_NONE, BASE_NONE, NULL, 0,
9528         "DefaultDeliveryControls", HFILL }},
9529     { &hf_p1_redirections,
9530       { "redirections", "p1.redirections",
9531         FT_UINT32, BASE_DEC, NULL, 0,
9532         NULL, HFILL }},
9533     { &hf_p1_restricted_delivery,
9534       { "restricted-delivery", "p1.restricted_delivery",
9535         FT_UINT32, BASE_DEC, NULL, 0,
9536         "RestrictedDelivery", HFILL }},
9537     { &hf_p1_retrieve_registrations,
9538       { "retrieve-registrations", "p1.retrieve_registrations_element",
9539         FT_NONE, BASE_NONE, NULL, 0,
9540         "RegistrationTypes", HFILL }},
9541     { &hf_p1_non_empty_result,
9542       { "non-empty-result", "p1.non_empty_result_element",
9543         FT_NONE, BASE_NONE, NULL, 0,
9544         NULL, HFILL }},
9545     { &hf_p1_registered_information,
9546       { "registered-information", "p1.registered_information_element",
9547         FT_NONE, BASE_NONE, NULL, 0,
9548         "RegisterArgument", HFILL }},
9549     { &hf_p1_old_credentials,
9550       { "old-credentials", "p1.old_credentials",
9551         FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9552         "Credentials", HFILL }},
9553     { &hf_p1_new_credentials,
9554       { "new-credentials", "p1.new_credentials",
9555         FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9556         "Credentials", HFILL }},
9557     { &hf_p1_x121,
9558       { "x121", "p1.x121_element",
9559         FT_NONE, BASE_NONE, NULL, 0,
9560         NULL, HFILL }},
9561     { &hf_p1_x121_address,
9562       { "x121-address", "p1.x121_address",
9563         FT_STRING, BASE_NONE, NULL, 0,
9564         NULL, HFILL }},
9565     { &hf_p1_tsap_id,
9566       { "tsap-id", "p1.tsap_id",
9567         FT_STRING, BASE_NONE, NULL, 0,
9568         "PrintableString_SIZE_1_ub_tsap_id_length", HFILL }},
9569     { &hf_p1_presentation,
9570       { "presentation", "p1.presentation_element",
9571         FT_NONE, BASE_NONE, NULL, 0,
9572         "PSAPAddress", HFILL }},
9573     { &hf_p1_Redirections_item,
9574       { "RecipientRedirection", "p1.RecipientRedirection_element",
9575         FT_NONE, BASE_NONE, NULL, 0,
9576         NULL, HFILL }},
9577     { &hf_p1_redirection_classes,
9578       { "redirection-classes", "p1.redirection_classes",
9579         FT_UINT32, BASE_DEC, NULL, 0,
9580         "SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass", HFILL }},
9581     { &hf_p1_redirection_classes_item,
9582       { "RedirectionClass", "p1.RedirectionClass_element",
9583         FT_NONE, BASE_NONE, NULL, 0,
9584         NULL, HFILL }},
9585     { &hf_p1_recipient_assigned_alternate_recipient,
9586       { "recipient-assigned-alternate-recipient", "p1.recipient_assigned_alternate_recipient_element",
9587         FT_NONE, BASE_NONE, NULL, 0,
9588         "RecipientAssignedAlternateRecipient", HFILL }},
9589     { &hf_p1_content_types,
9590       { "content-types", "p1.content_types",
9591         FT_UINT32, BASE_DEC, NULL, 0,
9592         "ContentTypes", HFILL }},
9593     { &hf_p1_maximum_content_length,
9594       { "maximum-content-length", "p1.maximum_content_length",
9595         FT_UINT32, BASE_DEC, NULL, 0,
9596         "ContentLength", HFILL }},
9597     { &hf_p1_encoded_information_types_constraints,
9598       { "encoded-information-types-constraints", "p1.encoded_information_types_constraints_element",
9599         FT_NONE, BASE_NONE, NULL, 0,
9600         "EncodedInformationTypesConstraints", HFILL }},
9601     { &hf_p1_security_labels,
9602       { "security-labels", "p1.security_labels",
9603         FT_UINT32, BASE_DEC, NULL, 0,
9604         "SecurityContext", HFILL }},
9605     { &hf_p1_class_priority,
9606       { "priority", "p1.priority",
9607         FT_UINT32, BASE_DEC, NULL, 0,
9608         "SET_OF_Priority", HFILL }},
9609     { &hf_p1_class_priority_item,
9610       { "Priority", "p1.Priority",
9611         FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9612         NULL, HFILL }},
9613     { &hf_p1_objects,
9614       { "objects", "p1.objects",
9615         FT_UINT32, BASE_DEC, VALS(p1_T_objects_vals), 0,
9616         NULL, HFILL }},
9617     { &hf_p1_applies_only_to,
9618       { "applies-only-to", "p1.applies_only_to",
9619         FT_UINT32, BASE_DEC, NULL, 0,
9620         "SEQUENCE_OF_Restriction", HFILL }},
9621     { &hf_p1_applies_only_to_item,
9622       { "Restriction", "p1.Restriction_element",
9623         FT_NONE, BASE_NONE, NULL, 0,
9624         NULL, HFILL }},
9625     { &hf_p1_unacceptable_eits,
9626       { "unacceptable-eits", "p1.unacceptable_eits",
9627         FT_UINT32, BASE_DEC, NULL, 0,
9628         "ExtendedEncodedInformationTypes", HFILL }},
9629     { &hf_p1_acceptable_eits,
9630       { "acceptable-eits", "p1.acceptable_eits",
9631         FT_UINT32, BASE_DEC, NULL, 0,
9632         "ExtendedEncodedInformationTypes", HFILL }},
9633     { &hf_p1_exclusively_acceptable_eits,
9634       { "exclusively-acceptable-eits", "p1.exclusively_acceptable_eits",
9635         FT_UINT32, BASE_DEC, NULL, 0,
9636         "ExtendedEncodedInformationTypes", HFILL }},
9637     { &hf_p1_RestrictedDelivery_item,
9638       { "Restriction", "p1.Restriction_element",
9639         FT_NONE, BASE_NONE, NULL, 0,
9640         NULL, HFILL }},
9641     { &hf_p1_permitted,
9642       { "permitted", "p1.permitted",
9643         FT_BOOLEAN, BASE_NONE, NULL, 0,
9644         "BOOLEAN", HFILL }},
9645     { &hf_p1_source_type,
9646       { "source-type", "p1.source_type",
9647         FT_BYTES, BASE_NONE, NULL, 0,
9648         NULL, HFILL }},
9649     { &hf_p1_source_name,
9650       { "source-name", "p1.source_name",
9651         FT_UINT32, BASE_DEC, VALS(p1_ExactOrPattern_vals), 0,
9652         "ExactOrPattern", HFILL }},
9653     { &hf_p1_exact_match,
9654       { "exact-match", "p1.exact_match_element",
9655         FT_NONE, BASE_NONE, NULL, 0,
9656         "ORName", HFILL }},
9657     { &hf_p1_pattern_match,
9658       { "pattern-match", "p1.pattern_match_element",
9659         FT_NONE, BASE_NONE, NULL, 0,
9660         "ORName", HFILL }},
9661     { &hf_p1_standard_parameters,
9662       { "standard-parameters", "p1.standard_parameters",
9663         FT_BYTES, BASE_NONE, NULL, 0,
9664         NULL, HFILL }},
9665     { &hf_p1_type_extensions,
9666       { "extensions", "p1.extensions",
9667         FT_UINT32, BASE_DEC, NULL, 0,
9668         "T_type_extensions", HFILL }},
9669     { &hf_p1_type_extensions_item,
9670       { "extensions item", "p1.extensions_item",
9671         FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9672         "T_type_extensions_item", HFILL }},
9673     { &hf_p1_originator_name_01,
9674       { "originator-name", "p1.originator_name_element",
9675         FT_NONE, BASE_NONE, NULL, 0,
9676         "OriginatorName", HFILL }},
9677     { &hf_p1_submission_recipient_name,
9678       { "recipient-name", "p1.recipient_name_element",
9679         FT_NONE, BASE_NONE, NULL, 0,
9680         "RecipientName", HFILL }},
9681     { &hf_p1_originator_report_request,
9682       { "originator-report-request", "p1.originator_report_request",
9683         FT_BYTES, BASE_NONE, NULL, 0,
9684         "OriginatorReportRequest", HFILL }},
9685     { &hf_p1_probe_recipient_name,
9686       { "recipient-name", "p1.recipient_name_element",
9687         FT_NONE, BASE_NONE, NULL, 0,
9688         "RecipientName", HFILL }},
9689     { &hf_p1_message_delivery_identifier,
9690       { "message-delivery-identifier", "p1.message_delivery_identifier_element",
9691         FT_NONE, BASE_NONE, NULL, 0,
9692         "MessageDeliveryIdentifier", HFILL }},
9693     { &hf_p1_message_delivery_time,
9694       { "message-delivery-time", "p1.message_delivery_time",
9695         FT_STRING, BASE_NONE, NULL, 0,
9696         "MessageDeliveryTime", HFILL }},
9697     { &hf_p1_other_fields,
9698       { "other-fields", "p1.other_fields_element",
9699         FT_NONE, BASE_NONE, NULL, 0,
9700         "OtherMessageDeliveryFields", HFILL }},
9701     { &hf_p1_delivered_content_type,
9702       { "content-type", "p1.content_type",
9703         FT_UINT32, BASE_DEC, VALS(p1_DeliveredContentType_vals), 0,
9704         "DeliveredContentType", HFILL }},
9705     { &hf_p1_delivered_originator_name,
9706       { "originator-name", "p1.originator_name_element",
9707         FT_NONE, BASE_NONE, NULL, 0,
9708         "DeliveredOriginatorName", HFILL }},
9709     { &hf_p1_delivery_flags,
9710       { "delivery-flags", "p1.delivery_flags",
9711         FT_BYTES, BASE_NONE, NULL, 0,
9712         "DeliveryFlags", HFILL }},
9713     { &hf_p1_other_recipient_names,
9714       { "other-recipient-names", "p1.other_recipient_names",
9715         FT_UINT32, BASE_DEC, NULL, 0,
9716         "OtherRecipientNames", HFILL }},
9717     { &hf_p1_this_recipient_name,
9718       { "this-recipient-name", "p1.this_recipient_name_element",
9719         FT_NONE, BASE_NONE, NULL, 0,
9720         "ThisRecipientName", HFILL }},
9721     { &hf_p1_originally_intended_recipient_name,
9722       { "originally-intended-recipient-name", "p1.originally_intended_recipient_name_element",
9723         FT_NONE, BASE_NONE, NULL, 0,
9724         "OriginallyIntendedRecipientName", HFILL }},
9725     { &hf_p1_subject_submission_identifier,
9726       { "subject-submission-identifier", "p1.subject_submission_identifier_element",
9727         FT_NONE, BASE_NONE, NULL, 0,
9728         "SubjectSubmissionIdentifier", HFILL }},
9729     { &hf_p1_actual_recipient_name,
9730       { "actual-recipient-name", "p1.actual_recipient_name_element",
9731         FT_NONE, BASE_NONE, NULL, 0,
9732         "ActualRecipientName", HFILL }},
9733     { &hf_p1_delivery_report_type,
9734       { "report-type", "p1.report_type",
9735         FT_UINT32, BASE_DEC, VALS(p1_ReportType_vals), 0,
9736         "ReportType", HFILL }},
9737     { &hf_p1_delivery,
9738       { "delivery", "p1.delivery_element",
9739         FT_NONE, BASE_NONE, NULL, 0,
9740         "DeliveryReport", HFILL }},
9741     { &hf_p1_non_delivery,
9742       { "non-delivery", "p1.non_delivery_element",
9743         FT_NONE, BASE_NONE, NULL, 0,
9744         "NonDeliveryReport", HFILL }},
9745     { &hf_p1_type_of_MTS_user,
9746       { "type-of-MTS-user", "p1.type_of_MTS_user",
9747         FT_UINT32, BASE_DEC, VALS(p1_TypeOfMTSUser_vals), 0,
9748         "TypeOfMTSUser", HFILL }},
9749     { &hf_p1_non_delivery_reason_code,
9750       { "non-delivery-reason-code", "p1.non_delivery_reason_code",
9751         FT_UINT32, BASE_DEC, VALS(p1_NonDeliveryReasonCode_vals), 0,
9752         "NonDeliveryReasonCode", HFILL }},
9753     { &hf_p1_non_delivery_diagnostic_code,
9754       { "non-delivery-diagnostic-code", "p1.non_delivery_diagnostic_code",
9755         FT_UINT32, BASE_DEC, VALS(p1_NonDeliveryDiagnosticCode_vals), 0,
9756         "NonDeliveryDiagnosticCode", HFILL }},
9757     { &hf_p1_ContentTypes_item,
9758       { "ContentType", "p1.ContentType",
9759         FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9760         NULL, HFILL }},
9761     { &hf_p1_built_in,
9762       { "built-in", "p1.built_in",
9763         FT_UINT32, BASE_DEC, VALS(p1_BuiltInContentType_U_vals), 0,
9764         "BuiltInContentType", HFILL }},
9765     { &hf_p1_extended,
9766       { "extended", "p1.extended",
9767         FT_OID, BASE_NONE, NULL, 0,
9768         "ExtendedContentType", HFILL }},
9769     { &hf_p1_OtherRecipientNames_item,
9770       { "OtherRecipientName", "p1.OtherRecipientName_element",
9771         FT_NONE, BASE_NONE, NULL, 0,
9772         NULL, HFILL }},
9773     { &hf_p1_standard_extension,
9774       { "standard-extension", "p1.standard_extension",
9775         FT_INT32, BASE_DEC, VALS(p1_StandardExtension_vals), 0,
9776         "StandardExtension", HFILL }},
9777     { &hf_p1_private_extension,
9778       { "private-extension", "p1.private_extension",
9779         FT_OID, BASE_NONE, NULL, 0,
9780         NULL, HFILL }},
9781     { &hf_p1_extension_type,
9782       { "type", "p1.type",
9783         FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9784         "ExtensionType", HFILL }},
9785     { &hf_p1_criticality,
9786       { "criticality", "p1.criticality",
9787         FT_BYTES, BASE_NONE, NULL, 0,
9788         NULL, HFILL }},
9789     { &hf_p1_extension_value,
9790       { "value", "p1.value_element",
9791         FT_NONE, BASE_NONE, NULL, 0,
9792         "ExtensionValue", HFILL }},
9793     { &hf_p1_RequestedDeliveryMethod_item,
9794       { "RequestedDeliveryMethod item", "p1.RequestedDeliveryMethod_item",
9795         FT_UINT32, BASE_DEC, VALS(p1_RequestedDeliveryMethod_item_vals), 0,
9796         NULL, HFILL }},
9797     { &hf_p1_ia5text,
9798       { "ia5text", "p1.ia5text",
9799         FT_STRING, BASE_NONE, NULL, 0,
9800         "IA5String", HFILL }},
9801     { &hf_p1_octets,
9802       { "octets", "p1.octets",
9803         FT_BYTES, BASE_NONE, NULL, 0,
9804         "OCTET_STRING", HFILL }},
9805     { &hf_p1_RedirectionHistory_item,
9806       { "Redirection", "p1.Redirection_element",
9807         FT_NONE, BASE_NONE, NULL, 0,
9808         NULL, HFILL }},
9809     { &hf_p1_intended_recipient_name,
9810       { "intended-recipient-name", "p1.intended_recipient_name_element",
9811         FT_NONE, BASE_NONE, NULL, 0,
9812         "IntendedRecipientName", HFILL }},
9813     { &hf_p1_redirection_reason,
9814       { "redirection-reason", "p1.redirection_reason",
9815         FT_UINT32, BASE_DEC, VALS(p1_RedirectionReason_vals), 0,
9816         "RedirectionReason", HFILL }},
9817     { &hf_p1_intended_recipient,
9818       { "intended-recipient", "p1.intended_recipient_element",
9819         FT_NONE, BASE_NONE, NULL, 0,
9820         "ORAddressAndOptionalDirectoryName", HFILL }},
9821     { &hf_p1_redirection_time,
9822       { "redirection-time", "p1.redirection_time",
9823         FT_STRING, BASE_NONE, NULL, 0,
9824         "Time", HFILL }},
9825     { &hf_p1_DLExpansionHistory_item,
9826       { "DLExpansion", "p1.DLExpansion_element",
9827         FT_NONE, BASE_NONE, NULL, 0,
9828         NULL, HFILL }},
9829     { &hf_p1_dl,
9830       { "dl", "p1.dl_element",
9831         FT_NONE, BASE_NONE, NULL, 0,
9832         "ORAddressAndOptionalDirectoryName", HFILL }},
9833     { &hf_p1_dl_expansion_time,
9834       { "dl-expansion-time", "p1.dl_expansion_time",
9835         FT_STRING, BASE_NONE, NULL, 0,
9836         "Time", HFILL }},
9837     { &hf_p1_OriginatorAndDLExpansionHistory_item,
9838       { "OriginatorAndDLExpansion", "p1.OriginatorAndDLExpansion_element",
9839         FT_NONE, BASE_NONE, NULL, 0,
9840         NULL, HFILL }},
9841     { &hf_p1_originator_or_dl_name,
9842       { "originator-or-dl-name", "p1.originator_or_dl_name_element",
9843         FT_NONE, BASE_NONE, NULL, 0,
9844         "ORAddressAndOptionalDirectoryName", HFILL }},
9845     { &hf_p1_origination_or_expansion_time,
9846       { "origination-or-expansion-time", "p1.origination_or_expansion_time",
9847         FT_STRING, BASE_NONE, NULL, 0,
9848         "Time", HFILL }},
9849     { &hf_p1_report_type,
9850       { "report-type", "p1.report_type",
9851         FT_UINT32, BASE_DEC, VALS(p1_T_report_type_vals), 0,
9852         "T_report_type", HFILL }},
9853     { &hf_p1_report_type_delivery,
9854       { "delivery", "p1.delivery_element",
9855         FT_NONE, BASE_NONE, NULL, 0,
9856         "PerRecipientDeliveryReportFields", HFILL }},
9857     { &hf_p1_non_delivery_report,
9858       { "non-delivery", "p1.non_delivery_element",
9859         FT_NONE, BASE_NONE, NULL, 0,
9860         "PerRecipientNonDeliveryReportFields", HFILL }},
9861     { &hf_p1_domain,
9862       { "domain", "p1.domain_element",
9863         FT_NONE, BASE_NONE, NULL, 0,
9864         "GlobalDomainIdentifier", HFILL }},
9865     { &hf_p1_mta_directory_name,
9866       { "mta-directory-name", "p1.mta_directory_name",
9867         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9868         "Name", HFILL }},
9869     { &hf_p1_ExtendedCertificates_item,
9870       { "ExtendedCertificate", "p1.ExtendedCertificate",
9871         FT_UINT32, BASE_DEC, VALS(p1_ExtendedCertificate_vals), 0,
9872         NULL, HFILL }},
9873     { &hf_p1_directory_entry,
9874       { "directory-entry", "p1.directory_entry",
9875         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9876         "Name", HFILL }},
9877     { &hf_p1_DLExemptedRecipients_item,
9878       { "ORAddressAndOrDirectoryName", "p1.ORAddressAndOrDirectoryName_element",
9879         FT_NONE, BASE_NONE, NULL, 0,
9880         NULL, HFILL }},
9881     { &hf_p1_encryption_recipient,
9882       { "encryption-recipient", "p1.encryption_recipient_element",
9883         FT_NONE, BASE_NONE, NULL, 0,
9884         "CertificateAssertion", HFILL }},
9885     { &hf_p1_encryption_originator,
9886       { "encryption-originator", "p1.encryption_originator_element",
9887         FT_NONE, BASE_NONE, NULL, 0,
9888         "CertificateAssertion", HFILL }},
9889     { &hf_p1_selectors_content_integrity_check,
9890       { "content-integrity-check", "p1.content_integrity_check_element",
9891         FT_NONE, BASE_NONE, NULL, 0,
9892         "CertificateAssertion", HFILL }},
9893     { &hf_p1_token_signature,
9894       { "token-signature", "p1.token_signature_element",
9895         FT_NONE, BASE_NONE, NULL, 0,
9896         "CertificateAssertion", HFILL }},
9897     { &hf_p1_message_origin_authentication,
9898       { "message-origin-authentication", "p1.message_origin_authentication_element",
9899         FT_NONE, BASE_NONE, NULL, 0,
9900         "CertificateAssertion", HFILL }},
9901     { &hf_p1_local_identifier,
9902       { "local-identifier", "p1.local_identifier",
9903         FT_STRING, BASE_NONE, NULL, 0,
9904         "LocalIdentifier", HFILL }},
9905     { &hf_p1_numeric_private_domain_identifier,
9906       { "numeric", "p1.numeric",
9907         FT_STRING, BASE_NONE, NULL, 0,
9908         "T_numeric_private_domain_identifier", HFILL }},
9909     { &hf_p1_printable_private_domain_identifier,
9910       { "printable", "p1.printable",
9911         FT_STRING, BASE_NONE, NULL, 0,
9912         "T_printable_private_domain_identifier", HFILL }},
9913     { &hf_p1_built_in_standard_attributes,
9914       { "built-in-standard-attributes", "p1.built_in_standard_attributes_element",
9915         FT_NONE, BASE_NONE, NULL, 0,
9916         "BuiltInStandardAttributes", HFILL }},
9917     { &hf_p1_built_in_domain_defined_attributes,
9918       { "built-in-domain-defined-attributes", "p1.built_in_domain_defined_attributes",
9919         FT_UINT32, BASE_DEC, NULL, 0,
9920         "BuiltInDomainDefinedAttributes", HFILL }},
9921     { &hf_p1_extension_attributes,
9922       { "extension-attributes", "p1.extension_attributes",
9923         FT_UINT32, BASE_DEC, NULL, 0,
9924         "ExtensionAttributes", HFILL }},
9925     { &hf_p1_network_address,
9926       { "network-address", "p1.network_address",
9927         FT_STRING, BASE_NONE, NULL, 0,
9928         "NetworkAddress", HFILL }},
9929     { &hf_p1_terminal_identifier,
9930       { "terminal-identifier", "p1.terminal_identifier",
9931         FT_STRING, BASE_NONE, NULL, 0,
9932         "TerminalIdentifier", HFILL }},
9933     { &hf_p1_private_domain_name,
9934       { "private-domain-name", "p1.private_domain_name",
9935         FT_UINT32, BASE_DEC, VALS(p1_PrivateDomainName_vals), 0,
9936         "PrivateDomainName", HFILL }},
9937     { &hf_p1_organization_name,
9938       { "organization-name", "p1.organization_name",
9939         FT_STRING, BASE_NONE, NULL, 0,
9940         "OrganizationName", HFILL }},
9941     { &hf_p1_numeric_user_identifier,
9942       { "numeric-user-identifier", "p1.numeric_user_identifier",
9943         FT_STRING, BASE_NONE, NULL, 0,
9944         "NumericUserIdentifier", HFILL }},
9945     { &hf_p1_personal_name,
9946       { "personal-name", "p1.personal_name_element",
9947         FT_NONE, BASE_NONE, NULL, 0,
9948         "PersonalName", HFILL }},
9949     { &hf_p1_organizational_unit_names,
9950       { "organizational-unit-names", "p1.organizational_unit_names",
9951         FT_UINT32, BASE_DEC, NULL, 0,
9952         "OrganizationalUnitNames", HFILL }},
9953     { &hf_p1_x121_dcc_code,
9954       { "x121-dcc-code", "p1.x121_dcc_code",
9955         FT_STRING, BASE_NONE, NULL, 0,
9956         NULL, HFILL }},
9957     { &hf_p1_iso_3166_alpha2_code,
9958       { "iso-3166-alpha2-code", "p1.iso_3166_alpha2_code",
9959         FT_STRING, BASE_NONE, NULL, 0,
9960         NULL, HFILL }},
9961     { &hf_p1_numeric,
9962       { "numeric", "p1.numeric",
9963         FT_STRING, BASE_NONE, NULL, 0,
9964         NULL, HFILL }},
9965     { &hf_p1_printable,
9966       { "printable", "p1.printable",
9967         FT_STRING, BASE_NONE, NULL, 0,
9968         NULL, HFILL }},
9969     { &hf_p1_numeric_private_domain_name,
9970       { "numeric", "p1.numeric",
9971         FT_STRING, BASE_NONE, NULL, 0,
9972         "T_numeric_private_domain_name", HFILL }},
9973     { &hf_p1_printable_private_domain_name,
9974       { "printable", "p1.printable",
9975         FT_STRING, BASE_NONE, NULL, 0,
9976         "T_printable_private_domain_name", HFILL }},
9977     { &hf_p1_printable_surname,
9978       { "surname", "p1.surname",
9979         FT_STRING, BASE_NONE, NULL, 0,
9980         "T_printable_surname", HFILL }},
9981     { &hf_p1_printable_given_name,
9982       { "given-name", "p1.given_name",
9983         FT_STRING, BASE_NONE, NULL, 0,
9984         "T_printable_given_name", HFILL }},
9985     { &hf_p1_printable_initials,
9986       { "initials", "p1.initials",
9987         FT_STRING, BASE_NONE, NULL, 0,
9988         "T_printable_initials", HFILL }},
9989     { &hf_p1_printable_generation_qualifier,
9990       { "generation-qualifier", "p1.generation_qualifier",
9991         FT_STRING, BASE_NONE, NULL, 0,
9992         "T_printable_generation_qualifier", HFILL }},
9993     { &hf_p1_OrganizationalUnitNames_item,
9994       { "OrganizationalUnitName", "p1.OrganizationalUnitName",
9995         FT_STRING, BASE_NONE, NULL, 0,
9996         NULL, HFILL }},
9997     { &hf_p1_BuiltInDomainDefinedAttributes_item,
9998       { "BuiltInDomainDefinedAttribute", "p1.BuiltInDomainDefinedAttribute_element",
9999         FT_NONE, BASE_NONE, NULL, 0,
10000         NULL, HFILL }},
10001     { &hf_p1_printable_type,
10002       { "type", "p1.type",
10003         FT_STRING, BASE_NONE, NULL, 0,
10004         "T_printable_type", HFILL }},
10005     { &hf_p1_printable_value,
10006       { "value", "p1.value",
10007         FT_STRING, BASE_NONE, NULL, 0,
10008         "T_printable_value", HFILL }},
10009     { &hf_p1_ExtensionAttributes_item,
10010       { "ExtensionAttribute", "p1.ExtensionAttribute_element",
10011         FT_NONE, BASE_NONE, NULL, 0,
10012         NULL, HFILL }},
10013     { &hf_p1_extension_attribute_type,
10014       { "extension-attribute-type", "p1.extension_attribute_type",
10015         FT_INT32, BASE_DEC, VALS(p1_ExtensionAttributeType_vals), 0,
10016         "ExtensionAttributeType", HFILL }},
10017     { &hf_p1_extension_attribute_value,
10018       { "extension-attribute-value", "p1.extension_attribute_value_element",
10019         FT_NONE, BASE_NONE, NULL, 0,
10020         NULL, HFILL }},
10021     { &hf_p1_teletex_surname,
10022       { "surname", "p1.surname",
10023         FT_STRING, BASE_NONE, NULL, 0,
10024         "T_teletex_surname", HFILL }},
10025     { &hf_p1_teletex_given_name,
10026       { "given-name", "p1.given_name",
10027         FT_STRING, BASE_NONE, NULL, 0,
10028         "T_teletex_given_name", HFILL }},
10029     { &hf_p1_teletex_initials,
10030       { "initials", "p1.initials",
10031         FT_STRING, BASE_NONE, NULL, 0,
10032         "T_teletex_initials", HFILL }},
10033     { &hf_p1_teletex_generation_qualifier,
10034       { "generation-qualifier", "p1.generation_qualifier",
10035         FT_STRING, BASE_NONE, NULL, 0,
10036         "T_teletex_generation_qualifier", HFILL }},
10037     { &hf_p1_universal_surname,
10038       { "surname", "p1.surname_element",
10039         FT_NONE, BASE_NONE, NULL, 0,
10040         "UniversalOrBMPString", HFILL }},
10041     { &hf_p1_universal_given_name,
10042       { "given-name", "p1.given_name_element",
10043         FT_NONE, BASE_NONE, NULL, 0,
10044         "UniversalOrBMPString", HFILL }},
10045     { &hf_p1_universal_initials,
10046       { "initials", "p1.initials_element",
10047         FT_NONE, BASE_NONE, NULL, 0,
10048         "UniversalOrBMPString", HFILL }},
10049     { &hf_p1_universal_generation_qualifier,
10050       { "generation-qualifier", "p1.generation_qualifier_element",
10051         FT_NONE, BASE_NONE, NULL, 0,
10052         "UniversalOrBMPString", HFILL }},
10053     { &hf_p1_TeletexOrganizationalUnitNames_item,
10054       { "TeletexOrganizationalUnitName", "p1.TeletexOrganizationalUnitName",
10055         FT_STRING, BASE_NONE, NULL, 0,
10056         NULL, HFILL }},
10057     { &hf_p1_UniversalOrganizationalUnitNames_item,
10058       { "UniversalOrganizationalUnitName", "p1.UniversalOrganizationalUnitName_element",
10059         FT_NONE, BASE_NONE, NULL, 0,
10060         NULL, HFILL }},
10061     { &hf_p1_character_encoding,
10062       { "character-encoding", "p1.character_encoding",
10063         FT_UINT32, BASE_DEC, VALS(p1_T_character_encoding_vals), 0,
10064         NULL, HFILL }},
10065     { &hf_p1_two_octets,
10066       { "two-octets", "p1.two_octets",
10067         FT_STRING, BASE_NONE, NULL, 0,
10068         "BMPString_SIZE_1_ub_string_length", HFILL }},
10069     { &hf_p1_four_octets,
10070       { "four-octets", "p1.four_octets",
10071         FT_STRING, BASE_NONE, NULL, 0,
10072         "UniversalString_SIZE_1_ub_string_length", HFILL }},
10073     { &hf_p1_iso_639_language_code,
10074       { "iso-639-language-code", "p1.iso_639_language_code",
10075         FT_STRING, BASE_NONE, NULL, 0,
10076         "PrintableString_SIZE_CONSTR001", HFILL }},
10077     { &hf_p1_x121_dcc_code_01,
10078       { "x121-dcc-code", "p1.x121_dcc_code",
10079         FT_STRING, BASE_NONE, NULL, 0,
10080         "T_x121_dcc_code_01", HFILL }},
10081     { &hf_p1_iso_3166_alpha2_code_01,
10082       { "iso-3166-alpha2-code", "p1.iso_3166_alpha2_code",
10083         FT_STRING, BASE_NONE, NULL, 0,
10084         "T_iso_3166_alpha2_code_01", HFILL }},
10085     { &hf_p1_numeric_code,
10086       { "numeric-code", "p1.numeric_code",
10087         FT_STRING, BASE_NONE, NULL, 0,
10088         NULL, HFILL }},
10089     { &hf_p1_printable_code,
10090       { "printable-code", "p1.printable_code",
10091         FT_STRING, BASE_NONE, NULL, 0,
10092         "PrintableString_SIZE_1_ub_postal_code_length", HFILL }},
10093     { &hf_p1_printable_address,
10094       { "printable-address", "p1.printable_address",
10095         FT_UINT32, BASE_DEC, NULL, 0,
10096         NULL, HFILL }},
10097     { &hf_p1_printable_address_item,
10098       { "printable-address item", "p1.printable_address_item",
10099         FT_STRING, BASE_NONE, NULL, 0,
10100         "PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10101     { &hf_p1_teletex_string,
10102       { "teletex-string", "p1.teletex_string",
10103         FT_STRING, BASE_NONE, NULL, 0,
10104         "TeletexString_SIZE_1_ub_unformatted_address_length", HFILL }},
10105     { &hf_p1_printable_string,
10106       { "printable-string", "p1.printable_string",
10107         FT_STRING, BASE_NONE, NULL, 0,
10108         "PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10109     { &hf_p1_pds_teletex_string,
10110       { "teletex-string", "p1.teletex_string",
10111         FT_STRING, BASE_NONE, NULL, 0,
10112         "TeletexString_SIZE_1_ub_pds_parameter_length", HFILL }},
10113     { &hf_p1_e163_4_address,
10114       { "e163-4-address", "p1.e163_4_address_element",
10115         FT_NONE, BASE_NONE, NULL, 0,
10116         NULL, HFILL }},
10117     { &hf_p1_number,
10118       { "number", "p1.number",
10119         FT_STRING, BASE_NONE, NULL, 0,
10120         "NumericString_SIZE_1_ub_e163_4_number_length", HFILL }},
10121     { &hf_p1_sub_address,
10122       { "sub-address", "p1.sub_address",
10123         FT_STRING, BASE_NONE, NULL, 0,
10124         "NumericString_SIZE_1_ub_e163_4_sub_address_length", HFILL }},
10125     { &hf_p1_psap_address,
10126       { "psap-address", "p1.psap_address_element",
10127         FT_NONE, BASE_NONE, NULL, 0,
10128         "PresentationAddress", HFILL }},
10129     { &hf_p1_TeletexDomainDefinedAttributes_item,
10130       { "TeletexDomainDefinedAttribute", "p1.TeletexDomainDefinedAttribute_element",
10131         FT_NONE, BASE_NONE, NULL, 0,
10132         NULL, HFILL }},
10133     { &hf_p1_type,
10134       { "type", "p1.type",
10135         FT_STRING, BASE_NONE, NULL, 0,
10136         NULL, HFILL }},
10137     { &hf_p1_teletex_value,
10138       { "value", "p1.value",
10139         FT_STRING, BASE_NONE, NULL, 0,
10140         "T_teletex_value", HFILL }},
10141     { &hf_p1_UniversalDomainDefinedAttributes_item,
10142       { "UniversalDomainDefinedAttribute", "p1.UniversalDomainDefinedAttribute_element",
10143         FT_NONE, BASE_NONE, NULL, 0,
10144         NULL, HFILL }},
10145     { &hf_p1_universal_type,
10146       { "type", "p1.type_element",
10147         FT_NONE, BASE_NONE, NULL, 0,
10148         "UniversalOrBMPString", HFILL }},
10149     { &hf_p1_universal_value,
10150       { "value", "p1.value_element",
10151         FT_NONE, BASE_NONE, NULL, 0,
10152         "UniversalOrBMPString", HFILL }},
10153     { &hf_p1_ExtendedEncodedInformationTypes_item,
10154       { "ExtendedEncodedInformationType", "p1.ExtendedEncodedInformationType",
10155         FT_OID, BASE_NONE, NULL, 0,
10156         NULL, HFILL }},
10157     { &hf_p1_g3_facsimile,
10158       { "g3-facsimile", "p1.g3_facsimile",
10159         FT_BYTES, BASE_NONE, NULL, 0,
10160         "G3FacsimileNonBasicParameters", HFILL }},
10161     { &hf_p1_teletex,
10162       { "teletex", "p1.teletex_element",
10163         FT_NONE, BASE_NONE, NULL, 0,
10164         "TeletexNonBasicParameters", HFILL }},
10165     { &hf_p1_graphic_character_sets,
10166       { "graphic-character-sets", "p1.graphic_character_sets",
10167         FT_STRING, BASE_NONE, NULL, 0,
10168         "TeletexString", HFILL }},
10169     { &hf_p1_control_character_sets,
10170       { "control-character-sets", "p1.control_character_sets",
10171         FT_STRING, BASE_NONE, NULL, 0,
10172         "TeletexString", HFILL }},
10173     { &hf_p1_page_formats,
10174       { "page-formats", "p1.page_formats",
10175         FT_BYTES, BASE_NONE, NULL, 0,
10176         "OCTET_STRING", HFILL }},
10177     { &hf_p1_miscellaneous_terminal_capabilities,
10178       { "miscellaneous-terminal-capabilities", "p1.miscellaneous_terminal_capabilities",
10179         FT_STRING, BASE_NONE, NULL, 0,
10180         "TeletexString", HFILL }},
10181     { &hf_p1_private_use,
10182       { "private-use", "p1.private_use",
10183         FT_BYTES, BASE_NONE, NULL, 0,
10184         "OCTET_STRING", HFILL }},
10185     { &hf_p1_token_type_identifier,
10186       { "token-type-identifier", "p1.token_type_identifier",
10187         FT_OID, BASE_NONE, NULL, 0,
10188         "TokenTypeIdentifier", HFILL }},
10189     { &hf_p1_token,
10190       { "token", "p1.token_element",
10191         FT_NONE, BASE_NONE, NULL, 0,
10192         "TokenTypeData", HFILL }},
10193     { &hf_p1_signature_algorithm_identifier,
10194       { "signature-algorithm-identifier", "p1.signature_algorithm_identifier_element",
10195         FT_NONE, BASE_NONE, NULL, 0,
10196         "AlgorithmIdentifier", HFILL }},
10197     { &hf_p1_name,
10198       { "name", "p1.name",
10199         FT_UINT32, BASE_DEC, VALS(p1_T_name_vals), 0,
10200         NULL, HFILL }},
10201     { &hf_p1_token_recipient_name,
10202       { "recipient-name", "p1.recipient_name_element",
10203         FT_NONE, BASE_NONE, NULL, 0,
10204         "RecipientName", HFILL }},
10205     { &hf_p1_token_mta,
10206       { "mta", "p1.mta_element",
10207         FT_NONE, BASE_NONE, NULL, 0,
10208         "MTANameAndOptionalGDI", HFILL }},
10209     { &hf_p1_time,
10210       { "time", "p1.time",
10211         FT_STRING, BASE_NONE, NULL, 0,
10212         NULL, HFILL }},
10213     { &hf_p1_signed_data,
10214       { "signed-data", "p1.signed_data_element",
10215         FT_NONE, BASE_NONE, NULL, 0,
10216         "TokenData", HFILL }},
10217     { &hf_p1_encryption_algorithm_identifier,
10218       { "encryption-algorithm-identifier", "p1.encryption_algorithm_identifier_element",
10219         FT_NONE, BASE_NONE, NULL, 0,
10220         "AlgorithmIdentifier", HFILL }},
10221     { &hf_p1_encrypted_data,
10222       { "encrypted-data", "p1.encrypted_data",
10223         FT_BYTES, BASE_NONE, NULL, 0,
10224         "BIT_STRING", HFILL }},
10225     { &hf_p1_asymmetric_token_data,
10226       { "asymmetric-token-data", "p1.asymmetric_token_data_element",
10227         FT_NONE, BASE_NONE, NULL, 0,
10228         "AsymmetricTokenData", HFILL }},
10229     { &hf_p1_algorithm_identifier,
10230       { "algorithm-identifier", "p1.algorithm_identifier_element",
10231         FT_NONE, BASE_NONE, NULL, 0,
10232         "AlgorithmIdentifier", HFILL }},
10233     { &hf_p1_token_data_type,
10234       { "type", "p1.type",
10235         FT_INT32, BASE_DEC, VALS(p1_TokenDataType_vals), 0,
10236         "TokenDataType", HFILL }},
10237     { &hf_p1_value,
10238       { "value", "p1.value_element",
10239         FT_NONE, BASE_NONE, NULL, 0,
10240         NULL, HFILL }},
10241     { &hf_p1_content_confidentiality_algorithm_identifier,
10242       { "content-confidentiality-algorithm-identifier", "p1.content_confidentiality_algorithm_identifier_element",
10243         FT_NONE, BASE_NONE, NULL, 0,
10244         "ContentConfidentialityAlgorithmIdentifier", HFILL }},
10245     { &hf_p1_content_integrity_check,
10246       { "content-integrity-check", "p1.content_integrity_check_element",
10247         FT_NONE, BASE_NONE, NULL, 0,
10248         "ContentIntegrityCheck", HFILL }},
10249     { &hf_p1_message_security_label,
10250       { "message-security-label", "p1.message_security_label_element",
10251         FT_NONE, BASE_NONE, NULL, 0,
10252         "MessageSecurityLabel", HFILL }},
10253     { &hf_p1_proof_of_delivery_request,
10254       { "proof-of-delivery-request", "p1.proof_of_delivery_request",
10255         FT_UINT32, BASE_DEC, VALS(p1_ProofOfDeliveryRequest_vals), 0,
10256         "ProofOfDeliveryRequest", HFILL }},
10257     { &hf_p1_message_sequence_number,
10258       { "message-sequence-number", "p1.message_sequence_number",
10259         FT_INT32, BASE_DEC, NULL, 0,
10260         "INTEGER", HFILL }},
10261     { &hf_p1_content_confidentiality_key,
10262       { "content-confidentiality-key", "p1.content_confidentiality_key",
10263         FT_BYTES, BASE_NONE, NULL, 0,
10264         "EncryptionKey", HFILL }},
10265     { &hf_p1_content_integrity_key,
10266       { "content-integrity-key", "p1.content_integrity_key",
10267         FT_BYTES, BASE_NONE, NULL, 0,
10268         "EncryptionKey", HFILL }},
10269     { &hf_p1_security_policy_identifier,
10270       { "security-policy-identifier", "p1.security_policy_identifier",
10271         FT_OID, BASE_NONE, NULL, 0,
10272         "SecurityPolicyIdentifier", HFILL }},
10273     { &hf_p1_security_classification,
10274       { "security-classification", "p1.security_classification",
10275         FT_UINT32, BASE_DEC, VALS(p1_SecurityClassification_vals), 0,
10276         "SecurityClassification", HFILL }},
10277     { &hf_p1_privacy_mark,
10278       { "privacy-mark", "p1.privacy_mark",
10279         FT_STRING, BASE_NONE, NULL, 0,
10280         "PrivacyMark", HFILL }},
10281     { &hf_p1_security_categories,
10282       { "security-categories", "p1.security_categories",
10283         FT_UINT32, BASE_DEC, NULL, 0,
10284         "SecurityCategories", HFILL }},
10285     { &hf_p1_SecurityCategories_item,
10286       { "SecurityCategory", "p1.SecurityCategory_element",
10287         FT_NONE, BASE_NONE, NULL, 0,
10288         NULL, HFILL }},
10289     { &hf_p1_category_type,
10290       { "type", "p1.type",
10291         FT_OID, BASE_NONE, NULL, 0,
10292         "SecurityCategoryIdentifier", HFILL }},
10293     { &hf_p1_category_value,
10294       { "value", "p1.value_element",
10295         FT_NONE, BASE_NONE, NULL, 0,
10296         "CategoryValue", HFILL }},
10297     { &hf_p1_mta_originator_name,
10298       { "originator-name", "p1.originator_name_element",
10299         FT_NONE, BASE_NONE, NULL, 0,
10300         "MTAOriginatorName", HFILL }},
10301     { &hf_p1_per_recipient_message_fields,
10302       { "per-recipient-fields", "p1.per_recipient_fields",
10303         FT_UINT32, BASE_DEC, NULL, 0,
10304         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields", HFILL }},
10305     { &hf_p1_per_recipient_message_fields_item,
10306       { "PerRecipientMessageTransferFields", "p1.PerRecipientMessageTransferFields_element",
10307         FT_NONE, BASE_NONE, NULL, 0,
10308         NULL, HFILL }},
10309     { &hf_p1_per_recipient_probe_transfer_fields,
10310       { "per-recipient-fields", "p1.per_recipient_fields",
10311         FT_UINT32, BASE_DEC, NULL, 0,
10312         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields", HFILL }},
10313     { &hf_p1_per_recipient_probe_transfer_fields_item,
10314       { "PerRecipientProbeTransferFields", "p1.PerRecipientProbeTransferFields_element",
10315         FT_NONE, BASE_NONE, NULL, 0,
10316         NULL, HFILL }},
10317     { &hf_p1_per_recipient_report_fields,
10318       { "per-recipient-fields", "p1.per_recipient_fields",
10319         FT_UINT32, BASE_DEC, NULL, 0,
10320         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields", HFILL }},
10321     { &hf_p1_per_recipient_report_fields_item,
10322       { "PerRecipientReportTransferFields", "p1.PerRecipientReportTransferFields_element",
10323         FT_NONE, BASE_NONE, NULL, 0,
10324         NULL, HFILL }},
10325     { &hf_p1_routing_action,
10326       { "routing-action", "p1.routing_action",
10327         FT_UINT32, BASE_DEC, VALS(p1_RoutingAction_vals), 0,
10328         "RoutingAction", HFILL }},
10329     { &hf_p1_attempted,
10330       { "attempted", "p1.attempted",
10331         FT_UINT32, BASE_DEC, VALS(p1_T_attempted_vals), 0,
10332         NULL, HFILL }},
10333     { &hf_p1_mta,
10334       { "mta", "p1.mta",
10335         FT_STRING, BASE_NONE, NULL, 0,
10336         "MTAName", HFILL }},
10337     { &hf_p1_attempted_domain,
10338       { "attempted-domain", "p1.attempted_domain_element",
10339         FT_NONE, BASE_NONE, NULL, 0,
10340         "GlobalDomainIdentifier", HFILL }},
10341     { &hf_p1_per_recipient_report_delivery_fields,
10342       { "per-recipient-fields", "p1.per_recipient_fields",
10343         FT_UINT32, BASE_DEC, NULL, 0,
10344         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields", HFILL }},
10345     { &hf_p1_per_recipient_report_delivery_fields_item,
10346       { "PerRecipientReportDeliveryFields", "p1.PerRecipientReportDeliveryFields_element",
10347         FT_NONE, BASE_NONE, NULL, 0,
10348         NULL, HFILL }},
10349     { &hf_p1_mts_originator_name,
10350       { "originator-name", "p1.originator_name_element",
10351         FT_NONE, BASE_NONE, NULL, 0,
10352         "OriginatorName", HFILL }},
10353     { &hf_p1_per_recipient_message_submission_fields,
10354       { "per-recipient-fields", "p1.per_recipient_fields",
10355         FT_UINT32, BASE_DEC, NULL, 0,
10356         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields", HFILL }},
10357     { &hf_p1_per_recipient_message_submission_fields_item,
10358       { "PerRecipientMessageSubmissionFields", "p1.PerRecipientMessageSubmissionFields_element",
10359         FT_NONE, BASE_NONE, NULL, 0,
10360         NULL, HFILL }},
10361     { &hf_p1_per_recipient_probe_submission_fields,
10362       { "per-recipient-fields", "p1.per_recipient_fields",
10363         FT_UINT32, BASE_DEC, NULL, 0,
10364         "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields", HFILL }},
10365     { &hf_p1_per_recipient_probe_submission_fields_item,
10366       { "PerRecipientProbeSubmissionFields", "p1.PerRecipientProbeSubmissionFields_element",
10367         FT_NONE, BASE_NONE, NULL, 0,
10368         NULL, HFILL }},
10369     { &hf_p1_directory_name,
10370       { "directory-name", "p1.directory_name",
10371         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10372         "Name", HFILL }},
10373     { &hf_p1_built_in_encoded_information_types,
10374       { "built-in-encoded-information-types", "p1.built_in_encoded_information_types",
10375         FT_BYTES, BASE_NONE, NULL, 0,
10376         "BuiltInEncodedInformationTypes", HFILL }},
10377     { &hf_p1_extended_encoded_information_types,
10378       { "extended-encoded-information-types", "p1.extended_encoded_information_types",
10379         FT_UINT32, BASE_DEC, NULL, 0,
10380         "ExtendedEncodedInformationTypes", HFILL }},
10381     { &hf_p1_PerRecipientIndicators_responsibility,
10382       { "responsibility", "p1.responsibility",
10383         FT_BOOLEAN, 8, NULL, 0x80,
10384         NULL, HFILL }},
10385     { &hf_p1_PerRecipientIndicators_originating_MTA_report,
10386       { "originating-MTA-report", "p1.originating-MTA-report",
10387         FT_BOOLEAN, 8, NULL, 0x40,
10388         NULL, HFILL }},
10389     { &hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report,
10390       { "originating-MTA-non-delivery-report", "p1.originating-MTA-non-delivery-report",
10391         FT_BOOLEAN, 8, NULL, 0x20,
10392         NULL, HFILL }},
10393     { &hf_p1_PerRecipientIndicators_originator_report,
10394       { "originator-report", "p1.originator-report",
10395         FT_BOOLEAN, 8, NULL, 0x10,
10396         NULL, HFILL }},
10397     { &hf_p1_PerRecipientIndicators_originator_non_delivery_report,
10398       { "originator-non-delivery-report", "p1.originator-non-delivery-report",
10399         FT_BOOLEAN, 8, NULL, 0x08,
10400         NULL, HFILL }},
10401     { &hf_p1_PerRecipientIndicators_reserved_5,
10402       { "reserved-5", "p1.reserved-5",
10403         FT_BOOLEAN, 8, NULL, 0x04,
10404         NULL, HFILL }},
10405     { &hf_p1_PerRecipientIndicators_reserved_6,
10406       { "reserved-6", "p1.reserved-6",
10407         FT_BOOLEAN, 8, NULL, 0x02,
10408         NULL, HFILL }},
10409     { &hf_p1_PerRecipientIndicators_reserved_7,
10410       { "reserved-7", "p1.reserved-7",
10411         FT_BOOLEAN, 8, NULL, 0x01,
10412         NULL, HFILL }},
10413     { &hf_p1_OtherActions_redirected,
10414       { "redirected", "p1.redirected",
10415         FT_BOOLEAN, 8, NULL, 0x80,
10416         NULL, HFILL }},
10417     { &hf_p1_OtherActions_dl_operation,
10418       { "dl-operation", "p1.dl-operation",
10419         FT_BOOLEAN, 8, NULL, 0x40,
10420         NULL, HFILL }},
10421     { &hf_p1_Operations_probe_submission_or_report_delivery,
10422       { "probe-submission-or-report-delivery", "p1.probe-submission-or-report-delivery",
10423         FT_BOOLEAN, 8, NULL, 0x80,
10424         NULL, HFILL }},
10425     { &hf_p1_Operations_message_submission_or_message_delivery,
10426       { "message-submission-or-message-delivery", "p1.message-submission-or-message-delivery",
10427         FT_BOOLEAN, 8, NULL, 0x40,
10428         NULL, HFILL }},
10429     { &hf_p1_WaitingMessages_long_content,
10430       { "long-content", "p1.long-content",
10431         FT_BOOLEAN, 8, NULL, 0x80,
10432         NULL, HFILL }},
10433     { &hf_p1_WaitingMessages_low_priority,
10434       { "low-priority", "p1.low-priority",
10435         FT_BOOLEAN, 8, NULL, 0x40,
10436         NULL, HFILL }},
10437     { &hf_p1_WaitingMessages_other_security_labels,
10438       { "other-security-labels", "p1.other-security-labels",
10439         FT_BOOLEAN, 8, NULL, 0x20,
10440         NULL, HFILL }},
10441     { &hf_p1_T_source_type_originated_by,
10442       { "originated-by", "p1.originated-by",
10443         FT_BOOLEAN, 8, NULL, 0x80,
10444         NULL, HFILL }},
10445     { &hf_p1_T_source_type_redirected_by,
10446       { "redirected-by", "p1.redirected-by",
10447         FT_BOOLEAN, 8, NULL, 0x40,
10448         NULL, HFILL }},
10449     { &hf_p1_T_source_type_dl_expanded_by,
10450       { "dl-expanded-by", "p1.dl-expanded-by",
10451         FT_BOOLEAN, 8, NULL, 0x20,
10452         NULL, HFILL }},
10453     { &hf_p1_T_standard_parameters_user_name,
10454       { "user-name", "p1.user-name",
10455         FT_BOOLEAN, 8, NULL, 0x80,
10456         NULL, HFILL }},
10457     { &hf_p1_T_standard_parameters_user_address,
10458       { "user-address", "p1.user-address",
10459         FT_BOOLEAN, 8, NULL, 0x40,
10460         NULL, HFILL }},
10461     { &hf_p1_T_standard_parameters_deliverable_class,
10462       { "deliverable-class", "p1.deliverable-class",
10463         FT_BOOLEAN, 8, NULL, 0x20,
10464         NULL, HFILL }},
10465     { &hf_p1_T_standard_parameters_default_delivery_controls,
10466       { "default-delivery-controls", "p1.default-delivery-controls",
10467         FT_BOOLEAN, 8, NULL, 0x10,
10468         NULL, HFILL }},
10469     { &hf_p1_T_standard_parameters_redirections,
10470       { "redirections", "p1.redirections",
10471         FT_BOOLEAN, 8, NULL, 0x08,
10472         NULL, HFILL }},
10473     { &hf_p1_T_standard_parameters_restricted_delivery,
10474       { "restricted-delivery", "p1.restricted-delivery",
10475         FT_BOOLEAN, 8, NULL, 0x04,
10476         NULL, HFILL }},
10477     { &hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients,
10478       { "disclosure-of-other-recipients", "p1.disclosure-of-other-recipients",
10479         FT_BOOLEAN, 8, NULL, 0x80,
10480         NULL, HFILL }},
10481     { &hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited,
10482       { "implicit-conversion-prohibited", "p1.implicit-conversion-prohibited",
10483         FT_BOOLEAN, 8, NULL, 0x40,
10484         NULL, HFILL }},
10485     { &hf_p1_PerMessageIndicators_U_alternate_recipient_allowed,
10486       { "alternate-recipient-allowed", "p1.alternate-recipient-allowed",
10487         FT_BOOLEAN, 8, NULL, 0x20,
10488         NULL, HFILL }},
10489     { &hf_p1_PerMessageIndicators_U_content_return_request,
10490       { "content-return-request", "p1.content-return-request",
10491         FT_BOOLEAN, 8, NULL, 0x10,
10492         NULL, HFILL }},
10493     { &hf_p1_PerMessageIndicators_U_reserved,
10494       { "reserved", "p1.reserved",
10495         FT_BOOLEAN, 8, NULL, 0x08,
10496         NULL, HFILL }},
10497     { &hf_p1_PerMessageIndicators_U_bit_5,
10498       { "bit-5", "p1.bit-5",
10499         FT_BOOLEAN, 8, NULL, 0x04,
10500         NULL, HFILL }},
10501     { &hf_p1_PerMessageIndicators_U_bit_6,
10502       { "bit-6", "p1.bit-6",
10503         FT_BOOLEAN, 8, NULL, 0x02,
10504         NULL, HFILL }},
10505     { &hf_p1_PerMessageIndicators_U_service_message,
10506       { "service-message", "p1.service-message",
10507         FT_BOOLEAN, 8, NULL, 0x01,
10508         NULL, HFILL }},
10509     { &hf_p1_OriginatorReportRequest_report,
10510       { "report", "p1.report",
10511         FT_BOOLEAN, 8, NULL, 0x10,
10512         NULL, HFILL }},
10513     { &hf_p1_OriginatorReportRequest_non_delivery_report,
10514       { "non-delivery-report", "p1.non-delivery-report",
10515         FT_BOOLEAN, 8, NULL, 0x08,
10516         NULL, HFILL }},
10517     { &hf_p1_DeliveryFlags_implicit_conversion_prohibited,
10518       { "implicit-conversion-prohibited", "p1.implicit-conversion-prohibited",
10519         FT_BOOLEAN, 8, NULL, 0x40,
10520         NULL, HFILL }},
10521     { &hf_p1_Criticality_for_submission,
10522       { "for-submission", "p1.for-submission",
10523         FT_BOOLEAN, 8, NULL, 0x80,
10524         NULL, HFILL }},
10525     { &hf_p1_Criticality_for_transfer,
10526       { "for-transfer", "p1.for-transfer",
10527         FT_BOOLEAN, 8, NULL, 0x40,
10528         NULL, HFILL }},
10529     { &hf_p1_Criticality_for_delivery,
10530       { "for-delivery", "p1.for-delivery",
10531         FT_BOOLEAN, 8, NULL, 0x20,
10532         NULL, HFILL }},
10533     { &hf_p1_PhysicalDeliveryModes_ordinary_mail,
10534       { "ordinary-mail", "p1.ordinary-mail",
10535         FT_BOOLEAN, 8, NULL, 0x80,
10536         NULL, HFILL }},
10537     { &hf_p1_PhysicalDeliveryModes_special_delivery,
10538       { "special-delivery", "p1.special-delivery",
10539         FT_BOOLEAN, 8, NULL, 0x40,
10540         NULL, HFILL }},
10541     { &hf_p1_PhysicalDeliveryModes_express_mail,
10542       { "express-mail", "p1.express-mail",
10543         FT_BOOLEAN, 8, NULL, 0x20,
10544         NULL, HFILL }},
10545     { &hf_p1_PhysicalDeliveryModes_counter_collection,
10546       { "counter-collection", "p1.counter-collection",
10547         FT_BOOLEAN, 8, NULL, 0x10,
10548         NULL, HFILL }},
10549     { &hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
10550       { "counter-collection-with-telephone-advice", "p1.counter-collection-with-telephone-advice",
10551         FT_BOOLEAN, 8, NULL, 0x08,
10552         NULL, HFILL }},
10553     { &hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice,
10554       { "counter-collection-with-telex-advice", "p1.counter-collection-with-telex-advice",
10555         FT_BOOLEAN, 8, NULL, 0x04,
10556         NULL, HFILL }},
10557     { &hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
10558       { "counter-collection-with-teletex-advice", "p1.counter-collection-with-teletex-advice",
10559         FT_BOOLEAN, 8, NULL, 0x02,
10560         NULL, HFILL }},
10561     { &hf_p1_PhysicalDeliveryModes_bureau_fax_delivery,
10562       { "bureau-fax-delivery", "p1.bureau-fax-delivery",
10563         FT_BOOLEAN, 8, NULL, 0x01,
10564         NULL, HFILL }},
10565     { &hf_p1_BuiltInEncodedInformationTypes_unknown,
10566       { "unknown", "p1.unknown",
10567         FT_BOOLEAN, 8, NULL, 0x80,
10568         NULL, HFILL }},
10569     { &hf_p1_BuiltInEncodedInformationTypes_ia5_text,
10570       { "ia5-text", "p1.ia5-text",
10571         FT_BOOLEAN, 8, NULL, 0x20,
10572         NULL, HFILL }},
10573     { &hf_p1_BuiltInEncodedInformationTypes_g3_facsimile,
10574       { "g3-facsimile", "p1.g3-facsimile",
10575         FT_BOOLEAN, 8, NULL, 0x10,
10576         NULL, HFILL }},
10577     { &hf_p1_BuiltInEncodedInformationTypes_g4_class_1,
10578       { "g4-class-1", "p1.g4-class-1",
10579         FT_BOOLEAN, 8, NULL, 0x08,
10580         NULL, HFILL }},
10581     { &hf_p1_BuiltInEncodedInformationTypes_teletex,
10582       { "teletex", "p1.teletex",
10583         FT_BOOLEAN, 8, NULL, 0x04,
10584         NULL, HFILL }},
10585     { &hf_p1_BuiltInEncodedInformationTypes_videotex,
10586       { "videotex", "p1.videotex",
10587         FT_BOOLEAN, 8, NULL, 0x02,
10588         NULL, HFILL }},
10589     { &hf_p1_BuiltInEncodedInformationTypes_voice,
10590       { "voice", "p1.voice",
10591         FT_BOOLEAN, 8, NULL, 0x01,
10592         NULL, HFILL }},
10593     { &hf_p1_BuiltInEncodedInformationTypes_sfd,
10594       { "sfd", "p1.sfd",
10595         FT_BOOLEAN, 8, NULL, 0x80,
10596         NULL, HFILL }},
10597     { &hf_p1_BuiltInEncodedInformationTypes_mixed_mode,
10598       { "mixed-mode", "p1.mixed-mode",
10599         FT_BOOLEAN, 8, NULL, 0x40,
10600         NULL, HFILL }},
10601     { &hf_p1_G3FacsimileNonBasicParameters_two_dimensional,
10602       { "two-dimensional", "p1.two-dimensional",
10603         FT_BOOLEAN, 8, NULL, 0x80,
10604         NULL, HFILL }},
10605     { &hf_p1_G3FacsimileNonBasicParameters_fine_resolution,
10606       { "fine-resolution", "p1.fine-resolution",
10607         FT_BOOLEAN, 8, NULL, 0x40,
10608         NULL, HFILL }},
10609     { &hf_p1_G3FacsimileNonBasicParameters_unlimited_length,
10610       { "unlimited-length", "p1.unlimited-length",
10611         FT_BOOLEAN, 8, NULL, 0x08,
10612         NULL, HFILL }},
10613     { &hf_p1_G3FacsimileNonBasicParameters_b4_length,
10614       { "b4-length", "p1.b4-length",
10615         FT_BOOLEAN, 8, NULL, 0x04,
10616         NULL, HFILL }},
10617     { &hf_p1_G3FacsimileNonBasicParameters_a3_width,
10618       { "a3-width", "p1.a3-width",
10619         FT_BOOLEAN, 8, NULL, 0x02,
10620         NULL, HFILL }},
10621     { &hf_p1_G3FacsimileNonBasicParameters_b4_width,
10622       { "b4-width", "p1.b4-width",
10623         FT_BOOLEAN, 8, NULL, 0x01,
10624         NULL, HFILL }},
10625     { &hf_p1_G3FacsimileNonBasicParameters_t6_coding,
10626       { "t6-coding", "p1.t6-coding",
10627         FT_BOOLEAN, 8, NULL, 0x40,
10628         NULL, HFILL }},
10629     { &hf_p1_G3FacsimileNonBasicParameters_uncompressed,
10630       { "uncompressed", "p1.uncompressed",
10631         FT_BOOLEAN, 8, NULL, 0x02,
10632         NULL, HFILL }},
10633     { &hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
10634       { "width-middle-864-of-1728", "p1.width-middle-864-of-1728",
10635         FT_BOOLEAN, 8, NULL, 0x04,
10636         NULL, HFILL }},
10637     { &hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
10638       { "width-middle-1216-of-1728", "p1.width-middle-1216-of-1728",
10639         FT_BOOLEAN, 8, NULL, 0x02,
10640         NULL, HFILL }},
10641     { &hf_p1_G3FacsimileNonBasicParameters_resolution_type,
10642       { "resolution-type", "p1.resolution-type",
10643         FT_BOOLEAN, 8, NULL, 0x08,
10644         NULL, HFILL }},
10645     { &hf_p1_G3FacsimileNonBasicParameters_resolution_400x400,
10646       { "resolution-400x400", "p1.resolution-400x400",
10647         FT_BOOLEAN, 8, NULL, 0x04,
10648         NULL, HFILL }},
10649     { &hf_p1_G3FacsimileNonBasicParameters_resolution_300x300,
10650       { "resolution-300x300", "p1.resolution-300x300",
10651         FT_BOOLEAN, 8, NULL, 0x02,
10652         NULL, HFILL }},
10653     { &hf_p1_G3FacsimileNonBasicParameters_resolution_8x15,
10654       { "resolution-8x15", "p1.resolution-8x15",
10655         FT_BOOLEAN, 8, NULL, 0x01,
10656         NULL, HFILL }},
10657     { &hf_p1_G3FacsimileNonBasicParameters_edi,
10658       { "edi", "p1.edi",
10659         FT_BOOLEAN, 8, NULL, 0x40,
10660         NULL, HFILL }},
10661     { &hf_p1_G3FacsimileNonBasicParameters_dtm,
10662       { "dtm", "p1.dtm",
10663         FT_BOOLEAN, 8, NULL, 0x20,
10664         NULL, HFILL }},
10665     { &hf_p1_G3FacsimileNonBasicParameters_bft,
10666       { "bft", "p1.bft",
10667         FT_BOOLEAN, 8, NULL, 0x10,
10668         NULL, HFILL }},
10669     { &hf_p1_G3FacsimileNonBasicParameters_mixed_mode,
10670       { "mixed-mode", "p1.mixed-mode",
10671         FT_BOOLEAN, 8, NULL, 0x20,
10672         NULL, HFILL }},
10673     { &hf_p1_G3FacsimileNonBasicParameters_character_mode,
10674       { "character-mode", "p1.character-mode",
10675         FT_BOOLEAN, 8, NULL, 0x08,
10676         NULL, HFILL }},
10677     { &hf_p1_G3FacsimileNonBasicParameters_twelve_bits,
10678       { "twelve-bits", "p1.twelve-bits",
10679         FT_BOOLEAN, 8, NULL, 0x40,
10680         NULL, HFILL }},
10681     { &hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann,
10682       { "preferred-huffmann", "p1.preferred-huffmann",
10683         FT_BOOLEAN, 8, NULL, 0x20,
10684         NULL, HFILL }},
10685     { &hf_p1_G3FacsimileNonBasicParameters_full_colour,
10686       { "full-colour", "p1.full-colour",
10687         FT_BOOLEAN, 8, NULL, 0x10,
10688         NULL, HFILL }},
10689     { &hf_p1_G3FacsimileNonBasicParameters_jpeg,
10690       { "jpeg", "p1.jpeg",
10691         FT_BOOLEAN, 8, NULL, 0x08,
10692         NULL, HFILL }},
10693     { &hf_p1_G3FacsimileNonBasicParameters_processable_mode_26,
10694       { "processable-mode-26", "p1.processable-mode-26",
10695         FT_BOOLEAN, 8, NULL, 0x01,
10696         NULL, HFILL }},
10697
10698 /*--- End of included file: packet-p1-hfarr.c ---*/
10699 #line 318 "../../asn1/p1/packet-p1-template.c"
10700   };
10701
10702   /* List of subtrees */
10703   static gint *ett[] = {
10704     &ett_p1,
10705     &ett_p3,
10706     &ett_p1_content_unknown,
10707     &ett_p1_bilateral_information,
10708     &ett_p1_additional_information,
10709     &ett_p1_unknown_standard_extension,
10710     &ett_p1_unknown_extension_attribute_type,
10711     &ett_p1_unknown_tokendata_type,
10712
10713 /*--- Included file: packet-p1-ettarr.c ---*/
10714 #line 1 "../../asn1/p1/packet-p1-ettarr.c"
10715     &ett_p1_MTABindArgument,
10716     &ett_p1_AuthenticatedArgument,
10717     &ett_p1_MTABindResult,
10718     &ett_p1_AuthenticatedResult,
10719     &ett_p1_MTS_APDU,
10720     &ett_p1_Message,
10721     &ett_p1_Report,
10722     &ett_p1_MessageTransferEnvelope,
10723     &ett_p1_PerMessageTransferFields,
10724     &ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation,
10725     &ett_p1_SET_OF_ExtensionField,
10726     &ett_p1_PerRecipientMessageTransferFields,
10727     &ett_p1_ProbeTransferEnvelope,
10728     &ett_p1_PerProbeTransferFields,
10729     &ett_p1_PerRecipientProbeTransferFields,
10730     &ett_p1_ReportTransferEnvelope,
10731     &ett_p1_ReportTransferContent,
10732     &ett_p1_PerReportTransferFields,
10733     &ett_p1_PerRecipientReportTransferFields,
10734     &ett_p1_PerDomainBilateralInformation,
10735     &ett_p1_T_bilateral_domain,
10736     &ett_p1_T_private_domain,
10737     &ett_p1_PerRecipientIndicators,
10738     &ett_p1_LastTraceInformation,
10739     &ett_p1_InternalTraceInformation,
10740     &ett_p1_InternalTraceInformationElement,
10741     &ett_p1_MTASuppliedInformation,
10742     &ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement,
10743     &ett_p1_TraceInformationElement,
10744     &ett_p1_DomainSuppliedInformation,
10745     &ett_p1_AdditionalActions,
10746     &ett_p1_OtherActions,
10747     &ett_p1_MTSBindArgument,
10748     &ett_p1_MTSBindResult,
10749     &ett_p1_ObjectName,
10750     &ett_p1_MessagesWaiting,
10751     &ett_p1_DeliveryQueue,
10752     &ett_p1_Credentials,
10753     &ett_p1_Password,
10754     &ett_p1_StrongCredentials,
10755     &ett_p1_ProtectedPassword,
10756     &ett_p1_Signature,
10757     &ett_p1_SecurityContext,
10758     &ett_p1_MessageSubmissionArgument,
10759     &ett_p1_MessageSubmissionResult,
10760     &ett_p1_ProbeSubmissionResult,
10761     &ett_p1_ImproperlySpecifiedRecipients,
10762     &ett_p1_Waiting,
10763     &ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType,
10764     &ett_p1_Operations,
10765     &ett_p1_WaitingMessages,
10766     &ett_p1_MessageDeliveryArgument,
10767     &ett_p1_MessageDeliveryResult,
10768     &ett_p1_ReportDeliveryArgument,
10769     &ett_p1_ReportDeliveryResult,
10770     &ett_p1_SET_SIZE_1_MAX_OF_ExtensionField,
10771     &ett_p1_DeliveryControlArgument,
10772     &ett_p1_DeliveryControlResult,
10773     &ett_p1_RefusedOperation,
10774     &ett_p1_T_refused_argument,
10775     &ett_p1_Controls,
10776     &ett_p1_RegisterArgument,
10777     &ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass,
10778     &ett_p1_RegisterResult,
10779     &ett_p1_T_non_empty_result,
10780     &ett_p1_ChangeCredentialsArgument,
10781     &ett_p1_UserAddress,
10782     &ett_p1_T_x121,
10783     &ett_p1_Redirections,
10784     &ett_p1_RecipientRedirection,
10785     &ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass,
10786     &ett_p1_MessageClass,
10787     &ett_p1_SET_OF_Priority,
10788     &ett_p1_SEQUENCE_OF_Restriction,
10789     &ett_p1_EncodedInformationTypesConstraints,
10790     &ett_p1_RestrictedDelivery,
10791     &ett_p1_Restriction,
10792     &ett_p1_T_source_type,
10793     &ett_p1_ExactOrPattern,
10794     &ett_p1_RegistrationTypes,
10795     &ett_p1_T_standard_parameters,
10796     &ett_p1_T_type_extensions,
10797     &ett_p1_MessageSubmissionEnvelope,
10798     &ett_p1_PerMessageSubmissionFields,
10799     &ett_p1_PerRecipientMessageSubmissionFields,
10800     &ett_p1_ProbeSubmissionEnvelope,
10801     &ett_p1_PerProbeSubmissionFields,
10802     &ett_p1_PerRecipientProbeSubmissionFields,
10803     &ett_p1_MessageDeliveryEnvelope,
10804     &ett_p1_OtherMessageDeliveryFields,
10805     &ett_p1_ReportDeliveryEnvelope,
10806     &ett_p1_PerReportDeliveryFields,
10807     &ett_p1_PerRecipientReportDeliveryFields,
10808     &ett_p1_ReportType,
10809     &ett_p1_DeliveryReport,
10810     &ett_p1_NonDeliveryReport,
10811     &ett_p1_ContentTypes,
10812     &ett_p1_ContentType,
10813     &ett_p1_DeliveredContentType,
10814     &ett_p1_PerMessageIndicators_U,
10815     &ett_p1_OriginatorReportRequest,
10816     &ett_p1_DeliveryFlags,
10817     &ett_p1_OtherRecipientNames,
10818     &ett_p1_ExtensionType,
10819     &ett_p1_Criticality,
10820     &ett_p1_ExtensionField,
10821     &ett_p1_RequestedDeliveryMethod,
10822     &ett_p1_PhysicalDeliveryModes,
10823     &ett_p1_ContentCorrelator,
10824     &ett_p1_RedirectionHistory,
10825     &ett_p1_Redirection,
10826     &ett_p1_IntendedRecipientName,
10827     &ett_p1_DLExpansionHistory,
10828     &ett_p1_DLExpansion,
10829     &ett_p1_OriginatorAndDLExpansionHistory,
10830     &ett_p1_OriginatorAndDLExpansion,
10831     &ett_p1_PerRecipientReportFields,
10832     &ett_p1_T_report_type,
10833     &ett_p1_PerRecipientDeliveryReportFields,
10834     &ett_p1_PerRecipientNonDeliveryReportFields,
10835     &ett_p1_ReportingMTAName,
10836     &ett_p1_ExtendedCertificates,
10837     &ett_p1_ExtendedCertificate,
10838     &ett_p1_DLExemptedRecipients,
10839     &ett_p1_CertificateSelectors,
10840     &ett_p1_MTSIdentifier_U,
10841     &ett_p1_GlobalDomainIdentifier_U,
10842     &ett_p1_PrivateDomainIdentifier,
10843     &ett_p1_ORName_U,
10844     &ett_p1_ORAddress,
10845     &ett_p1_BuiltInStandardAttributes,
10846     &ett_p1_CountryName_U,
10847     &ett_p1_AdministrationDomainName_U,
10848     &ett_p1_PrivateDomainName,
10849     &ett_p1_PersonalName,
10850     &ett_p1_OrganizationalUnitNames,
10851     &ett_p1_BuiltInDomainDefinedAttributes,
10852     &ett_p1_BuiltInDomainDefinedAttribute,
10853     &ett_p1_ExtensionAttributes,
10854     &ett_p1_ExtensionAttribute,
10855     &ett_p1_TeletexPersonalName,
10856     &ett_p1_UniversalPersonalName,
10857     &ett_p1_TeletexOrganizationalUnitNames,
10858     &ett_p1_UniversalOrganizationalUnitNames,
10859     &ett_p1_UniversalOrBMPString,
10860     &ett_p1_T_character_encoding,
10861     &ett_p1_PhysicalDeliveryCountryName,
10862     &ett_p1_PostalCode,
10863     &ett_p1_UnformattedPostalAddress,
10864     &ett_p1_T_printable_address,
10865     &ett_p1_PDSParameter,
10866     &ett_p1_ExtendedNetworkAddress,
10867     &ett_p1_T_e163_4_address,
10868     &ett_p1_TeletexDomainDefinedAttributes,
10869     &ett_p1_TeletexDomainDefinedAttribute,
10870     &ett_p1_UniversalDomainDefinedAttributes,
10871     &ett_p1_UniversalDomainDefinedAttribute,
10872     &ett_p1_EncodedInformationTypes_U,
10873     &ett_p1_BuiltInEncodedInformationTypes,
10874     &ett_p1_ExtendedEncodedInformationTypes,
10875     &ett_p1_NonBasicParameters,
10876     &ett_p1_G3FacsimileNonBasicParameters,
10877     &ett_p1_TeletexNonBasicParameters,
10878     &ett_p1_Token,
10879     &ett_p1_AsymmetricTokenData,
10880     &ett_p1_T_name,
10881     &ett_p1_MTANameAndOptionalGDI,
10882     &ett_p1_AsymmetricToken,
10883     &ett_p1_TokenData,
10884     &ett_p1_MessageTokenSignedData,
10885     &ett_p1_MessageTokenEncryptedData,
10886     &ett_p1_SecurityLabel,
10887     &ett_p1_SecurityCategories,
10888     &ett_p1_SecurityCategory,
10889     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields,
10890     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields,
10891     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields,
10892     &ett_p1_T_attempted,
10893     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields,
10894     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields,
10895     &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields,
10896
10897 /*--- End of included file: packet-p1-ettarr.c ---*/
10898 #line 331 "../../asn1/p1/packet-p1-template.c"
10899   };
10900
10901   static ei_register_info ei[] = {
10902      { &ei_p1_unknown_extension_attribute_type, { "p1.unknown.extension_attribute_type", PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type", EXPFILL }},
10903      { &ei_p1_unknown_standard_extension, { "p1.unknown.standard_extension", PI_UNDECODED, PI_WARN, "Unknown standard-extension", EXPFILL }},
10904      { &ei_p1_unknown_built_in_content_type, { "p1.unknown.built_in_content_type", PI_UNDECODED, PI_WARN, "P1 Unknown Content (unknown built-in content-type)", EXPFILL }},
10905      { &ei_p1_unknown_tokendata_type, { "p1.unknown.tokendata_type", PI_UNDECODED, PI_WARN, "Unknown tokendata-type", EXPFILL }},
10906   };
10907
10908   expert_module_t* expert_p1;
10909   module_t *p1_module;
10910
10911   /* Register protocol */
10912   proto_p1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
10913   new_register_dissector("p1", dissect_p1, proto_p1);
10914
10915   proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
10916
10917   /* Register fields and subtrees */
10918   proto_register_field_array(proto_p1, hf, array_length(hf));
10919   proto_register_subtree_array(ett, array_length(ett));
10920   expert_p1 = expert_register_protocol(proto_p1);
10921   expert_register_field_array(expert_p1, ei, array_length(ei));
10922
10923   p1_extension_dissector_table = register_dissector_table("p1.extension", "P1-EXTENSION", FT_UINT32, BASE_DEC);
10924   p1_extension_attribute_dissector_table = register_dissector_table("p1.extension-attribute", "P1-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC);
10925   p1_tokendata_dissector_table = register_dissector_table("p1.tokendata", "P1-TOKENDATA", FT_UINT32, BASE_DEC);
10926
10927   /* Register our configuration options for P1, particularly our port */
10928
10929   p1_module = prefs_register_protocol_subtree("OSI/X.400", proto_p1, prefs_register_p1);
10930
10931   prefs_register_uint_preference(p1_module, "tcp.port", "P1 TCP Port",
10932                                  "Set the port for P1 operations (if other"
10933                                  " than the default of 102)",
10934                                  10, &global_p1_tcp_port);
10935
10936   register_ber_syntax_dissector("P1 Message", proto_p1, dissect_p1_mts_apdu);
10937 }
10938
10939
10940 /*--- proto_reg_handoff_p1 --- */
10941 void proto_reg_handoff_p1(void) {
10942   dissector_handle_t p1_handle;
10943
10944
10945 /*--- Included file: packet-p1-dis-tab.c ---*/
10946 #line 1 "../../asn1/p1/packet-p1-dis-tab.c"
10947   dissector_add_uint("p1.extension", 1, create_dissector_handle(dissect_RecipientReassignmentProhibited_PDU, proto_p1));
10948   dissector_add_uint("p1.extension", 2, create_dissector_handle(dissect_OriginatorRequestedAlternateRecipient_PDU, proto_p1));
10949   dissector_add_uint("p1.extension", 3, create_dissector_handle(dissect_DLExpansionProhibited_PDU, proto_p1));
10950   dissector_add_uint("p1.extension", 4, create_dissector_handle(dissect_ConversionWithLossProhibited_PDU, proto_p1));
10951   dissector_add_uint("p1.extension", 5, create_dissector_handle(dissect_LatestDeliveryTime_PDU, proto_p1));
10952   dissector_add_uint("p1.extension", 6, create_dissector_handle(dissect_RequestedDeliveryMethod_PDU, proto_p1));
10953   dissector_add_uint("p1.extension", 7, create_dissector_handle(dissect_PhysicalForwardingProhibited_PDU, proto_p1));
10954   dissector_add_uint("p1.extension", 8, create_dissector_handle(dissect_PhysicalForwardingAddressRequest_PDU, proto_p1));
10955   dissector_add_uint("p1.extension", 9, create_dissector_handle(dissect_PhysicalDeliveryModes_PDU, proto_p1));
10956   dissector_add_uint("p1.extension", 10, create_dissector_handle(dissect_RegisteredMailType_PDU, proto_p1));
10957   dissector_add_uint("p1.extension", 11, create_dissector_handle(dissect_RecipientNumberForAdvice_PDU, proto_p1));
10958   dissector_add_uint("p1.extension", 12, create_dissector_handle(dissect_PhysicalRenditionAttributes_PDU, proto_p1));
10959   dissector_add_uint("p1.extension", 13, create_dissector_handle(dissect_OriginatorReturnAddress_PDU, proto_p1));
10960   dissector_add_uint("p1.extension", 14, create_dissector_handle(dissect_PhysicalDeliveryReportRequest_PDU, proto_p1));
10961   dissector_add_uint("p1.extension", 15, create_dissector_handle(dissect_OriginatorCertificate_PDU, proto_p1));
10962   dissector_add_uint("p1.extension", 16, create_dissector_handle(dissect_MessageToken_PDU, proto_p1));
10963   dissector_add_uint("p1.extension", 17, create_dissector_handle(dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_p1));
10964   dissector_add_uint("p1.extension", 18, create_dissector_handle(dissect_ContentIntegrityCheck_PDU, proto_p1));
10965   dissector_add_uint("p1.extension", 19, create_dissector_handle(dissect_MessageOriginAuthenticationCheck_PDU, proto_p1));
10966   dissector_add_uint("p1.extension", 20, create_dissector_handle(dissect_p1_MessageSecurityLabel_PDU, proto_p1));
10967   dissector_add_uint("p1.extension", 21, create_dissector_handle(dissect_ProofOfSubmissionRequest_PDU, proto_p1));
10968   dissector_add_uint("p1.extension", 22, create_dissector_handle(dissect_ProofOfDeliveryRequest_PDU, proto_p1));
10969   dissector_add_uint("p1.extension", 23, create_dissector_handle(dissect_ContentCorrelator_PDU, proto_p1));
10970   dissector_add_uint("p1.extension", 24, create_dissector_handle(dissect_ProbeOriginAuthenticationCheck_PDU, proto_p1));
10971   dissector_add_uint("p1.extension", 25, create_dissector_handle(dissect_RedirectionHistory_PDU, proto_p1));
10972   dissector_add_uint("p1.extension", 26, create_dissector_handle(dissect_DLExpansionHistory_PDU, proto_p1));
10973   dissector_add_uint("p1.extension", 27, create_dissector_handle(dissect_PhysicalForwardingAddress_PDU, proto_p1));
10974   dissector_add_uint("p1.extension", 28, create_dissector_handle(dissect_RecipientCertificate_PDU, proto_p1));
10975   dissector_add_uint("p1.extension", 29, create_dissector_handle(dissect_ProofOfDelivery_PDU, proto_p1));
10976   dissector_add_uint("p1.extension", 30, create_dissector_handle(dissect_OriginatorAndDLExpansionHistory_PDU, proto_p1));
10977   dissector_add_uint("p1.extension", 31, create_dissector_handle(dissect_ReportingDLName_PDU, proto_p1));
10978   dissector_add_uint("p1.extension", 32, create_dissector_handle(dissect_ReportingMTACertificate_PDU, proto_p1));
10979   dissector_add_uint("p1.extension", 33, create_dissector_handle(dissect_ReportOriginAuthenticationCheck_PDU, proto_p1));
10980   dissector_add_uint("p1.extension", 34, create_dissector_handle(dissect_OriginatingMTACertificate_PDU, proto_p1));
10981   dissector_add_uint("p1.extension", 35, create_dissector_handle(dissect_ProofOfSubmission_PDU, proto_p1));
10982   dissector_add_uint("p1.extension", 37, create_dissector_handle(dissect_TraceInformation_PDU, proto_p1));
10983   dissector_add_uint("p1.extension", 38, create_dissector_handle(dissect_InternalTraceInformation_PDU, proto_p1));
10984   dissector_add_uint("p1.extension", 39, create_dissector_handle(dissect_ReportingMTAName_PDU, proto_p1));
10985   dissector_add_uint("p1.extension", 40, create_dissector_handle(dissect_ExtendedCertificates_PDU, proto_p1));
10986   dissector_add_uint("p1.extension", 42, create_dissector_handle(dissect_DLExemptedRecipients_PDU, proto_p1));
10987   dissector_add_uint("p1.extension", 45, create_dissector_handle(dissect_CertificateSelectors_PDU, proto_p1));
10988   dissector_add_uint("p1.extension-attribute", 1, create_dissector_handle(dissect_CommonName_PDU, proto_p1));
10989   dissector_add_uint("p1.extension-attribute", 2, create_dissector_handle(dissect_TeletexCommonName_PDU, proto_p1));
10990   dissector_add_uint("p1.extension-attribute", 3, create_dissector_handle(dissect_TeletexOrganizationName_PDU, proto_p1));
10991   dissector_add_uint("p1.extension-attribute", 4, create_dissector_handle(dissect_TeletexPersonalName_PDU, proto_p1));
10992   dissector_add_uint("p1.extension-attribute", 5, create_dissector_handle(dissect_TeletexOrganizationalUnitNames_PDU, proto_p1));
10993   dissector_add_uint("p1.extension-attribute", 6, create_dissector_handle(dissect_TeletexDomainDefinedAttributes_PDU, proto_p1));
10994   dissector_add_uint("p1.extension-attribute", 7, create_dissector_handle(dissect_PDSName_PDU, proto_p1));
10995   dissector_add_uint("p1.extension-attribute", 8, create_dissector_handle(dissect_PhysicalDeliveryCountryName_PDU, proto_p1));
10996   dissector_add_uint("p1.extension-attribute", 9, create_dissector_handle(dissect_PostalCode_PDU, proto_p1));
10997   dissector_add_uint("p1.extension-attribute", 10, create_dissector_handle(dissect_PhysicalDeliveryOfficeName_PDU, proto_p1));
10998   dissector_add_uint("p1.extension-attribute", 11, create_dissector_handle(dissect_PhysicalDeliveryOfficeNumber_PDU, proto_p1));
10999   dissector_add_uint("p1.extension-attribute", 12, create_dissector_handle(dissect_ExtensionORAddressComponents_PDU, proto_p1));
11000   dissector_add_uint("p1.extension-attribute", 13, create_dissector_handle(dissect_PhysicalDeliveryPersonalName_PDU, proto_p1));
11001   dissector_add_uint("p1.extension-attribute", 14, create_dissector_handle(dissect_PhysicalDeliveryOrganizationName_PDU, proto_p1));
11002   dissector_add_uint("p1.extension-attribute", 15, create_dissector_handle(dissect_ExtensionPhysicalDeliveryAddressComponents_PDU, proto_p1));
11003   dissector_add_uint("p1.extension-attribute", 16, create_dissector_handle(dissect_UnformattedPostalAddress_PDU, proto_p1));
11004   dissector_add_uint("p1.extension-attribute", 17, create_dissector_handle(dissect_StreetAddress_PDU, proto_p1));
11005   dissector_add_uint("p1.extension-attribute", 18, create_dissector_handle(dissect_PostOfficeBoxAddress_PDU, proto_p1));
11006   dissector_add_uint("p1.extension-attribute", 19, create_dissector_handle(dissect_PosteRestanteAddress_PDU, proto_p1));
11007   dissector_add_uint("p1.extension-attribute", 20, create_dissector_handle(dissect_UniquePostalName_PDU, proto_p1));
11008   dissector_add_uint("p1.extension-attribute", 21, create_dissector_handle(dissect_LocalPostalAttributes_PDU, proto_p1));
11009   dissector_add_uint("p1.extension-attribute", 22, create_dissector_handle(dissect_ExtendedNetworkAddress_PDU, proto_p1));
11010   dissector_add_uint("p1.extension-attribute", 23, create_dissector_handle(dissect_TerminalType_PDU, proto_p1));
11011   dissector_add_uint("p1.extension-attribute", 24, create_dissector_handle(dissect_UniversalCommonName_PDU, proto_p1));
11012   dissector_add_uint("p1.extension-attribute", 25, create_dissector_handle(dissect_UniversalOrganizationName_PDU, proto_p1));
11013   dissector_add_uint("p1.extension-attribute", 26, create_dissector_handle(dissect_UniversalPersonalName_PDU, proto_p1));
11014   dissector_add_uint("p1.extension-attribute", 27, create_dissector_handle(dissect_UniversalOrganizationalUnitNames_PDU, proto_p1));
11015   dissector_add_uint("p1.extension-attribute", 28, create_dissector_handle(dissect_UniversalDomainDefinedAttributes_PDU, proto_p1));
11016   dissector_add_uint("p1.extension-attribute", 29, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeName_PDU, proto_p1));
11017   dissector_add_uint("p1.extension-attribute", 30, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeNumber_PDU, proto_p1));
11018   dissector_add_uint("p1.extension-attribute", 31, create_dissector_handle(dissect_UniversalExtensionORAddressComponents_PDU, proto_p1));
11019   dissector_add_uint("p1.extension-attribute", 32, create_dissector_handle(dissect_UniversalPhysicalDeliveryPersonalName_PDU, proto_p1));
11020   dissector_add_uint("p1.extension-attribute", 33, create_dissector_handle(dissect_UniversalPhysicalDeliveryOrganizationName_PDU, proto_p1));
11021   dissector_add_uint("p1.extension-attribute", 34, create_dissector_handle(dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU, proto_p1));
11022   dissector_add_uint("p1.extension-attribute", 35, create_dissector_handle(dissect_UniversalUnformattedPostalAddress_PDU, proto_p1));
11023   dissector_add_uint("p1.extension-attribute", 36, create_dissector_handle(dissect_UniversalStreetAddress_PDU, proto_p1));
11024   dissector_add_uint("p1.extension-attribute", 37, create_dissector_handle(dissect_UniversalPostOfficeBoxAddress_PDU, proto_p1));
11025   dissector_add_uint("p1.extension-attribute", 38, create_dissector_handle(dissect_UniversalPosteRestanteAddress_PDU, proto_p1));
11026   dissector_add_uint("p1.extension-attribute", 39, create_dissector_handle(dissect_UniversalUniquePostalName_PDU, proto_p1));
11027   dissector_add_uint("p1.extension-attribute", 40, create_dissector_handle(dissect_UniversalLocalPostalAttributes_PDU, proto_p1));
11028   register_ber_oid_dissector("2.6.3.6.0", dissect_AsymmetricToken_PDU, proto_p1, "id-tok-asymmetricToken");
11029   register_ber_oid_dissector("2.6.5.6.0", dissect_MTANameAndOptionalGDI_PDU, proto_p1, "id-on-mtaName");
11030   dissector_add_uint("p1.tokendata", 1, create_dissector_handle(dissect_BindTokenSignedData_PDU, proto_p1));
11031   dissector_add_uint("p1.tokendata", 2, create_dissector_handle(dissect_MessageTokenSignedData_PDU, proto_p1));
11032   dissector_add_uint("p1.tokendata", 3, create_dissector_handle(dissect_MessageTokenEncryptedData_PDU, proto_p1));
11033   dissector_add_uint("p1.tokendata", 4, create_dissector_handle(dissect_BindTokenEncryptedData_PDU, proto_p1));
11034   register_ber_oid_dissector("2.6.5.2.0", dissect_ContentLength_PDU, proto_p1, "id-at-mhs-maximum-content-length");
11035   register_ber_oid_dissector("2.6.5.2.1", dissect_ExtendedContentType_PDU, proto_p1, "id-at-mhs-deliverable-content-types");
11036   register_ber_oid_dissector("2.6.5.2.2", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-exclusively-acceptable-eits");
11037   register_ber_oid_dissector("2.6.5.2.3", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-members");
11038   register_ber_oid_dissector("2.6.5.2.6", dissect_ORAddress_PDU, proto_p1, "id-at-mhs-or-addresses");
11039   register_ber_oid_dissector("2.6.5.2.9", dissect_ExtendedContentType_PDU, proto_p1, "id-at-mhs-supported-content-types");
11040   register_ber_oid_dissector("2.6.5.2.12", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-archive-service");
11041   register_ber_oid_dissector("2.6.5.2.15", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-subscription-service");
11042   register_ber_oid_dissector("2.6.5.2.17", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-acceptable-eits");
11043   register_ber_oid_dissector("2.6.5.2.18", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-unacceptable-eits");
11044   register_ber_oid_dissector("2.16.840.1.101.2.1.5.47", dissect_ORName_PDU, proto_p1, "id-at-aLExemptedAddressProcessor");
11045   register_ber_oid_dissector("2.16.840.1.101.2.2.1.134.1", dissect_ORAddress_PDU, proto_p1, "id-at-collective-mhs-or-addresses");
11046   register_ber_oid_dissector("2.6.4.3.80", dissect_CertificateSelectors_PDU, proto_p1, "id-att-certificate-selectors");
11047   register_ber_oid_dissector("2.6.4.3.1", dissect_Content_PDU, proto_p1, "id-att-content");
11048   register_ber_oid_dissector("2.6.4.3.3", dissect_ContentCorrelator_PDU, proto_p1, "id-att-content-correlator");
11049   register_ber_oid_dissector("2.6.4.3.4", dissect_ContentIdentifier_PDU, proto_p1, "id-att-content-identifier");
11050   register_ber_oid_dissector("2.6.4.3.5", dissect_ContentIntegrityCheck_PDU, proto_p1, "id-att-content-inetgrity-check");
11051   register_ber_oid_dissector("2.6.4.3.6", dissect_ContentLength_PDU, proto_p1, "id-att-content-length");
11052   register_ber_oid_dissector("2.6.4.3.8", dissect_ExtendedContentType_PDU, proto_p1, "id-att-content-type");
11053   register_ber_oid_dissector("2.6.4.3.9", dissect_ConversionWithLossProhibited_PDU, proto_p1, "id-att-conversion-with-loss-prohibited");
11054   register_ber_oid_dissector("2.6.4.3.51", dissect_DeferredDeliveryTime_PDU, proto_p1, "id-att-deferred-delivery-time");
11055   register_ber_oid_dissector("2.6.4.3.13", dissect_DeliveryFlags_PDU, proto_p1, "id-att-delivery-flags");
11056   register_ber_oid_dissector("2.6.4.3.78", dissect_ORName_PDU, proto_p1, "id-att-dl-exempted-recipients");
11057   register_ber_oid_dissector("2.6.4.3.14", dissect_DLExpansion_PDU, proto_p1, "id-att-dl-expansion-history");
11058   register_ber_oid_dissector("2.6.4.3.53", dissect_DLExpansionProhibited_PDU, proto_p1, "id-att-dl-expansion-prohibited");
11059   register_ber_oid_dissector("2.6.4.3.54", dissect_InternalTraceInformationElement_PDU, proto_p1, "id-att-internal-trace-information");
11060   register_ber_oid_dissector("2.6.4.3.55", dissect_LatestDeliveryTime_PDU, proto_p1, "id-att-latest-delivery-time");
11061   register_ber_oid_dissector("2.6.4.3.18", dissect_MessageDeliveryEnvelope_PDU, proto_p1, "id-att-message-delivery-envelope");
11062   register_ber_oid_dissector("2.6.4.3.20", dissect_MessageDeliveryTime_PDU, proto_p1, "id-att-message-delivery-time");
11063   register_ber_oid_dissector("2.6.4.3.19", dissect_MTSIdentifier_PDU, proto_p1, "id-att-message-identifier");
11064   register_ber_oid_dissector("2.6.4.3.21", dissect_MessageOriginAuthenticationCheck_PDU, proto_p1, "id-at-message-orgin-authentication-check");
11065   register_ber_oid_dissector("2.6.4.3.22", dissect_p1_MessageSecurityLabel_PDU, proto_p1, "id-att-message-security-label");
11066   register_ber_oid_dissector("2.6.4.3.59", dissect_MessageSubmissionEnvelope_PDU, proto_p1, "id-att-message-submission-envelope");
11067   register_ber_oid_dissector("2.6.4.3.23", dissect_MessageSubmissionTime_PDU, proto_p1, "id-att-message-submission-time");
11068   register_ber_oid_dissector("2.6.4.3.24", dissect_MessageToken_PDU, proto_p1, "id-att-message-token");
11069   register_ber_oid_dissector("2.6.4.3.81", dissect_ExtendedCertificates_PDU, proto_p1, "id-att-multiple-originator-certificates");
11070   register_ber_oid_dissector("2.6.4.3.17", dissect_ORName_PDU, proto_p1, "id-att-originally-intended-recipient-name");
11071   register_ber_oid_dissector("2.6.4.3.62", dissect_OriginatingMTACertificate_PDU, proto_p1, "id-att-originating-MTA-certificate");
11072   register_ber_oid_dissector("2.6.4.3.26", dissect_OriginatorCertificate_PDU, proto_p1, "id-att-originator-certificate");
11073   register_ber_oid_dissector("2.6.4.3.27", dissect_ORName_PDU, proto_p1, "id-att-originator-name");
11074   register_ber_oid_dissector("2.6.4.3.63", dissect_OriginatorReportRequest_PDU, proto_p1, "id-att-originator-report-request");
11075   register_ber_oid_dissector("2.6.4.3.64", dissect_OriginatorReturnAddress_PDU, proto_p1, "id-att-originator-return-address");
11076   register_ber_oid_dissector("2.6.4.3.28", dissect_ORName_PDU, proto_p1, "id-att-other-recipient-names");
11077   register_ber_oid_dissector("2.6.4.3.65", dissect_PerMessageIndicators_PDU, proto_p1, "id-att-per-message-indicators");
11078   register_ber_oid_dissector("2.6.4.3.66", dissect_PerRecipientMessageSubmissionFields_PDU, proto_p1, "id-att-per-recipient-message-submission-fields");
11079   register_ber_oid_dissector("2.6.4.3.67", dissect_PerRecipientProbeSubmissionFields_PDU, proto_p1, "id-att-per-recipient-probe-submission-fields");
11080   register_ber_oid_dissector("2.6.4.3.30", dissect_PerRecipientReportDeliveryFields_PDU, proto_p1, "id-att-per-recipient-report-delivery-fields");
11081   register_ber_oid_dissector("2.6.4.3.31", dissect_Priority_PDU, proto_p1, "id-att-priority");
11082   register_ber_oid_dissector("2.6.4.3.68", dissect_ProbeOriginAuthenticationCheck_PDU, proto_p1, "id-att-probe-origin-authentication-check");
11083   register_ber_oid_dissector("2.6.4.3.69", dissect_ProbeSubmissionEnvelope_PDU, proto_p1, "id-att-probe-submission-envelope");
11084   register_ber_oid_dissector("2.6.4.3.32", dissect_ProofOfDeliveryRequest_PDU, proto_p1, "id-att-proof-of-delivery-request");
11085   register_ber_oid_dissector("2.6.4.3.70", dissect_ProofOfSubmission_PDU, proto_p1, "id-att-proof-of-submission");
11086   register_ber_oid_dissector("2.6.4.3.82", dissect_ExtendedCertificates_PDU, proto_p1, "id-att-recipient-certificate");
11087   register_ber_oid_dissector("2.6.4.3.71", dissect_ORName_PDU, proto_p1, "id-att-recipient-names");
11088   register_ber_oid_dissector("2.6.4.3.72", dissect_RecipientReassignmentProhibited_PDU, proto_p1, "id-att-recipient-reassignment-prohibited");
11089   register_ber_oid_dissector("2.6.4.3.33", dissect_Redirection_PDU, proto_p1, "id-at-redirection-history");
11090   register_ber_oid_dissector("2.6.4.3.34", dissect_ReportDeliveryEnvelope_PDU, proto_p1, "id-att-report-delivery-envelope");
11091   register_ber_oid_dissector("2.6.4.3.35", dissect_ReportingDLName_PDU, proto_p1, "id-att-reporting-DL-name");
11092   register_ber_oid_dissector("2.6.4.3.36", dissect_ReportingMTACertificate_PDU, proto_p1, "id-att-reporting-MTA-certificate");
11093   register_ber_oid_dissector("2.6.4.3.37", dissect_ReportOriginAuthenticationCheck_PDU, proto_p1, "id-att-report-origin-authentication-check");
11094   register_ber_oid_dissector("2.6.4.3.38", dissect_SecurityClassification_PDU, proto_p1, "id-att-security-classification");
11095   register_ber_oid_dissector("2.6.4.3.40", dissect_SubjectSubmissionIdentifier_PDU, proto_p1, "id-att-subject-submission-identifier");
11096   register_ber_oid_dissector("2.6.4.3.41", dissect_ORName_PDU, proto_p1, "id-att-this-recipient-name");
11097   register_ber_oid_dissector("2.6.4.3.75", dissect_TraceInformationElement_PDU, proto_p1, "id-att-trace-information");
11098   register_ber_oid_dissector("2.6.1.7.36", dissect_MessageToken_PDU, proto_p1, "id-hat-forwarded-token");
11099
11100
11101 /*--- End of included file: packet-p1-dis-tab.c ---*/
11102 #line 377 "../../asn1/p1/packet-p1-template.c"
11103
11104   /* APPLICATION CONTEXT */
11105
11106   oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
11107
11108   /* ABSTRACT SYNTAXES */
11109
11110   p1_handle = find_dissector("p1");
11111   register_rtse_oid_dissector_handle("2.6.0.2.12", p1_handle, 0, "id-as-mta-rtse", TRUE);
11112   register_rtse_oid_dissector_handle("2.6.0.2.7", p1_handle, 0, "id-as-mtse", FALSE);
11113
11114   register_rtse_oid_dissector_handle("applicationProtocol.1", p1_handle, 0, "mts-transfer-protocol-1984", FALSE);
11115   register_rtse_oid_dissector_handle("applicationProtocol.12", p1_handle, 0, "mta-transfer-protocol", FALSE);
11116
11117   /* remember the tpkt handler for change in preferences */
11118   tpkt_handle = find_dissector("tpkt");
11119
11120   /* APPLICATION CONTEXT */
11121
11122   oid_add_from_string("id-ac-mts-access-88", id_ac_mts_access_88);
11123   oid_add_from_string("id-ac-mts-forced-access-88", id_ac_mts_forced_access_88);
11124   oid_add_from_string("id-ac-mts-access-94", id_ac_mts_access_94);
11125   oid_add_from_string("id-ac-mts-forced-access-94", id_ac_mts_forced_access_94);
11126
11127
11128   /* Register P3 with ROS */
11129   register_ros_protocol_info(id_as_msse, &p3_ros_info, 0, "id-as-msse", FALSE);
11130
11131   register_ros_protocol_info(id_as_mdse_88, &p3_ros_info, 0, "id-as-mdse-88", FALSE);
11132   register_ros_protocol_info(id_as_mdse_94, &p3_ros_info, 0, "id-as-mdse-94", FALSE);
11133
11134   register_ros_protocol_info(id_as_mase_88, &p3_ros_info, 0, "id-as-mase-88", FALSE);
11135   register_ros_protocol_info(id_as_mase_94, &p3_ros_info, 0, "id-as-mase-94", FALSE);
11136
11137   register_ros_protocol_info(id_as_mts, &p3_ros_info, 0, "id-as-mts", FALSE);
11138
11139 }
11140
11141 static void
11142 prefs_register_p1(void)
11143 {
11144   static guint tcp_port = 0;
11145
11146   /* de-register the old port */
11147   /* port 102 is registered by TPKT - don't undo this! */
11148   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11149     dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
11150
11151   /* Set our port number for future use */
11152   tcp_port = global_p1_tcp_port;
11153
11154   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
11155     dissector_add_uint("tcp.port", tcp_port, tpkt_handle);
11156
11157 }