Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-p1.c
blobb3c23b0b8a57551bd558bd498dfe4356ce200034
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 /* asn2wrs.py -b -C -q -L -p p1 -c ./p1.cnf -s ./packet-p1-template -D . -O ../.. MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
6 /* packet-p1.c
7 * Routines for X.411 (X.400 Message Transfer) packet dissection
8 * Graeme Lunt 2005
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
17 #include "config.h"
19 #include <epan/packet.h>
20 #include <epan/prefs.h>
21 #include <epan/oids.h>
22 #include <epan/asn1.h>
23 #include <epan/expert.h>
24 #include <epan/strutil.h>
25 #include <epan/proto_data.h>
26 #include <wsutil/array.h>
28 #include "packet-ber.h"
29 #include "packet-acse.h"
30 #include "packet-ros.h"
31 #include "packet-rtse.h"
33 #include "packet-x509af.h"
34 #include "packet-x509ce.h"
35 #include "packet-x509if.h"
36 #include "packet-x509sat.h"
38 #include "packet-p1.h"
40 #define PNAME "X.411 Message Transfer Service"
41 #define PSNAME "P1"
42 #define PFNAME "p1"
44 /* Initialize the protocol and registered fields */
45 static int proto_p1;
46 static int proto_p3;
48 static int hf_p1_MTS_APDU_PDU;
49 static int hf_p1_MTABindArgument_PDU;
50 static int hf_p1_MTABindResult_PDU;
51 static int hf_p1_MTABindError_PDU;
53 static int hf_p1_InternalTraceInformation_PDU; /* InternalTraceInformation */
54 static int hf_p1_InternalTraceInformationElement_PDU; /* InternalTraceInformationElement */
55 static int hf_p1_TraceInformation_PDU; /* TraceInformation */
56 static int hf_p1_TraceInformationElement_PDU; /* TraceInformationElement */
57 static int hf_p1_MTSBindArgument_PDU; /* MTSBindArgument */
58 static int hf_p1_MTSBindResult_PDU; /* MTSBindResult */
59 static int hf_p1_PAR_mts_bind_error_PDU; /* PAR_mts_bind_error */
60 static int hf_p1_MessageSubmissionArgument_PDU; /* MessageSubmissionArgument */
61 static int hf_p1_MessageSubmissionResult_PDU; /* MessageSubmissionResult */
62 static int hf_p1_ProbeSubmissionArgument_PDU; /* ProbeSubmissionArgument */
63 static int hf_p1_ProbeSubmissionResult_PDU; /* ProbeSubmissionResult */
64 static int hf_p1_CancelDeferredDeliveryArgument_PDU; /* CancelDeferredDeliveryArgument */
65 static int hf_p1_CancelDeferredDeliveryResult_PDU; /* CancelDeferredDeliveryResult */
66 static int hf_p1_SubmissionControlArgument_PDU; /* SubmissionControlArgument */
67 static int hf_p1_SubmissionControlResult_PDU; /* SubmissionControlResult */
68 static int hf_p1_PAR_submission_control_violated_PDU; /* PAR_submission_control_violated */
69 static int hf_p1_PAR_element_of_service_not_subscribed_PDU; /* PAR_element_of_service_not_subscribed */
70 static int hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU; /* PAR_deferred_delivery_cancellation_rejected */
71 static int hf_p1_PAR_originator_invalid_PDU; /* PAR_originator_invalid */
72 static int hf_p1_ImproperlySpecifiedRecipients_PDU; /* ImproperlySpecifiedRecipients */
73 static int hf_p1_PAR_message_submission_identifier_invalid_PDU; /* PAR_message_submission_identifier_invalid */
74 static int hf_p1_PAR_inconsistent_request_PDU; /* PAR_inconsistent_request */
75 static int hf_p1_SecurityProblem_PDU; /* SecurityProblem */
76 static int hf_p1_PAR_unsupported_critical_function_PDU; /* PAR_unsupported_critical_function */
77 static int hf_p1_PAR_remote_bind_error_PDU; /* PAR_remote_bind_error */
78 static int hf_p1_MessageSubmissionTime_PDU; /* MessageSubmissionTime */
79 static int hf_p1_MessageDeliveryArgument_PDU; /* MessageDeliveryArgument */
80 static int hf_p1_MessageDeliveryResult_PDU; /* MessageDeliveryResult */
81 static int hf_p1_ReportDeliveryArgument_PDU; /* ReportDeliveryArgument */
82 static int hf_p1_ReportDeliveryResult_PDU; /* ReportDeliveryResult */
83 static int hf_p1_DeliveryControlArgument_PDU; /* DeliveryControlArgument */
84 static int hf_p1_DeliveryControlResult_PDU; /* DeliveryControlResult */
85 static int hf_p1_PAR_delivery_control_violated_PDU; /* PAR_delivery_control_violated */
86 static int hf_p1_PAR_control_violates_registration_PDU; /* PAR_control_violates_registration */
87 static int hf_p1_RefusedOperation_PDU; /* RefusedOperation */
88 static int hf_p1_RecipientCertificate_PDU; /* RecipientCertificate */
89 static int hf_p1_ProofOfDelivery_PDU; /* ProofOfDelivery */
90 static int hf_p1_RegisterArgument_PDU; /* RegisterArgument */
91 static int hf_p1_RegisterResult_PDU; /* RegisterResult */
92 static int hf_p1_ChangeCredentialsArgument_PDU; /* ChangeCredentialsArgument */
93 static int hf_p1_RES_change_credentials_PDU; /* RES_change_credentials */
94 static int hf_p1_PAR_register_rejected_PDU; /* PAR_register_rejected */
95 static int hf_p1_PAR_new_credentials_unacceptable_PDU; /* PAR_new_credentials_unacceptable */
96 static int hf_p1_PAR_old_credentials_incorrectly_specified_PDU; /* PAR_old_credentials_incorrectly_specified */
97 static int hf_p1_MessageSubmissionEnvelope_PDU; /* MessageSubmissionEnvelope */
98 static int hf_p1_PerRecipientMessageSubmissionFields_PDU; /* PerRecipientMessageSubmissionFields */
99 static int hf_p1_ProbeSubmissionEnvelope_PDU; /* ProbeSubmissionEnvelope */
100 static int hf_p1_PerRecipientProbeSubmissionFields_PDU; /* PerRecipientProbeSubmissionFields */
101 static int hf_p1_MessageDeliveryEnvelope_PDU; /* MessageDeliveryEnvelope */
102 static int hf_p1_ReportDeliveryEnvelope_PDU; /* ReportDeliveryEnvelope */
103 static int hf_p1_PerRecipientReportDeliveryFields_PDU; /* PerRecipientReportDeliveryFields */
104 static int hf_p1_ExtendedContentType_PDU; /* ExtendedContentType */
105 static int hf_p1_ContentIdentifier_PDU; /* ContentIdentifier */
106 static int hf_p1_PerMessageIndicators_PDU; /* PerMessageIndicators */
107 static int hf_p1_OriginatorReportRequest_PDU; /* OriginatorReportRequest */
108 static int hf_p1_DeferredDeliveryTime_PDU; /* DeferredDeliveryTime */
109 static int hf_p1_Priority_PDU; /* Priority */
110 static int hf_p1_ContentLength_PDU; /* ContentLength */
111 static int hf_p1_MessageDeliveryTime_PDU; /* MessageDeliveryTime */
112 static int hf_p1_DeliveryFlags_PDU; /* DeliveryFlags */
113 static int hf_p1_SubjectSubmissionIdentifier_PDU; /* SubjectSubmissionIdentifier */
114 static int hf_p1_RecipientReassignmentProhibited_PDU; /* RecipientReassignmentProhibited */
115 static int hf_p1_OriginatorRequestedAlternateRecipient_PDU; /* OriginatorRequestedAlternateRecipient */
116 static int hf_p1_DLExpansionProhibited_PDU; /* DLExpansionProhibited */
117 static int hf_p1_ConversionWithLossProhibited_PDU; /* ConversionWithLossProhibited */
118 static int hf_p1_LatestDeliveryTime_PDU; /* LatestDeliveryTime */
119 static int hf_p1_RequestedDeliveryMethod_PDU; /* RequestedDeliveryMethod */
120 static int hf_p1_PhysicalForwardingProhibited_PDU; /* PhysicalForwardingProhibited */
121 static int hf_p1_PhysicalForwardingAddressRequest_PDU; /* PhysicalForwardingAddressRequest */
122 static int hf_p1_PhysicalDeliveryModes_PDU; /* PhysicalDeliveryModes */
123 static int hf_p1_RegisteredMailType_PDU; /* RegisteredMailType */
124 static int hf_p1_RecipientNumberForAdvice_PDU; /* RecipientNumberForAdvice */
125 static int hf_p1_PhysicalRenditionAttributes_PDU; /* PhysicalRenditionAttributes */
126 static int hf_p1_OriginatorReturnAddress_PDU; /* OriginatorReturnAddress */
127 static int hf_p1_PhysicalDeliveryReportRequest_PDU; /* PhysicalDeliveryReportRequest */
128 static int hf_p1_OriginatorCertificate_PDU; /* OriginatorCertificate */
129 static int hf_p1_MessageToken_PDU; /* MessageToken */
130 static int hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU; /* ContentConfidentialityAlgorithmIdentifier */
131 static int hf_p1_ContentIntegrityCheck_PDU; /* ContentIntegrityCheck */
132 static int hf_p1_MessageOriginAuthenticationCheck_PDU; /* MessageOriginAuthenticationCheck */
133 static int hf_p1_p1_MessageSecurityLabel_PDU; /* MessageSecurityLabel */
134 static int hf_p1_ProofOfSubmissionRequest_PDU; /* ProofOfSubmissionRequest */
135 static int hf_p1_ProofOfDeliveryRequest_PDU; /* ProofOfDeliveryRequest */
136 static int hf_p1_ContentCorrelator_PDU; /* ContentCorrelator */
137 static int hf_p1_ProbeOriginAuthenticationCheck_PDU; /* ProbeOriginAuthenticationCheck */
138 static int hf_p1_RedirectionHistory_PDU; /* RedirectionHistory */
139 static int hf_p1_Redirection_PDU; /* Redirection */
140 static int hf_p1_DLExpansionHistory_PDU; /* DLExpansionHistory */
141 static int hf_p1_DLExpansion_PDU; /* DLExpansion */
142 static int hf_p1_PhysicalForwardingAddress_PDU; /* PhysicalForwardingAddress */
143 static int hf_p1_OriginatorAndDLExpansionHistory_PDU; /* OriginatorAndDLExpansionHistory */
144 static int hf_p1_ReportingDLName_PDU; /* ReportingDLName */
145 static int hf_p1_ReportingMTACertificate_PDU; /* ReportingMTACertificate */
146 static int hf_p1_ReportOriginAuthenticationCheck_PDU; /* ReportOriginAuthenticationCheck */
147 static int hf_p1_OriginatingMTACertificate_PDU; /* OriginatingMTACertificate */
148 static int hf_p1_ProofOfSubmission_PDU; /* ProofOfSubmission */
149 static int hf_p1_ReportingMTAName_PDU; /* ReportingMTAName */
150 static int hf_p1_ExtendedCertificates_PDU; /* ExtendedCertificates */
151 static int hf_p1_DLExemptedRecipients_PDU; /* DLExemptedRecipients */
152 static int hf_p1_CertificateSelectors_PDU; /* CertificateSelectors */
153 static int hf_p1_Content_PDU; /* Content */
154 static int hf_p1_MTSIdentifier_PDU; /* MTSIdentifier */
155 static int hf_p1_ORName_PDU; /* ORName */
156 static int hf_p1_ORAddress_PDU; /* ORAddress */
157 static int hf_p1_CommonName_PDU; /* CommonName */
158 static int hf_p1_TeletexCommonName_PDU; /* TeletexCommonName */
159 static int hf_p1_UniversalCommonName_PDU; /* UniversalCommonName */
160 static int hf_p1_TeletexOrganizationName_PDU; /* TeletexOrganizationName */
161 static int hf_p1_UniversalOrganizationName_PDU; /* UniversalOrganizationName */
162 static int hf_p1_TeletexPersonalName_PDU; /* TeletexPersonalName */
163 static int hf_p1_UniversalPersonalName_PDU; /* UniversalPersonalName */
164 static int hf_p1_TeletexOrganizationalUnitNames_PDU; /* TeletexOrganizationalUnitNames */
165 static int hf_p1_UniversalOrganizationalUnitNames_PDU; /* UniversalOrganizationalUnitNames */
166 static int hf_p1_PDSName_PDU; /* PDSName */
167 static int hf_p1_PhysicalDeliveryCountryName_PDU; /* PhysicalDeliveryCountryName */
168 static int hf_p1_PostalCode_PDU; /* PostalCode */
169 static int hf_p1_PhysicalDeliveryOfficeName_PDU; /* PhysicalDeliveryOfficeName */
170 static int hf_p1_UniversalPhysicalDeliveryOfficeName_PDU; /* UniversalPhysicalDeliveryOfficeName */
171 static int hf_p1_PhysicalDeliveryOfficeNumber_PDU; /* PhysicalDeliveryOfficeNumber */
172 static int hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU; /* UniversalPhysicalDeliveryOfficeNumber */
173 static int hf_p1_ExtensionORAddressComponents_PDU; /* ExtensionORAddressComponents */
174 static int hf_p1_UniversalExtensionORAddressComponents_PDU; /* UniversalExtensionORAddressComponents */
175 static int hf_p1_PhysicalDeliveryPersonalName_PDU; /* PhysicalDeliveryPersonalName */
176 static int hf_p1_UniversalPhysicalDeliveryPersonalName_PDU; /* UniversalPhysicalDeliveryPersonalName */
177 static int hf_p1_PhysicalDeliveryOrganizationName_PDU; /* PhysicalDeliveryOrganizationName */
178 static int hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU; /* UniversalPhysicalDeliveryOrganizationName */
179 static int hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU; /* ExtensionPhysicalDeliveryAddressComponents */
180 static int hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU; /* UniversalExtensionPhysicalDeliveryAddressComponents */
181 static int hf_p1_UnformattedPostalAddress_PDU; /* UnformattedPostalAddress */
182 static int hf_p1_UniversalUnformattedPostalAddress_PDU; /* UniversalUnformattedPostalAddress */
183 static int hf_p1_StreetAddress_PDU; /* StreetAddress */
184 static int hf_p1_UniversalStreetAddress_PDU; /* UniversalStreetAddress */
185 static int hf_p1_PostOfficeBoxAddress_PDU; /* PostOfficeBoxAddress */
186 static int hf_p1_UniversalPostOfficeBoxAddress_PDU; /* UniversalPostOfficeBoxAddress */
187 static int hf_p1_PosteRestanteAddress_PDU; /* PosteRestanteAddress */
188 static int hf_p1_UniversalPosteRestanteAddress_PDU; /* UniversalPosteRestanteAddress */
189 static int hf_p1_UniquePostalName_PDU; /* UniquePostalName */
190 static int hf_p1_UniversalUniquePostalName_PDU; /* UniversalUniquePostalName */
191 static int hf_p1_LocalPostalAttributes_PDU; /* LocalPostalAttributes */
192 static int hf_p1_UniversalLocalPostalAttributes_PDU; /* UniversalLocalPostalAttributes */
193 static int hf_p1_ExtendedNetworkAddress_PDU; /* ExtendedNetworkAddress */
194 static int hf_p1_TerminalType_PDU; /* TerminalType */
195 static int hf_p1_TeletexDomainDefinedAttributes_PDU; /* TeletexDomainDefinedAttributes */
196 static int hf_p1_UniversalDomainDefinedAttributes_PDU; /* UniversalDomainDefinedAttributes */
197 static int hf_p1_ExtendedEncodedInformationType_PDU; /* ExtendedEncodedInformationType */
198 static int hf_p1_MTANameAndOptionalGDI_PDU; /* MTANameAndOptionalGDI */
199 static int hf_p1_AsymmetricToken_PDU; /* AsymmetricToken */
200 static int hf_p1_BindTokenSignedData_PDU; /* BindTokenSignedData */
201 static int hf_p1_MessageTokenSignedData_PDU; /* MessageTokenSignedData */
202 static int hf_p1_MessageTokenEncryptedData_PDU; /* MessageTokenEncryptedData */
203 static int hf_p1_BindTokenEncryptedData_PDU; /* BindTokenEncryptedData */
204 static int hf_p1_SecurityClassification_PDU; /* SecurityClassification */
205 static int hf_p1_unauthenticated; /* NULL */
206 static int hf_p1_authenticated_argument; /* AuthenticatedArgument */
207 static int hf_p1_authenticated_initiator_name; /* MTAName */
208 static int hf_p1_initiator_credentials; /* InitiatorCredentials */
209 static int hf_p1_security_context; /* SecurityContext */
210 static int hf_p1_authenticated_result; /* AuthenticatedResult */
211 static int hf_p1_authenticated_responder_name; /* MTAName */
212 static int hf_p1_responder_credentials; /* ResponderCredentials */
213 static int hf_p1_message; /* Message */
214 static int hf_p1_probe; /* Probe */
215 static int hf_p1_report; /* Report */
216 static int hf_p1_message_envelope; /* MessageTransferEnvelope */
217 static int hf_p1_content; /* Content */
218 static int hf_p1_report_envelope; /* ReportTransferEnvelope */
219 static int hf_p1_report_content; /* ReportTransferContent */
220 static int hf_p1_message_identifier; /* MessageIdentifier */
221 static int hf_p1_perMessageTransferFields_originator_name; /* MTAOriginatorName */
222 static int hf_p1_original_encoded_information_types; /* OriginalEncodedInformationTypes */
223 static int hf_p1_content_type; /* ContentType */
224 static int hf_p1_content_identifier; /* ContentIdentifier */
225 static int hf_p1_priority; /* Priority */
226 static int hf_p1_per_message_indicators; /* PerMessageIndicators */
227 static int hf_p1_deferred_delivery_time; /* DeferredDeliveryTime */
228 static int hf_p1_per_domain_bilateral_information; /* SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation */
229 static int hf_p1_per_domain_bilateral_information_item; /* PerDomainBilateralInformation */
230 static int hf_p1_trace_information; /* TraceInformation */
231 static int hf_p1_extensions; /* SET_OF_ExtensionField */
232 static int hf_p1_extensions_item; /* ExtensionField */
233 static int hf_p1_recipient_name; /* MTARecipientName */
234 static int hf_p1_originally_specified_recipient_number; /* OriginallySpecifiedRecipientNumber */
235 static int hf_p1_per_recipient_indicators; /* PerRecipientIndicators */
236 static int hf_p1_explicit_conversion; /* ExplicitConversion */
237 static int hf_p1_probe_identifier; /* ProbeIdentifier */
238 static int hf_p1_perProbeTransferFields_originator_name; /* MTAOriginatorName */
239 static int hf_p1_content_length; /* ContentLength */
240 static int hf_p1_report_identifier; /* ReportIdentifier */
241 static int hf_p1_report_destination_name; /* ReportDestinationName */
242 static int hf_p1_subject_identifier; /* SubjectIdentifier */
243 static int hf_p1_subject_intermediate_trace_information; /* SubjectIntermediateTraceInformation */
244 static int hf_p1_returned_content; /* Content */
245 static int hf_p1_additional_information; /* AdditionalInformation */
246 static int hf_p1_mta_actual_recipient_name; /* MTAActualRecipientName */
247 static int hf_p1_last_trace_information; /* LastTraceInformation */
248 static int hf_p1_report_originally_intended_recipient_name; /* OriginallyIntendedRecipientName */
249 static int hf_p1_supplementary_information; /* SupplementaryInformation */
250 static int hf_p1_country_name; /* CountryName */
251 static int hf_p1_bilateral_domain; /* T_bilateral_domain */
252 static int hf_p1_administration_domain_name; /* AdministrationDomainName */
253 static int hf_p1_private_domain; /* T_private_domain */
254 static int hf_p1_private_domain_identifier; /* PrivateDomainIdentifier */
255 static int hf_p1_bilateral_information; /* T_bilateral_information */
256 static int hf_p1_arrival_time; /* ArrivalTime */
257 static int hf_p1_converted_encoded_information_types; /* ConvertedEncodedInformationTypes */
258 static int hf_p1_trace_report_type; /* ReportType */
259 static int hf_p1_InternalTraceInformation_item; /* InternalTraceInformationElement */
260 static int hf_p1_global_domain_identifier; /* GlobalDomainIdentifier */
261 static int hf_p1_mta_name; /* MTAName */
262 static int hf_p1_mta_supplied_information; /* MTASuppliedInformation */
263 static int hf_p1__untag_item; /* TraceInformationElement */
264 static int hf_p1_domain_supplied_information; /* DomainSuppliedInformation */
265 static int hf_p1_deferred_time; /* DeferredTime */
266 static int hf_p1_other_actions; /* OtherActions */
267 static int hf_p1_initiator_name; /* ObjectName */
268 static int hf_p1_messages_waiting; /* MessagesWaiting */
269 static int hf_p1_responder_name; /* ObjectName */
270 static int hf_p1_user_agent; /* ORAddressAndOptionalDirectoryName */
271 static int hf_p1_mTA; /* MTAName */
272 static int hf_p1_message_store; /* ORAddressAndOptionalDirectoryName */
273 static int hf_p1_urgent; /* DeliveryQueue */
274 static int hf_p1_normal; /* DeliveryQueue */
275 static int hf_p1_non_urgent; /* DeliveryQueue */
276 static int hf_p1_messages; /* INTEGER_0_ub_queue_size */
277 static int hf_p1_delivery_queue_octets; /* INTEGER_0_ub_content_length */
278 static int hf_p1_simple; /* Password */
279 static int hf_p1_strong; /* StrongCredentials */
280 static int hf_p1_protected; /* ProtectedPassword */
281 static int hf_p1_ia5_string; /* IA5String_SIZE_0_ub_password_length */
282 static int hf_p1_octet_string; /* OCTET_STRING_SIZE_0_ub_password_length */
283 static int hf_p1_bind_token; /* Token */
284 static int hf_p1_certificate; /* Certificates */
285 static int hf_p1_certificate_selector; /* CertificateAssertion */
286 static int hf_p1_signature; /* Signature */
287 static int hf_p1_time1; /* UTCTime */
288 static int hf_p1_time2; /* UTCTime */
289 static int hf_p1_random1; /* BIT_STRING */
290 static int hf_p1_random2; /* BIT_STRING */
291 static int hf_p1_algorithmIdentifier; /* AlgorithmIdentifier */
292 static int hf_p1_encrypted; /* BIT_STRING */
293 static int hf_p1_SecurityContext_item; /* SecurityLabel */
294 static int hf_p1_message_submission_envelope; /* MessageSubmissionEnvelope */
295 static int hf_p1_message_submission_identifier; /* MessageSubmissionIdentifier */
296 static int hf_p1_message_submission_time; /* MessageSubmissionTime */
297 static int hf_p1_probe_submission_identifier; /* ProbeSubmissionIdentifier */
298 static int hf_p1_probe_submission_time; /* ProbeSubmissionTime */
299 static int hf_p1_ImproperlySpecifiedRecipients_item; /* RecipientName */
300 static int hf_p1_waiting_operations; /* Operations */
301 static int hf_p1_waiting_messages; /* WaitingMessages */
302 static int hf_p1_waiting_content_types; /* SET_SIZE_0_ub_content_types_OF_ContentType */
303 static int hf_p1_waiting_content_types_item; /* ContentType */
304 static int hf_p1_waiting_encoded_information_types; /* EncodedInformationTypes */
305 static int hf_p1_recipient_certificate; /* RecipientCertificate */
306 static int hf_p1_proof_of_delivery; /* ProofOfDelivery */
307 static int hf_p1_empty_result; /* NULL */
308 static int hf_p1_max_extensions; /* SET_SIZE_1_MAX_OF_ExtensionField */
309 static int hf_p1_max_extensions_item; /* ExtensionField */
310 static int hf_p1_restrict; /* BOOLEAN */
311 static int hf_p1_permissible_operations; /* Operations */
312 static int hf_p1_permissible_maximum_content_length; /* ContentLength */
313 static int hf_p1_permissible_lowest_priority; /* Priority */
314 static int hf_p1_permissible_content_types; /* ContentTypes */
315 static int hf_p1_permissible_encoded_information_types; /* PermissibleEncodedInformationTypes */
316 static int hf_p1_permissible_security_context; /* SecurityContext */
317 static int hf_p1_refused_argument; /* T_refused_argument */
318 static int hf_p1_built_in_argument; /* RefusedArgument */
319 static int hf_p1_refused_extension; /* T_refused_extension */
320 static int hf_p1_refusal_reason; /* RefusalReason */
321 static int hf_p1_user_name; /* UserName */
322 static int hf_p1_user_address; /* UserAddress */
323 static int hf_p1_deliverable_class; /* SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass */
324 static int hf_p1_deliverable_class_item; /* DeliverableClass */
325 static int hf_p1_default_delivery_controls; /* DefaultDeliveryControls */
326 static int hf_p1_redirections; /* Redirections */
327 static int hf_p1_restricted_delivery; /* RestrictedDelivery */
328 static int hf_p1_retrieve_registrations; /* RegistrationTypes */
329 static int hf_p1_non_empty_result; /* T_non_empty_result */
330 static int hf_p1_registered_information; /* RegisterArgument */
331 static int hf_p1_old_credentials; /* Credentials */
332 static int hf_p1_new_credentials; /* Credentials */
333 static int hf_p1_x121; /* T_x121 */
334 static int hf_p1_x121_address; /* T_x121_address */
335 static int hf_p1_tsap_id; /* PrintableString_SIZE_1_ub_tsap_id_length */
336 static int hf_p1_presentation; /* PSAPAddress */
337 static int hf_p1_Redirections_item; /* RecipientRedirection */
338 static int hf_p1_redirection_classes; /* SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass */
339 static int hf_p1_redirection_classes_item; /* RedirectionClass */
340 static int hf_p1_recipient_assigned_alternate_recipient; /* RecipientAssignedAlternateRecipient */
341 static int hf_p1_content_types; /* ContentTypes */
342 static int hf_p1_maximum_content_length; /* ContentLength */
343 static int hf_p1_encoded_information_types_constraints; /* EncodedInformationTypesConstraints */
344 static int hf_p1_security_labels; /* SecurityContext */
345 static int hf_p1_class_priority; /* SET_OF_Priority */
346 static int hf_p1_class_priority_item; /* Priority */
347 static int hf_p1_objects; /* T_objects */
348 static int hf_p1_applies_only_to; /* SEQUENCE_OF_Restriction */
349 static int hf_p1_applies_only_to_item; /* Restriction */
350 static int hf_p1_unacceptable_eits; /* ExtendedEncodedInformationTypes */
351 static int hf_p1_acceptable_eits; /* ExtendedEncodedInformationTypes */
352 static int hf_p1_exclusively_acceptable_eits; /* ExtendedEncodedInformationTypes */
353 static int hf_p1_RestrictedDelivery_item; /* Restriction */
354 static int hf_p1_permitted; /* BOOLEAN */
355 static int hf_p1_source_type; /* T_source_type */
356 static int hf_p1_source_name; /* ExactOrPattern */
357 static int hf_p1_exact_match; /* ORName */
358 static int hf_p1_pattern_match; /* ORName */
359 static int hf_p1_standard_parameters; /* T_standard_parameters */
360 static int hf_p1_type_extensions; /* T_type_extensions */
361 static int hf_p1_type_extensions_item; /* T_type_extensions_item */
362 static int hf_p1_perMessageSubmissionFields_originator_name; /* OriginatorName */
363 static int hf_p1_submission_recipient_name; /* RecipientName */
364 static int hf_p1_originator_report_request; /* OriginatorReportRequest */
365 static int hf_p1_perProbeSubmissionFields_originator_name; /* OriginatorName */
366 static int hf_p1_probe_recipient_name; /* RecipientName */
367 static int hf_p1_message_delivery_identifier; /* MessageDeliveryIdentifier */
368 static int hf_p1_message_delivery_time; /* MessageDeliveryTime */
369 static int hf_p1_other_fields; /* OtherMessageDeliveryFields */
370 static int hf_p1_delivered_content_type; /* DeliveredContentType */
371 static int hf_p1_delivered_originator_name; /* DeliveredOriginatorName */
372 static int hf_p1_delivery_flags; /* DeliveryFlags */
373 static int hf_p1_other_recipient_names; /* OtherRecipientNames */
374 static int hf_p1_this_recipient_name; /* ThisRecipientName */
375 static int hf_p1_originally_intended_recipient_name; /* OriginallyIntendedRecipientName */
376 static int hf_p1_subject_submission_identifier; /* SubjectSubmissionIdentifier */
377 static int hf_p1_actual_recipient_name; /* ActualRecipientName */
378 static int hf_p1_delivery_report_type; /* ReportType */
379 static int hf_p1_delivery; /* DeliveryReport */
380 static int hf_p1_non_delivery; /* NonDeliveryReport */
381 static int hf_p1_type_of_MTS_user; /* TypeOfMTSUser */
382 static int hf_p1_non_delivery_reason_code; /* NonDeliveryReasonCode */
383 static int hf_p1_non_delivery_diagnostic_code; /* NonDeliveryDiagnosticCode */
384 static int hf_p1_ContentTypes_item; /* ContentType */
385 static int hf_p1_built_in; /* BuiltInContentType */
386 static int hf_p1_extended; /* ExtendedContentType */
387 static int hf_p1_OtherRecipientNames_item; /* OtherRecipientName */
388 static int hf_p1_standard_extension; /* StandardExtension */
389 static int hf_p1_private_extension; /* T_private_extension */
390 static int hf_p1_extension_type; /* ExtensionType */
391 static int hf_p1_criticality; /* Criticality */
392 static int hf_p1_extension_value; /* ExtensionValue */
393 static int hf_p1_RequestedDeliveryMethod_item; /* RequestedDeliveryMethod_item */
394 static int hf_p1_ia5text; /* IA5String */
395 static int hf_p1_octets; /* OCTET_STRING */
396 static int hf_p1_RedirectionHistory_item; /* Redirection */
397 static int hf_p1_intended_recipient_name; /* IntendedRecipientName */
398 static int hf_p1_redirection_reason; /* RedirectionReason */
399 static int hf_p1_intended_recipient; /* ORAddressAndOptionalDirectoryName */
400 static int hf_p1_redirection_time; /* Time */
401 static int hf_p1_DLExpansionHistory_item; /* DLExpansion */
402 static int hf_p1_dl; /* ORAddressAndOptionalDirectoryName */
403 static int hf_p1_dl_expansion_time; /* Time */
404 static int hf_p1_OriginatorAndDLExpansionHistory_item; /* OriginatorAndDLExpansion */
405 static int hf_p1_originator_or_dl_name; /* ORAddressAndOptionalDirectoryName */
406 static int hf_p1_origination_or_expansion_time; /* Time */
407 static int hf_p1_domain; /* GlobalDomainIdentifier */
408 static int hf_p1_mta_directory_name; /* Name */
409 static int hf_p1_ExtendedCertificates_item; /* ExtendedCertificate */
410 static int hf_p1_directory_entry; /* Name */
411 static int hf_p1_DLExemptedRecipients_item; /* ORAddressAndOrDirectoryName */
412 static int hf_p1_encryption_recipient; /* CertificateAssertion */
413 static int hf_p1_encryption_originator; /* CertificateAssertion */
414 static int hf_p1_selectors_content_integrity_check; /* CertificateAssertion */
415 static int hf_p1_token_signature; /* CertificateAssertion */
416 static int hf_p1_message_origin_authentication; /* CertificateAssertion */
417 static int hf_p1_local_identifier; /* LocalIdentifier */
418 static int hf_p1_numeric_private_domain_identifier; /* T_numeric_private_domain_identifier */
419 static int hf_p1_printable_private_domain_identifier; /* T_printable_private_domain_identifier */
420 static int hf_p1_built_in_standard_attributes; /* BuiltInStandardAttributes */
421 static int hf_p1_built_in_domain_defined_attributes; /* BuiltInDomainDefinedAttributes */
422 static int hf_p1_extension_attributes; /* ExtensionAttributes */
423 static int hf_p1_network_address; /* NetworkAddress */
424 static int hf_p1_terminal_identifier; /* TerminalIdentifier */
425 static int hf_p1_private_domain_name; /* PrivateDomainName */
426 static int hf_p1_organization_name; /* OrganizationName */
427 static int hf_p1_numeric_user_identifier; /* NumericUserIdentifier */
428 static int hf_p1_personal_name; /* PersonalName */
429 static int hf_p1_organizational_unit_names; /* OrganizationalUnitNames */
430 static int hf_p1_x121_dcc_code; /* T_x121_dcc_code */
431 static int hf_p1_iso_3166_alpha2_code; /* T_iso_3166_alpha2_code */
432 static int hf_p1_numeric; /* T_numeric */
433 static int hf_p1_printable; /* T_printable */
434 static int hf_p1_numeric_private_domain_name; /* T_numeric_private_domain_name */
435 static int hf_p1_printable_private_domain_name; /* T_printable_private_domain_name */
436 static int hf_p1_printable_surname; /* T_printable_surname */
437 static int hf_p1_printable_given_name; /* T_printable_given_name */
438 static int hf_p1_printable_initials; /* T_printable_initials */
439 static int hf_p1_printable_generation_qualifier; /* T_printable_generation_qualifier */
440 static int hf_p1_OrganizationalUnitNames_item; /* OrganizationalUnitName */
441 static int hf_p1_BuiltInDomainDefinedAttributes_item; /* BuiltInDomainDefinedAttribute */
442 static int hf_p1_printable_type; /* T_printable_type */
443 static int hf_p1_printable_value; /* T_printable_value */
444 static int hf_p1_ExtensionAttributes_item; /* ExtensionAttribute */
445 static int hf_p1_extension_attribute_type; /* ExtensionAttributeType */
446 static int hf_p1_extension_attribute_value; /* T_extension_attribute_value */
447 static int hf_p1_teletex_surname; /* T_teletex_surname */
448 static int hf_p1_teletex_given_name; /* T_teletex_given_name */
449 static int hf_p1_teletex_initials; /* T_teletex_initials */
450 static int hf_p1_teletex_generation_qualifier; /* T_teletex_generation_qualifier */
451 static int hf_p1_universal_surname; /* UniversalOrBMPString */
452 static int hf_p1_universal_given_name; /* UniversalOrBMPString */
453 static int hf_p1_universal_initials; /* UniversalOrBMPString */
454 static int hf_p1_universal_generation_qualifier; /* UniversalOrBMPString */
455 static int hf_p1_TeletexOrganizationalUnitNames_item; /* TeletexOrganizationalUnitName */
456 static int hf_p1_UniversalOrganizationalUnitNames_item; /* UniversalOrganizationalUnitName */
457 static int hf_p1_character_encoding; /* T_character_encoding */
458 static int hf_p1_two_octets; /* BMPString_SIZE_1_ub_string_length */
459 static int hf_p1_four_octets; /* UniversalString_SIZE_1_ub_string_length */
460 static int hf_p1_iso_639_language_code; /* PrintableString_SIZE_CONSTR001 */
461 static int hf_p1_x121_dcc_code_01; /* T_x121_dcc_code_01 */
462 static int hf_p1_iso_3166_alpha2_code_01; /* T_iso_3166_alpha2_code_01 */
463 static int hf_p1_numeric_code; /* T_numeric_code */
464 static int hf_p1_printable_code; /* PrintableString_SIZE_1_ub_postal_code_length */
465 static int hf_p1_printable_address; /* T_printable_address */
466 static int hf_p1_printable_address_item; /* PrintableString_SIZE_1_ub_pds_parameter_length */
467 static int hf_p1_teletex_string; /* TeletexString_SIZE_1_ub_unformatted_address_length */
468 static int hf_p1_printable_string; /* PrintableString_SIZE_1_ub_pds_parameter_length */
469 static int hf_p1_pds_teletex_string; /* TeletexString_SIZE_1_ub_pds_parameter_length */
470 static int hf_p1_e163_4_address; /* T_e163_4_address */
471 static int hf_p1_number; /* NumericString_SIZE_1_ub_e163_4_number_length */
472 static int hf_p1_sub_address; /* NumericString_SIZE_1_ub_e163_4_sub_address_length */
473 static int hf_p1_psap_address; /* PresentationAddress */
474 static int hf_p1_TeletexDomainDefinedAttributes_item; /* TeletexDomainDefinedAttribute */
475 static int hf_p1_type; /* T_type */
476 static int hf_p1_teletex_value; /* T_teletex_value */
477 static int hf_p1_UniversalDomainDefinedAttributes_item; /* UniversalDomainDefinedAttribute */
478 static int hf_p1_universal_type; /* UniversalOrBMPString */
479 static int hf_p1_universal_value; /* UniversalOrBMPString */
480 static int hf_p1_ExtendedEncodedInformationTypes_item; /* ExtendedEncodedInformationType */
481 static int hf_p1_g3_facsimile; /* G3FacsimileNonBasicParameters */
482 static int hf_p1_teletex; /* TeletexNonBasicParameters */
483 static int hf_p1_graphic_character_sets; /* TeletexString */
484 static int hf_p1_control_character_sets; /* TeletexString */
485 static int hf_p1_page_formats; /* OCTET_STRING */
486 static int hf_p1_miscellaneous_terminal_capabilities; /* TeletexString */
487 static int hf_p1_private_use; /* OCTET_STRING */
488 static int hf_p1_token_type_identifier; /* TokenTypeIdentifier */
489 static int hf_p1_token; /* TokenTypeData */
490 static int hf_p1_signature_algorithm_identifier; /* AlgorithmIdentifier */
491 static int hf_p1_name; /* T_name */
492 static int hf_p1_token_recipient_name; /* RecipientName */
493 static int hf_p1_token_mta; /* MTANameAndOptionalGDI */
494 static int hf_p1_time; /* Time */
495 static int hf_p1_signed_data; /* TokenData */
496 static int hf_p1_encryption_algorithm_identifier; /* AlgorithmIdentifier */
497 static int hf_p1_encrypted_data; /* BIT_STRING */
498 static int hf_p1_asymmetric_token_data; /* AsymmetricTokenData */
499 static int hf_p1_algorithm_identifier; /* AlgorithmIdentifier */
500 static int hf_p1_token_data_type; /* TokenDataType */
501 static int hf_p1_value; /* T_value */
502 static int hf_p1_content_confidentiality_algorithm_identifier; /* ContentConfidentialityAlgorithmIdentifier */
503 static int hf_p1_content_integrity_check; /* ContentIntegrityCheck */
504 static int hf_p1_message_security_label; /* MessageSecurityLabel */
505 static int hf_p1_proof_of_delivery_request; /* ProofOfDeliveryRequest */
506 static int hf_p1_message_sequence_number; /* INTEGER */
507 static int hf_p1_content_confidentiality_key; /* EncryptionKey */
508 static int hf_p1_content_integrity_key; /* EncryptionKey */
509 static int hf_p1_security_policy_identifier; /* SecurityPolicyIdentifier */
510 static int hf_p1_security_classification; /* SecurityClassification */
511 static int hf_p1_privacy_mark; /* PrivacyMark */
512 static int hf_p1_security_categories; /* SecurityCategories */
513 static int hf_p1_SecurityCategories_item; /* SecurityCategory */
514 static int hf_p1_category_type; /* SecurityCategoryIdentifier */
515 static int hf_p1_category_value; /* CategoryValue */
516 static int hf_p1_mta_originator_name; /* MTAOriginatorName */
517 static int hf_p1_per_recipient_message_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields */
518 static int hf_p1_per_recipient_message_fields_item; /* PerRecipientMessageTransferFields */
519 static int hf_p1_per_recipient_probe_transfer_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields */
520 static int hf_p1_per_recipient_probe_transfer_fields_item; /* PerRecipientProbeTransferFields */
521 static int hf_p1_per_recipient_report_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields */
522 static int hf_p1_per_recipient_report_fields_item; /* PerRecipientReportTransferFields */
523 static int hf_p1_routing_action; /* RoutingAction */
524 static int hf_p1_attempted; /* T_attempted */
525 static int hf_p1_mta; /* MTAName */
526 static int hf_p1_attempted_domain; /* GlobalDomainIdentifier */
527 static int hf_p1_per_recipient_report_delivery_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields */
528 static int hf_p1_per_recipient_report_delivery_fields_item; /* PerRecipientReportDeliveryFields */
529 static int hf_p1_mts_originator_name; /* OriginatorName */
530 static int hf_p1_per_recipient_message_submission_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields */
531 static int hf_p1_per_recipient_message_submission_fields_item; /* PerRecipientMessageSubmissionFields */
532 static int hf_p1_per_recipient_probe_submission_fields; /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields */
533 static int hf_p1_per_recipient_probe_submission_fields_item; /* PerRecipientProbeSubmissionFields */
534 static int hf_p1_directory_name; /* Name */
535 static int hf_p1_built_in_encoded_information_types; /* BuiltInEncodedInformationTypes */
536 static int hf_p1_extended_encoded_information_types; /* ExtendedEncodedInformationTypes */
537 /* named bits */
538 static int hf_p1_PerRecipientIndicators_responsibility;
539 static int hf_p1_PerRecipientIndicators_originating_MTA_report;
540 static int hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report;
541 static int hf_p1_PerRecipientIndicators_originator_report;
542 static int hf_p1_PerRecipientIndicators_originator_non_delivery_report;
543 static int hf_p1_PerRecipientIndicators_reserved_5;
544 static int hf_p1_PerRecipientIndicators_reserved_6;
545 static int hf_p1_PerRecipientIndicators_reserved_7;
546 static int hf_p1_OtherActions_redirected;
547 static int hf_p1_OtherActions_dl_operation;
548 static int hf_p1_Operations_probe_submission_or_report_delivery;
549 static int hf_p1_Operations_message_submission_or_message_delivery;
550 static int hf_p1_WaitingMessages_long_content;
551 static int hf_p1_WaitingMessages_low_priority;
552 static int hf_p1_WaitingMessages_other_security_labels;
553 static int hf_p1_T_source_type_originated_by;
554 static int hf_p1_T_source_type_redirected_by;
555 static int hf_p1_T_source_type_dl_expanded_by;
556 static int hf_p1_T_standard_parameters_user_name;
557 static int hf_p1_T_standard_parameters_user_address;
558 static int hf_p1_T_standard_parameters_deliverable_class;
559 static int hf_p1_T_standard_parameters_default_delivery_controls;
560 static int hf_p1_T_standard_parameters_redirections;
561 static int hf_p1_T_standard_parameters_restricted_delivery;
562 static int hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients;
563 static int hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited;
564 static int hf_p1_PerMessageIndicators_U_alternate_recipient_allowed;
565 static int hf_p1_PerMessageIndicators_U_content_return_request;
566 static int hf_p1_PerMessageIndicators_U_reserved;
567 static int hf_p1_PerMessageIndicators_U_bit_5;
568 static int hf_p1_PerMessageIndicators_U_bit_6;
569 static int hf_p1_PerMessageIndicators_U_service_message;
570 static int hf_p1_OriginatorReportRequest_spare_bit0;
571 static int hf_p1_OriginatorReportRequest_spare_bit1;
572 static int hf_p1_OriginatorReportRequest_spare_bit2;
573 static int hf_p1_OriginatorReportRequest_report;
574 static int hf_p1_OriginatorReportRequest_non_delivery_report;
575 static int hf_p1_DeliveryFlags_spare_bit0;
576 static int hf_p1_DeliveryFlags_implicit_conversion_prohibited;
577 static int hf_p1_Criticality_for_submission;
578 static int hf_p1_Criticality_for_transfer;
579 static int hf_p1_Criticality_for_delivery;
580 static int hf_p1_PhysicalDeliveryModes_ordinary_mail;
581 static int hf_p1_PhysicalDeliveryModes_special_delivery;
582 static int hf_p1_PhysicalDeliveryModes_express_mail;
583 static int hf_p1_PhysicalDeliveryModes_counter_collection;
584 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice;
585 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice;
586 static int hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice;
587 static int hf_p1_PhysicalDeliveryModes_bureau_fax_delivery;
588 static int hf_p1_BuiltInEncodedInformationTypes_unknown;
589 static int hf_p1_BuiltInEncodedInformationTypes_telex;
590 static int hf_p1_BuiltInEncodedInformationTypes_ia5_text;
591 static int hf_p1_BuiltInEncodedInformationTypes_g3_facsimile;
592 static int hf_p1_BuiltInEncodedInformationTypes_g4_class_1;
593 static int hf_p1_BuiltInEncodedInformationTypes_teletex;
594 static int hf_p1_BuiltInEncodedInformationTypes_videotex;
595 static int hf_p1_BuiltInEncodedInformationTypes_voice;
596 static int hf_p1_BuiltInEncodedInformationTypes_sfd;
597 static int hf_p1_BuiltInEncodedInformationTypes_mixed_mode;
598 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit0;
599 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit1;
600 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit2;
601 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit3;
602 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit4;
603 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit5;
604 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit6;
605 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit7;
606 static int hf_p1_G3FacsimileNonBasicParameters_two_dimensional;
607 static int hf_p1_G3FacsimileNonBasicParameters_fine_resolution;
608 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit10;
609 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit11;
610 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit12;
611 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit13;
612 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit14;
613 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit15;
614 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit16;
615 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit17;
616 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit18;
617 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit19;
618 static int hf_p1_G3FacsimileNonBasicParameters_unlimited_length;
619 static int hf_p1_G3FacsimileNonBasicParameters_b4_length;
620 static int hf_p1_G3FacsimileNonBasicParameters_a3_width;
621 static int hf_p1_G3FacsimileNonBasicParameters_b4_width;
622 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit24;
623 static int hf_p1_G3FacsimileNonBasicParameters_t6_coding;
624 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit26;
625 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit27;
626 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit28;
627 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit29;
628 static int hf_p1_G3FacsimileNonBasicParameters_uncompressed;
629 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit31;
630 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit32;
631 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit33;
632 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit34;
633 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit35;
634 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit36;
635 static int hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728;
636 static int hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728;
637 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit39;
638 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit40;
639 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit41;
640 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit42;
641 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit43;
642 static int hf_p1_G3FacsimileNonBasicParameters_resolution_type;
643 static int hf_p1_G3FacsimileNonBasicParameters_resolution_400x400;
644 static int hf_p1_G3FacsimileNonBasicParameters_resolution_300x300;
645 static int hf_p1_G3FacsimileNonBasicParameters_resolution_8x15;
646 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit48;
647 static int hf_p1_G3FacsimileNonBasicParameters_edi;
648 static int hf_p1_G3FacsimileNonBasicParameters_dtm;
649 static int hf_p1_G3FacsimileNonBasicParameters_bft;
650 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit52;
651 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit53;
652 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit54;
653 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit55;
654 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit56;
655 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit57;
656 static int hf_p1_G3FacsimileNonBasicParameters_mixed_mode;
657 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit59;
658 static int hf_p1_G3FacsimileNonBasicParameters_character_mode;
659 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit61;
660 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit62;
661 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit63;
662 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit64;
663 static int hf_p1_G3FacsimileNonBasicParameters_twelve_bits;
664 static int hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann;
665 static int hf_p1_G3FacsimileNonBasicParameters_full_colour;
666 static int hf_p1_G3FacsimileNonBasicParameters_jpeg;
667 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit69;
668 static int hf_p1_G3FacsimileNonBasicParameters_spare_bit70;
669 static int hf_p1_G3FacsimileNonBasicParameters_processable_mode_26;
671 /* Initialize the subtree pointers */
672 static int ett_p1;
673 static int ett_p3;
674 static int ett_p1_content_unknown;
675 static int ett_p1_bilateral_information;
676 static int ett_p1_additional_information;
677 static int ett_p1_unknown_standard_extension;
678 static int ett_p1_unknown_extension_attribute_type;
679 static int ett_p1_unknown_tokendata_type;
680 static int ett_p1_MTABindArgument;
681 static int ett_p1_AuthenticatedArgument;
682 static int ett_p1_MTABindResult;
683 static int ett_p1_AuthenticatedResult;
684 static int ett_p1_MTS_APDU;
685 static int ett_p1_Message;
686 static int ett_p1_Report;
687 static int ett_p1_MessageTransferEnvelope;
688 static int ett_p1_PerMessageTransferFields;
689 static int ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation;
690 static int ett_p1_SET_OF_ExtensionField;
691 static int ett_p1_PerRecipientMessageTransferFields;
692 static int ett_p1_ProbeTransferEnvelope;
693 static int ett_p1_PerProbeTransferFields;
694 static int ett_p1_PerRecipientProbeTransferFields;
695 static int ett_p1_ReportTransferEnvelope;
696 static int ett_p1_ReportTransferContent;
697 static int ett_p1_PerReportTransferFields;
698 static int ett_p1_PerRecipientReportTransferFields;
699 static int ett_p1_PerDomainBilateralInformation;
700 static int ett_p1_T_bilateral_domain;
701 static int ett_p1_T_private_domain;
702 static int ett_p1_PerRecipientIndicators;
703 static int ett_p1_LastTraceInformation;
704 static int ett_p1_InternalTraceInformation;
705 static int ett_p1_InternalTraceInformationElement;
706 static int ett_p1_MTASuppliedInformation;
707 static int ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement;
708 static int ett_p1_TraceInformationElement;
709 static int ett_p1_DomainSuppliedInformation;
710 static int ett_p1_AdditionalActions;
711 static int ett_p1_OtherActions;
712 static int ett_p1_MTSBindArgument;
713 static int ett_p1_MTSBindResult;
714 static int ett_p1_ObjectName;
715 static int ett_p1_MessagesWaiting;
716 static int ett_p1_DeliveryQueue;
717 static int ett_p1_Credentials;
718 static int ett_p1_Password;
719 static int ett_p1_StrongCredentials;
720 static int ett_p1_ProtectedPassword;
721 static int ett_p1_Signature;
722 static int ett_p1_SecurityContext;
723 static int ett_p1_MessageSubmissionArgument;
724 static int ett_p1_MessageSubmissionResult;
725 static int ett_p1_ProbeSubmissionResult;
726 static int ett_p1_ImproperlySpecifiedRecipients;
727 static int ett_p1_Waiting;
728 static int ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType;
729 static int ett_p1_Operations;
730 static int ett_p1_WaitingMessages;
731 static int ett_p1_MessageDeliveryArgument;
732 static int ett_p1_MessageDeliveryResult;
733 static int ett_p1_ReportDeliveryArgument;
734 static int ett_p1_ReportDeliveryResult;
735 static int ett_p1_SET_SIZE_1_MAX_OF_ExtensionField;
736 static int ett_p1_DeliveryControlArgument;
737 static int ett_p1_DeliveryControlResult;
738 static int ett_p1_RefusedOperation;
739 static int ett_p1_T_refused_argument;
740 static int ett_p1_Controls;
741 static int ett_p1_RegisterArgument;
742 static int ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass;
743 static int ett_p1_RegisterResult;
744 static int ett_p1_T_non_empty_result;
745 static int ett_p1_ChangeCredentialsArgument;
746 static int ett_p1_UserAddress;
747 static int ett_p1_T_x121;
748 static int ett_p1_Redirections;
749 static int ett_p1_RecipientRedirection;
750 static int ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass;
751 static int ett_p1_MessageClass;
752 static int ett_p1_SET_OF_Priority;
753 static int ett_p1_SEQUENCE_OF_Restriction;
754 static int ett_p1_EncodedInformationTypesConstraints;
755 static int ett_p1_RestrictedDelivery;
756 static int ett_p1_Restriction;
757 static int ett_p1_T_source_type;
758 static int ett_p1_ExactOrPattern;
759 static int ett_p1_RegistrationTypes;
760 static int ett_p1_T_standard_parameters;
761 static int ett_p1_T_type_extensions;
762 static int ett_p1_MessageSubmissionEnvelope;
763 static int ett_p1_PerMessageSubmissionFields;
764 static int ett_p1_PerRecipientMessageSubmissionFields;
765 static int ett_p1_ProbeSubmissionEnvelope;
766 static int ett_p1_PerProbeSubmissionFields;
767 static int ett_p1_PerRecipientProbeSubmissionFields;
768 static int ett_p1_MessageDeliveryEnvelope;
769 static int ett_p1_OtherMessageDeliveryFields;
770 static int ett_p1_ReportDeliveryEnvelope;
771 static int ett_p1_PerReportDeliveryFields;
772 static int ett_p1_PerRecipientReportDeliveryFields;
773 static int ett_p1_ReportType;
774 static int ett_p1_DeliveryReport;
775 static int ett_p1_NonDeliveryReport;
776 static int ett_p1_ContentTypes;
777 static int ett_p1_ContentType;
778 static int ett_p1_DeliveredContentType;
779 static int ett_p1_PerMessageIndicators_U;
780 static int ett_p1_OriginatorReportRequest;
781 static int ett_p1_DeliveryFlags;
782 static int ett_p1_OtherRecipientNames;
783 static int ett_p1_ExtensionType;
784 static int ett_p1_Criticality;
785 static int ett_p1_ExtensionField;
786 static int ett_p1_RequestedDeliveryMethod;
787 static int ett_p1_PhysicalDeliveryModes;
788 static int ett_p1_ContentCorrelator;
789 static int ett_p1_RedirectionHistory;
790 static int ett_p1_Redirection;
791 static int ett_p1_IntendedRecipientName;
792 static int ett_p1_DLExpansionHistory;
793 static int ett_p1_DLExpansion;
794 static int ett_p1_OriginatorAndDLExpansionHistory;
795 static int ett_p1_OriginatorAndDLExpansion;
796 static int ett_p1_PerRecipientDeliveryReportFields;
797 static int ett_p1_PerRecipientNonDeliveryReportFields;
798 static int ett_p1_ReportingMTAName;
799 static int ett_p1_ExtendedCertificates;
800 static int ett_p1_ExtendedCertificate;
801 static int ett_p1_DLExemptedRecipients;
802 static int ett_p1_CertificateSelectors;
803 static int ett_p1_MTSIdentifier_U;
804 static int ett_p1_GlobalDomainIdentifier_U;
805 static int ett_p1_PrivateDomainIdentifier;
806 static int ett_p1_ORName_U;
807 static int ett_p1_ORAddress;
808 static int ett_p1_BuiltInStandardAttributes;
809 static int ett_p1_CountryName_U;
810 static int ett_p1_AdministrationDomainName_U;
811 static int ett_p1_PrivateDomainName;
812 static int ett_p1_PersonalName;
813 static int ett_p1_OrganizationalUnitNames;
814 static int ett_p1_BuiltInDomainDefinedAttributes;
815 static int ett_p1_BuiltInDomainDefinedAttribute;
816 static int ett_p1_ExtensionAttributes;
817 static int ett_p1_ExtensionAttribute;
818 static int ett_p1_TeletexPersonalName;
819 static int ett_p1_UniversalPersonalName;
820 static int ett_p1_TeletexOrganizationalUnitNames;
821 static int ett_p1_UniversalOrganizationalUnitNames;
822 static int ett_p1_UniversalOrBMPString;
823 static int ett_p1_T_character_encoding;
824 static int ett_p1_PhysicalDeliveryCountryName;
825 static int ett_p1_PostalCode;
826 static int ett_p1_UnformattedPostalAddress;
827 static int ett_p1_T_printable_address;
828 static int ett_p1_PDSParameter;
829 static int ett_p1_ExtendedNetworkAddress;
830 static int ett_p1_T_e163_4_address;
831 static int ett_p1_TeletexDomainDefinedAttributes;
832 static int ett_p1_TeletexDomainDefinedAttribute;
833 static int ett_p1_UniversalDomainDefinedAttributes;
834 static int ett_p1_UniversalDomainDefinedAttribute;
835 static int ett_p1_EncodedInformationTypes_U;
836 static int ett_p1_BuiltInEncodedInformationTypes;
837 static int ett_p1_ExtendedEncodedInformationTypes;
838 static int ett_p1_NonBasicParameters;
839 static int ett_p1_G3FacsimileNonBasicParameters;
840 static int ett_p1_TeletexNonBasicParameters;
841 static int ett_p1_Token;
842 static int ett_p1_AsymmetricTokenData;
843 static int ett_p1_T_name;
844 static int ett_p1_MTANameAndOptionalGDI;
845 static int ett_p1_AsymmetricToken;
846 static int ett_p1_TokenData;
847 static int ett_p1_MessageTokenSignedData;
848 static int ett_p1_MessageTokenEncryptedData;
849 static int ett_p1_SecurityLabel;
850 static int ett_p1_SecurityCategories;
851 static int ett_p1_SecurityCategory;
852 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields;
853 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields;
854 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields;
855 static int ett_p1_T_attempted;
856 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields;
857 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields;
858 static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields;
860 static expert_field ei_p1_unknown_extension_attribute_type;
861 static expert_field ei_p1_unknown_standard_extension;
862 static expert_field ei_p1_unknown_built_in_content_type;
863 static expert_field ei_p1_unknown_tokendata_type;
864 static expert_field ei_p1_unsupported_pdu;
865 static expert_field ei_p1_zero_pdu;
867 /* Dissector tables */
868 static dissector_table_t p1_extension_dissector_table;
869 static dissector_table_t p1_extension_attribute_dissector_table;
870 static dissector_table_t p1_tokendata_dissector_table;
872 static dissector_handle_t p1_handle;
875 /* P3 ABSTRACT-OPERATIONS */
876 static const value_string p3_opr_code_string_vals[] = {
877 { op_ros_bind, "mts_bind" },
878 { op_message_submission, "message_submission" },
879 { op_probe_submission, "probe_submission" },
880 { op_cancel_deferred_delivery, "cancel_deferred_delivery" },
881 { op_submission_control, "submission_control" },
882 { op_message_delivery, "message_delivery" },
883 { op_report_delivery, "report_delivery" },
884 { op_delivery_control, "delivery_control" },
885 { op_register, "register" },
886 { op_change_credentials, "change_credentials" },
887 { 0, NULL }
891 /* P3 ERRORS */
892 static const value_string p3_err_code_string_vals[] = {
893 { err_ros_bind, "mts_bind_error" },
894 { err_submission_control_violated, "submission_control_violated" },
895 { err_element_of_service_not_subscribed, "element_of_service_not_subscribed" },
896 { err_deferred_delivery_cancellation_rejected, "deferred_delivery_cancellation_rejected" },
897 { err_originator_invalid, "originator_invalid" },
898 { err_recipient_improperly_specified, "recipient_improperly_specified" },
899 { err_message_submission_identifier_invalid, "message_submission_identifier_invalid" },
900 { err_inconsistent_request, "inconsistent_request" },
901 { err_security_error, "security_error" },
902 { err_unsupported_critical_function, "unsupported_critical_function" },
903 { err_remote_bind_error, "remote_bind_error" },
904 { err_delivery_control_violated, "delivery_control_violated" },
905 { err_control_violates_registration, "control_violates_registration" },
906 { err_operation_refused, "operation_refused" },
907 { err_register_rejected, "register_rejected" },
908 { err_new_credentials_unacceptable, "new_credentials_unacceptable" },
909 { err_old_credentials_incorrectly_specified, "old_credentials_incorrectly_specified" },
910 { 0, NULL }
914 typedef struct p1_address_ctx {
915 bool do_address;
916 const char *content_type_id;
917 bool report_unknown_content_type;
918 wmem_strbuf_t* oraddress;
919 } p1_address_ctx_t;
921 static void set_do_address(asn1_ctx_t* actx, bool do_address)
923 p1_address_ctx_t* ctx;
925 if (actx->subtree.tree_ctx == NULL) {
926 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
929 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
930 ctx->do_address = do_address;
933 static p1_address_ctx_t *get_do_address_ctx(asn1_ctx_t* actx)
935 p1_address_ctx_t* ctx = NULL;
937 /* First check if called from an extension attribute */
938 ctx = (p1_address_ctx_t *)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_p1, 0);
940 if (!ctx) {
941 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
944 return ctx;
947 static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
949 p1_address_ctx_t* ctx = get_do_address_ctx(actx);
951 if (ctx && ctx->do_address) {
952 if (addr) {
953 wmem_strbuf_append(ctx->oraddress, addr);
955 if (tvb_string) {
956 wmem_strbuf_append(ctx->oraddress, tvb_format_text(actx->pinfo->pool, tvb_string, 0, tvb_captured_length(tvb_string)));
961 static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx)
963 wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
964 p1_address_ctx_t* ctx = get_do_address_ctx(actx);
966 do_address(addr, tvb_string, actx);
968 if (ctx && ctx->do_address && ddatype && tvb_string)
969 wmem_strbuf_append(ddatype, tvb_format_text(actx->pinfo->pool, tvb_string, 0, tvb_captured_length(tvb_string)));
972 static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx, proto_tree* tree)
974 wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr;
975 p1_address_ctx_t* ctx = get_do_address_ctx(actx);
977 do_address(addr, tvb_string, actx);
979 if (ctx && ctx->do_address && tvb_string && ddatype) {
980 if (wmem_strbuf_get_len(ddatype) > 0) {
981 proto_item_append_text (tree, " (%s=%s)", wmem_strbuf_get_str(ddatype), tvb_format_text(actx->pinfo->pool, tvb_string, 0, tvb_captured_length(tvb_string)));
988 static int
989 dissect_p1_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
990 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
992 return offset;
997 static int
998 dissect_p1_MTAName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
999 tvbuff_t *mtaname = NULL;
1000 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1002 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1003 actx, tree, tvb, offset,
1004 1, ub_mta_name_length, hf_index, &mtaname);
1007 if (ctx && ctx->do_address) {
1008 proto_item_append_text(actx->subtree.tree, " %s", tvb_format_text(actx->pinfo->pool, mtaname, 0, tvb_reported_length(mtaname)));
1009 } else {
1010 if (mtaname) {
1011 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", tvb_format_text(actx->pinfo->pool, mtaname, 0, tvb_reported_length(mtaname)));
1016 return offset;
1021 static int
1022 dissect_p1_IA5String_SIZE_0_ub_password_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1023 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1024 actx, tree, tvb, offset,
1025 0, ub_password_length, hf_index, NULL);
1027 return offset;
1032 static int
1033 dissect_p1_OCTET_STRING_SIZE_0_ub_password_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1034 offset = dissect_ber_constrained_octet_string(implicit_tag, actx, tree, tvb, offset,
1035 0, ub_password_length, hf_index, NULL);
1037 return offset;
1041 static const value_string p1_Password_vals[] = {
1042 { 0, "ia5-string" },
1043 { 1, "octet-string" },
1044 { 0, NULL }
1047 static const ber_choice_t Password_choice[] = {
1048 { 0, &hf_p1_ia5_string , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_IA5String_SIZE_0_ub_password_length },
1049 { 1, &hf_p1_octet_string , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_OCTET_STRING_SIZE_0_ub_password_length },
1050 { 0, NULL, 0, 0, 0, NULL }
1053 static int
1054 dissect_p1_Password(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1055 offset = dissect_ber_choice(actx, tree, tvb, offset,
1056 Password_choice, hf_index, ett_p1_Password,
1057 NULL);
1059 return offset;
1064 static int
1065 dissect_p1_TokenTypeIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1066 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
1068 return offset;
1073 static int
1074 dissect_p1_TokenTypeData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1076 if(actx->external.direct_reference)
1077 call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1080 return offset;
1084 static const ber_sequence_t Token_sequence[] = {
1085 { &hf_p1_token_type_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeIdentifier },
1086 { &hf_p1_token , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeData },
1087 { NULL, 0, 0, 0, NULL }
1090 static int
1091 dissect_p1_Token(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1092 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1093 Token_sequence, hf_index, ett_p1_Token);
1095 return offset;
1099 static const ber_sequence_t StrongCredentials_set[] = {
1100 { &hf_p1_bind_token , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Token },
1101 { &hf_p1_certificate , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
1102 { &hf_p1_certificate_selector, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
1103 { NULL, 0, 0, 0, NULL }
1106 static int
1107 dissect_p1_StrongCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1108 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1109 StrongCredentials_set, hf_index, ett_p1_StrongCredentials);
1111 return offset;
1116 static int
1117 dissect_p1_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1118 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1119 NULL, 0, hf_index, -1,
1120 NULL);
1122 return offset;
1126 static const ber_sequence_t Signature_sequence[] = {
1127 { &hf_p1_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1128 { &hf_p1_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_BIT_STRING },
1129 { NULL, 0, 0, 0, NULL }
1132 static int
1133 dissect_p1_Signature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1135 Signature_sequence, hf_index, ett_p1_Signature);
1137 return offset;
1142 static int
1143 dissect_p1_UTCTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1144 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, NULL, NULL);
1146 return offset;
1150 static const ber_sequence_t ProtectedPassword_set[] = {
1151 { &hf_p1_signature , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_Signature },
1152 { &hf_p1_time1 , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
1153 { &hf_p1_time2 , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
1154 { &hf_p1_random1 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
1155 { &hf_p1_random2 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
1156 { NULL, 0, 0, 0, NULL }
1159 static int
1160 dissect_p1_ProtectedPassword(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1161 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1162 ProtectedPassword_set, hf_index, ett_p1_ProtectedPassword);
1164 return offset;
1168 const value_string p1_Credentials_vals[] = {
1169 { 0, "simple" },
1170 { 1, "strong" },
1171 { 2, "protected" },
1172 { 0, NULL }
1175 static const ber_choice_t Credentials_choice[] = {
1176 { 0, &hf_p1_simple , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_p1_Password },
1177 { 1, &hf_p1_strong , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StrongCredentials },
1178 { 2, &hf_p1_protected , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ProtectedPassword },
1179 { 0, NULL, 0, 0, 0, NULL }
1183 dissect_p1_Credentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1184 int credentials = -1;
1186 offset = dissect_ber_choice(actx, tree, tvb, offset,
1187 Credentials_choice, hf_index, ett_p1_Credentials,
1188 &credentials);
1191 if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
1192 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_Credentials_vals[credentials].strptr);
1196 return offset;
1202 dissect_p1_InitiatorCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1203 offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1205 return offset;
1210 static int
1211 dissect_p1_SecurityPolicyIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1212 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1214 return offset;
1218 static const value_string p1_SecurityClassification_vals[] = {
1219 { 0, "unmarked" },
1220 { 1, "unclassified" },
1221 { 2, "restricted" },
1222 { 3, "confidential" },
1223 { 4, "secret" },
1224 { 5, "top-secret" },
1225 { 0, NULL }
1229 static int
1230 dissect_p1_SecurityClassification(bool 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_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1232 0U, ub_integer_options, hf_index, NULL);
1234 return offset;
1239 static int
1240 dissect_p1_PrivacyMark(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1241 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1242 actx, tree, tvb, offset,
1243 1, ub_privacy_mark_length, hf_index, NULL);
1245 return offset;
1250 static int
1251 dissect_p1_SecurityCategoryIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1252 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
1254 return offset;
1259 static int
1260 dissect_p1_SecurityCategoryValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1261 const char *name;
1263 if (actx->external.direct_reference) {
1264 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1265 name = oid_resolved_from_string(actx->pinfo->pool, actx->external.direct_reference);
1266 proto_item_append_text(tree, " (%s)", name ? name : actx->external.direct_reference);
1267 } else {
1268 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1272 return offset;
1277 static int
1278 dissect_p1_CategoryValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1279 offset = dissect_p1_SecurityCategoryValue(implicit_tag, tvb, offset, actx, tree, hf_index);
1281 return offset;
1285 static const ber_sequence_t SecurityCategory_sequence[] = {
1286 { &hf_p1_category_type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SecurityCategoryIdentifier },
1287 { &hf_p1_category_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_CategoryValue },
1288 { NULL, 0, 0, 0, NULL }
1291 static int
1292 dissect_p1_SecurityCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1293 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1294 SecurityCategory_sequence, hf_index, ett_p1_SecurityCategory);
1296 return offset;
1300 static const ber_sequence_t SecurityCategories_set_of[1] = {
1301 { &hf_p1_SecurityCategories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategory },
1304 static int
1305 dissect_p1_SecurityCategories(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1306 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1307 1, ub_security_categories, SecurityCategories_set_of, hf_index, ett_p1_SecurityCategories);
1309 return offset;
1313 static const ber_sequence_t SecurityLabel_set[] = {
1314 { &hf_p1_security_policy_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityPolicyIdentifier },
1315 { &hf_p1_security_classification, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityClassification },
1316 { &hf_p1_privacy_mark , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrivacyMark },
1317 { &hf_p1_security_categories, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategories },
1318 { NULL, 0, 0, 0, NULL }
1322 dissect_p1_SecurityLabel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1323 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1324 SecurityLabel_set, hf_index, ett_p1_SecurityLabel);
1326 return offset;
1330 static const ber_sequence_t SecurityContext_set_of[1] = {
1331 { &hf_p1_SecurityContext_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityLabel },
1335 dissect_p1_SecurityContext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1336 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
1337 1, ub_security_labels, SecurityContext_set_of, hf_index, ett_p1_SecurityContext);
1339 return offset;
1343 static const ber_sequence_t AuthenticatedArgument_set[] = {
1344 { &hf_p1_authenticated_initiator_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
1345 { &hf_p1_initiator_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
1346 { &hf_p1_security_context , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
1347 { NULL, 0, 0, 0, NULL }
1350 static int
1351 dissect_p1_AuthenticatedArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1352 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1353 AuthenticatedArgument_set, hf_index, ett_p1_AuthenticatedArgument);
1355 return offset;
1359 static const value_string p1_MTABindArgument_vals[] = {
1360 { 0, "unauthenticated" },
1361 { 1, "authenticated" },
1362 { 0, NULL }
1365 static const ber_choice_t MTABindArgument_choice[] = {
1366 { 0, &hf_p1_unauthenticated , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
1367 { 1, &hf_p1_authenticated_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedArgument },
1368 { 0, NULL, 0, 0, 0, NULL }
1371 static int
1372 dissect_p1_MTABindArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1373 offset = dissect_ber_choice(actx, tree, tvb, offset,
1374 MTABindArgument_choice, hf_index, ett_p1_MTABindArgument,
1375 NULL);
1377 return offset;
1383 dissect_p1_ResponderCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1384 offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
1386 return offset;
1390 static const ber_sequence_t AuthenticatedResult_set[] = {
1391 { &hf_p1_authenticated_responder_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
1392 { &hf_p1_responder_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
1393 { NULL, 0, 0, 0, NULL }
1396 static int
1397 dissect_p1_AuthenticatedResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1398 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1399 AuthenticatedResult_set, hf_index, ett_p1_AuthenticatedResult);
1401 return offset;
1405 static const value_string p1_MTABindResult_vals[] = {
1406 { 0, "unauthenticated" },
1407 { 1, "authenticated" },
1408 { 0, NULL }
1411 static const ber_choice_t MTABindResult_choice[] = {
1412 { 0, &hf_p1_unauthenticated , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
1413 { 1, &hf_p1_authenticated_result, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedResult },
1414 { 0, NULL, 0, 0, 0, NULL }
1417 static int
1418 dissect_p1_MTABindResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1419 offset = dissect_ber_choice(actx, tree, tvb, offset,
1420 MTABindResult_choice, hf_index, ett_p1_MTABindResult,
1421 NULL);
1423 return offset;
1427 static const value_string p1_MTABindError_vals[] = {
1428 { 0, "busy" },
1429 { 2, "authentication-error" },
1430 { 3, "unacceptable-dialogue-mode" },
1431 { 4, "unacceptable-security-context" },
1432 { 5, "inadequate-association-confidentiality" },
1433 { 0, NULL }
1437 static int
1438 dissect_p1_MTABindError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1439 int error = -1;
1440 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
1441 0U, ub_integer_options, hf_index, &error);
1443 if((error != -1))
1444 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, p1_MTABindError_vals, "error(%d)"));
1447 return offset;
1452 static int
1453 dissect_p1_T_x121_dcc_code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1454 tvbuff_t *nstring = NULL;
1456 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1457 actx, tree, tvb, offset,
1458 ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
1461 do_address(NULL, nstring, actx);
1464 return offset;
1469 static int
1470 dissect_p1_T_iso_3166_alpha2_code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1471 tvbuff_t *nstring = NULL;
1473 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1474 actx, tree, tvb, offset,
1475 ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
1478 do_address(NULL, nstring, actx);
1481 return offset;
1485 static const value_string p1_CountryName_U_vals[] = {
1486 { 0, "x121-dcc-code" },
1487 { 1, "iso-3166-alpha2-code" },
1488 { 0, NULL }
1491 static const ber_choice_t CountryName_U_choice[] = {
1492 { 0, &hf_p1_x121_dcc_code , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_dcc_code },
1493 { 1, &hf_p1_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_iso_3166_alpha2_code },
1494 { 0, NULL, 0, 0, 0, NULL }
1497 static int
1498 dissect_p1_CountryName_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1499 offset = dissect_ber_choice(actx, tree, tvb, offset,
1500 CountryName_U_choice, hf_index, ett_p1_CountryName_U,
1501 NULL);
1503 return offset;
1508 static int
1509 dissect_p1_CountryName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1510 do_address("/C=", NULL, actx);
1512 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1513 hf_index, BER_CLASS_APP, 1, true, dissect_p1_CountryName_U);
1517 return offset;
1522 static int
1523 dissect_p1_T_numeric(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1524 tvbuff_t *nstring = NULL;
1526 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1527 actx, tree, tvb, offset,
1528 0, ub_domain_name_length, hf_index, &nstring);
1531 do_address(NULL, nstring, actx);
1534 return offset;
1539 static int
1540 dissect_p1_T_printable(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1541 tvbuff_t *nstring = NULL;
1543 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1544 actx, tree, tvb, offset,
1545 0, ub_domain_name_length, hf_index, &nstring);
1548 do_address(NULL, nstring, actx);
1551 return offset;
1555 static const value_string p1_AdministrationDomainName_U_vals[] = {
1556 { 0, "numeric" },
1557 { 1, "printable" },
1558 { 0, NULL }
1561 static const ber_choice_t AdministrationDomainName_U_choice[] = {
1562 { 0, &hf_p1_numeric , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric },
1563 { 1, &hf_p1_printable , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable },
1564 { 0, NULL, 0, 0, 0, NULL }
1567 static int
1568 dissect_p1_AdministrationDomainName_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1569 offset = dissect_ber_choice(actx, tree, tvb, offset,
1570 AdministrationDomainName_U_choice, hf_index, ett_p1_AdministrationDomainName_U,
1571 NULL);
1573 return offset;
1578 static int
1579 dissect_p1_AdministrationDomainName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1580 do_address("/A=", NULL, actx);
1582 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1583 hf_index, BER_CLASS_APP, 2, true, dissect_p1_AdministrationDomainName_U);
1587 return offset;
1592 static int
1593 dissect_p1_T_numeric_private_domain_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1594 tvbuff_t *nstring = NULL;
1596 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1597 actx, tree, tvb, offset,
1598 1, ub_domain_name_length, hf_index, &nstring);
1601 do_address(NULL, nstring, actx);
1604 return offset;
1609 static int
1610 dissect_p1_T_printable_private_domain_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1611 tvbuff_t *nstring = NULL;
1613 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1614 actx, tree, tvb, offset,
1615 1, ub_domain_name_length, hf_index, &nstring);
1618 do_address(NULL, nstring, actx);
1621 return offset;
1625 static const value_string p1_PrivateDomainIdentifier_vals[] = {
1626 { 0, "numeric" },
1627 { 1, "printable" },
1628 { 0, NULL }
1631 static const ber_choice_t PrivateDomainIdentifier_choice[] = {
1632 { 0, &hf_p1_numeric_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_identifier },
1633 { 1, &hf_p1_printable_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_identifier },
1634 { 0, NULL, 0, 0, 0, NULL }
1637 static int
1638 dissect_p1_PrivateDomainIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1640 do_address("/P=", NULL, actx);
1642 offset = dissect_ber_choice(actx, tree, tvb, offset,
1643 PrivateDomainIdentifier_choice, hf_index, ett_p1_PrivateDomainIdentifier,
1644 NULL);
1648 return offset;
1652 static const ber_sequence_t GlobalDomainIdentifier_U_sequence[] = {
1653 { &hf_p1_country_name , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
1654 { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
1655 { &hf_p1_private_domain_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
1656 { NULL, 0, 0, 0, NULL }
1659 static int
1660 dissect_p1_GlobalDomainIdentifier_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1661 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1662 GlobalDomainIdentifier_U_sequence, hf_index, ett_p1_GlobalDomainIdentifier_U);
1664 return offset;
1669 static int
1670 dissect_p1_GlobalDomainIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1671 p1_address_ctx_t* ctx;
1673 if (actx->subtree.tree_ctx == NULL) {
1674 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
1677 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1678 ctx->oraddress = wmem_strbuf_new(actx->pinfo->pool, "");
1680 actx->subtree.tree = tree;
1682 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1683 hf_index, BER_CLASS_APP, 3, true, dissect_p1_GlobalDomainIdentifier_U);
1686 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0)) {
1687 proto_item_append_text(actx->subtree.tree, " (%s/", wmem_strbuf_get_str(ctx->oraddress));
1689 if (hf_index == hf_p1_subject_identifier) {
1690 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s/", wmem_strbuf_get_str(ctx->oraddress));
1696 return offset;
1701 static int
1702 dissect_p1_LocalIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1703 tvbuff_t *id = NULL;
1704 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1706 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1707 actx, tree, tvb, offset,
1708 1, ub_local_id_length, hf_index, &id);
1711 if(id) {
1712 if (ctx && ctx->do_address)
1713 proto_item_append_text(actx->subtree.tree, " $ %s)", tvb_format_text(actx->pinfo->pool, id, 0, tvb_reported_length(id)));
1715 if (hf_index == hf_p1_subject_identifier)
1716 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(actx->pinfo->pool, id, 0, tvb_reported_length(id)));
1720 return offset;
1724 static const ber_sequence_t MTSIdentifier_U_sequence[] = {
1725 { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
1726 { &hf_p1_local_identifier , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_LocalIdentifier },
1727 { NULL, 0, 0, 0, NULL }
1730 static int
1731 dissect_p1_MTSIdentifier_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1733 MTSIdentifier_U_sequence, hf_index, ett_p1_MTSIdentifier_U);
1735 return offset;
1740 static int
1741 dissect_p1_MTSIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1743 set_do_address(actx, true);
1745 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1746 hf_index, BER_CLASS_APP, 4, true, dissect_p1_MTSIdentifier_U);
1749 set_do_address(actx, false);
1752 return offset;
1757 static int
1758 dissect_p1_MessageIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1759 actx->subtree.tree = NULL;
1761 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
1765 return offset;
1770 static int
1771 dissect_p1_X121Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1772 tvbuff_t *string = NULL;
1774 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1775 actx, tree, tvb, offset,
1776 1, ub_x121_address_length, hf_index, &string);
1779 do_address("/PX121=", string, actx);
1782 return offset;
1787 static int
1788 dissect_p1_NetworkAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1789 offset = dissect_p1_X121Address(implicit_tag, tvb, offset, actx, tree, hf_index);
1791 return offset;
1796 static int
1797 dissect_p1_TerminalIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1798 tvbuff_t *string = NULL;
1800 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1801 actx, tree, tvb, offset,
1802 1, ub_terminal_id_length, hf_index, &string);
1805 do_address("/UA-ID=", string, actx);
1808 return offset;
1813 static int
1814 dissect_p1_T_numeric_private_domain_name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1815 tvbuff_t *nstring = NULL;
1817 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1818 actx, tree, tvb, offset,
1819 1, ub_domain_name_length, hf_index, &nstring);
1822 do_address(NULL, nstring, actx);
1825 return offset;
1830 static int
1831 dissect_p1_T_printable_private_domain_name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1832 tvbuff_t *nstring = NULL;
1834 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1835 actx, tree, tvb, offset,
1836 1, ub_domain_name_length, hf_index, &nstring);
1839 do_address(NULL, nstring, actx);
1842 return offset;
1846 static const value_string p1_PrivateDomainName_vals[] = {
1847 { 0, "numeric" },
1848 { 1, "printable" },
1849 { 0, NULL }
1852 static const ber_choice_t PrivateDomainName_choice[] = {
1853 { 0, &hf_p1_numeric_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_name },
1854 { 1, &hf_p1_printable_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_name },
1855 { 0, NULL, 0, 0, 0, NULL }
1858 static int
1859 dissect_p1_PrivateDomainName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1861 do_address("/P=", NULL, actx);
1863 offset = dissect_ber_choice(actx, tree, tvb, offset,
1864 PrivateDomainName_choice, hf_index, ett_p1_PrivateDomainName,
1865 NULL);
1869 return offset;
1874 static int
1875 dissect_p1_OrganizationName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1876 tvbuff_t *string = NULL;
1878 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1879 actx, tree, tvb, offset,
1880 1, ub_organization_name_length, hf_index, &string);
1883 do_address("/O=", string, actx);
1886 return offset;
1891 static int
1892 dissect_p1_NumericUserIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1893 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1894 actx, tree, tvb, offset,
1895 1, ub_numeric_user_id_length, hf_index, NULL);
1897 return offset;
1902 static int
1903 dissect_p1_T_printable_surname(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1904 tvbuff_t *pstring = NULL;
1906 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1907 actx, tree, tvb, offset,
1908 1, ub_surname_length, hf_index, &pstring);
1911 do_address("/S=", pstring, actx);
1914 return offset;
1919 static int
1920 dissect_p1_T_printable_given_name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1921 tvbuff_t *pstring = NULL;
1923 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1924 actx, tree, tvb, offset,
1925 1, ub_given_name_length, hf_index, &pstring);
1928 do_address("/G=", pstring, actx);
1931 return offset;
1936 static int
1937 dissect_p1_T_printable_initials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1938 tvbuff_t *pstring = NULL;
1940 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1941 actx, tree, tvb, offset,
1942 1, ub_initials_length, hf_index, &pstring);
1945 do_address("/I=", pstring, actx);
1948 return offset;
1953 static int
1954 dissect_p1_T_printable_generation_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1955 tvbuff_t *pstring = NULL;
1957 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1958 actx, tree, tvb, offset,
1959 1, ub_generation_qualifier_length, hf_index, &pstring);
1962 do_address("/Q=", pstring, actx);
1965 return offset;
1969 static const ber_sequence_t PersonalName_set[] = {
1970 { &hf_p1_printable_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_printable_surname },
1971 { &hf_p1_printable_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_given_name },
1972 { &hf_p1_printable_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_initials },
1973 { &hf_p1_printable_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_generation_qualifier },
1974 { NULL, 0, 0, 0, NULL }
1977 static int
1978 dissect_p1_PersonalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1979 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1980 PersonalName_set, hf_index, ett_p1_PersonalName);
1982 return offset;
1987 static int
1988 dissect_p1_OrganizationalUnitName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1989 tvbuff_t *string = NULL;
1991 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1992 actx, tree, tvb, offset,
1993 1, ub_organizational_unit_name_length, hf_index, &string);
1996 do_address("/OU=", string, actx);
1999 return offset;
2003 static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
2004 { &hf_p1_OrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_OrganizationalUnitName },
2007 static int
2008 dissect_p1_OrganizationalUnitNames(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2009 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2010 1, ub_organizational_units, OrganizationalUnitNames_sequence_of, hf_index, ett_p1_OrganizationalUnitNames);
2012 return offset;
2016 static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
2017 { &hf_p1_country_name , BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
2018 { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
2019 { &hf_p1_network_address , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NetworkAddress },
2020 { &hf_p1_terminal_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TerminalIdentifier },
2021 { &hf_p1_private_domain_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainName },
2022 { &hf_p1_organization_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationName },
2023 { &hf_p1_numeric_user_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NumericUserIdentifier },
2024 { &hf_p1_personal_name , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_PersonalName },
2025 { &hf_p1_organizational_unit_names, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationalUnitNames },
2026 { NULL, 0, 0, 0, NULL }
2029 static int
2030 dissect_p1_BuiltInStandardAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2031 actx->subtree.tree = tree;
2033 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2034 BuiltInStandardAttributes_sequence, hf_index, ett_p1_BuiltInStandardAttributes);
2038 return offset;
2043 static int
2044 dissect_p1_T_printable_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2045 tvbuff_t *pstring = NULL;
2047 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2048 actx, tree, tvb, offset,
2049 1, ub_domain_defined_attribute_type_length, hf_index, &pstring);
2052 do_address_str("/DD.", pstring, actx);
2055 return offset;
2060 static int
2061 dissect_p1_T_printable_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2062 tvbuff_t *pstring = NULL;
2064 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2065 actx, tree, tvb, offset,
2066 1, ub_domain_defined_attribute_value_length, hf_index, &pstring);
2069 do_address_str_tree("=", pstring, actx, tree);
2072 return offset;
2076 static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
2077 { &hf_p1_printable_type , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_type },
2078 { &hf_p1_printable_value , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_value },
2079 { NULL, 0, 0, 0, NULL }
2082 static int
2083 dissect_p1_BuiltInDomainDefinedAttribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2084 actx->value_ptr = wmem_strbuf_new(actx->pinfo->pool, "");
2086 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2087 BuiltInDomainDefinedAttribute_sequence, hf_index, ett_p1_BuiltInDomainDefinedAttribute);
2091 return offset;
2095 static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
2096 { &hf_p1_BuiltInDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttribute },
2099 static int
2100 dissect_p1_BuiltInDomainDefinedAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2101 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2102 1, ub_domain_defined_attributes, BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_p1_BuiltInDomainDefinedAttributes);
2104 return offset;
2108 static const value_string p1_ExtensionAttributeType_vals[] = {
2109 { 1, "common-name" },
2110 { 2, "teletex-common-name" },
2111 { 3, "teletex-organization-name" },
2112 { 4, "teletex-personal-name" },
2113 { 5, "teletex-organizational-unit-names" },
2114 { 6, "teletex-domain-defined-attributes" },
2115 { 7, "pds-name" },
2116 { 8, "physical-delivery-country-name" },
2117 { 9, "postal-code" },
2118 { 10, "physical-delivery-office-name" },
2119 { 11, "physical-delivery-office-number" },
2120 { 12, "extension-OR-address-components" },
2121 { 13, "physical-delivery-personal-name" },
2122 { 14, "physical-delivery-organization-name" },
2123 { 15, "extension-physical-delivery-address-components" },
2124 { 16, "unformatted-postal-address" },
2125 { 17, "street-address" },
2126 { 18, "post-office-box-address" },
2127 { 19, "poste-restante-address" },
2128 { 20, "unique-postal-name" },
2129 { 21, "local-postal-attributes" },
2130 { 22, "extended-network-address" },
2131 { 23, "terminal-type" },
2132 { 24, "universal-common-name" },
2133 { 25, "universal-organization-name" },
2134 { 26, "universal-personal-name" },
2135 { 27, "universal-organizational-unit-names" },
2136 { 28, "universal-domain-defined-attributes" },
2137 { 29, "universal-physical-delivery-office-name" },
2138 { 30, "universal-physical-delivery-office-number" },
2139 { 31, "universal-extension-OR-address-components" },
2140 { 32, "universal-physical-delivery-personal-name" },
2141 { 33, "universal-physical-delivery-organization-name" },
2142 { 34, "universal-extension-physical-delivery-address-components" },
2143 { 35, "universal-unformatted-postal-address" },
2144 { 36, "universal-street-address" },
2145 { 37, "universal-post-office-box-address" },
2146 { 38, "universal-poste-restante-address" },
2147 { 39, "universal-unique-postal-name" },
2148 { 40, "universal-local-postal-attributes" },
2149 { 0, NULL }
2153 static int
2154 dissect_p1_ExtensionAttributeType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2155 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2156 &actx->external.indirect_reference);
2158 return offset;
2163 static int
2164 dissect_p1_T_extension_attribute_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2166 proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %d"));
2167 p_add_proto_data(actx->pinfo->pool, actx->pinfo, proto_p1, 0, actx->subtree.tree_ctx);
2168 if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
2169 offset =tvb_reported_length(tvb);
2170 } else {
2171 proto_item *item;
2172 proto_tree *next_tree;
2174 next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_extension_attribute_type, &item,
2175 "Dissector for extension-attribute-type %d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
2176 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
2177 expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type);
2179 p_remove_proto_data(actx->pinfo->pool, actx->pinfo, proto_p1, 0);
2183 return offset;
2187 static const ber_sequence_t ExtensionAttribute_sequence[] = {
2188 { &hf_p1_extension_attribute_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ExtensionAttributeType },
2189 { &hf_p1_extension_attribute_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_T_extension_attribute_value },
2190 { NULL, 0, 0, 0, NULL }
2193 static int
2194 dissect_p1_ExtensionAttribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2195 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2196 ExtensionAttribute_sequence, hf_index, ett_p1_ExtensionAttribute);
2198 return offset;
2202 static const ber_sequence_t ExtensionAttributes_set_of[1] = {
2203 { &hf_p1_ExtensionAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttribute },
2206 static int
2207 dissect_p1_ExtensionAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2208 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2209 1, ub_extension_attributes, ExtensionAttributes_set_of, hf_index, ett_p1_ExtensionAttributes);
2211 return offset;
2215 static const ber_sequence_t ORName_U_sequence[] = {
2216 { &hf_p1_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInStandardAttributes },
2217 { &hf_p1_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttributes },
2218 { &hf_p1_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttributes },
2219 { &hf_p1_directory_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
2220 { NULL, 0, 0, 0, NULL }
2223 static int
2224 dissect_p1_ORName_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2225 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2226 ORName_U_sequence, hf_index, ett_p1_ORName_U);
2228 return offset;
2234 dissect_p1_ORName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2235 p1_address_ctx_t* ctx;
2237 if (actx->subtree.tree_ctx == NULL) {
2238 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
2241 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2242 ctx->oraddress = wmem_strbuf_new(actx->pinfo->pool, "");
2244 actx->subtree.tree = NULL;
2245 set_do_address(actx, true);
2247 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2248 hf_index, BER_CLASS_APP, 0, true, dissect_p1_ORName_U);
2251 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
2252 proto_item_append_text(actx->subtree.tree, " (%s/)", wmem_strbuf_get_str(ctx->oraddress));
2254 set_do_address(actx, false);
2256 return offset;
2261 static int
2262 dissect_p1_ORAddressAndOptionalDirectoryName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2263 offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
2265 return offset;
2270 static int
2271 dissect_p1_MTAOriginatorName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2272 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
2274 return offset;
2278 static int * const BuiltInEncodedInformationTypes_bits[] = {
2279 &hf_p1_BuiltInEncodedInformationTypes_unknown,
2280 &hf_p1_BuiltInEncodedInformationTypes_telex,
2281 &hf_p1_BuiltInEncodedInformationTypes_ia5_text,
2282 &hf_p1_BuiltInEncodedInformationTypes_g3_facsimile,
2283 &hf_p1_BuiltInEncodedInformationTypes_g4_class_1,
2284 &hf_p1_BuiltInEncodedInformationTypes_teletex,
2285 &hf_p1_BuiltInEncodedInformationTypes_videotex,
2286 &hf_p1_BuiltInEncodedInformationTypes_voice,
2287 &hf_p1_BuiltInEncodedInformationTypes_sfd,
2288 &hf_p1_BuiltInEncodedInformationTypes_mixed_mode,
2289 NULL
2292 static int
2293 dissect_p1_BuiltInEncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2294 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2295 0, ub_built_in_encoded_information_types, BuiltInEncodedInformationTypes_bits, 10, hf_index, ett_p1_BuiltInEncodedInformationTypes,
2296 NULL);
2298 return offset;
2302 static int * const G3FacsimileNonBasicParameters_bits[] = {
2303 &hf_p1_G3FacsimileNonBasicParameters_spare_bit0,
2304 &hf_p1_G3FacsimileNonBasicParameters_spare_bit1,
2305 &hf_p1_G3FacsimileNonBasicParameters_spare_bit2,
2306 &hf_p1_G3FacsimileNonBasicParameters_spare_bit3,
2307 &hf_p1_G3FacsimileNonBasicParameters_spare_bit4,
2308 &hf_p1_G3FacsimileNonBasicParameters_spare_bit5,
2309 &hf_p1_G3FacsimileNonBasicParameters_spare_bit6,
2310 &hf_p1_G3FacsimileNonBasicParameters_spare_bit7,
2311 &hf_p1_G3FacsimileNonBasicParameters_two_dimensional,
2312 &hf_p1_G3FacsimileNonBasicParameters_fine_resolution,
2313 &hf_p1_G3FacsimileNonBasicParameters_spare_bit10,
2314 &hf_p1_G3FacsimileNonBasicParameters_spare_bit11,
2315 &hf_p1_G3FacsimileNonBasicParameters_spare_bit12,
2316 &hf_p1_G3FacsimileNonBasicParameters_spare_bit13,
2317 &hf_p1_G3FacsimileNonBasicParameters_spare_bit14,
2318 &hf_p1_G3FacsimileNonBasicParameters_spare_bit15,
2319 &hf_p1_G3FacsimileNonBasicParameters_spare_bit16,
2320 &hf_p1_G3FacsimileNonBasicParameters_spare_bit17,
2321 &hf_p1_G3FacsimileNonBasicParameters_spare_bit18,
2322 &hf_p1_G3FacsimileNonBasicParameters_spare_bit19,
2323 &hf_p1_G3FacsimileNonBasicParameters_unlimited_length,
2324 &hf_p1_G3FacsimileNonBasicParameters_b4_length,
2325 &hf_p1_G3FacsimileNonBasicParameters_a3_width,
2326 &hf_p1_G3FacsimileNonBasicParameters_b4_width,
2327 &hf_p1_G3FacsimileNonBasicParameters_spare_bit24,
2328 &hf_p1_G3FacsimileNonBasicParameters_t6_coding,
2329 &hf_p1_G3FacsimileNonBasicParameters_spare_bit26,
2330 &hf_p1_G3FacsimileNonBasicParameters_spare_bit27,
2331 &hf_p1_G3FacsimileNonBasicParameters_spare_bit28,
2332 &hf_p1_G3FacsimileNonBasicParameters_spare_bit29,
2333 &hf_p1_G3FacsimileNonBasicParameters_uncompressed,
2334 &hf_p1_G3FacsimileNonBasicParameters_spare_bit31,
2335 &hf_p1_G3FacsimileNonBasicParameters_spare_bit32,
2336 &hf_p1_G3FacsimileNonBasicParameters_spare_bit33,
2337 &hf_p1_G3FacsimileNonBasicParameters_spare_bit34,
2338 &hf_p1_G3FacsimileNonBasicParameters_spare_bit35,
2339 &hf_p1_G3FacsimileNonBasicParameters_spare_bit36,
2340 &hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
2341 &hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
2342 &hf_p1_G3FacsimileNonBasicParameters_spare_bit39,
2343 &hf_p1_G3FacsimileNonBasicParameters_spare_bit40,
2344 &hf_p1_G3FacsimileNonBasicParameters_spare_bit41,
2345 &hf_p1_G3FacsimileNonBasicParameters_spare_bit42,
2346 &hf_p1_G3FacsimileNonBasicParameters_spare_bit43,
2347 &hf_p1_G3FacsimileNonBasicParameters_resolution_type,
2348 &hf_p1_G3FacsimileNonBasicParameters_resolution_400x400,
2349 &hf_p1_G3FacsimileNonBasicParameters_resolution_300x300,
2350 &hf_p1_G3FacsimileNonBasicParameters_resolution_8x15,
2351 &hf_p1_G3FacsimileNonBasicParameters_spare_bit48,
2352 &hf_p1_G3FacsimileNonBasicParameters_edi,
2353 &hf_p1_G3FacsimileNonBasicParameters_dtm,
2354 &hf_p1_G3FacsimileNonBasicParameters_bft,
2355 &hf_p1_G3FacsimileNonBasicParameters_spare_bit52,
2356 &hf_p1_G3FacsimileNonBasicParameters_spare_bit53,
2357 &hf_p1_G3FacsimileNonBasicParameters_spare_bit54,
2358 &hf_p1_G3FacsimileNonBasicParameters_spare_bit55,
2359 &hf_p1_G3FacsimileNonBasicParameters_spare_bit56,
2360 &hf_p1_G3FacsimileNonBasicParameters_spare_bit57,
2361 &hf_p1_G3FacsimileNonBasicParameters_mixed_mode,
2362 &hf_p1_G3FacsimileNonBasicParameters_spare_bit59,
2363 &hf_p1_G3FacsimileNonBasicParameters_character_mode,
2364 &hf_p1_G3FacsimileNonBasicParameters_spare_bit61,
2365 &hf_p1_G3FacsimileNonBasicParameters_spare_bit62,
2366 &hf_p1_G3FacsimileNonBasicParameters_spare_bit63,
2367 &hf_p1_G3FacsimileNonBasicParameters_spare_bit64,
2368 &hf_p1_G3FacsimileNonBasicParameters_twelve_bits,
2369 &hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann,
2370 &hf_p1_G3FacsimileNonBasicParameters_full_colour,
2371 &hf_p1_G3FacsimileNonBasicParameters_jpeg,
2372 &hf_p1_G3FacsimileNonBasicParameters_spare_bit69,
2373 &hf_p1_G3FacsimileNonBasicParameters_spare_bit70,
2374 &hf_p1_G3FacsimileNonBasicParameters_processable_mode_26,
2375 NULL
2379 dissect_p1_G3FacsimileNonBasicParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2380 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2381 G3FacsimileNonBasicParameters_bits, 72, hf_index, ett_p1_G3FacsimileNonBasicParameters,
2382 NULL);
2384 return offset;
2389 static int
2390 dissect_p1_TeletexString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2391 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
2392 actx, tree, tvb, offset, hf_index,
2393 NULL);
2395 return offset;
2400 static int
2401 dissect_p1_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2402 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2403 NULL);
2405 return offset;
2409 static const ber_sequence_t TeletexNonBasicParameters_set[] = {
2410 { &hf_p1_graphic_character_sets, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2411 { &hf_p1_control_character_sets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2412 { &hf_p1_page_formats , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
2413 { &hf_p1_miscellaneous_terminal_capabilities, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
2414 { &hf_p1_private_use , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
2415 { NULL, 0, 0, 0, NULL }
2419 dissect_p1_TeletexNonBasicParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2420 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2421 TeletexNonBasicParameters_set, hf_index, ett_p1_TeletexNonBasicParameters);
2423 return offset;
2428 static int
2429 dissect_p1_ExtendedEncodedInformationType(bool 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_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2432 return offset;
2436 static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
2437 { &hf_p1_ExtendedEncodedInformationTypes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedEncodedInformationType },
2440 static int
2441 dissect_p1_ExtendedEncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2442 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
2443 1, ub_encoded_information_types, ExtendedEncodedInformationTypes_set_of, hf_index, ett_p1_ExtendedEncodedInformationTypes);
2445 return offset;
2449 static const ber_sequence_t EncodedInformationTypes_U_set[] = {
2450 { &hf_p1_built_in_encoded_information_types, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInEncodedInformationTypes },
2451 { &hf_p1_g3_facsimile , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_G3FacsimileNonBasicParameters },
2452 { &hf_p1_teletex , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexNonBasicParameters },
2453 { &hf_p1_extended_encoded_information_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
2454 { NULL, 0, 0, 0, NULL }
2457 static int
2458 dissect_p1_EncodedInformationTypes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2459 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2460 EncodedInformationTypes_U_set, hf_index, ett_p1_EncodedInformationTypes_U);
2462 return offset;
2468 dissect_p1_EncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2469 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2470 hf_index, BER_CLASS_APP, 5, true, dissect_p1_EncodedInformationTypes_U);
2472 return offset;
2478 dissect_p1_OriginalEncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2479 offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2481 return offset;
2485 static const value_string p1_BuiltInContentType_U_vals[] = {
2486 { 0, "unidentified" },
2487 { 1, "external" },
2488 { 2, "interpersonal-messaging-1984" },
2489 { 22, "interpersonal-messaging-1988" },
2490 { 35, "edi-messaging" },
2491 { 40, "voice-messaging" },
2492 { 0, NULL }
2496 static int
2497 dissect_p1_BuiltInContentType_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2498 static uint32_t ict = -1;
2499 p1_address_ctx_t* ctx;
2501 if (actx->subtree.tree_ctx == NULL)
2502 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
2504 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2506 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
2507 0U, ub_built_in_content_type, hf_index, &ict);
2510 /* convert integer content type to oid for dispatch when the content is found */
2511 switch(ict) {
2512 case 2:
2513 ctx->content_type_id = wmem_strdup(actx->pinfo->pool, "2.6.1.10.0");
2514 break;
2515 case 22:
2516 ctx->content_type_id = wmem_strdup(actx->pinfo->pool, "2.6.1.10.1");
2517 break;
2518 default:
2519 ctx->content_type_id = NULL;
2520 break;
2524 return offset;
2529 static int
2530 dissect_p1_BuiltInContentType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2531 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2532 hf_index, BER_CLASS_APP, 6, true, dissect_p1_BuiltInContentType_U);
2534 return offset;
2540 dissect_p1_ExtendedContentType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2541 const char *name = NULL;
2542 p1_address_ctx_t* ctx;
2544 if (actx->subtree.tree_ctx == NULL)
2545 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
2547 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2549 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &ctx->content_type_id);
2552 if(ctx->content_type_id) {
2553 name = oid_resolved_from_string(actx->pinfo->pool, ctx->content_type_id);
2555 if(!name) name = ctx->content_type_id;
2557 proto_item_append_text(tree, " (%s)", name);
2561 return offset;
2565 const value_string p1_ContentType_vals[] = {
2566 { 0, "built-in" },
2567 { 1, "extended" },
2568 { 0, NULL }
2571 static const ber_choice_t ContentType_choice[] = {
2572 { 0, &hf_p1_built_in , BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInContentType },
2573 { 1, &hf_p1_extended , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
2574 { 0, NULL, 0, 0, 0, NULL }
2578 dissect_p1_ContentType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2579 offset = dissect_ber_choice(actx, tree, tvb, offset,
2580 ContentType_choice, hf_index, ett_p1_ContentType,
2581 NULL);
2583 return offset;
2588 static int
2589 dissect_p1_PrintableString_SIZE_1_ub_content_id_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2590 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2591 actx, tree, tvb, offset,
2592 1, ub_content_id_length, hf_index, NULL);
2594 return offset;
2600 dissect_p1_ContentIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2601 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2602 hf_index, BER_CLASS_APP, 10, true, dissect_p1_PrintableString_SIZE_1_ub_content_id_length);
2604 return offset;
2608 static const value_string p1_Priority_U_vals[] = {
2609 { 0, "normal" },
2610 { 1, "non-urgent" },
2611 { 2, "urgent" },
2612 { 0, NULL }
2616 static int
2617 dissect_p1_Priority_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2618 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2619 NULL);
2621 return offset;
2626 static int
2627 dissect_p1_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2628 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2629 hf_index, BER_CLASS_APP, 7, true, dissect_p1_Priority_U);
2631 return offset;
2635 static int * const PerMessageIndicators_U_bits[] = {
2636 &hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients,
2637 &hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited,
2638 &hf_p1_PerMessageIndicators_U_alternate_recipient_allowed,
2639 &hf_p1_PerMessageIndicators_U_content_return_request,
2640 &hf_p1_PerMessageIndicators_U_reserved,
2641 &hf_p1_PerMessageIndicators_U_bit_5,
2642 &hf_p1_PerMessageIndicators_U_bit_6,
2643 &hf_p1_PerMessageIndicators_U_service_message,
2644 NULL
2647 static int
2648 dissect_p1_PerMessageIndicators_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2649 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2650 0, ub_bit_options, PerMessageIndicators_U_bits, 8, hf_index, ett_p1_PerMessageIndicators_U,
2651 NULL);
2653 return offset;
2659 dissect_p1_PerMessageIndicators(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2660 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2661 hf_index, BER_CLASS_APP, 8, true, dissect_p1_PerMessageIndicators_U);
2663 return offset;
2668 static int
2669 dissect_p1_Time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2670 tvbuff_t *arrival = NULL;
2671 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
2673 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, NULL, NULL);
2676 if(arrival && ctx && ctx->do_address)
2677 proto_item_append_text(actx->subtree.tree, " %s", tvb_format_text(actx->pinfo->pool, arrival, 0, tvb_reported_length(arrival)));
2680 return offset;
2685 static int
2686 dissect_p1_DeferredDeliveryTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2687 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2689 return offset;
2693 static const ber_sequence_t T_private_domain_sequence[] = {
2694 { &hf_p1_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_AdministrationDomainName },
2695 { &hf_p1_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
2696 { NULL, 0, 0, 0, NULL }
2699 static int
2700 dissect_p1_T_private_domain(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2701 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2702 T_private_domain_sequence, hf_index, ett_p1_T_private_domain);
2704 return offset;
2708 static const value_string p1_T_bilateral_domain_vals[] = {
2709 { 0, "administration-domain-name" },
2710 { 1, "private-domain" },
2711 { 0, NULL }
2714 static const ber_choice_t T_bilateral_domain_choice[] = {
2715 { 0, &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
2716 { 1, &hf_p1_private_domain , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_T_private_domain },
2717 { 0, NULL, 0, 0, 0, NULL }
2720 static int
2721 dissect_p1_T_bilateral_domain(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2722 offset = dissect_ber_choice(actx, tree, tvb, offset,
2723 T_bilateral_domain_choice, hf_index, ett_p1_T_bilateral_domain,
2724 NULL);
2726 return offset;
2731 static int
2732 dissect_p1_T_bilateral_information(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2733 proto_item *item = NULL;
2734 int loffset = 0;
2735 uint32_t len = 0;
2737 /* work out the length */
2738 loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
2739 (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
2741 /* create some structure so we can tell what this unknown ASN.1 represents */
2742 item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
2743 tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
2745 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
2748 return offset;
2752 static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
2753 { &hf_p1_country_name , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
2754 { &hf_p1_bilateral_domain , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_bilateral_domain },
2755 { &hf_p1_bilateral_information, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p1_T_bilateral_information },
2756 { NULL, 0, 0, 0, NULL }
2759 static int
2760 dissect_p1_PerDomainBilateralInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2761 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2762 PerDomainBilateralInformation_sequence, hf_index, ett_p1_PerDomainBilateralInformation);
2764 return offset;
2768 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of[1] = {
2769 { &hf_p1_per_domain_bilateral_information_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_PerDomainBilateralInformation },
2772 static int
2773 dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2774 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2775 1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation);
2777 return offset;
2782 static int
2783 dissect_p1_ArrivalTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2784 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2786 return offset;
2790 static const value_string p1_RoutingAction_vals[] = {
2791 { 0, "relayed" },
2792 { 1, "rerouted" },
2793 { 0, NULL }
2797 static int
2798 dissect_p1_RoutingAction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2799 int action = 0;
2801 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2802 &action);
2805 proto_item_append_text(actx->subtree.tree, " %s", val_to_str(action, p1_RoutingAction_vals, "action(%d)"));
2808 return offset;
2813 static int
2814 dissect_p1_DeferredTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2815 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
2817 return offset;
2822 static int
2823 dissect_p1_ConvertedEncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2824 offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
2826 return offset;
2830 static int * const OtherActions_bits[] = {
2831 &hf_p1_OtherActions_redirected,
2832 &hf_p1_OtherActions_dl_operation,
2833 NULL
2836 static int
2837 dissect_p1_OtherActions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2838 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
2839 0, ub_bit_options, OtherActions_bits, 2, hf_index, ett_p1_OtherActions,
2840 NULL);
2842 return offset;
2846 static const ber_sequence_t DomainSuppliedInformation_set[] = {
2847 { &hf_p1_arrival_time , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
2848 { &hf_p1_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
2849 { &hf_p1_attempted_domain , BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
2850 { &hf_p1_deferred_time , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
2851 { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
2852 { &hf_p1_other_actions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
2853 { NULL, 0, 0, 0, NULL }
2856 static int
2857 dissect_p1_DomainSuppliedInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2859 set_do_address(actx, false);
2861 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2862 DomainSuppliedInformation_set, hf_index, ett_p1_DomainSuppliedInformation);
2865 set_do_address(actx, true);
2866 proto_item_append_text(tree, ")");
2869 return offset;
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 }
2879 static int
2880 dissect_p1_TraceInformationElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2882 set_do_address(actx, true);
2884 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2885 TraceInformationElement_sequence, hf_index, ett_p1_TraceInformationElement);
2888 set_do_address(actx, false);
2891 return offset;
2895 static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of[1] = {
2896 { &hf_p1__untag_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformationElement },
2899 static int
2900 dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
2902 1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2904 return offset;
2909 static int
2910 dissect_p1_TraceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2911 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2912 hf_index, BER_CLASS_APP, 9, true, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
2914 return offset;
2918 static const value_string p1_StandardExtension_vals[] = {
2919 { 1, "recipient-reassignment-prohibited" },
2920 { 2, "originator-requested-alternate-recipient" },
2921 { 3, "dl-expansion-prohibited" },
2922 { 4, "conversion-with-loss-prohibited" },
2923 { 5, "latest-delivery-time" },
2924 { 6, "requested-delivery-method" },
2925 { 7, "physical-forwarding-prohibited" },
2926 { 8, "physical-forwarding-address-request" },
2927 { 9, "physical-delivery-modes" },
2928 { 10, "registered-mail-type" },
2929 { 11, "recipient-number-for-advice" },
2930 { 12, "physical-rendition-attributes" },
2931 { 13, "originator-return-address" },
2932 { 14, "physical-delivery-report-request" },
2933 { 15, "originator-certificate" },
2934 { 16, "message-token" },
2935 { 17, "content-confidentiality-algorithm-identifier" },
2936 { 18, "content-integrity-check" },
2937 { 19, "message-origin-authentication-check" },
2938 { 20, "message-security-label" },
2939 { 21, "proof-of-submission-request" },
2940 { 22, "proof-of-delivery-request" },
2941 { 23, "content-correlator" },
2942 { 24, "probe-origin-authentication-check" },
2943 { 25, "redirection-history" },
2944 { 26, "dl-expansion-history" },
2945 { 27, "physical-forwarding-address" },
2946 { 28, "recipient-certificate" },
2947 { 29, "proof-of-delivery" },
2948 { 30, "originator-and-DL-expansion-history" },
2949 { 31, "reporting-DL-name" },
2950 { 32, "reporting-MTA-certificate" },
2951 { 33, "report-origin-authentication-check" },
2952 { 34, "originating-MTA-certificate" },
2953 { 35, "proof-of-submission" },
2954 { 36, "forwarding-request" },
2955 { 37, "trace-information" },
2956 { 38, "internal-trace-information" },
2957 { 39, "reporting-MTA-name" },
2958 { 40, "multiple-originator-certificates" },
2959 { 41, "blind-copy-recipients" },
2960 { 42, "dl-exempted-recipients" },
2961 { 43, "body-part-encryption-token" },
2962 { 44, "forwarded-content-token" },
2963 { 45, "certificate-selectors" },
2964 { 0, NULL }
2968 static int
2969 dissect_p1_StandardExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2970 actx->external.indirect_ref_present = true;
2971 actx->external.direct_ref_present = false;
2972 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2973 &actx->external.indirect_reference);
2977 return offset;
2982 static int
2983 dissect_p1_T_private_extension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2984 actx->external.indirect_ref_present = false;
2985 actx->external.direct_reference = NULL;
2986 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
2988 actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
2991 return offset;
2995 static const value_string p1_ExtensionType_vals[] = {
2996 { 0, "standard-extension" },
2997 { 3, "private-extension" },
2998 { 0, NULL }
3001 static const ber_choice_t ExtensionType_choice[] = {
3002 { 0, &hf_p1_standard_extension, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StandardExtension },
3003 { 3, &hf_p1_private_extension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_T_private_extension },
3004 { 0, NULL, 0, 0, 0, NULL }
3007 static int
3008 dissect_p1_ExtensionType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3009 offset = dissect_ber_choice(actx, tree, tvb, offset,
3010 ExtensionType_choice, hf_index, ett_p1_ExtensionType,
3011 NULL);
3013 return offset;
3017 static int * const Criticality_bits[] = {
3018 &hf_p1_Criticality_for_submission,
3019 &hf_p1_Criticality_for_transfer,
3020 &hf_p1_Criticality_for_delivery,
3021 NULL
3024 static int
3025 dissect_p1_Criticality(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3026 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3027 0, ub_bit_options, Criticality_bits, 3, hf_index, ett_p1_Criticality,
3028 NULL);
3030 return offset;
3035 static int
3036 dissect_p1_ExtensionValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3037 const char *name;
3039 if(actx->external.indirect_ref_present) {
3040 proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_StandardExtension_vals, "standard-extension %d"));
3041 if (dissector_try_uint(p1_extension_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
3042 offset = tvb_reported_length(tvb);
3043 } else {
3044 proto_item *item;
3045 proto_tree *next_tree;
3047 next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_standard_extension, &item,
3048 "Dissector for standard-extension %d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
3049 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
3050 expert_add_info(actx->pinfo, item, &ei_p1_unknown_standard_extension);
3052 } else if (actx->external.direct_ref_present) {
3053 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
3054 name = oid_resolved_from_string(actx->pinfo->pool, actx->external.direct_reference);
3055 proto_item_append_text(tree, " (%s)", name ? name : actx->external.direct_reference);
3060 return offset;
3064 static const ber_sequence_t ExtensionField_sequence[] = {
3065 { &hf_p1_extension_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExtensionType },
3066 { &hf_p1_criticality , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Criticality },
3067 { &hf_p1_extension_value , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtensionValue },
3068 { NULL, 0, 0, 0, NULL }
3072 dissect_p1_ExtensionField(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3073 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3074 ExtensionField_sequence, hf_index, ett_p1_ExtensionField);
3076 return offset;
3080 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
3081 { &hf_p1_extensions_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
3084 static int
3085 dissect_p1_SET_OF_ExtensionField(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3086 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3087 SET_OF_ExtensionField_set_of, hf_index, ett_p1_SET_OF_ExtensionField);
3089 return offset;
3094 static int
3095 dissect_p1_MTARecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3096 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3098 return offset;
3103 static int
3104 dissect_p1_OriginallySpecifiedRecipientNumber(bool 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_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3106 1U, ub_recipients, hf_index, NULL);
3108 return offset;
3112 static int * const PerRecipientIndicators_bits[] = {
3113 &hf_p1_PerRecipientIndicators_responsibility,
3114 &hf_p1_PerRecipientIndicators_originating_MTA_report,
3115 &hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report,
3116 &hf_p1_PerRecipientIndicators_originator_report,
3117 &hf_p1_PerRecipientIndicators_originator_non_delivery_report,
3118 &hf_p1_PerRecipientIndicators_reserved_5,
3119 &hf_p1_PerRecipientIndicators_reserved_6,
3120 &hf_p1_PerRecipientIndicators_reserved_7,
3121 NULL
3124 static int
3125 dissect_p1_PerRecipientIndicators(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3126 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
3127 8, ub_bit_options, PerRecipientIndicators_bits, 8, hf_index, ett_p1_PerRecipientIndicators,
3128 NULL);
3130 return offset;
3134 static const value_string p1_ExplicitConversion_vals[] = {
3135 { 0, "ia5-text-to-teletex" },
3136 { 8, "ia5-text-to-g3-facsimile" },
3137 { 9, "ia5-text-to-g4-class-1" },
3138 { 10, "ia5-text-to-videotex" },
3139 { 11, "teletex-to-ia5-text" },
3140 { 12, "teletex-to-g3-facsimile" },
3141 { 13, "teletex-to-g4-class-1" },
3142 { 14, "teletex-to-videotex" },
3143 { 16, "videotex-to-ia5-text" },
3144 { 17, "videotex-to-teletex" },
3145 { 0, NULL }
3149 static int
3150 dissect_p1_ExplicitConversion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3151 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3152 0U, ub_integer_options, hf_index, NULL);
3154 return offset;
3158 static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
3159 { &hf_p1_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
3160 { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3161 { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3162 { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
3163 { &hf_p1_extensions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3164 { NULL, 0, 0, 0, NULL }
3167 static int
3168 dissect_p1_PerRecipientMessageTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3169 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3170 PerRecipientMessageTransferFields_set, hf_index, ett_p1_PerRecipientMessageTransferFields);
3172 return offset;
3176 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
3177 { &hf_p1_per_recipient_message_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageTransferFields },
3180 static int
3181 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3182 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3183 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields);
3185 return offset;
3189 static const ber_sequence_t MessageTransferEnvelope_set[] = {
3190 { &hf_p1_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageIdentifier },
3191 { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
3192 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3193 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3194 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3195 { &hf_p1_priority , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
3196 { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
3197 { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
3198 { &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 },
3199 { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3200 { &hf_p1_extensions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3201 { &hf_p1_per_recipient_message_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields },
3202 { NULL, 0, 0, 0, NULL }
3205 static int
3206 dissect_p1_MessageTransferEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3207 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3208 MessageTransferEnvelope_set, hf_index, ett_p1_MessageTransferEnvelope);
3210 return offset;
3216 dissect_p1_Content(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3217 tvbuff_t *next_tvb;
3218 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
3220 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3221 &next_tvb);
3224 if (next_tvb) {
3225 proto_item_set_text(actx->created_item, "content (%u bytes)", tvb_reported_length (next_tvb));
3226 if (ctx && ctx->content_type_id) {
3227 (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);
3228 } else if (ctx && ctx->report_unknown_content_type) {
3229 proto_item *item;
3230 proto_tree *next_tree;
3232 item = proto_tree_add_expert(actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->pinfo, &ei_p1_unknown_built_in_content_type,
3233 next_tvb, 0, tvb_reported_length_remaining(tvb, offset));
3234 next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
3236 dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
3237 } else {
3238 proto_item_append_text (actx->created_item, " (unknown content-type)");
3243 return offset;
3247 static const ber_sequence_t Message_sequence[] = {
3248 { &hf_p1_message_envelope , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageTransferEnvelope },
3249 { &hf_p1_content , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
3250 { NULL, 0, 0, 0, NULL }
3253 static int
3254 dissect_p1_Message(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3255 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3256 Message_sequence, hf_index, ett_p1_Message);
3258 return offset;
3263 static int
3264 dissect_p1_ProbeIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3265 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3267 return offset;
3273 dissect_p1_ContentLength(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3274 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3275 0U, ub_content_length, hf_index, NULL);
3277 return offset;
3281 static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
3282 { &hf_p1_recipient_name , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
3283 { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3284 { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3285 { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
3286 { &hf_p1_extensions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3287 { NULL, 0, 0, 0, NULL }
3290 static int
3291 dissect_p1_PerRecipientProbeTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3292 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3293 PerRecipientProbeTransferFields_set, hf_index, ett_p1_PerRecipientProbeTransferFields);
3295 return offset;
3299 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
3300 { &hf_p1_per_recipient_probe_transfer_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeTransferFields },
3303 static int
3304 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3305 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3306 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields);
3308 return offset;
3312 static const ber_sequence_t ProbeTransferEnvelope_set[] = {
3313 { &hf_p1_probe_identifier , BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeIdentifier },
3314 { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
3315 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3316 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3317 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3318 { &hf_p1_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
3319 { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
3320 { &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 },
3321 { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3322 { &hf_p1_extensions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3323 { &hf_p1_per_recipient_probe_transfer_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields },
3324 { NULL, 0, 0, 0, NULL }
3327 static int
3328 dissect_p1_ProbeTransferEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3329 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3330 ProbeTransferEnvelope_set, hf_index, ett_p1_ProbeTransferEnvelope);
3332 return offset;
3337 static int
3338 dissect_p1_Probe(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3339 offset = dissect_p1_ProbeTransferEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
3341 return offset;
3346 static int
3347 dissect_p1_ReportIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3348 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3350 return offset;
3355 static int
3356 dissect_p1_ReportDestinationName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3357 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3359 return offset;
3363 static const ber_sequence_t ReportTransferEnvelope_set[] = {
3364 { &hf_p1_report_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ReportIdentifier },
3365 { &hf_p1_report_destination_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ReportDestinationName },
3366 { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
3367 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3368 { NULL, 0, 0, 0, NULL }
3371 static int
3372 dissect_p1_ReportTransferEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3373 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3374 ReportTransferEnvelope_set, hf_index, ett_p1_ReportTransferEnvelope);
3376 return offset;
3381 static int
3382 dissect_p1_MessageOrProbeIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3383 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3385 return offset;
3390 static int
3391 dissect_p1_SubjectIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3392 offset = dissect_p1_MessageOrProbeIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3394 return offset;
3399 static int
3400 dissect_p1_SubjectIntermediateTraceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3401 offset = dissect_p1_TraceInformation(implicit_tag, tvb, offset, actx, tree, hf_index);
3403 return offset;
3408 static int
3409 dissect_p1_AdditionalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3410 proto_item *item = NULL;
3411 int loffset = 0;
3412 uint32_t len = 0;
3414 /* work out the length */
3415 loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
3416 (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
3418 item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
3419 tree = proto_item_add_subtree(item, ett_p1_additional_information);
3420 proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
3422 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
3425 return offset;
3430 static int
3431 dissect_p1_MTAActualRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3432 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3434 return offset;
3440 dissect_p1_MessageDeliveryTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3441 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
3443 return offset;
3447 static const value_string p1_TypeOfMTSUser_vals[] = {
3448 { 0, "public" },
3449 { 1, "private" },
3450 { 2, "ms" },
3451 { 3, "dl" },
3452 { 4, "pdau" },
3453 { 5, "physical-recipient" },
3454 { 6, "other" },
3455 { 0, NULL }
3459 static int
3460 dissect_p1_TypeOfMTSUser(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3461 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3462 0U, ub_mts_user_types, hf_index, NULL);
3464 return offset;
3468 static const ber_sequence_t DeliveryReport_set[] = {
3469 { &hf_p1_message_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageDeliveryTime },
3470 { &hf_p1_type_of_MTS_user , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TypeOfMTSUser },
3471 { NULL, 0, 0, 0, NULL }
3474 static int
3475 dissect_p1_DeliveryReport(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3476 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3477 DeliveryReport_set, hf_index, ett_p1_DeliveryReport);
3479 return offset;
3483 const value_string p1_NonDeliveryReasonCode_vals[] = {
3484 { 0, "transfer-failure" },
3485 { 1, "unable-to-transfer" },
3486 { 2, "conversion-not-performed" },
3487 { 3, "physical-rendition-not-performed" },
3488 { 4, "physical-delivery-not-performed" },
3489 { 5, "restricted-delivery" },
3490 { 6, "directory-operation-unsuccessful" },
3491 { 7, "deferred-delivery-not-performed" },
3492 { 8, "transfer-failure-for-security-reason" },
3493 { 0, NULL }
3498 dissect_p1_NonDeliveryReasonCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3499 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3500 0U, ub_reason_codes, hf_index, NULL);
3502 return offset;
3506 const value_string p1_NonDeliveryDiagnosticCode_vals[] = {
3507 { 0, "unrecognised-OR-name" },
3508 { 1, "ambiguous-OR-name" },
3509 { 2, "mts-congestion" },
3510 { 3, "loop-detected" },
3511 { 4, "recipient-unavailable" },
3512 { 5, "maximum-time-expired" },
3513 { 6, "encoded-information-types-unsupported" },
3514 { 7, "content-too-long" },
3515 { 8, "conversion-impractical" },
3516 { 9, "implicit-conversion-prohibited" },
3517 { 10, "implicit-conversion-not-subscribed" },
3518 { 11, "invalid-arguments" },
3519 { 12, "content-syntax-error" },
3520 { 13, "size-constraint-violation" },
3521 { 14, "protocol-violation" },
3522 { 15, "content-type-not-supported" },
3523 { 16, "too-many-recipients" },
3524 { 17, "no-bilateral-agreement" },
3525 { 18, "unsupported-critical-function" },
3526 { 19, "conversion-with-loss-prohibited" },
3527 { 20, "line-too-long" },
3528 { 21, "page-split" },
3529 { 22, "pictorial-symbol-loss" },
3530 { 23, "punctuation-symbol-loss" },
3531 { 24, "alphabetic-character-loss" },
3532 { 25, "multiple-information-loss" },
3533 { 26, "recipient-reassignment-prohibited" },
3534 { 27, "redirection-loop-detected" },
3535 { 28, "dl-expansion-prohibited" },
3536 { 29, "no-dl-submit-permission" },
3537 { 30, "dl-expansion-failure" },
3538 { 31, "physical-rendition-attributes-not-supported" },
3539 { 32, "undeliverable-mail-physical-delivery-address-incorrect" },
3540 { 33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
3541 { 34, "undeliverable-mail-physical-delivery-address-incomplete" },
3542 { 35, "undeliverable-mail-recipient-unknown" },
3543 { 36, "undeliverable-mail-recipient-deceased" },
3544 { 37, "undeliverable-mail-organization-expired" },
3545 { 38, "undeliverable-mail-recipient-refused-to-accept" },
3546 { 39, "undeliverable-mail-recipient-did-not-claim" },
3547 { 40, "undeliverable-mail-recipient-changed-address-permanently" },
3548 { 41, "undeliverable-mail-recipient-changed-address-temporarily" },
3549 { 42, "undeliverable-mail-recipient-changed-temporary-address" },
3550 { 43, "undeliverable-mail-new-address-unknown" },
3551 { 44, "undeliverable-mail-recipient-did-not-want-forwarding" },
3552 { 45, "undeliverable-mail-originator-prohibited-forwarding" },
3553 { 46, "secure-messaging-error" },
3554 { 47, "unable-to-downgrade" },
3555 { 48, "unable-to-complete-transfer" },
3556 { 49, "transfer-attempts-limit-reached" },
3557 { 50, "incorrect-notification-type" },
3558 { 51, "dl-expansion-prohibited-by-security-policy" },
3559 { 52, "forbidden-alternate-recipient" },
3560 { 53, "security-policy-violation" },
3561 { 54, "security-services-refusal" },
3562 { 55, "unauthorised-dl-member" },
3563 { 56, "unauthorised-dl-name" },
3564 { 57, "unauthorised-originally-intended-recipient-name" },
3565 { 58, "unauthorised-originator-name" },
3566 { 59, "unauthorised-recipient-name" },
3567 { 60, "unreliable-system" },
3568 { 61, "authentication-failure-on-subject-message" },
3569 { 62, "decryption-failed" },
3570 { 63, "decryption-key-unobtainable" },
3571 { 64, "double-envelope-creation-failure" },
3572 { 65, "double-enveloping-message-restoring-failure" },
3573 { 66, "failure-of-proof-of-message" },
3574 { 67, "integrity-failure-on-subject-message" },
3575 { 68, "invalid-security-label" },
3576 { 69, "key-failure" },
3577 { 70, "mandatory-parameter-absence" },
3578 { 71, "operation-security-failure" },
3579 { 72, "repudiation-failure-of-message" },
3580 { 73, "security-context-failure" },
3581 { 74, "token-decryption-failed" },
3582 { 75, "token-error" },
3583 { 76, "unknown-security-label" },
3584 { 77, "unsupported-algorithm-identifier" },
3585 { 78, "unsupported-security-policy" },
3586 { 0, NULL }
3591 dissect_p1_NonDeliveryDiagnosticCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3592 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3593 0U, ub_diagnostic_codes, hf_index, NULL);
3595 return offset;
3599 static const ber_sequence_t NonDeliveryReport_set[] = {
3600 { &hf_p1_non_delivery_reason_code, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReasonCode },
3601 { &hf_p1_non_delivery_diagnostic_code, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryDiagnosticCode },
3602 { NULL, 0, 0, 0, NULL }
3605 static int
3606 dissect_p1_NonDeliveryReport(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3607 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3608 NonDeliveryReport_set, hf_index, ett_p1_NonDeliveryReport);
3610 return offset;
3614 static const value_string p1_ReportType_vals[] = {
3615 { 0, "delivery" },
3616 { 1, "non-delivery" },
3617 { 0, NULL }
3620 static const ber_choice_t ReportType_choice[] = {
3621 { 0, &hf_p1_delivery , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryReport },
3622 { 1, &hf_p1_non_delivery , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReport },
3623 { 0, NULL, 0, 0, 0, NULL }
3626 static int
3627 dissect_p1_ReportType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3628 int report = -1;
3630 offset = dissect_ber_choice(actx, tree, tvb, offset,
3631 ReportType_choice, hf_index, ett_p1_ReportType,
3632 &report);
3635 if( (report!=-1) && p1_ReportType_vals[report].strptr ){
3636 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_ReportType_vals[report].strptr);
3640 return offset;
3644 static const ber_sequence_t LastTraceInformation_set[] = {
3645 { &hf_p1_arrival_time , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
3646 { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
3647 { &hf_p1_trace_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
3648 { NULL, 0, 0, 0, NULL }
3651 static int
3652 dissect_p1_LastTraceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3653 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3654 LastTraceInformation_set, hf_index, ett_p1_LastTraceInformation);
3656 return offset;
3661 static int
3662 dissect_p1_OriginallyIntendedRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3663 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
3665 return offset;
3671 dissect_p1_SupplementaryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3672 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
3673 actx, tree, tvb, offset,
3674 1, ub_supplementary_info_length, hf_index, NULL);
3676 return offset;
3680 static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
3681 { &hf_p1_mta_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAActualRecipientName },
3682 { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
3683 { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
3684 { &hf_p1_last_trace_information, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_LastTraceInformation },
3685 { &hf_p1_report_originally_intended_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
3686 { &hf_p1_supplementary_information, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
3687 { &hf_p1_extensions , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3688 { NULL, 0, 0, 0, NULL }
3691 static int
3692 dissect_p1_PerRecipientReportTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3693 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3694 PerRecipientReportTransferFields_set, hf_index, ett_p1_PerRecipientReportTransferFields);
3696 return offset;
3700 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of[1] = {
3701 { &hf_p1_per_recipient_report_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportTransferFields },
3704 static int
3705 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3706 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3707 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields);
3709 return offset;
3713 static const ber_sequence_t ReportTransferContent_set[] = {
3714 { &hf_p1_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIdentifier },
3715 { &hf_p1_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIntermediateTraceInformation },
3716 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
3717 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
3718 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
3719 { &hf_p1_returned_content , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
3720 { &hf_p1_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_AdditionalInformation },
3721 { &hf_p1_extensions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3722 { &hf_p1_per_recipient_report_fields, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields },
3723 { NULL, 0, 0, 0, NULL }
3726 static int
3727 dissect_p1_ReportTransferContent(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3728 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3729 ReportTransferContent_set, hf_index, ett_p1_ReportTransferContent);
3731 return offset;
3735 static const ber_sequence_t Report_sequence[] = {
3736 { &hf_p1_report_envelope , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferEnvelope },
3737 { &hf_p1_report_content , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferContent },
3738 { NULL, 0, 0, 0, NULL }
3741 static int
3742 dissect_p1_Report(bool 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_sequence(implicit_tag, actx, tree, tvb, offset,
3744 Report_sequence, hf_index, ett_p1_Report);
3746 return offset;
3750 static const value_string p1_MTS_APDU_vals[] = {
3751 { 0, "message" },
3752 { 2, "probe" },
3753 { 1, "report" },
3754 { 0, NULL }
3757 static const ber_choice_t MTS_APDU_choice[] = {
3758 { 0, &hf_p1_message , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_Message },
3759 { 2, &hf_p1_probe , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_Probe },
3760 { 1, &hf_p1_report , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_Report },
3761 { 0, NULL, 0, 0, 0, NULL }
3764 static int
3765 dissect_p1_MTS_APDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3766 int apdu = -1;
3768 offset = dissect_ber_choice(actx, tree, tvb, offset,
3769 MTS_APDU_choice, hf_index, ett_p1_MTS_APDU,
3770 &apdu);
3773 if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
3774 if(apdu != 0) { /* we don't show "message" - sub-dissectors have better idea */
3775 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_MTS_APDU_vals[apdu].strptr);
3780 return offset;
3787 static const value_string p1_T_attempted_vals[] = {
3788 { 0, "mta" },
3789 { 1, "domain" },
3790 { 0, NULL }
3793 static const ber_choice_t T_attempted_choice[] = {
3794 { 0, &hf_p1_mta , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
3795 { 1, &hf_p1_domain , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
3796 { 0, NULL, 0, 0, 0, NULL }
3799 static int
3800 dissect_p1_T_attempted(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3801 offset = dissect_ber_choice(actx, tree, tvb, offset,
3802 T_attempted_choice, hf_index, ett_p1_T_attempted,
3803 NULL);
3805 return offset;
3809 static const ber_sequence_t MTASuppliedInformation_set[] = {
3810 { &hf_p1_arrival_time , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
3811 { &hf_p1_routing_action , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
3812 { &hf_p1_attempted , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_attempted },
3813 { &hf_p1_deferred_time , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
3814 { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
3815 { &hf_p1_other_actions , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
3816 { NULL, 0, 0, 0, NULL }
3819 static int
3820 dissect_p1_MTASuppliedInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3822 set_do_address(actx, false);
3824 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3825 MTASuppliedInformation_set, hf_index, ett_p1_MTASuppliedInformation);
3828 set_do_address(actx, true);
3829 proto_item_append_text(tree, ")");
3832 return offset;
3836 static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
3837 { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
3838 { &hf_p1_mta_name , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
3839 { &hf_p1_mta_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MTASuppliedInformation },
3840 { NULL, 0, 0, 0, NULL }
3843 static int
3844 dissect_p1_InternalTraceInformationElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3846 set_do_address(actx, true);
3848 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3849 InternalTraceInformationElement_sequence, hf_index, ett_p1_InternalTraceInformationElement);
3852 set_do_address(actx, false);
3855 return offset;
3859 static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
3860 { &hf_p1_InternalTraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_InternalTraceInformationElement },
3863 static int
3864 dissect_p1_InternalTraceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3865 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
3866 1, ub_transfers, InternalTraceInformation_sequence_of, hf_index, ett_p1_InternalTraceInformation);
3868 return offset;
3874 static const value_string p1_ObjectName_vals[] = {
3875 { 0, "user-agent" },
3876 { 1, "mTA" },
3877 { 2, "message-store" },
3878 { 0, NULL }
3881 static const ber_choice_t ObjectName_choice[] = {
3882 { 0, &hf_p1_user_agent , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
3883 { 1, &hf_p1_mTA , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
3884 { 2, &hf_p1_message_store , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
3885 { 0, NULL, 0, 0, 0, NULL }
3888 static int
3889 dissect_p1_ObjectName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3890 offset = dissect_ber_choice(actx, tree, tvb, offset,
3891 ObjectName_choice, hf_index, ett_p1_ObjectName,
3892 NULL);
3894 return offset;
3899 static int
3900 dissect_p1_INTEGER_0_ub_queue_size(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3901 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3902 0U, ub_queue_size, hf_index, NULL);
3904 return offset;
3909 static int
3910 dissect_p1_INTEGER_0_ub_content_length(bool 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_constrained_integer(implicit_tag, actx, tree, tvb, offset,
3912 0U, ub_content_length, hf_index, NULL);
3914 return offset;
3918 static const ber_sequence_t DeliveryQueue_set[] = {
3919 { &hf_p1_messages , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_queue_size },
3920 { &hf_p1_delivery_queue_octets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_content_length },
3921 { NULL, 0, 0, 0, NULL }
3924 static int
3925 dissect_p1_DeliveryQueue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3926 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3927 DeliveryQueue_set, hf_index, ett_p1_DeliveryQueue);
3929 return offset;
3933 static const ber_sequence_t MessagesWaiting_set[] = {
3934 { &hf_p1_urgent , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3935 { &hf_p1_normal , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3936 { &hf_p1_non_urgent , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
3937 { NULL, 0, 0, 0, NULL }
3940 static int
3941 dissect_p1_MessagesWaiting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3942 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3943 MessagesWaiting_set, hf_index, ett_p1_MessagesWaiting);
3945 return offset;
3949 static const ber_sequence_t MTSBindArgument_set[] = {
3950 { &hf_p1_initiator_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
3951 { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
3952 { &hf_p1_initiator_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
3953 { &hf_p1_security_context , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
3954 { &hf_p1_extensions , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3955 { NULL, 0, 0, 0, NULL }
3958 static int
3959 dissect_p1_MTSBindArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3960 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3961 MTSBindArgument_set, hf_index, ett_p1_MTSBindArgument);
3963 return offset;
3967 static const ber_sequence_t MTSBindResult_set[] = {
3968 { &hf_p1_responder_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
3969 { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
3970 { &hf_p1_responder_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
3971 { &hf_p1_extensions , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
3972 { NULL, 0, 0, 0, NULL }
3975 static int
3976 dissect_p1_MTSBindResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3977 /* TODO: there may be other entry points where this global should be initialized... */
3978 actx->subtree.tree = NULL;
3980 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3981 MTSBindResult_set, hf_index, ett_p1_MTSBindResult);
3983 return offset;
3987 static const value_string p1_PAR_mts_bind_error_vals[] = {
3988 { 0, "busy" },
3989 { 2, "authentication-error" },
3990 { 3, "unacceptable-dialogue-mode" },
3991 { 4, "unacceptable-security-context" },
3992 { 5, "inadequate-association-confidentiality" },
3993 { 0, NULL }
3997 static int
3998 dissect_p1_PAR_mts_bind_error(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3999 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4000 0U, ub_integer_options, hf_index, NULL);
4002 return offset;
4008 dissect_p1_ORAddressAndOrDirectoryName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4009 offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
4011 return offset;
4017 dissect_p1_OriginatorName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4018 offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4020 return offset;
4025 static int
4026 dissect_p1_RecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027 offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4029 return offset;
4033 static int * const OriginatorReportRequest_bits[] = {
4034 &hf_p1_OriginatorReportRequest_spare_bit0,
4035 &hf_p1_OriginatorReportRequest_spare_bit1,
4036 &hf_p1_OriginatorReportRequest_spare_bit2,
4037 &hf_p1_OriginatorReportRequest_report,
4038 &hf_p1_OriginatorReportRequest_non_delivery_report,
4039 NULL
4042 static int
4043 dissect_p1_OriginatorReportRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4044 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4045 0, ub_bit_options, OriginatorReportRequest_bits, 5, hf_index, ett_p1_OriginatorReportRequest,
4046 NULL);
4048 return offset;
4052 static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
4053 { &hf_p1_submission_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4054 { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
4055 { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
4056 { &hf_p1_extensions , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4057 { NULL, 0, 0, 0, NULL }
4060 static int
4061 dissect_p1_PerRecipientMessageSubmissionFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4062 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4063 PerRecipientMessageSubmissionFields_set, hf_index, ett_p1_PerRecipientMessageSubmissionFields);
4065 return offset;
4069 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
4070 { &hf_p1_per_recipient_message_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageSubmissionFields },
4073 static int
4074 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4075 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4076 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields);
4078 return offset;
4082 static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
4083 { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
4084 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4085 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4086 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4087 { &hf_p1_priority , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4088 { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
4089 { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
4090 { &hf_p1_extensions , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4091 { &hf_p1_per_recipient_message_submission_fields, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields },
4092 { NULL, 0, 0, 0, NULL }
4096 dissect_p1_MessageSubmissionEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4097 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4098 MessageSubmissionEnvelope_set, hf_index, ett_p1_MessageSubmissionEnvelope);
4100 return offset;
4104 static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
4105 { &hf_p1_message_submission_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionEnvelope },
4106 { &hf_p1_content , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
4107 { NULL, 0, 0, 0, NULL }
4110 static int
4111 dissect_p1_MessageSubmissionArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4112 p1_initialize_content_globals(actx, tree, true);
4113 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4114 MessageSubmissionArgument_sequence, hf_index, ett_p1_MessageSubmissionArgument);
4116 p1_initialize_content_globals(actx, NULL, false);
4119 return offset;
4125 dissect_p1_MessageSubmissionIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4126 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4128 return offset;
4134 dissect_p1_MessageSubmissionTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4135 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4137 return offset;
4141 static const ber_sequence_t MessageSubmissionResult_set[] = {
4142 { &hf_p1_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionIdentifier },
4143 { &hf_p1_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
4144 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4145 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4146 { NULL, 0, 0, 0, NULL }
4149 static int
4150 dissect_p1_MessageSubmissionResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4151 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4152 MessageSubmissionResult_set, hf_index, ett_p1_MessageSubmissionResult);
4154 return offset;
4158 static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
4159 { &hf_p1_probe_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4160 { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
4161 { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
4162 { &hf_p1_extensions , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4163 { NULL, 0, 0, 0, NULL }
4167 dissect_p1_PerRecipientProbeSubmissionFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4168 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4169 PerRecipientProbeSubmissionFields_set, hf_index, ett_p1_PerRecipientProbeSubmissionFields);
4171 return offset;
4175 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
4176 { &hf_p1_per_recipient_probe_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeSubmissionFields },
4179 static int
4180 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4181 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4182 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields);
4184 return offset;
4188 static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
4189 { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
4190 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4191 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4192 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4193 { &hf_p1_content_length , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4194 { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
4195 { &hf_p1_extensions , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4196 { &hf_p1_per_recipient_probe_submission_fields, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields },
4197 { NULL, 0, 0, 0, NULL }
4201 dissect_p1_ProbeSubmissionEnvelope(bool 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_set(implicit_tag, actx, tree, tvb, offset,
4203 ProbeSubmissionEnvelope_set, hf_index, ett_p1_ProbeSubmissionEnvelope);
4205 return offset;
4210 static int
4211 dissect_p1_ProbeSubmissionArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4212 offset = dissect_p1_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
4214 return offset;
4220 dissect_p1_ProbeSubmissionIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4221 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4223 return offset;
4229 dissect_p1_ProbeSubmissionTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4230 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
4232 return offset;
4236 static const ber_sequence_t ProbeSubmissionResult_set[] = {
4237 { &hf_p1_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeSubmissionIdentifier },
4238 { &hf_p1_probe_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ProbeSubmissionTime },
4239 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4240 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4241 { NULL, 0, 0, 0, NULL }
4244 static int
4245 dissect_p1_ProbeSubmissionResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4246 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4247 ProbeSubmissionResult_set, hf_index, ett_p1_ProbeSubmissionResult);
4249 return offset;
4254 static int
4255 dissect_p1_CancelDeferredDeliveryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4256 offset = dissect_p1_MessageSubmissionIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4258 return offset;
4263 static int
4264 dissect_p1_CancelDeferredDeliveryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4265 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4267 return offset;
4272 static int
4273 dissect_p1_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4274 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4276 return offset;
4280 static int * const Operations_bits[] = {
4281 &hf_p1_Operations_probe_submission_or_report_delivery,
4282 &hf_p1_Operations_message_submission_or_message_delivery,
4283 NULL
4286 static int
4287 dissect_p1_Operations(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4288 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4289 0, ub_bit_options, Operations_bits, 2, hf_index, ett_p1_Operations,
4290 NULL);
4292 return offset;
4296 static const ber_sequence_t ContentTypes_set_of[1] = {
4297 { &hf_p1_ContentTypes_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4300 static int
4301 dissect_p1_ContentTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4302 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4303 1, ub_content_types, ContentTypes_set_of, hf_index, ett_p1_ContentTypes);
4305 return offset;
4309 static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
4310 { &hf_p1_unacceptable_eits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4311 { &hf_p1_acceptable_eits , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4312 { &hf_p1_exclusively_acceptable_eits, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
4313 { NULL, 0, 0, 0, NULL }
4317 dissect_p1_EncodedInformationTypesConstraints(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4318 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4319 EncodedInformationTypesConstraints_sequence, hf_index, ett_p1_EncodedInformationTypesConstraints);
4321 return offset;
4326 static int
4327 dissect_p1_PermissibleEncodedInformationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4328 offset = dissect_p1_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, actx, tree, hf_index);
4330 return offset;
4334 static const ber_sequence_t Controls_set[] = {
4335 { &hf_p1_restrict , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BOOLEAN },
4336 { &hf_p1_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4337 { &hf_p1_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4338 { &hf_p1_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4339 { &hf_p1_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
4340 { &hf_p1_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PermissibleEncodedInformationTypes },
4341 { &hf_p1_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
4342 { NULL, 0, 0, 0, NULL }
4345 static int
4346 dissect_p1_Controls(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4347 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4348 Controls_set, hf_index, ett_p1_Controls);
4350 return offset;
4355 static int
4356 dissect_p1_SubmissionControls(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4357 offset = dissect_p1_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
4359 return offset;
4364 static int
4365 dissect_p1_SubmissionControlArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4366 offset = dissect_p1_SubmissionControls(implicit_tag, tvb, offset, actx, tree, hf_index);
4368 return offset;
4372 static int * const WaitingMessages_bits[] = {
4373 &hf_p1_WaitingMessages_long_content,
4374 &hf_p1_WaitingMessages_low_priority,
4375 &hf_p1_WaitingMessages_other_security_labels,
4376 NULL
4379 static int
4380 dissect_p1_WaitingMessages(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4381 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4382 0, ub_bit_options, WaitingMessages_bits, 3, hf_index, ett_p1_WaitingMessages,
4383 NULL);
4385 return offset;
4389 static const ber_sequence_t SET_SIZE_0_ub_content_types_OF_ContentType_set_of[1] = {
4390 { &hf_p1_waiting_content_types_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4393 static int
4394 dissect_p1_SET_SIZE_0_ub_content_types_OF_ContentType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4395 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4396 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);
4398 return offset;
4402 static const ber_sequence_t Waiting_set[] = {
4403 { &hf_p1_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4404 { &hf_p1_waiting_messages , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_WaitingMessages },
4405 { &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 },
4406 { &hf_p1_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_EncodedInformationTypes },
4407 { NULL, 0, 0, 0, NULL }
4410 static int
4411 dissect_p1_Waiting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4412 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4413 Waiting_set, hf_index, ett_p1_Waiting);
4415 return offset;
4420 static int
4421 dissect_p1_SubmissionControlResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4422 offset = dissect_p1_Waiting(implicit_tag, tvb, offset, actx, tree, hf_index);
4424 return offset;
4429 static int
4430 dissect_p1_PAR_submission_control_violated(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4431 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4433 return offset;
4438 static int
4439 dissect_p1_PAR_element_of_service_not_subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4440 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4442 return offset;
4447 static int
4448 dissect_p1_PAR_deferred_delivery_cancellation_rejected(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4449 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4451 return offset;
4456 static int
4457 dissect_p1_PAR_originator_invalid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4458 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4460 return offset;
4464 static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
4465 { &hf_p1_ImproperlySpecifiedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
4469 dissect_p1_ImproperlySpecifiedRecipients(bool 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_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4471 1, ub_recipients, ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_p1_ImproperlySpecifiedRecipients);
4473 return offset;
4478 static int
4479 dissect_p1_PAR_message_submission_identifier_invalid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4480 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4482 return offset;
4487 static int
4488 dissect_p1_PAR_inconsistent_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4489 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4491 return offset;
4495 const value_string p1_SecurityProblem_vals[] = {
4496 { 0, "assemby-instructions-conflict-with-security-services" },
4497 { 1, "authentication-problem" },
4498 { 2, "authentication-failure-on-subject-message" },
4499 { 3, "confidentiality-association-problem" },
4500 { 4, "decryption-failed" },
4501 { 5, "decryption-key-unobtainable" },
4502 { 6, "failure-of-proof-of-message" },
4503 { 7, "forbidden-user-security-label-register" },
4504 { 8, "incompatible-change-with-original-security-context" },
4505 { 9, "integrity-failure-on-subject-message" },
4506 { 10, "invalid-security-label" },
4507 { 11, "invalid-security-label-update" },
4508 { 12, "key-failure" },
4509 { 13, "mandatory-parameter-absence" },
4510 { 14, "operation-security-failure" },
4511 { 15, "redirection-prohibited" },
4512 { 16, "refused-alternate-recipient-name" },
4513 { 17, "repudiation-failure-of-message" },
4514 { 18, "responder-credentials-checking-problem" },
4515 { 19, "security-context-failure" },
4516 { 20, "security-context-problem" },
4517 { 21, "security-policy-violation" },
4518 { 22, "security-services-refusal" },
4519 { 23, "token-decryption-failed" },
4520 { 24, "token-error" },
4521 { 25, "unable-to-aggregate-security-labels" },
4522 { 26, "unauthorised-dl-name" },
4523 { 27, "unauthorised-entry-class" },
4524 { 28, "unauthorised-originally-intended-recipient-name" },
4525 { 29, "unauthorised-originator-name" },
4526 { 30, "unauthorised-recipient-name" },
4527 { 31, "unauthorised-security-label-update" },
4528 { 32, "unauthorised-user-name" },
4529 { 33, "unknown-security-label" },
4530 { 34, "unsupported-algorithm-identifier" },
4531 { 35, "unsupported-security-policy" },
4532 { 0, NULL }
4537 dissect_p1_SecurityProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4538 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4539 0U, ub_security_problems, hf_index, NULL);
4541 return offset;
4546 static int
4547 dissect_p1_PAR_unsupported_critical_function(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4548 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4550 return offset;
4555 static int
4556 dissect_p1_PAR_remote_bind_error(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4557 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4559 return offset;
4565 dissect_p1_MessageDeliveryIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4566 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4568 return offset;
4572 static const value_string p1_DeliveredContentType_vals[] = {
4573 { 0, "built-in" },
4574 { 1, "extended" },
4575 { 0, NULL }
4578 static const ber_choice_t DeliveredContentType_choice[] = {
4579 { 0, &hf_p1_built_in , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInContentType },
4580 { 1, &hf_p1_extended , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
4581 { 0, NULL, 0, 0, 0, NULL }
4584 static int
4585 dissect_p1_DeliveredContentType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4586 offset = dissect_ber_choice(actx, tree, tvb, offset,
4587 DeliveredContentType_choice, hf_index, ett_p1_DeliveredContentType,
4588 NULL);
4590 return offset;
4595 static int
4596 dissect_p1_DeliveredOriginatorName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4597 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4599 return offset;
4603 static int * const DeliveryFlags_bits[] = {
4604 &hf_p1_DeliveryFlags_spare_bit0,
4605 &hf_p1_DeliveryFlags_implicit_conversion_prohibited,
4606 NULL
4609 static int
4610 dissect_p1_DeliveryFlags(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4611 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
4612 0, ub_bit_options, DeliveryFlags_bits, 2, hf_index, ett_p1_DeliveryFlags,
4613 NULL);
4615 return offset;
4620 static int
4621 dissect_p1_OtherRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4622 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4624 return offset;
4628 static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
4629 { &hf_p1_OtherRecipientNames_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OtherRecipientName },
4632 static int
4633 dissect_p1_OtherRecipientNames(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4634 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4635 1, ub_recipients, OtherRecipientNames_sequence_of, hf_index, ett_p1_OtherRecipientNames);
4637 return offset;
4642 static int
4643 dissect_p1_ThisRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4644 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4646 return offset;
4650 static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
4651 { &hf_p1_delivered_content_type, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_DeliveredContentType },
4652 { &hf_p1_delivered_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_DeliveredOriginatorName },
4653 { &hf_p1_original_encoded_information_types, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginalEncodedInformationTypes },
4654 { &hf_p1_priority , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4655 { &hf_p1_delivery_flags , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeliveryFlags },
4656 { &hf_p1_other_recipient_names, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherRecipientNames },
4657 { &hf_p1_this_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ThisRecipientName },
4658 { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
4659 { &hf_p1_converted_encoded_information_types, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ConvertedEncodedInformationTypes },
4660 { &hf_p1_message_submission_time, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
4661 { &hf_p1_content_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIdentifier },
4662 { &hf_p1_extensions , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4663 { NULL, 0, 0, 0, NULL }
4667 dissect_p1_OtherMessageDeliveryFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4668 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4669 OtherMessageDeliveryFields_set, hf_index, ett_p1_OtherMessageDeliveryFields);
4671 return offset;
4675 static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
4676 { &hf_p1_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryIdentifier },
4677 { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
4678 { &hf_p1_other_fields , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_OtherMessageDeliveryFields },
4679 { &hf_p1_content , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
4680 { NULL, 0, 0, 0, NULL }
4683 static int
4684 dissect_p1_MessageDeliveryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4685 p1_initialize_content_globals(actx, tree, true);
4686 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4687 MessageDeliveryArgument_sequence, hf_index, ett_p1_MessageDeliveryArgument);
4689 p1_initialize_content_globals(actx, NULL, false);
4692 return offset;
4697 static int
4698 dissect_p1_RecipientCertificate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4699 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
4701 return offset;
4706 static int
4707 dissect_p1_ProofOfDelivery(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4708 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
4710 return offset;
4714 static const ber_sequence_t MessageDeliveryResult_set[] = {
4715 { &hf_p1_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientCertificate },
4716 { &hf_p1_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDelivery },
4717 { &hf_p1_extensions , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4718 { NULL, 0, 0, 0, NULL }
4721 static int
4722 dissect_p1_MessageDeliveryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4723 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4724 MessageDeliveryResult_set, hf_index, ett_p1_MessageDeliveryResult);
4726 return offset;
4731 static int
4732 dissect_p1_SubjectSubmissionIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4733 offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4735 return offset;
4740 static int
4741 dissect_p1_ActualRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4742 offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4744 return offset;
4748 static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
4749 { &hf_p1_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ActualRecipientName },
4750 { &hf_p1_delivery_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
4751 { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
4752 { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
4753 { &hf_p1_supplementary_information, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
4754 { &hf_p1_extensions , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4755 { NULL, 0, 0, 0, NULL }
4758 static int
4759 dissect_p1_PerRecipientReportDeliveryFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4760 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4761 PerRecipientReportDeliveryFields_set, hf_index, ett_p1_PerRecipientReportDeliveryFields);
4763 return offset;
4767 static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
4768 { &hf_p1_per_recipient_report_delivery_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportDeliveryFields },
4771 static int
4772 dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4773 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
4774 1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields);
4776 return offset;
4780 static const ber_sequence_t ReportDeliveryArgument_set[] = {
4781 { &hf_p1_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectSubmissionIdentifier },
4782 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
4783 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
4784 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
4785 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4786 { &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 },
4787 { &hf_p1_returned_content , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
4788 { NULL, 0, 0, 0, NULL }
4791 static int
4792 dissect_p1_ReportDeliveryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4793 p1_initialize_content_globals(actx, tree, true);
4794 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4795 ReportDeliveryArgument_set, hf_index, ett_p1_ReportDeliveryArgument);
4797 p1_initialize_content_globals(actx, NULL, false);
4800 return offset;
4804 static const ber_sequence_t SET_SIZE_1_MAX_OF_ExtensionField_set_of[1] = {
4805 { &hf_p1_max_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
4808 static int
4809 dissect_p1_SET_SIZE_1_MAX_OF_ExtensionField(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4810 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
4811 1, NO_BOUND, SET_SIZE_1_MAX_OF_ExtensionField_set_of, hf_index, ett_p1_SET_SIZE_1_MAX_OF_ExtensionField);
4813 return offset;
4817 static const value_string p1_ReportDeliveryResult_vals[] = {
4818 { 0, "empty-result" },
4819 { 1, "extensions" },
4820 { 0, NULL }
4823 static const ber_choice_t ReportDeliveryResult_choice[] = {
4824 { 0, &hf_p1_empty_result , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
4825 { 1, &hf_p1_max_extensions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_SET_SIZE_1_MAX_OF_ExtensionField },
4826 { 0, NULL, 0, 0, 0, NULL }
4829 static int
4830 dissect_p1_ReportDeliveryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4831 offset = dissect_ber_choice(actx, tree, tvb, offset,
4832 ReportDeliveryResult_choice, hf_index, ett_p1_ReportDeliveryResult,
4833 NULL);
4835 return offset;
4839 static const ber_sequence_t DeliveryControlArgument_set[] = {
4840 { &hf_p1_restrict , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BOOLEAN },
4841 { &hf_p1_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4842 { &hf_p1_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
4843 { &hf_p1_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
4844 { &hf_p1_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
4845 { &hf_p1_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PermissibleEncodedInformationTypes },
4846 { &hf_p1_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
4847 { &hf_p1_extensions , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4848 { NULL, 0, 0, 0, NULL }
4851 static int
4852 dissect_p1_DeliveryControlArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4853 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4854 DeliveryControlArgument_set, hf_index, ett_p1_DeliveryControlArgument);
4856 return offset;
4860 static const ber_sequence_t DeliveryControlResult_set[] = {
4861 { &hf_p1_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
4862 { &hf_p1_waiting_messages , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_WaitingMessages },
4863 { &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 },
4864 { &hf_p1_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_EncodedInformationTypes },
4865 { &hf_p1_extensions , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
4866 { NULL, 0, 0, 0, NULL }
4869 static int
4870 dissect_p1_DeliveryControlResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4871 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4872 DeliveryControlResult_set, hf_index, ett_p1_DeliveryControlResult);
4874 return offset;
4879 static int
4880 dissect_p1_PAR_delivery_control_violated(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4881 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4883 return offset;
4888 static int
4889 dissect_p1_PAR_control_violates_registration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4890 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4892 return offset;
4896 static const value_string p1_RefusedArgument_vals[] = {
4897 { 0, "user-name" },
4898 { 1, "user-address" },
4899 { 2, "deliverable-content-types" },
4900 { 3, "deliverable-maximum-content-length" },
4901 { 4, "deliverable-encoded-information-types-constraints" },
4902 { 5, "deliverable-security-labels" },
4903 { 6, "recipient-assigned-redirections" },
4904 { 7, "restricted-delivery" },
4905 { 8, "retrieve-registrations" },
4906 { 10, "restrict" },
4907 { 11, "permissible-operations" },
4908 { 12, "permissible-lowest-priority" },
4909 { 13, "permissible-encoded-information-types" },
4910 { 14, "permissible-content-types" },
4911 { 15, "permissible-maximum-content-length" },
4912 { 16, "permissible-security-context" },
4913 { 0, NULL }
4917 static int
4918 dissect_p1_RefusedArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4919 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4920 0U, ub_integer_options, hf_index, NULL);
4922 return offset;
4927 static int
4928 dissect_p1_T_refused_extension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4929 /*XXX not implemented yet */
4932 return offset;
4936 static const value_string p1_T_refused_argument_vals[] = {
4937 { 0, "built-in-argument" },
4938 { 1, "refused-extension" },
4939 { 0, NULL }
4942 static const ber_choice_t T_refused_argument_choice[] = {
4943 { 0, &hf_p1_built_in_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_RefusedArgument },
4944 { 1, &hf_p1_refused_extension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_p1_T_refused_extension },
4945 { 0, NULL, 0, 0, 0, NULL }
4948 static int
4949 dissect_p1_T_refused_argument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4950 offset = dissect_ber_choice(actx, tree, tvb, offset,
4951 T_refused_argument_choice, hf_index, ett_p1_T_refused_argument,
4952 NULL);
4954 return offset;
4958 static const value_string p1_RefusalReason_vals[] = {
4959 { 0, "facility-unavailable" },
4960 { 1, "facility-not-subscribed" },
4961 { 2, "parameter-unacceptable" },
4962 { 0, NULL }
4966 static int
4967 dissect_p1_RefusalReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4968 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
4969 0U, ub_integer_options, hf_index, NULL);
4971 return offset;
4975 static const ber_sequence_t RefusedOperation_set[] = {
4976 { &hf_p1_refused_argument , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_refused_argument },
4977 { &hf_p1_refusal_reason , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RefusalReason },
4978 { NULL, 0, 0, 0, NULL }
4981 static int
4982 dissect_p1_RefusedOperation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4983 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4984 RefusedOperation_set, hf_index, ett_p1_RefusedOperation);
4986 return offset;
4991 static int
4992 dissect_p1_UserName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4993 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
4995 return offset;
5000 static int
5001 dissect_p1_T_x121_address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5002 tvbuff_t *nstring = NULL;
5004 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5005 actx, tree, tvb, offset,
5006 1, ub_x121_address_length, hf_index, &nstring);
5009 do_address(NULL, nstring, actx);
5012 return offset;
5017 static int
5018 dissect_p1_PrintableString_SIZE_1_ub_tsap_id_length(bool 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_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
5020 actx, tree, tvb, offset,
5021 1, ub_tsap_id_length, hf_index, NULL);
5023 return offset;
5027 static const ber_sequence_t T_x121_sequence[] = {
5028 { &hf_p1_x121_address , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_address },
5029 { &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 },
5030 { NULL, 0, 0, 0, NULL }
5033 static int
5034 dissect_p1_T_x121(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5035 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5036 T_x121_sequence, hf_index, ett_p1_T_x121);
5038 return offset;
5043 static int
5044 dissect_p1_PSAPAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5045 offset = dissect_x509sat_PresentationAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5047 return offset;
5051 static const value_string p1_UserAddress_vals[] = {
5052 { 0, "x121" },
5053 { 1, "presentation" },
5054 { 0, NULL }
5057 static const ber_choice_t UserAddress_choice[] = {
5058 { 0, &hf_p1_x121 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_x121 },
5059 { 1, &hf_p1_presentation , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PSAPAddress },
5060 { 0, NULL, 0, 0, 0, NULL }
5063 static int
5064 dissect_p1_UserAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5065 offset = dissect_ber_choice(actx, tree, tvb, offset,
5066 UserAddress_choice, hf_index, ett_p1_UserAddress,
5067 NULL);
5069 return offset;
5073 static const ber_sequence_t SET_OF_Priority_set_of[1] = {
5074 { &hf_p1_class_priority_item, BER_CLASS_APP, 7, BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
5077 static int
5078 dissect_p1_SET_OF_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5079 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5080 SET_OF_Priority_set_of, hf_index, ett_p1_SET_OF_Priority);
5082 return offset;
5086 static const value_string p1_T_objects_vals[] = {
5087 { 0, "messages" },
5088 { 1, "reports" },
5089 { 2, "both" },
5090 { 0, NULL }
5094 static int
5095 dissect_p1_T_objects(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5096 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5097 NULL);
5099 return offset;
5103 static int * const T_source_type_bits[] = {
5104 &hf_p1_T_source_type_originated_by,
5105 &hf_p1_T_source_type_redirected_by,
5106 &hf_p1_T_source_type_dl_expanded_by,
5107 NULL
5110 static int
5111 dissect_p1_T_source_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5112 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5113 T_source_type_bits, 3, hf_index, ett_p1_T_source_type,
5114 NULL);
5116 return offset;
5120 static const value_string p1_ExactOrPattern_vals[] = {
5121 { 0, "exact-match" },
5122 { 1, "pattern-match" },
5123 { 0, NULL }
5126 static const ber_choice_t ExactOrPattern_choice[] = {
5127 { 0, &hf_p1_exact_match , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
5128 { 1, &hf_p1_pattern_match , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
5129 { 0, NULL, 0, 0, 0, NULL }
5132 static int
5133 dissect_p1_ExactOrPattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5134 offset = dissect_ber_choice(actx, tree, tvb, offset,
5135 ExactOrPattern_choice, hf_index, ett_p1_ExactOrPattern,
5136 NULL);
5138 return offset;
5142 static const ber_sequence_t Restriction_set[] = {
5143 { &hf_p1_permitted , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BOOLEAN },
5144 { &hf_p1_source_type , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_source_type },
5145 { &hf_p1_source_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExactOrPattern },
5146 { NULL, 0, 0, 0, NULL }
5149 static int
5150 dissect_p1_Restriction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5151 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5152 Restriction_set, hf_index, ett_p1_Restriction);
5154 return offset;
5158 static const ber_sequence_t SEQUENCE_OF_Restriction_sequence_of[1] = {
5159 { &hf_p1_applies_only_to_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_Restriction },
5162 static int
5163 dissect_p1_SEQUENCE_OF_Restriction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5164 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5165 SEQUENCE_OF_Restriction_sequence_of, hf_index, ett_p1_SEQUENCE_OF_Restriction);
5167 return offset;
5171 static const ber_sequence_t MessageClass_set[] = {
5172 { &hf_p1_content_types , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
5173 { &hf_p1_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
5174 { &hf_p1_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncodedInformationTypesConstraints },
5175 { &hf_p1_security_labels , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
5176 { &hf_p1_class_priority , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_Priority },
5177 { &hf_p1_objects , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_objects },
5178 { &hf_p1_applies_only_to , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_OF_Restriction },
5179 { &hf_p1_extensions , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5180 { NULL, 0, 0, 0, NULL }
5183 static int
5184 dissect_p1_MessageClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5185 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5186 MessageClass_set, hf_index, ett_p1_MessageClass);
5188 return offset;
5193 static int
5194 dissect_p1_DeliverableClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5195 offset = dissect_p1_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5197 return offset;
5201 static const ber_sequence_t SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass_set_of[1] = {
5202 { &hf_p1_deliverable_class_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_DeliverableClass },
5205 static int
5206 dissect_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5207 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5208 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);
5210 return offset;
5215 static int
5216 dissect_p1_DefaultDeliveryControls(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5217 offset = dissect_p1_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
5219 return offset;
5224 static int
5225 dissect_p1_RedirectionClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5226 offset = dissect_p1_MessageClass(implicit_tag, tvb, offset, actx, tree, hf_index);
5228 return offset;
5232 static const ber_sequence_t SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass_set_of[1] = {
5233 { &hf_p1_redirection_classes_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_RedirectionClass },
5236 static int
5237 dissect_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5238 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
5239 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);
5241 return offset;
5246 static int
5247 dissect_p1_RecipientAssignedAlternateRecipient(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5248 offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5250 return offset;
5254 static const ber_sequence_t RecipientRedirection_set[] = {
5255 { &hf_p1_redirection_classes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass },
5256 { &hf_p1_recipient_assigned_alternate_recipient, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientAssignedAlternateRecipient },
5257 { NULL, 0, 0, 0, NULL }
5260 static int
5261 dissect_p1_RecipientRedirection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5262 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5263 RecipientRedirection_set, hf_index, ett_p1_RecipientRedirection);
5265 return offset;
5269 static const ber_sequence_t Redirections_sequence_of[1] = {
5270 { &hf_p1_Redirections_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientRedirection },
5273 static int
5274 dissect_p1_Redirections(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5275 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5276 1, ub_redirections, Redirections_sequence_of, hf_index, ett_p1_Redirections);
5278 return offset;
5282 static const ber_sequence_t RestrictedDelivery_sequence_of[1] = {
5283 { &hf_p1_RestrictedDelivery_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_Restriction },
5286 static int
5287 dissect_p1_RestrictedDelivery(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5288 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5289 1, ub_restrictions, RestrictedDelivery_sequence_of, hf_index, ett_p1_RestrictedDelivery);
5291 return offset;
5295 static int * const T_standard_parameters_bits[] = {
5296 &hf_p1_T_standard_parameters_user_name,
5297 &hf_p1_T_standard_parameters_user_address,
5298 &hf_p1_T_standard_parameters_deliverable_class,
5299 &hf_p1_T_standard_parameters_default_delivery_controls,
5300 &hf_p1_T_standard_parameters_redirections,
5301 &hf_p1_T_standard_parameters_restricted_delivery,
5302 NULL
5305 static int
5306 dissect_p1_T_standard_parameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5307 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5308 T_standard_parameters_bits, 6, hf_index, ett_p1_T_standard_parameters,
5309 NULL);
5311 return offset;
5316 static int
5317 dissect_p1_T_type_extensions_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5318 /*XXX not implemented yet */
5321 return offset;
5325 static const ber_sequence_t T_type_extensions_set_of[1] = {
5326 { &hf_p1_type_extensions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_type_extensions_item },
5329 static int
5330 dissect_p1_T_type_extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5331 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
5332 T_type_extensions_set_of, hf_index, ett_p1_T_type_extensions);
5334 return offset;
5338 static const ber_sequence_t RegistrationTypes_sequence[] = {
5339 { &hf_p1_standard_parameters, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_standard_parameters },
5340 { &hf_p1_type_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_type_extensions },
5341 { NULL, 0, 0, 0, NULL }
5344 static int
5345 dissect_p1_RegistrationTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5346 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5347 RegistrationTypes_sequence, hf_index, ett_p1_RegistrationTypes);
5349 return offset;
5353 static const ber_sequence_t RegisterArgument_set[] = {
5354 { &hf_p1_user_name , BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_UserName },
5355 { &hf_p1_user_address , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_UserAddress },
5356 { &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 },
5357 { &hf_p1_default_delivery_controls, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p1_DefaultDeliveryControls },
5358 { &hf_p1_redirections , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Redirections },
5359 { &hf_p1_restricted_delivery, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RestrictedDelivery },
5360 { &hf_p1_retrieve_registrations, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RegistrationTypes },
5361 { &hf_p1_extensions , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5362 { NULL, 0, 0, 0, NULL }
5365 static int
5366 dissect_p1_RegisterArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5367 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5368 RegisterArgument_set, hf_index, ett_p1_RegisterArgument);
5370 return offset;
5374 static const ber_sequence_t T_non_empty_result_set[] = {
5375 { &hf_p1_registered_information, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RegisterArgument },
5376 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5377 { NULL, 0, 0, 0, NULL }
5380 static int
5381 dissect_p1_T_non_empty_result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5382 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5383 T_non_empty_result_set, hf_index, ett_p1_T_non_empty_result);
5385 return offset;
5389 static const value_string p1_RegisterResult_vals[] = {
5390 { 0, "empty-result" },
5391 { 1, "non-empty-result" },
5392 { 0, NULL }
5395 static const ber_choice_t RegisterResult_choice[] = {
5396 { 0, &hf_p1_empty_result , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
5397 { 1, &hf_p1_non_empty_result , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_T_non_empty_result },
5398 { 0, NULL, 0, 0, 0, NULL }
5401 static int
5402 dissect_p1_RegisterResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5403 offset = dissect_ber_choice(actx, tree, tvb, offset,
5404 RegisterResult_choice, hf_index, ett_p1_RegisterResult,
5405 NULL);
5407 return offset;
5412 static int
5413 dissect_p1_RES_change_credentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5414 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5416 return offset;
5420 static const ber_sequence_t ChangeCredentialsArgument_set[] = {
5421 { &hf_p1_old_credentials , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_Credentials },
5422 { &hf_p1_new_credentials , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_Credentials },
5423 { NULL, 0, 0, 0, NULL }
5426 static int
5427 dissect_p1_ChangeCredentialsArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5428 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5429 ChangeCredentialsArgument_set, hf_index, ett_p1_ChangeCredentialsArgument);
5431 return offset;
5436 static int
5437 dissect_p1_PAR_register_rejected(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5438 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5440 return offset;
5445 static int
5446 dissect_p1_PAR_new_credentials_unacceptable(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5447 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5449 return offset;
5454 static int
5455 dissect_p1_PAR_old_credentials_incorrectly_specified(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5456 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5458 return offset;
5464 static const ber_sequence_t MessageDeliveryEnvelope_sequence[] = {
5465 { &hf_p1_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryIdentifier },
5466 { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
5467 { &hf_p1_other_fields , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_OtherMessageDeliveryFields },
5468 { NULL, 0, 0, 0, NULL }
5471 static int
5472 dissect_p1_MessageDeliveryEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5473 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5474 MessageDeliveryEnvelope_sequence, hf_index, ett_p1_MessageDeliveryEnvelope);
5476 return offset;
5480 static const ber_sequence_t ReportDeliveryEnvelope_set[] = {
5481 { &hf_p1_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectSubmissionIdentifier },
5482 { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
5483 { &hf_p1_content_type , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
5484 { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
5485 { &hf_p1_extensions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
5486 { &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 },
5487 { NULL, 0, 0, 0, NULL }
5490 static int
5491 dissect_p1_ReportDeliveryEnvelope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5492 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5493 ReportDeliveryEnvelope_set, hf_index, ett_p1_ReportDeliveryEnvelope);
5495 return offset;
5500 static const value_string p1_RecipientReassignmentProhibited_vals[] = {
5501 { 0, "recipient-reassignment-allowed" },
5502 { 1, "recipient-reassignment-prohibited" },
5503 { 0, NULL }
5507 static int
5508 dissect_p1_RecipientReassignmentProhibited(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5509 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5510 NULL);
5512 return offset;
5517 static int
5518 dissect_p1_OriginatorRequestedAlternateRecipient(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5519 offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5521 return offset;
5525 static const value_string p1_DLExpansionProhibited_vals[] = {
5526 { 0, "dl-expansion-allowed" },
5527 { 1, "dl-expansion-prohibited" },
5528 { 0, NULL }
5532 static int
5533 dissect_p1_DLExpansionProhibited(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5534 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5535 NULL);
5537 return offset;
5541 static const value_string p1_ConversionWithLossProhibited_vals[] = {
5542 { 0, "conversion-with-loss-allowed" },
5543 { 1, "conversion-with-loss-prohibited" },
5544 { 0, NULL }
5548 static int
5549 dissect_p1_ConversionWithLossProhibited(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5550 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5551 NULL);
5553 return offset;
5558 static int
5559 dissect_p1_LatestDeliveryTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5560 offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
5562 return offset;
5566 static const value_string p1_RequestedDeliveryMethod_item_vals[] = {
5567 { 0, "any-delivery-method" },
5568 { 1, "mhs-delivery" },
5569 { 2, "physical-delivery" },
5570 { 3, "telex-delivery" },
5571 { 4, "teletex-delivery" },
5572 { 5, "g3-facsimile-delivery" },
5573 { 6, "g4-facsimile-delivery" },
5574 { 7, "ia5-terminal-delivery" },
5575 { 8, "videotex-delivery" },
5576 { 9, "telephone-delivery" },
5577 { 0, NULL }
5581 static int
5582 dissect_p1_RequestedDeliveryMethod_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5583 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5584 0U, ub_integer_options, hf_index, NULL);
5586 return offset;
5590 static const ber_sequence_t RequestedDeliveryMethod_sequence_of[1] = {
5591 { &hf_p1_RequestedDeliveryMethod_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p1_RequestedDeliveryMethod_item },
5595 dissect_p1_RequestedDeliveryMethod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5596 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5597 RequestedDeliveryMethod_sequence_of, hf_index, ett_p1_RequestedDeliveryMethod);
5599 return offset;
5603 static const value_string p1_PhysicalForwardingProhibited_vals[] = {
5604 { 0, "physical-forwarding-allowed" },
5605 { 1, "physical-forwarding-prohibited" },
5606 { 0, NULL }
5610 static int
5611 dissect_p1_PhysicalForwardingProhibited(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5612 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5613 NULL);
5615 return offset;
5619 static const value_string p1_PhysicalForwardingAddressRequest_vals[] = {
5620 { 0, "physical-forwarding-address-not-requested" },
5621 { 1, "physical-forwarding-address-requested" },
5622 { 0, NULL }
5626 static int
5627 dissect_p1_PhysicalForwardingAddressRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5628 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5629 NULL);
5631 return offset;
5635 static int * const PhysicalDeliveryModes_bits[] = {
5636 &hf_p1_PhysicalDeliveryModes_ordinary_mail,
5637 &hf_p1_PhysicalDeliveryModes_special_delivery,
5638 &hf_p1_PhysicalDeliveryModes_express_mail,
5639 &hf_p1_PhysicalDeliveryModes_counter_collection,
5640 &hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
5641 &hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice,
5642 &hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
5643 &hf_p1_PhysicalDeliveryModes_bureau_fax_delivery,
5644 NULL
5647 static int
5648 dissect_p1_PhysicalDeliveryModes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5649 offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
5650 0, ub_bit_options, PhysicalDeliveryModes_bits, 8, hf_index, ett_p1_PhysicalDeliveryModes,
5651 NULL);
5653 return offset;
5657 static const value_string p1_RegisteredMailType_vals[] = {
5658 { 0, "non-registered-mail" },
5659 { 1, "registered-mail" },
5660 { 2, "registered-mail-to-addressee-in-person" },
5661 { 0, NULL }
5665 static int
5666 dissect_p1_RegisteredMailType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5667 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5668 0U, ub_integer_options, hf_index, NULL);
5670 return offset;
5675 static int
5676 dissect_p1_RecipientNumberForAdvice(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5677 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5678 actx, tree, tvb, offset,
5679 1, ub_recipient_number_for_advice_length, hf_index, NULL);
5681 return offset;
5686 static int
5687 dissect_p1_PhysicalRenditionAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5688 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5690 return offset;
5694 static const ber_sequence_t ORAddress_sequence[] = {
5695 { &hf_p1_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInStandardAttributes },
5696 { &hf_p1_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttributes },
5697 { &hf_p1_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttributes },
5698 { NULL, 0, 0, 0, NULL }
5702 dissect_p1_ORAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5703 p1_address_ctx_t* ctx;
5705 if (actx->subtree.tree_ctx == NULL) {
5706 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
5709 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
5710 ctx->oraddress = wmem_strbuf_new(actx->pinfo->pool, "");
5712 actx->subtree.tree = NULL;
5713 set_do_address(actx, true);
5715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5716 ORAddress_sequence, hf_index, ett_p1_ORAddress);
5720 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
5721 proto_item_append_text(actx->subtree.tree, " (%s/)", wmem_strbuf_get_str(ctx->oraddress));
5723 set_do_address(actx, false);
5726 return offset;
5731 static int
5732 dissect_p1_OriginatorReturnAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5733 offset = dissect_p1_ORAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
5735 return offset;
5739 static const value_string p1_PhysicalDeliveryReportRequest_vals[] = {
5740 { 0, "return-of-undeliverable-mail-by-PDS" },
5741 { 1, "return-of-notification-by-PDS" },
5742 { 2, "return-of-notification-by-MHS" },
5743 { 3, "return-of-notification-by-MHS-and-PDS" },
5744 { 0, NULL }
5748 static int
5749 dissect_p1_PhysicalDeliveryReportRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5750 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
5751 0U, ub_integer_options, hf_index, NULL);
5753 return offset;
5758 static int
5759 dissect_p1_OriginatorCertificate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5760 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
5762 return offset;
5768 dissect_p1_MessageToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5769 offset = dissect_p1_Token(implicit_tag, tvb, offset, actx, tree, hf_index);
5771 return offset;
5776 static int
5777 dissect_p1_ContentConfidentialityAlgorithmIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5778 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
5780 return offset;
5786 dissect_p1_ContentIntegrityCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5787 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5789 return offset;
5795 dissect_p1_MessageOriginAuthenticationCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5796 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5798 return offset;
5804 dissect_p1_MessageSecurityLabel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5805 offset = dissect_p1_SecurityLabel(implicit_tag, tvb, offset, actx, tree, hf_index);
5807 return offset;
5811 static const value_string p1_ProofOfSubmissionRequest_vals[] = {
5812 { 0, "proof-of-submission-not-requested" },
5813 { 1, "proof-of-submission-requested" },
5814 { 0, NULL }
5818 static int
5819 dissect_p1_ProofOfSubmissionRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5820 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5821 NULL);
5823 return offset;
5827 static const value_string p1_ProofOfDeliveryRequest_vals[] = {
5828 { 0, "proof-of-delivery-not-requested" },
5829 { 1, "proof-of-delivery-requested" },
5830 { 0, NULL }
5834 static int
5835 dissect_p1_ProofOfDeliveryRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5836 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5837 NULL);
5839 return offset;
5844 static int
5845 dissect_p1_IA5String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5846 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
5847 actx, tree, tvb, offset, hf_index,
5848 NULL);
5850 return offset;
5854 static const value_string p1_ContentCorrelator_vals[] = {
5855 { 0, "ia5text" },
5856 { 1, "octets" },
5857 { 0, NULL }
5860 static const ber_choice_t ContentCorrelator_choice[] = {
5861 { 0, &hf_p1_ia5text , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_IA5String },
5862 { 1, &hf_p1_octets , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_OCTET_STRING },
5863 { 0, NULL, 0, 0, 0, NULL }
5866 static int
5867 dissect_p1_ContentCorrelator(bool 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_choice(actx, tree, tvb, offset,
5869 ContentCorrelator_choice, hf_index, ett_p1_ContentCorrelator,
5870 NULL);
5872 return offset;
5877 static int
5878 dissect_p1_ProbeOriginAuthenticationCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5879 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
5881 return offset;
5885 static const ber_sequence_t IntendedRecipientName_sequence[] = {
5886 { &hf_p1_intended_recipient, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
5887 { &hf_p1_redirection_time , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
5888 { NULL, 0, 0, 0, NULL }
5891 static int
5892 dissect_p1_IntendedRecipientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5893 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5894 IntendedRecipientName_sequence, hf_index, ett_p1_IntendedRecipientName);
5896 return offset;
5900 static const value_string p1_RedirectionReason_vals[] = {
5901 { 0, "recipient-assigned-alternate-recipient" },
5902 { 1, "originator-requested-alternate-recipient" },
5903 { 2, "recipient-MD-assigned-alternate-recipient" },
5904 { 3, "directory-look-up" },
5905 { 4, "alias" },
5906 { 0, NULL }
5910 static int
5911 dissect_p1_RedirectionReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5912 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5913 NULL);
5915 return offset;
5919 static const ber_sequence_t Redirection_sequence[] = {
5920 { &hf_p1_intended_recipient_name, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_IntendedRecipientName },
5921 { &hf_p1_redirection_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_p1_RedirectionReason },
5922 { NULL, 0, 0, 0, NULL }
5925 static int
5926 dissect_p1_Redirection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5927 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5928 Redirection_sequence, hf_index, ett_p1_Redirection);
5930 return offset;
5934 static const ber_sequence_t RedirectionHistory_sequence_of[1] = {
5935 { &hf_p1_RedirectionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_Redirection },
5938 static int
5939 dissect_p1_RedirectionHistory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5940 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5941 1, ub_redirections, RedirectionHistory_sequence_of, hf_index, ett_p1_RedirectionHistory);
5943 return offset;
5947 static const ber_sequence_t DLExpansion_sequence[] = {
5948 { &hf_p1_dl , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
5949 { &hf_p1_dl_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
5950 { NULL, 0, 0, 0, NULL }
5953 static int
5954 dissect_p1_DLExpansion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5955 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5956 DLExpansion_sequence, hf_index, ett_p1_DLExpansion);
5958 return offset;
5962 static const ber_sequence_t DLExpansionHistory_sequence_of[1] = {
5963 { &hf_p1_DLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_DLExpansion },
5966 static int
5967 dissect_p1_DLExpansionHistory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5968 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
5969 1, ub_dl_expansions, DLExpansionHistory_sequence_of, hf_index, ett_p1_DLExpansionHistory);
5971 return offset;
5976 static int
5977 dissect_p1_PhysicalForwardingAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5978 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
5980 return offset;
5984 static const ber_sequence_t OriginatorAndDLExpansion_sequence[] = {
5985 { &hf_p1_originator_or_dl_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
5986 { &hf_p1_origination_or_expansion_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
5987 { NULL, 0, 0, 0, NULL }
5990 static int
5991 dissect_p1_OriginatorAndDLExpansion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5992 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5993 OriginatorAndDLExpansion_sequence, hf_index, ett_p1_OriginatorAndDLExpansion);
5995 return offset;
5999 static const ber_sequence_t OriginatorAndDLExpansionHistory_sequence_of[1] = {
6000 { &hf_p1_OriginatorAndDLExpansionHistory_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorAndDLExpansion },
6003 static int
6004 dissect_p1_OriginatorAndDLExpansionHistory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6005 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6006 2, ub_orig_and_dl_expansions, OriginatorAndDLExpansionHistory_sequence_of, hf_index, ett_p1_OriginatorAndDLExpansionHistory);
6008 return offset;
6013 static int
6014 dissect_p1_ReportingDLName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6015 offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
6017 return offset;
6022 static int
6023 dissect_p1_ReportingMTACertificate(bool 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_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6026 return offset;
6031 static int
6032 dissect_p1_ReportOriginAuthenticationCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6033 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6035 return offset;
6043 dissect_p1_OriginatingMTACertificate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6044 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
6046 return offset;
6052 dissect_p1_ProofOfSubmission(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6053 offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
6055 return offset;
6059 static const ber_sequence_t ReportingMTAName_sequence[] = {
6060 { &hf_p1_domain , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
6061 { &hf_p1_mta_name , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
6062 { &hf_p1_mta_directory_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6063 { NULL, 0, 0, 0, NULL }
6066 static int
6067 dissect_p1_ReportingMTAName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6068 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6069 ReportingMTAName_sequence, hf_index, ett_p1_ReportingMTAName);
6071 return offset;
6075 static const value_string p1_ExtendedCertificate_vals[] = {
6076 { 0, "directory-entry" },
6077 { 1, "certificate" },
6078 { 0, NULL }
6081 static const ber_choice_t ExtendedCertificate_choice[] = {
6082 { 0, &hf_p1_directory_entry , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
6083 { 1, &hf_p1_certificate , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
6084 { 0, NULL, 0, 0, 0, NULL }
6087 static int
6088 dissect_p1_ExtendedCertificate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6089 offset = dissect_ber_choice(actx, tree, tvb, offset,
6090 ExtendedCertificate_choice, hf_index, ett_p1_ExtendedCertificate,
6091 NULL);
6093 return offset;
6097 static const ber_sequence_t ExtendedCertificates_set_of[1] = {
6098 { &hf_p1_ExtendedCertificates_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExtendedCertificate },
6102 dissect_p1_ExtendedCertificates(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6103 offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
6104 1, ub_certificates, ExtendedCertificates_set_of, hf_index, ett_p1_ExtendedCertificates);
6106 return offset;
6110 static const ber_sequence_t DLExemptedRecipients_set_of[1] = {
6111 { &hf_p1_DLExemptedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOrDirectoryName },
6114 static int
6115 dissect_p1_DLExemptedRecipients(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6116 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
6117 DLExemptedRecipients_set_of, hf_index, ett_p1_DLExemptedRecipients);
6119 return offset;
6123 static const ber_sequence_t CertificateSelectors_set[] = {
6124 { &hf_p1_encryption_recipient, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6125 { &hf_p1_encryption_originator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6126 { &hf_p1_selectors_content_integrity_check, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6127 { &hf_p1_token_signature , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6128 { &hf_p1_message_origin_authentication, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
6129 { NULL, 0, 0, 0, NULL }
6132 static int
6133 dissect_p1_CertificateSelectors(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6134 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6135 CertificateSelectors_set, hf_index, ett_p1_CertificateSelectors);
6137 return offset;
6142 static int
6143 dissect_p1_CommonName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6144 tvbuff_t *string = NULL;
6146 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6147 actx, tree, tvb, offset,
6148 1, ub_common_name_length, hf_index, &string);
6151 do_address("/CN=", string, actx);
6154 return offset;
6159 static int
6160 dissect_p1_TeletexCommonName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6161 tvbuff_t *string = NULL;
6163 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6164 actx, tree, tvb, offset,
6165 1, ub_common_name_length, hf_index, &string);
6168 do_address("/CN=", string, actx);
6171 return offset;
6176 static int
6177 dissect_p1_BMPString_SIZE_1_ub_string_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6178 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
6179 actx, tree, tvb, offset,
6180 1, ub_string_length, hf_index, NULL);
6182 return offset;
6187 static int
6188 dissect_p1_UniversalString_SIZE_1_ub_string_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6189 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
6190 actx, tree, tvb, offset,
6191 1, ub_string_length, hf_index, NULL);
6193 return offset;
6197 static const value_string p1_T_character_encoding_vals[] = {
6198 { 0, "two-octets" },
6199 { 1, "four-octets" },
6200 { 0, NULL }
6203 static const ber_choice_t T_character_encoding_choice[] = {
6204 { 0, &hf_p1_two_octets , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_p1_BMPString_SIZE_1_ub_string_length },
6205 { 1, &hf_p1_four_octets , BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalString_SIZE_1_ub_string_length },
6206 { 0, NULL, 0, 0, 0, NULL }
6209 static int
6210 dissect_p1_T_character_encoding(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6211 offset = dissect_ber_choice(actx, tree, tvb, offset,
6212 T_character_encoding_choice, hf_index, ett_p1_T_character_encoding,
6213 NULL);
6215 return offset;
6220 static int
6221 dissect_p1_PrintableString_SIZE_CONSTR001(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6222 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6223 actx, tree, tvb, offset,
6224 2, 5, hf_index, NULL);
6226 return offset;
6230 static const ber_sequence_t UniversalOrBMPString_set[] = {
6231 { &hf_p1_character_encoding, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_character_encoding },
6232 { &hf_p1_iso_639_language_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_CONSTR001 },
6233 { NULL, 0, 0, 0, NULL }
6237 dissect_p1_UniversalOrBMPString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6238 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6239 UniversalOrBMPString_set, hf_index, ett_p1_UniversalOrBMPString);
6241 return offset;
6246 static int
6247 dissect_p1_UniversalCommonName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6248 offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6250 return offset;
6255 static int
6256 dissect_p1_TeletexOrganizationName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6257 tvbuff_t *string = NULL;
6259 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6260 actx, tree, tvb, offset,
6261 1, ub_organization_name_length, hf_index, &string);
6264 do_address("/O=", string, actx);
6267 return offset;
6272 static int
6273 dissect_p1_UniversalOrganizationName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6274 offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6276 return offset;
6281 static int
6282 dissect_p1_T_teletex_surname(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6283 tvbuff_t *tstring = NULL;
6285 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6286 actx, tree, tvb, offset,
6287 1, ub_surname_length, hf_index, &tstring);
6290 do_address("/S=", tstring, actx);
6293 return offset;
6298 static int
6299 dissect_p1_T_teletex_given_name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6300 tvbuff_t *tstring = NULL;
6302 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6303 actx, tree, tvb, offset,
6304 1, ub_given_name_length, hf_index, &tstring);
6307 do_address("/G=", tstring, actx);
6310 return offset;
6315 static int
6316 dissect_p1_T_teletex_initials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6317 tvbuff_t *tstring = NULL;
6319 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6320 actx, tree, tvb, offset,
6321 1, ub_initials_length, hf_index, &tstring);
6324 do_address("/I=", tstring, actx);
6327 return offset;
6332 static int
6333 dissect_p1_T_teletex_generation_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6334 tvbuff_t *tstring = NULL;
6336 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6337 actx, tree, tvb, offset,
6338 1, ub_generation_qualifier_length, hf_index, &tstring);
6341 do_address("/Q=", tstring, actx);
6344 return offset;
6348 static const ber_sequence_t TeletexPersonalName_set[] = {
6349 { &hf_p1_teletex_surname , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_surname },
6350 { &hf_p1_teletex_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_given_name },
6351 { &hf_p1_teletex_initials , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_initials },
6352 { &hf_p1_teletex_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_teletex_generation_qualifier },
6353 { NULL, 0, 0, 0, NULL }
6356 static int
6357 dissect_p1_TeletexPersonalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6358 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6359 TeletexPersonalName_set, hf_index, ett_p1_TeletexPersonalName);
6361 return offset;
6365 static const ber_sequence_t UniversalPersonalName_set[] = {
6366 { &hf_p1_universal_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6367 { &hf_p1_universal_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6368 { &hf_p1_universal_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6369 { &hf_p1_universal_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UniversalOrBMPString },
6370 { NULL, 0, 0, 0, NULL }
6373 static int
6374 dissect_p1_UniversalPersonalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6375 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6376 UniversalPersonalName_set, hf_index, ett_p1_UniversalPersonalName);
6378 return offset;
6383 static int
6384 dissect_p1_TeletexOrganizationalUnitName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6385 tvbuff_t *string = NULL;
6387 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6388 actx, tree, tvb, offset,
6389 1, ub_organizational_unit_name_length, hf_index, &string);
6392 do_address("/OU=", string, actx);
6395 return offset;
6399 static const ber_sequence_t TeletexOrganizationalUnitNames_sequence_of[1] = {
6400 { &hf_p1_TeletexOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_TeletexOrganizationalUnitName },
6403 static int
6404 dissect_p1_TeletexOrganizationalUnitNames(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6405 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6406 1, ub_organizational_units, TeletexOrganizationalUnitNames_sequence_of, hf_index, ett_p1_TeletexOrganizationalUnitNames);
6408 return offset;
6413 static int
6414 dissect_p1_UniversalOrganizationalUnitName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6415 offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6417 return offset;
6421 static const ber_sequence_t UniversalOrganizationalUnitNames_sequence_of[1] = {
6422 { &hf_p1_UniversalOrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrganizationalUnitName },
6425 static int
6426 dissect_p1_UniversalOrganizationalUnitNames(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6427 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6428 1, ub_organizational_units, UniversalOrganizationalUnitNames_sequence_of, hf_index, ett_p1_UniversalOrganizationalUnitNames);
6430 return offset;
6435 static int
6436 dissect_p1_PDSName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6437 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6438 actx, tree, tvb, offset,
6439 1, ub_pds_name_length, hf_index, NULL);
6441 return offset;
6446 static int
6447 dissect_p1_T_x121_dcc_code_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6448 tvbuff_t *nstring = NULL;
6450 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6451 actx, tree, tvb, offset,
6452 ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
6455 do_address(NULL, nstring, actx);
6458 return offset;
6463 static int
6464 dissect_p1_T_iso_3166_alpha2_code_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6465 tvbuff_t *nstring = NULL;
6467 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6468 actx, tree, tvb, offset,
6469 ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
6472 do_address(NULL, nstring, actx);
6475 return offset;
6479 static const value_string p1_PhysicalDeliveryCountryName_vals[] = {
6480 { 0, "x121-dcc-code" },
6481 { 1, "iso-3166-alpha2-code" },
6482 { 0, NULL }
6485 static const ber_choice_t PhysicalDeliveryCountryName_choice[] = {
6486 { 0, &hf_p1_x121_dcc_code_01 , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_dcc_code_01 },
6487 { 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 },
6488 { 0, NULL, 0, 0, 0, NULL }
6491 static int
6492 dissect_p1_PhysicalDeliveryCountryName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6493 offset = dissect_ber_choice(actx, tree, tvb, offset,
6494 PhysicalDeliveryCountryName_choice, hf_index, ett_p1_PhysicalDeliveryCountryName,
6495 NULL);
6497 return offset;
6502 static int
6503 dissect_p1_T_numeric_code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6504 tvbuff_t *nstring = NULL;
6506 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6507 actx, tree, tvb, offset,
6508 1, ub_postal_code_length, hf_index, &nstring);
6511 do_address(NULL, nstring, actx);
6515 return offset;
6520 static int
6521 dissect_p1_PrintableString_SIZE_1_ub_postal_code_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6522 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6523 actx, tree, tvb, offset,
6524 1, ub_postal_code_length, hf_index, NULL);
6526 return offset;
6530 static const value_string p1_PostalCode_vals[] = {
6531 { 0, "numeric-code" },
6532 { 1, "printable-code" },
6533 { 0, NULL }
6536 static const ber_choice_t PostalCode_choice[] = {
6537 { 0, &hf_p1_numeric_code , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_code },
6538 { 1, &hf_p1_printable_code , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_postal_code_length },
6539 { 0, NULL, 0, 0, 0, NULL }
6542 static int
6543 dissect_p1_PostalCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6544 offset = dissect_ber_choice(actx, tree, tvb, offset,
6545 PostalCode_choice, hf_index, ett_p1_PostalCode,
6546 NULL);
6548 return offset;
6553 static int
6554 dissect_p1_PrintableString_SIZE_1_ub_pds_parameter_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6555 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6556 actx, tree, tvb, offset,
6557 1, ub_pds_parameter_length, hf_index, NULL);
6559 return offset;
6564 static int
6565 dissect_p1_TeletexString_SIZE_1_ub_pds_parameter_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6566 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6567 actx, tree, tvb, offset,
6568 1, ub_pds_parameter_length, hf_index, NULL);
6570 return offset;
6574 static const ber_sequence_t PDSParameter_set[] = {
6575 { &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 },
6576 { &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 },
6577 { NULL, 0, 0, 0, NULL }
6580 static int
6581 dissect_p1_PDSParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6582 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6583 PDSParameter_set, hf_index, ett_p1_PDSParameter);
6585 return offset;
6590 static int
6591 dissect_p1_PhysicalDeliveryOfficeName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6592 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6594 return offset;
6599 static int
6600 dissect_p1_UniversalPDSParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6601 offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6603 return offset;
6608 static int
6609 dissect_p1_UniversalPhysicalDeliveryOfficeName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6610 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6612 return offset;
6617 static int
6618 dissect_p1_PhysicalDeliveryOfficeNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6619 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6621 return offset;
6626 static int
6627 dissect_p1_UniversalPhysicalDeliveryOfficeNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6628 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6630 return offset;
6635 static int
6636 dissect_p1_ExtensionORAddressComponents(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6637 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6639 return offset;
6644 static int
6645 dissect_p1_UniversalExtensionORAddressComponents(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6646 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6648 return offset;
6653 static int
6654 dissect_p1_PhysicalDeliveryPersonalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6655 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6657 return offset;
6662 static int
6663 dissect_p1_UniversalPhysicalDeliveryPersonalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6664 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6666 return offset;
6671 static int
6672 dissect_p1_PhysicalDeliveryOrganizationName(bool 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_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6675 return offset;
6680 static int
6681 dissect_p1_UniversalPhysicalDeliveryOrganizationName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6682 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6684 return offset;
6689 static int
6690 dissect_p1_ExtensionPhysicalDeliveryAddressComponents(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6691 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6693 return offset;
6698 static int
6699 dissect_p1_UniversalExtensionPhysicalDeliveryAddressComponents(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6700 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6702 return offset;
6706 static const ber_sequence_t T_printable_address_sequence_of[1] = {
6707 { &hf_p1_printable_address_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_PrintableString_SIZE_1_ub_pds_parameter_length },
6710 static int
6711 dissect_p1_T_printable_address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6712 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6713 1, ub_pds_physical_address_lines, T_printable_address_sequence_of, hf_index, ett_p1_T_printable_address);
6715 return offset;
6720 static int
6721 dissect_p1_TeletexString_SIZE_1_ub_unformatted_address_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6722 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6723 actx, tree, tvb, offset,
6724 1, ub_unformatted_address_length, hf_index, NULL);
6726 return offset;
6730 static const ber_sequence_t UnformattedPostalAddress_set[] = {
6731 { &hf_p1_printable_address, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_address },
6732 { &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 },
6733 { NULL, 0, 0, 0, NULL }
6736 static int
6737 dissect_p1_UnformattedPostalAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6738 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
6739 UnformattedPostalAddress_set, hf_index, ett_p1_UnformattedPostalAddress);
6741 return offset;
6746 static int
6747 dissect_p1_UniversalUnformattedPostalAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6748 offset = dissect_p1_UniversalOrBMPString(implicit_tag, tvb, offset, actx, tree, hf_index);
6750 return offset;
6755 static int
6756 dissect_p1_StreetAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6757 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6759 return offset;
6764 static int
6765 dissect_p1_UniversalStreetAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6766 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6768 return offset;
6773 static int
6774 dissect_p1_PostOfficeBoxAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6775 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6777 return offset;
6782 static int
6783 dissect_p1_UniversalPostOfficeBoxAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6784 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6786 return offset;
6791 static int
6792 dissect_p1_PosteRestanteAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6793 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6795 return offset;
6800 static int
6801 dissect_p1_UniversalPosteRestanteAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6802 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6804 return offset;
6809 static int
6810 dissect_p1_UniquePostalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6811 offset = dissect_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6813 return offset;
6818 static int
6819 dissect_p1_UniversalUniquePostalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6820 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6822 return offset;
6827 static int
6828 dissect_p1_LocalPostalAttributes(bool 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_p1_PDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6831 return offset;
6836 static int
6837 dissect_p1_UniversalLocalPostalAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6838 offset = dissect_p1_UniversalPDSParameter(implicit_tag, tvb, offset, actx, tree, hf_index);
6840 return offset;
6845 static int
6846 dissect_p1_NumericString_SIZE_1_ub_e163_4_number_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6847 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6848 actx, tree, tvb, offset,
6849 1, ub_e163_4_number_length, hf_index, NULL);
6851 return offset;
6856 static int
6857 dissect_p1_NumericString_SIZE_1_ub_e163_4_sub_address_length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6858 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6859 actx, tree, tvb, offset,
6860 1, ub_e163_4_sub_address_length, hf_index, NULL);
6862 return offset;
6866 static const ber_sequence_t T_e163_4_address_sequence[] = {
6867 { &hf_p1_number , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_NumericString_SIZE_1_ub_e163_4_number_length },
6868 { &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 },
6869 { NULL, 0, 0, 0, NULL }
6872 static int
6873 dissect_p1_T_e163_4_address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6874 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6875 T_e163_4_address_sequence, hf_index, ett_p1_T_e163_4_address);
6877 return offset;
6881 static const value_string p1_ExtendedNetworkAddress_vals[] = {
6882 { 0, "e163-4-address" },
6883 { 1, "psap-address" },
6884 { 0, NULL }
6887 static const ber_choice_t ExtendedNetworkAddress_choice[] = {
6888 { 0, &hf_p1_e163_4_address , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_T_e163_4_address },
6889 { 1, &hf_p1_psap_address , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x509sat_PresentationAddress },
6890 { 0, NULL, 0, 0, 0, NULL }
6893 static int
6894 dissect_p1_ExtendedNetworkAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6895 offset = dissect_ber_choice(actx, tree, tvb, offset,
6896 ExtendedNetworkAddress_choice, hf_index, ett_p1_ExtendedNetworkAddress,
6897 NULL);
6899 return offset;
6903 static const value_string p1_TerminalType_vals[] = {
6904 { 3, "telex" },
6905 { 4, "teletex" },
6906 { 5, "g3-facsimile" },
6907 { 6, "g4-facsimile" },
6908 { 7, "ia5-terminal" },
6909 { 8, "videotex" },
6910 { 0, NULL }
6914 static int
6915 dissect_p1_TerminalType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6916 offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
6917 0U, ub_integer_options, hf_index, NULL);
6919 return offset;
6924 static int
6925 dissect_p1_T_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6926 tvbuff_t *tstring = NULL;
6928 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6929 actx, tree, tvb, offset,
6930 1, ub_domain_defined_attribute_type_length, hf_index, &tstring);
6933 do_address_str("/DD.", tstring, actx);
6936 return offset;
6941 static int
6942 dissect_p1_T_teletex_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6943 tvbuff_t *tstring = NULL;
6945 offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6946 actx, tree, tvb, offset,
6947 1, ub_domain_defined_attribute_value_length, hf_index, &tstring);
6950 do_address_str_tree("=", tstring, actx, tree);
6953 return offset;
6957 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
6958 { &hf_p1_type , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_T_type },
6959 { &hf_p1_teletex_value , BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_p1_T_teletex_value },
6960 { NULL, 0, 0, 0, NULL }
6963 static int
6964 dissect_p1_TeletexDomainDefinedAttribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6965 actx->value_ptr = wmem_strbuf_new(actx->pinfo->pool, "");
6967 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6968 TeletexDomainDefinedAttribute_sequence, hf_index, ett_p1_TeletexDomainDefinedAttribute);
6972 return offset;
6976 static const ber_sequence_t TeletexDomainDefinedAttributes_sequence_of[1] = {
6977 { &hf_p1_TeletexDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_TeletexDomainDefinedAttribute },
6980 static int
6981 dissect_p1_TeletexDomainDefinedAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6982 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
6983 1, ub_domain_defined_attributes, TeletexDomainDefinedAttributes_sequence_of, hf_index, ett_p1_TeletexDomainDefinedAttributes);
6985 return offset;
6989 static const ber_sequence_t UniversalDomainDefinedAttribute_sequence[] = {
6990 { &hf_p1_universal_type , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrBMPString },
6991 { &hf_p1_universal_value , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalOrBMPString },
6992 { NULL, 0, 0, 0, NULL }
6995 static int
6996 dissect_p1_UniversalDomainDefinedAttribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6997 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6998 UniversalDomainDefinedAttribute_sequence, hf_index, ett_p1_UniversalDomainDefinedAttribute);
7000 return offset;
7004 static const ber_sequence_t UniversalDomainDefinedAttributes_sequence_of[1] = {
7005 { &hf_p1_UniversalDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_UniversalDomainDefinedAttribute },
7008 static int
7009 dissect_p1_UniversalDomainDefinedAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7010 offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
7011 1, ub_domain_defined_attributes, UniversalDomainDefinedAttributes_sequence_of, hf_index, ett_p1_UniversalDomainDefinedAttributes);
7013 return offset;
7018 static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
7019 { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
7020 { &hf_p1_mta_name , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
7021 { NULL, 0, 0, 0, NULL }
7024 static int
7025 dissect_p1_MTANameAndOptionalGDI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7027 set_do_address(actx, true);
7029 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7030 MTANameAndOptionalGDI_sequence, hf_index, ett_p1_MTANameAndOptionalGDI);
7033 set_do_address(actx, false);
7034 proto_item_append_text(tree, ")");
7037 return offset;
7041 static const value_string p1_T_name_vals[] = {
7042 { 0, "recipient-name" },
7043 { 1, "mta" },
7044 { 0, NULL }
7047 static const ber_choice_t T_name_choice[] = {
7048 { 0, &hf_p1_token_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
7049 { 1, &hf_p1_token_mta , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_MTANameAndOptionalGDI },
7050 { 0, NULL, 0, 0, 0, NULL }
7053 static int
7054 dissect_p1_T_name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7055 offset = dissect_ber_choice(actx, tree, tvb, offset,
7056 T_name_choice, hf_index, ett_p1_T_name,
7057 NULL);
7059 return offset;
7063 static const value_string p1_TokenDataType_vals[] = {
7064 { 1, "bind-token-signed-data" },
7065 { 2, "message-token-signed-data" },
7066 { 3, "message-token-encrypted-data" },
7067 { 4, "bind-token-encrypted-data" },
7068 { 0, NULL }
7072 static int
7073 dissect_p1_TokenDataType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7074 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7075 &actx->external.indirect_reference);
7077 return offset;
7082 static int
7083 dissect_p1_T_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7085 proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %d"));
7086 if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
7087 offset = tvb_reported_length(tvb);
7088 } else {
7089 proto_item *item;
7090 proto_tree *next_tree;
7092 next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_tokendata_type, &item,
7093 "Dissector for tokendata-type %d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
7094 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
7095 expert_add_info(actx->pinfo, item, &ei_p1_unknown_tokendata_type);
7099 return offset;
7103 static const ber_sequence_t TokenData_sequence[] = {
7104 { &hf_p1_token_data_type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_TokenDataType },
7105 { &hf_p1_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_T_value },
7106 { NULL, 0, 0, 0, NULL }
7109 static int
7110 dissect_p1_TokenData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7111 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7112 TokenData_sequence, hf_index, ett_p1_TokenData);
7114 return offset;
7118 static const ber_sequence_t AsymmetricTokenData_sequence[] = {
7119 { &hf_p1_signature_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7120 { &hf_p1_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_name },
7121 { &hf_p1_time , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_Time },
7122 { &hf_p1_signed_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TokenData },
7123 { &hf_p1_encryption_algorithm_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_AlgorithmIdentifier },
7124 { &hf_p1_encrypted_data , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
7125 { NULL, 0, 0, 0, NULL }
7128 static int
7129 dissect_p1_AsymmetricTokenData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7130 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7131 AsymmetricTokenData_sequence, hf_index, ett_p1_AsymmetricTokenData);
7133 return offset;
7137 static const ber_sequence_t AsymmetricToken_sequence[] = {
7138 { &hf_p1_asymmetric_token_data, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_AsymmetricTokenData },
7139 { &hf_p1_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
7140 { &hf_p1_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_BIT_STRING },
7141 { NULL, 0, 0, 0, NULL }
7144 static int
7145 dissect_p1_AsymmetricToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7146 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7147 AsymmetricToken_sequence, hf_index, ett_p1_AsymmetricToken);
7149 return offset;
7154 static int
7155 dissect_p1_RandomNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7156 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7157 NULL, 0, hf_index, -1,
7158 NULL);
7160 return offset;
7165 static int
7166 dissect_p1_BindTokenSignedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7167 offset = dissect_p1_RandomNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
7169 return offset;
7174 static int
7175 dissect_p1_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7176 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7177 NULL);
7179 return offset;
7183 static const ber_sequence_t MessageTokenSignedData_sequence[] = {
7184 { &hf_p1_content_confidentiality_algorithm_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentConfidentialityAlgorithmIdentifier },
7185 { &hf_p1_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIntegrityCheck },
7186 { &hf_p1_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageSecurityLabel },
7187 { &hf_p1_proof_of_delivery_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDeliveryRequest },
7188 { &hf_p1_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER },
7189 { NULL, 0, 0, 0, NULL }
7192 static int
7193 dissect_p1_MessageTokenSignedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7194 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7195 MessageTokenSignedData_sequence, hf_index, ett_p1_MessageTokenSignedData);
7197 return offset;
7202 static int
7203 dissect_p1_EncryptionKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7204 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7205 NULL, 0, hf_index, -1,
7206 NULL);
7208 return offset;
7212 static const ber_sequence_t MessageTokenEncryptedData_sequence[] = {
7213 { &hf_p1_content_confidentiality_key, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncryptionKey },
7214 { &hf_p1_content_integrity_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIntegrityCheck },
7215 { &hf_p1_message_security_label, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageSecurityLabel },
7216 { &hf_p1_content_integrity_key, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncryptionKey },
7217 { &hf_p1_message_sequence_number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER },
7218 { NULL, 0, 0, 0, NULL }
7221 static int
7222 dissect_p1_MessageTokenEncryptedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7223 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7224 MessageTokenEncryptedData_sequence, hf_index, ett_p1_MessageTokenEncryptedData);
7226 return offset;
7231 static int
7232 dissect_p1_BindTokenEncryptedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7233 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
7235 return offset;
7238 /*--- PDUs ---*/
7240 static int dissect_InternalTraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7241 int offset = 0;
7242 asn1_ctx_t asn1_ctx;
7243 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7244 offset = dissect_p1_InternalTraceInformation(false, tvb, offset, &asn1_ctx, tree, hf_p1_InternalTraceInformation_PDU);
7245 return offset;
7247 static int dissect_InternalTraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7248 int offset = 0;
7249 asn1_ctx_t asn1_ctx;
7250 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7251 offset = dissect_p1_InternalTraceInformationElement(false, tvb, offset, &asn1_ctx, tree, hf_p1_InternalTraceInformationElement_PDU);
7252 return offset;
7254 static int dissect_TraceInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7255 int offset = 0;
7256 asn1_ctx_t asn1_ctx;
7257 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7258 offset = dissect_p1_TraceInformation(false, tvb, offset, &asn1_ctx, tree, hf_p1_TraceInformation_PDU);
7259 return offset;
7261 static int dissect_TraceInformationElement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7262 int offset = 0;
7263 asn1_ctx_t asn1_ctx;
7264 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7265 offset = dissect_p1_TraceInformationElement(false, tvb, offset, &asn1_ctx, tree, hf_p1_TraceInformationElement_PDU);
7266 return offset;
7268 static int dissect_MTSBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7269 int offset = 0;
7270 asn1_ctx_t asn1_ctx;
7271 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7272 offset = dissect_p1_MTSBindArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_MTSBindArgument_PDU);
7273 return offset;
7275 static int dissect_MTSBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7276 int offset = 0;
7277 asn1_ctx_t asn1_ctx;
7278 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7279 offset = dissect_p1_MTSBindResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_MTSBindResult_PDU);
7280 return offset;
7282 static int dissect_PAR_mts_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7283 int offset = 0;
7284 asn1_ctx_t asn1_ctx;
7285 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7286 offset = dissect_p1_PAR_mts_bind_error(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_mts_bind_error_PDU);
7287 return offset;
7289 static int dissect_MessageSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7290 int offset = 0;
7291 asn1_ctx_t asn1_ctx;
7292 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7293 offset = dissect_p1_MessageSubmissionArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionArgument_PDU);
7294 return offset;
7296 static int dissect_MessageSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7297 int offset = 0;
7298 asn1_ctx_t asn1_ctx;
7299 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7300 offset = dissect_p1_MessageSubmissionResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionResult_PDU);
7301 return offset;
7303 static int dissect_ProbeSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7304 int offset = 0;
7305 asn1_ctx_t asn1_ctx;
7306 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7307 offset = dissect_p1_ProbeSubmissionArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeSubmissionArgument_PDU);
7308 return offset;
7310 static int dissect_ProbeSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7311 int offset = 0;
7312 asn1_ctx_t asn1_ctx;
7313 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7314 offset = dissect_p1_ProbeSubmissionResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeSubmissionResult_PDU);
7315 return offset;
7317 static int dissect_CancelDeferredDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7318 int offset = 0;
7319 asn1_ctx_t asn1_ctx;
7320 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7321 offset = dissect_p1_CancelDeferredDeliveryArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_CancelDeferredDeliveryArgument_PDU);
7322 return offset;
7324 static int dissect_CancelDeferredDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7325 int offset = 0;
7326 asn1_ctx_t asn1_ctx;
7327 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7328 offset = dissect_p1_CancelDeferredDeliveryResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_CancelDeferredDeliveryResult_PDU);
7329 return offset;
7331 static int dissect_SubmissionControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7332 int offset = 0;
7333 asn1_ctx_t asn1_ctx;
7334 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7335 offset = dissect_p1_SubmissionControlArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_SubmissionControlArgument_PDU);
7336 return offset;
7338 static int dissect_SubmissionControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7339 int offset = 0;
7340 asn1_ctx_t asn1_ctx;
7341 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7342 offset = dissect_p1_SubmissionControlResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_SubmissionControlResult_PDU);
7343 return offset;
7345 static int dissect_PAR_submission_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7346 int offset = 0;
7347 asn1_ctx_t asn1_ctx;
7348 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7349 offset = dissect_p1_PAR_submission_control_violated(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_submission_control_violated_PDU);
7350 return offset;
7352 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_) {
7353 int offset = 0;
7354 asn1_ctx_t asn1_ctx;
7355 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7356 offset = dissect_p1_PAR_element_of_service_not_subscribed(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_element_of_service_not_subscribed_PDU);
7357 return offset;
7359 static int dissect_PAR_deferred_delivery_cancellation_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7360 int offset = 0;
7361 asn1_ctx_t asn1_ctx;
7362 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7363 offset = dissect_p1_PAR_deferred_delivery_cancellation_rejected(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU);
7364 return offset;
7366 static int dissect_PAR_originator_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7367 int offset = 0;
7368 asn1_ctx_t asn1_ctx;
7369 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7370 offset = dissect_p1_PAR_originator_invalid(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_originator_invalid_PDU);
7371 return offset;
7373 static int dissect_ImproperlySpecifiedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7374 int offset = 0;
7375 asn1_ctx_t asn1_ctx;
7376 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7377 offset = dissect_p1_ImproperlySpecifiedRecipients(false, tvb, offset, &asn1_ctx, tree, hf_p1_ImproperlySpecifiedRecipients_PDU);
7378 return offset;
7380 static int dissect_PAR_message_submission_identifier_invalid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7381 int offset = 0;
7382 asn1_ctx_t asn1_ctx;
7383 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7384 offset = dissect_p1_PAR_message_submission_identifier_invalid(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_message_submission_identifier_invalid_PDU);
7385 return offset;
7387 static int dissect_PAR_inconsistent_request_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7388 int offset = 0;
7389 asn1_ctx_t asn1_ctx;
7390 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7391 offset = dissect_p1_PAR_inconsistent_request(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_inconsistent_request_PDU);
7392 return offset;
7394 static int dissect_SecurityProblem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7395 int offset = 0;
7396 asn1_ctx_t asn1_ctx;
7397 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7398 offset = dissect_p1_SecurityProblem(false, tvb, offset, &asn1_ctx, tree, hf_p1_SecurityProblem_PDU);
7399 return offset;
7401 static int dissect_PAR_unsupported_critical_function_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7402 int offset = 0;
7403 asn1_ctx_t asn1_ctx;
7404 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7405 offset = dissect_p1_PAR_unsupported_critical_function(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_unsupported_critical_function_PDU);
7406 return offset;
7408 static int dissect_PAR_remote_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7409 int offset = 0;
7410 asn1_ctx_t asn1_ctx;
7411 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7412 offset = dissect_p1_PAR_remote_bind_error(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_remote_bind_error_PDU);
7413 return offset;
7415 static int dissect_MessageSubmissionTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7416 int offset = 0;
7417 asn1_ctx_t asn1_ctx;
7418 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7419 offset = dissect_p1_MessageSubmissionTime(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionTime_PDU);
7420 return offset;
7422 static int dissect_MessageDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7423 int offset = 0;
7424 asn1_ctx_t asn1_ctx;
7425 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7426 offset = dissect_p1_MessageDeliveryArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryArgument_PDU);
7427 return offset;
7429 static int dissect_MessageDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7430 int offset = 0;
7431 asn1_ctx_t asn1_ctx;
7432 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7433 offset = dissect_p1_MessageDeliveryResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryResult_PDU);
7434 return offset;
7436 static int dissect_ReportDeliveryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7437 int offset = 0;
7438 asn1_ctx_t asn1_ctx;
7439 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7440 offset = dissect_p1_ReportDeliveryArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportDeliveryArgument_PDU);
7441 return offset;
7443 static int dissect_ReportDeliveryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7444 int offset = 0;
7445 asn1_ctx_t asn1_ctx;
7446 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7447 offset = dissect_p1_ReportDeliveryResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportDeliveryResult_PDU);
7448 return offset;
7450 static int dissect_DeliveryControlArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7451 int offset = 0;
7452 asn1_ctx_t asn1_ctx;
7453 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7454 offset = dissect_p1_DeliveryControlArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_DeliveryControlArgument_PDU);
7455 return offset;
7457 static int dissect_DeliveryControlResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7458 int offset = 0;
7459 asn1_ctx_t asn1_ctx;
7460 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7461 offset = dissect_p1_DeliveryControlResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_DeliveryControlResult_PDU);
7462 return offset;
7464 static int dissect_PAR_delivery_control_violated_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7465 int offset = 0;
7466 asn1_ctx_t asn1_ctx;
7467 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7468 offset = dissect_p1_PAR_delivery_control_violated(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_delivery_control_violated_PDU);
7469 return offset;
7471 static int dissect_PAR_control_violates_registration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7472 int offset = 0;
7473 asn1_ctx_t asn1_ctx;
7474 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7475 offset = dissect_p1_PAR_control_violates_registration(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_control_violates_registration_PDU);
7476 return offset;
7478 static int dissect_RefusedOperation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7479 int offset = 0;
7480 asn1_ctx_t asn1_ctx;
7481 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7482 offset = dissect_p1_RefusedOperation(false, tvb, offset, &asn1_ctx, tree, hf_p1_RefusedOperation_PDU);
7483 return offset;
7485 static int dissect_RecipientCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7486 int offset = 0;
7487 asn1_ctx_t asn1_ctx;
7488 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7489 offset = dissect_p1_RecipientCertificate(false, tvb, offset, &asn1_ctx, tree, hf_p1_RecipientCertificate_PDU);
7490 return offset;
7492 static int dissect_ProofOfDelivery_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7493 int offset = 0;
7494 asn1_ctx_t asn1_ctx;
7495 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7496 offset = dissect_p1_ProofOfDelivery(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProofOfDelivery_PDU);
7497 return offset;
7499 static int dissect_RegisterArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7500 int offset = 0;
7501 asn1_ctx_t asn1_ctx;
7502 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7503 offset = dissect_p1_RegisterArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_RegisterArgument_PDU);
7504 return offset;
7506 static int dissect_RegisterResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7507 int offset = 0;
7508 asn1_ctx_t asn1_ctx;
7509 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7510 offset = dissect_p1_RegisterResult(false, tvb, offset, &asn1_ctx, tree, hf_p1_RegisterResult_PDU);
7511 return offset;
7513 static int dissect_ChangeCredentialsArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7514 int offset = 0;
7515 asn1_ctx_t asn1_ctx;
7516 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7517 offset = dissect_p1_ChangeCredentialsArgument(false, tvb, offset, &asn1_ctx, tree, hf_p1_ChangeCredentialsArgument_PDU);
7518 return offset;
7520 static int dissect_RES_change_credentials_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7521 int offset = 0;
7522 asn1_ctx_t asn1_ctx;
7523 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7524 offset = dissect_p1_RES_change_credentials(false, tvb, offset, &asn1_ctx, tree, hf_p1_RES_change_credentials_PDU);
7525 return offset;
7527 static int dissect_PAR_register_rejected_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7528 int offset = 0;
7529 asn1_ctx_t asn1_ctx;
7530 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7531 offset = dissect_p1_PAR_register_rejected(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_register_rejected_PDU);
7532 return offset;
7534 static int dissect_PAR_new_credentials_unacceptable_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7535 int offset = 0;
7536 asn1_ctx_t asn1_ctx;
7537 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7538 offset = dissect_p1_PAR_new_credentials_unacceptable(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_new_credentials_unacceptable_PDU);
7539 return offset;
7541 static int dissect_PAR_old_credentials_incorrectly_specified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7542 int offset = 0;
7543 asn1_ctx_t asn1_ctx;
7544 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7545 offset = dissect_p1_PAR_old_credentials_incorrectly_specified(false, tvb, offset, &asn1_ctx, tree, hf_p1_PAR_old_credentials_incorrectly_specified_PDU);
7546 return offset;
7548 static int dissect_MessageSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7549 int offset = 0;
7550 asn1_ctx_t asn1_ctx;
7551 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7552 offset = dissect_p1_MessageSubmissionEnvelope(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageSubmissionEnvelope_PDU);
7553 return offset;
7555 static int dissect_PerRecipientMessageSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7556 int offset = 0;
7557 asn1_ctx_t asn1_ctx;
7558 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7559 offset = dissect_p1_PerRecipientMessageSubmissionFields(false, tvb, offset, &asn1_ctx, tree, hf_p1_PerRecipientMessageSubmissionFields_PDU);
7560 return offset;
7562 static int dissect_ProbeSubmissionEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7563 int offset = 0;
7564 asn1_ctx_t asn1_ctx;
7565 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7566 offset = dissect_p1_ProbeSubmissionEnvelope(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeSubmissionEnvelope_PDU);
7567 return offset;
7569 static int dissect_PerRecipientProbeSubmissionFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7570 int offset = 0;
7571 asn1_ctx_t asn1_ctx;
7572 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7573 offset = dissect_p1_PerRecipientProbeSubmissionFields(false, tvb, offset, &asn1_ctx, tree, hf_p1_PerRecipientProbeSubmissionFields_PDU);
7574 return offset;
7576 static int dissect_MessageDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7577 int offset = 0;
7578 asn1_ctx_t asn1_ctx;
7579 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7580 offset = dissect_p1_MessageDeliveryEnvelope(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryEnvelope_PDU);
7581 return offset;
7583 static int dissect_ReportDeliveryEnvelope_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7584 int offset = 0;
7585 asn1_ctx_t asn1_ctx;
7586 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7587 offset = dissect_p1_ReportDeliveryEnvelope(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportDeliveryEnvelope_PDU);
7588 return offset;
7590 static int dissect_PerRecipientReportDeliveryFields_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7591 int offset = 0;
7592 asn1_ctx_t asn1_ctx;
7593 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7594 offset = dissect_p1_PerRecipientReportDeliveryFields(false, tvb, offset, &asn1_ctx, tree, hf_p1_PerRecipientReportDeliveryFields_PDU);
7595 return offset;
7597 static int dissect_ExtendedContentType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7598 int offset = 0;
7599 asn1_ctx_t asn1_ctx;
7600 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7601 offset = dissect_p1_ExtendedContentType(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtendedContentType_PDU);
7602 return offset;
7604 static int dissect_ContentIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7605 int offset = 0;
7606 asn1_ctx_t asn1_ctx;
7607 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7608 offset = dissect_p1_ContentIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_p1_ContentIdentifier_PDU);
7609 return offset;
7611 static int dissect_PerMessageIndicators_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7612 int offset = 0;
7613 asn1_ctx_t asn1_ctx;
7614 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7615 offset = dissect_p1_PerMessageIndicators(false, tvb, offset, &asn1_ctx, tree, hf_p1_PerMessageIndicators_PDU);
7616 return offset;
7618 static int dissect_OriginatorReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7619 int offset = 0;
7620 asn1_ctx_t asn1_ctx;
7621 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7622 offset = dissect_p1_OriginatorReportRequest(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatorReportRequest_PDU);
7623 return offset;
7625 static int dissect_DeferredDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7626 int offset = 0;
7627 asn1_ctx_t asn1_ctx;
7628 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7629 offset = dissect_p1_DeferredDeliveryTime(false, tvb, offset, &asn1_ctx, tree, hf_p1_DeferredDeliveryTime_PDU);
7630 return offset;
7632 static int dissect_Priority_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7633 int offset = 0;
7634 asn1_ctx_t asn1_ctx;
7635 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7636 offset = dissect_p1_Priority(false, tvb, offset, &asn1_ctx, tree, hf_p1_Priority_PDU);
7637 return offset;
7639 static int dissect_ContentLength_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7640 int offset = 0;
7641 asn1_ctx_t asn1_ctx;
7642 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7643 offset = dissect_p1_ContentLength(false, tvb, offset, &asn1_ctx, tree, hf_p1_ContentLength_PDU);
7644 return offset;
7646 static int dissect_MessageDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7647 int offset = 0;
7648 asn1_ctx_t asn1_ctx;
7649 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7650 offset = dissect_p1_MessageDeliveryTime(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageDeliveryTime_PDU);
7651 return offset;
7653 static int dissect_DeliveryFlags_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7654 int offset = 0;
7655 asn1_ctx_t asn1_ctx;
7656 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7657 offset = dissect_p1_DeliveryFlags(false, tvb, offset, &asn1_ctx, tree, hf_p1_DeliveryFlags_PDU);
7658 return offset;
7660 static int dissect_SubjectSubmissionIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7661 int offset = 0;
7662 asn1_ctx_t asn1_ctx;
7663 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7664 offset = dissect_p1_SubjectSubmissionIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_p1_SubjectSubmissionIdentifier_PDU);
7665 return offset;
7667 static int dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7668 int offset = 0;
7669 asn1_ctx_t asn1_ctx;
7670 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7671 offset = dissect_p1_RecipientReassignmentProhibited(false, tvb, offset, &asn1_ctx, tree, hf_p1_RecipientReassignmentProhibited_PDU);
7672 return offset;
7674 static int dissect_OriginatorRequestedAlternateRecipient_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7675 int offset = 0;
7676 asn1_ctx_t asn1_ctx;
7677 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7678 offset = dissect_p1_OriginatorRequestedAlternateRecipient(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatorRequestedAlternateRecipient_PDU);
7679 return offset;
7681 static int dissect_DLExpansionProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7682 int offset = 0;
7683 asn1_ctx_t asn1_ctx;
7684 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7685 offset = dissect_p1_DLExpansionProhibited(false, tvb, offset, &asn1_ctx, tree, hf_p1_DLExpansionProhibited_PDU);
7686 return offset;
7688 static int dissect_ConversionWithLossProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7689 int offset = 0;
7690 asn1_ctx_t asn1_ctx;
7691 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7692 offset = dissect_p1_ConversionWithLossProhibited(false, tvb, offset, &asn1_ctx, tree, hf_p1_ConversionWithLossProhibited_PDU);
7693 return offset;
7695 static int dissect_LatestDeliveryTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7696 int offset = 0;
7697 asn1_ctx_t asn1_ctx;
7698 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7699 offset = dissect_p1_LatestDeliveryTime(false, tvb, offset, &asn1_ctx, tree, hf_p1_LatestDeliveryTime_PDU);
7700 return offset;
7702 static int dissect_RequestedDeliveryMethod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7703 int offset = 0;
7704 asn1_ctx_t asn1_ctx;
7705 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7706 offset = dissect_p1_RequestedDeliveryMethod(false, tvb, offset, &asn1_ctx, tree, hf_p1_RequestedDeliveryMethod_PDU);
7707 return offset;
7709 static int dissect_PhysicalForwardingProhibited_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7710 int offset = 0;
7711 asn1_ctx_t asn1_ctx;
7712 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7713 offset = dissect_p1_PhysicalForwardingProhibited(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalForwardingProhibited_PDU);
7714 return offset;
7716 static int dissect_PhysicalForwardingAddressRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7717 int offset = 0;
7718 asn1_ctx_t asn1_ctx;
7719 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7720 offset = dissect_p1_PhysicalForwardingAddressRequest(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalForwardingAddressRequest_PDU);
7721 return offset;
7723 static int dissect_PhysicalDeliveryModes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7724 int offset = 0;
7725 asn1_ctx_t asn1_ctx;
7726 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7727 offset = dissect_p1_PhysicalDeliveryModes(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryModes_PDU);
7728 return offset;
7730 static int dissect_RegisteredMailType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7731 int offset = 0;
7732 asn1_ctx_t asn1_ctx;
7733 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7734 offset = dissect_p1_RegisteredMailType(false, tvb, offset, &asn1_ctx, tree, hf_p1_RegisteredMailType_PDU);
7735 return offset;
7737 static int dissect_RecipientNumberForAdvice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7738 int offset = 0;
7739 asn1_ctx_t asn1_ctx;
7740 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7741 offset = dissect_p1_RecipientNumberForAdvice(false, tvb, offset, &asn1_ctx, tree, hf_p1_RecipientNumberForAdvice_PDU);
7742 return offset;
7744 static int dissect_PhysicalRenditionAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7745 int offset = 0;
7746 asn1_ctx_t asn1_ctx;
7747 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7748 offset = dissect_p1_PhysicalRenditionAttributes(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalRenditionAttributes_PDU);
7749 return offset;
7751 static int dissect_OriginatorReturnAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7752 int offset = 0;
7753 asn1_ctx_t asn1_ctx;
7754 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7755 offset = dissect_p1_OriginatorReturnAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatorReturnAddress_PDU);
7756 return offset;
7758 static int dissect_PhysicalDeliveryReportRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7759 int offset = 0;
7760 asn1_ctx_t asn1_ctx;
7761 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7762 offset = dissect_p1_PhysicalDeliveryReportRequest(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryReportRequest_PDU);
7763 return offset;
7765 static int dissect_OriginatorCertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7766 int offset = 0;
7767 asn1_ctx_t asn1_ctx;
7768 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7769 offset = dissect_p1_OriginatorCertificate(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatorCertificate_PDU);
7770 return offset;
7772 static int dissect_MessageToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7773 int offset = 0;
7774 asn1_ctx_t asn1_ctx;
7775 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7776 offset = dissect_p1_MessageToken(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageToken_PDU);
7777 return offset;
7779 static int dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7780 int offset = 0;
7781 asn1_ctx_t asn1_ctx;
7782 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7783 offset = dissect_p1_ContentConfidentialityAlgorithmIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU);
7784 return offset;
7786 static int dissect_ContentIntegrityCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7787 int offset = 0;
7788 asn1_ctx_t asn1_ctx;
7789 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7790 offset = dissect_p1_ContentIntegrityCheck(false, tvb, offset, &asn1_ctx, tree, hf_p1_ContentIntegrityCheck_PDU);
7791 return offset;
7793 static int dissect_MessageOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7794 int offset = 0;
7795 asn1_ctx_t asn1_ctx;
7796 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7797 offset = dissect_p1_MessageOriginAuthenticationCheck(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageOriginAuthenticationCheck_PDU);
7798 return offset;
7800 int dissect_p1_MessageSecurityLabel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7801 int offset = 0;
7802 asn1_ctx_t asn1_ctx;
7803 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7804 offset = dissect_p1_MessageSecurityLabel(false, tvb, offset, &asn1_ctx, tree, hf_p1_p1_MessageSecurityLabel_PDU);
7805 return offset;
7807 static int dissect_ProofOfSubmissionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7808 int offset = 0;
7809 asn1_ctx_t asn1_ctx;
7810 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7811 offset = dissect_p1_ProofOfSubmissionRequest(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProofOfSubmissionRequest_PDU);
7812 return offset;
7814 static int dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7815 int offset = 0;
7816 asn1_ctx_t asn1_ctx;
7817 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7818 offset = dissect_p1_ProofOfDeliveryRequest(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProofOfDeliveryRequest_PDU);
7819 return offset;
7821 static int dissect_ContentCorrelator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7822 int offset = 0;
7823 asn1_ctx_t asn1_ctx;
7824 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7825 offset = dissect_p1_ContentCorrelator(false, tvb, offset, &asn1_ctx, tree, hf_p1_ContentCorrelator_PDU);
7826 return offset;
7828 static int dissect_ProbeOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7829 int offset = 0;
7830 asn1_ctx_t asn1_ctx;
7831 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7832 offset = dissect_p1_ProbeOriginAuthenticationCheck(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProbeOriginAuthenticationCheck_PDU);
7833 return offset;
7835 static int dissect_RedirectionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7836 int offset = 0;
7837 asn1_ctx_t asn1_ctx;
7838 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7839 offset = dissect_p1_RedirectionHistory(false, tvb, offset, &asn1_ctx, tree, hf_p1_RedirectionHistory_PDU);
7840 return offset;
7842 static int dissect_Redirection_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7843 int offset = 0;
7844 asn1_ctx_t asn1_ctx;
7845 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7846 offset = dissect_p1_Redirection(false, tvb, offset, &asn1_ctx, tree, hf_p1_Redirection_PDU);
7847 return offset;
7849 static int dissect_DLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7850 int offset = 0;
7851 asn1_ctx_t asn1_ctx;
7852 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7853 offset = dissect_p1_DLExpansionHistory(false, tvb, offset, &asn1_ctx, tree, hf_p1_DLExpansionHistory_PDU);
7854 return offset;
7856 static int dissect_DLExpansion_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7857 int offset = 0;
7858 asn1_ctx_t asn1_ctx;
7859 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7860 offset = dissect_p1_DLExpansion(false, tvb, offset, &asn1_ctx, tree, hf_p1_DLExpansion_PDU);
7861 return offset;
7863 static int dissect_PhysicalForwardingAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7864 int offset = 0;
7865 asn1_ctx_t asn1_ctx;
7866 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7867 offset = dissect_p1_PhysicalForwardingAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalForwardingAddress_PDU);
7868 return offset;
7870 static int dissect_OriginatorAndDLExpansionHistory_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7871 int offset = 0;
7872 asn1_ctx_t asn1_ctx;
7873 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7874 offset = dissect_p1_OriginatorAndDLExpansionHistory(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatorAndDLExpansionHistory_PDU);
7875 return offset;
7877 static int dissect_ReportingDLName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7878 int offset = 0;
7879 asn1_ctx_t asn1_ctx;
7880 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7881 offset = dissect_p1_ReportingDLName(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportingDLName_PDU);
7882 return offset;
7884 static int dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7885 int offset = 0;
7886 asn1_ctx_t asn1_ctx;
7887 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7888 offset = dissect_p1_ReportingMTACertificate(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportingMTACertificate_PDU);
7889 return offset;
7891 static int dissect_ReportOriginAuthenticationCheck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7892 int offset = 0;
7893 asn1_ctx_t asn1_ctx;
7894 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7895 offset = dissect_p1_ReportOriginAuthenticationCheck(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportOriginAuthenticationCheck_PDU);
7896 return offset;
7898 static int dissect_OriginatingMTACertificate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7899 int offset = 0;
7900 asn1_ctx_t asn1_ctx;
7901 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7902 offset = dissect_p1_OriginatingMTACertificate(false, tvb, offset, &asn1_ctx, tree, hf_p1_OriginatingMTACertificate_PDU);
7903 return offset;
7905 static int dissect_ProofOfSubmission_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7906 int offset = 0;
7907 asn1_ctx_t asn1_ctx;
7908 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7909 offset = dissect_p1_ProofOfSubmission(false, tvb, offset, &asn1_ctx, tree, hf_p1_ProofOfSubmission_PDU);
7910 return offset;
7912 static int dissect_ReportingMTAName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7913 int offset = 0;
7914 asn1_ctx_t asn1_ctx;
7915 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7916 offset = dissect_p1_ReportingMTAName(false, tvb, offset, &asn1_ctx, tree, hf_p1_ReportingMTAName_PDU);
7917 return offset;
7919 static int dissect_ExtendedCertificates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7920 int offset = 0;
7921 asn1_ctx_t asn1_ctx;
7922 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7923 offset = dissect_p1_ExtendedCertificates(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtendedCertificates_PDU);
7924 return offset;
7926 static int dissect_DLExemptedRecipients_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7927 int offset = 0;
7928 asn1_ctx_t asn1_ctx;
7929 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7930 offset = dissect_p1_DLExemptedRecipients(false, tvb, offset, &asn1_ctx, tree, hf_p1_DLExemptedRecipients_PDU);
7931 return offset;
7933 static int dissect_CertificateSelectors_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7934 int offset = 0;
7935 asn1_ctx_t asn1_ctx;
7936 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7937 offset = dissect_p1_CertificateSelectors(false, tvb, offset, &asn1_ctx, tree, hf_p1_CertificateSelectors_PDU);
7938 return offset;
7940 static int dissect_Content_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7941 int offset = 0;
7942 asn1_ctx_t asn1_ctx;
7943 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7944 offset = dissect_p1_Content(false, tvb, offset, &asn1_ctx, tree, hf_p1_Content_PDU);
7945 return offset;
7947 static int dissect_MTSIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7948 int offset = 0;
7949 asn1_ctx_t asn1_ctx;
7950 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7951 offset = dissect_p1_MTSIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_p1_MTSIdentifier_PDU);
7952 return offset;
7954 static int dissect_ORName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7955 int offset = 0;
7956 asn1_ctx_t asn1_ctx;
7957 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7958 offset = dissect_p1_ORName(false, tvb, offset, &asn1_ctx, tree, hf_p1_ORName_PDU);
7959 return offset;
7961 static int dissect_ORAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7962 int offset = 0;
7963 asn1_ctx_t asn1_ctx;
7964 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7965 offset = dissect_p1_ORAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_ORAddress_PDU);
7966 return offset;
7968 static int dissect_CommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7969 int offset = 0;
7970 asn1_ctx_t asn1_ctx;
7971 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7972 offset = dissect_p1_CommonName(false, tvb, offset, &asn1_ctx, tree, hf_p1_CommonName_PDU);
7973 return offset;
7975 static int dissect_TeletexCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7976 int offset = 0;
7977 asn1_ctx_t asn1_ctx;
7978 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7979 offset = dissect_p1_TeletexCommonName(false, tvb, offset, &asn1_ctx, tree, hf_p1_TeletexCommonName_PDU);
7980 return offset;
7982 static int dissect_UniversalCommonName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7983 int offset = 0;
7984 asn1_ctx_t asn1_ctx;
7985 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7986 offset = dissect_p1_UniversalCommonName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalCommonName_PDU);
7987 return offset;
7989 static int dissect_TeletexOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7990 int offset = 0;
7991 asn1_ctx_t asn1_ctx;
7992 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
7993 offset = dissect_p1_TeletexOrganizationName(false, tvb, offset, &asn1_ctx, tree, hf_p1_TeletexOrganizationName_PDU);
7994 return offset;
7996 static int dissect_UniversalOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7997 int offset = 0;
7998 asn1_ctx_t asn1_ctx;
7999 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8000 offset = dissect_p1_UniversalOrganizationName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalOrganizationName_PDU);
8001 return offset;
8003 static int dissect_TeletexPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8004 int offset = 0;
8005 asn1_ctx_t asn1_ctx;
8006 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8007 offset = dissect_p1_TeletexPersonalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_TeletexPersonalName_PDU);
8008 return offset;
8010 static int dissect_UniversalPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8011 int offset = 0;
8012 asn1_ctx_t asn1_ctx;
8013 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8014 offset = dissect_p1_UniversalPersonalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPersonalName_PDU);
8015 return offset;
8017 static int dissect_TeletexOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8018 int offset = 0;
8019 asn1_ctx_t asn1_ctx;
8020 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8021 offset = dissect_p1_TeletexOrganizationalUnitNames(false, tvb, offset, &asn1_ctx, tree, hf_p1_TeletexOrganizationalUnitNames_PDU);
8022 return offset;
8024 static int dissect_UniversalOrganizationalUnitNames_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8025 int offset = 0;
8026 asn1_ctx_t asn1_ctx;
8027 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8028 offset = dissect_p1_UniversalOrganizationalUnitNames(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalOrganizationalUnitNames_PDU);
8029 return offset;
8031 static int dissect_PDSName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8032 int offset = 0;
8033 asn1_ctx_t asn1_ctx;
8034 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8035 offset = dissect_p1_PDSName(false, tvb, offset, &asn1_ctx, tree, hf_p1_PDSName_PDU);
8036 return offset;
8038 static int dissect_PhysicalDeliveryCountryName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8039 int offset = 0;
8040 asn1_ctx_t asn1_ctx;
8041 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8042 offset = dissect_p1_PhysicalDeliveryCountryName(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryCountryName_PDU);
8043 return offset;
8045 static int dissect_PostalCode_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8046 int offset = 0;
8047 asn1_ctx_t asn1_ctx;
8048 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8049 offset = dissect_p1_PostalCode(false, tvb, offset, &asn1_ctx, tree, hf_p1_PostalCode_PDU);
8050 return offset;
8052 static int dissect_PhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8053 int offset = 0;
8054 asn1_ctx_t asn1_ctx;
8055 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8056 offset = dissect_p1_PhysicalDeliveryOfficeName(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOfficeName_PDU);
8057 return offset;
8059 static int dissect_UniversalPhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8060 int offset = 0;
8061 asn1_ctx_t asn1_ctx;
8062 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8063 offset = dissect_p1_UniversalPhysicalDeliveryOfficeName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOfficeName_PDU);
8064 return offset;
8066 static int dissect_PhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8067 int offset = 0;
8068 asn1_ctx_t asn1_ctx;
8069 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8070 offset = dissect_p1_PhysicalDeliveryOfficeNumber(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOfficeNumber_PDU);
8071 return offset;
8073 static int dissect_UniversalPhysicalDeliveryOfficeNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8074 int offset = 0;
8075 asn1_ctx_t asn1_ctx;
8076 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8077 offset = dissect_p1_UniversalPhysicalDeliveryOfficeNumber(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU);
8078 return offset;
8080 static int dissect_ExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8081 int offset = 0;
8082 asn1_ctx_t asn1_ctx;
8083 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8084 offset = dissect_p1_ExtensionORAddressComponents(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtensionORAddressComponents_PDU);
8085 return offset;
8087 static int dissect_UniversalExtensionORAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8088 int offset = 0;
8089 asn1_ctx_t asn1_ctx;
8090 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8091 offset = dissect_p1_UniversalExtensionORAddressComponents(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalExtensionORAddressComponents_PDU);
8092 return offset;
8094 static int dissect_PhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8095 int offset = 0;
8096 asn1_ctx_t asn1_ctx;
8097 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8098 offset = dissect_p1_PhysicalDeliveryPersonalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryPersonalName_PDU);
8099 return offset;
8101 static int dissect_UniversalPhysicalDeliveryPersonalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8102 int offset = 0;
8103 asn1_ctx_t asn1_ctx;
8104 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8105 offset = dissect_p1_UniversalPhysicalDeliveryPersonalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryPersonalName_PDU);
8106 return offset;
8108 static int dissect_PhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8109 int offset = 0;
8110 asn1_ctx_t asn1_ctx;
8111 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8112 offset = dissect_p1_PhysicalDeliveryOrganizationName(false, tvb, offset, &asn1_ctx, tree, hf_p1_PhysicalDeliveryOrganizationName_PDU);
8113 return offset;
8115 static int dissect_UniversalPhysicalDeliveryOrganizationName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8116 int offset = 0;
8117 asn1_ctx_t asn1_ctx;
8118 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8119 offset = dissect_p1_UniversalPhysicalDeliveryOrganizationName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU);
8120 return offset;
8122 static int dissect_ExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8123 int offset = 0;
8124 asn1_ctx_t asn1_ctx;
8125 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8126 offset = dissect_p1_ExtensionPhysicalDeliveryAddressComponents(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU);
8127 return offset;
8129 static int dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8130 int offset = 0;
8131 asn1_ctx_t asn1_ctx;
8132 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8133 offset = dissect_p1_UniversalExtensionPhysicalDeliveryAddressComponents(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU);
8134 return offset;
8136 static int dissect_UnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8137 int offset = 0;
8138 asn1_ctx_t asn1_ctx;
8139 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8140 offset = dissect_p1_UnformattedPostalAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_UnformattedPostalAddress_PDU);
8141 return offset;
8143 static int dissect_UniversalUnformattedPostalAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8144 int offset = 0;
8145 asn1_ctx_t asn1_ctx;
8146 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8147 offset = dissect_p1_UniversalUnformattedPostalAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalUnformattedPostalAddress_PDU);
8148 return offset;
8150 static int dissect_StreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8151 int offset = 0;
8152 asn1_ctx_t asn1_ctx;
8153 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8154 offset = dissect_p1_StreetAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_StreetAddress_PDU);
8155 return offset;
8157 static int dissect_UniversalStreetAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8158 int offset = 0;
8159 asn1_ctx_t asn1_ctx;
8160 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8161 offset = dissect_p1_UniversalStreetAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalStreetAddress_PDU);
8162 return offset;
8164 static int dissect_PostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8165 int offset = 0;
8166 asn1_ctx_t asn1_ctx;
8167 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8168 offset = dissect_p1_PostOfficeBoxAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_PostOfficeBoxAddress_PDU);
8169 return offset;
8171 static int dissect_UniversalPostOfficeBoxAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8172 int offset = 0;
8173 asn1_ctx_t asn1_ctx;
8174 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8175 offset = dissect_p1_UniversalPostOfficeBoxAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPostOfficeBoxAddress_PDU);
8176 return offset;
8178 static int dissect_PosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8179 int offset = 0;
8180 asn1_ctx_t asn1_ctx;
8181 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8182 offset = dissect_p1_PosteRestanteAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_PosteRestanteAddress_PDU);
8183 return offset;
8185 static int dissect_UniversalPosteRestanteAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8186 int offset = 0;
8187 asn1_ctx_t asn1_ctx;
8188 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8189 offset = dissect_p1_UniversalPosteRestanteAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalPosteRestanteAddress_PDU);
8190 return offset;
8192 static int dissect_UniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8193 int offset = 0;
8194 asn1_ctx_t asn1_ctx;
8195 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8196 offset = dissect_p1_UniquePostalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniquePostalName_PDU);
8197 return offset;
8199 static int dissect_UniversalUniquePostalName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8200 int offset = 0;
8201 asn1_ctx_t asn1_ctx;
8202 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8203 offset = dissect_p1_UniversalUniquePostalName(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalUniquePostalName_PDU);
8204 return offset;
8206 static int dissect_LocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8207 int offset = 0;
8208 asn1_ctx_t asn1_ctx;
8209 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8210 offset = dissect_p1_LocalPostalAttributes(false, tvb, offset, &asn1_ctx, tree, hf_p1_LocalPostalAttributes_PDU);
8211 return offset;
8213 static int dissect_UniversalLocalPostalAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8214 int offset = 0;
8215 asn1_ctx_t asn1_ctx;
8216 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8217 offset = dissect_p1_UniversalLocalPostalAttributes(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalLocalPostalAttributes_PDU);
8218 return offset;
8220 static int dissect_ExtendedNetworkAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8221 int offset = 0;
8222 asn1_ctx_t asn1_ctx;
8223 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8224 offset = dissect_p1_ExtendedNetworkAddress(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtendedNetworkAddress_PDU);
8225 return offset;
8227 static int dissect_TerminalType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8228 int offset = 0;
8229 asn1_ctx_t asn1_ctx;
8230 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8231 offset = dissect_p1_TerminalType(false, tvb, offset, &asn1_ctx, tree, hf_p1_TerminalType_PDU);
8232 return offset;
8234 static int dissect_TeletexDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8235 int offset = 0;
8236 asn1_ctx_t asn1_ctx;
8237 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8238 offset = dissect_p1_TeletexDomainDefinedAttributes(false, tvb, offset, &asn1_ctx, tree, hf_p1_TeletexDomainDefinedAttributes_PDU);
8239 return offset;
8241 static int dissect_UniversalDomainDefinedAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8242 int offset = 0;
8243 asn1_ctx_t asn1_ctx;
8244 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8245 offset = dissect_p1_UniversalDomainDefinedAttributes(false, tvb, offset, &asn1_ctx, tree, hf_p1_UniversalDomainDefinedAttributes_PDU);
8246 return offset;
8248 static int dissect_ExtendedEncodedInformationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8249 int offset = 0;
8250 asn1_ctx_t asn1_ctx;
8251 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8252 offset = dissect_p1_ExtendedEncodedInformationType(false, tvb, offset, &asn1_ctx, tree, hf_p1_ExtendedEncodedInformationType_PDU);
8253 return offset;
8255 static int dissect_MTANameAndOptionalGDI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8256 int offset = 0;
8257 asn1_ctx_t asn1_ctx;
8258 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8259 offset = dissect_p1_MTANameAndOptionalGDI(false, tvb, offset, &asn1_ctx, tree, hf_p1_MTANameAndOptionalGDI_PDU);
8260 return offset;
8262 static int dissect_AsymmetricToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8263 int offset = 0;
8264 asn1_ctx_t asn1_ctx;
8265 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8266 offset = dissect_p1_AsymmetricToken(false, tvb, offset, &asn1_ctx, tree, hf_p1_AsymmetricToken_PDU);
8267 return offset;
8269 static int dissect_BindTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8270 int offset = 0;
8271 asn1_ctx_t asn1_ctx;
8272 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8273 offset = dissect_p1_BindTokenSignedData(false, tvb, offset, &asn1_ctx, tree, hf_p1_BindTokenSignedData_PDU);
8274 return offset;
8276 static int dissect_MessageTokenSignedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8277 int offset = 0;
8278 asn1_ctx_t asn1_ctx;
8279 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8280 offset = dissect_p1_MessageTokenSignedData(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageTokenSignedData_PDU);
8281 return offset;
8283 static int dissect_MessageTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8284 int offset = 0;
8285 asn1_ctx_t asn1_ctx;
8286 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8287 offset = dissect_p1_MessageTokenEncryptedData(false, tvb, offset, &asn1_ctx, tree, hf_p1_MessageTokenEncryptedData_PDU);
8288 return offset;
8290 static int dissect_BindTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8291 int offset = 0;
8292 asn1_ctx_t asn1_ctx;
8293 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8294 offset = dissect_p1_BindTokenEncryptedData(false, tvb, offset, &asn1_ctx, tree, hf_p1_BindTokenEncryptedData_PDU);
8295 return offset;
8297 static int dissect_SecurityClassification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8298 int offset = 0;
8299 asn1_ctx_t asn1_ctx;
8300 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8301 offset = dissect_p1_SecurityClassification(false, tvb, offset, &asn1_ctx, tree, hf_p1_SecurityClassification_PDU);
8302 return offset;
8307 static const ros_opr_t p3_opr_tab[] = {
8308 /* mts-bind */
8309 { op_ros_bind , dissect_MTSBindArgument_PDU, dissect_MTSBindResult_PDU },
8310 /* message-submission */
8311 { op_message_submission , dissect_MessageSubmissionArgument_PDU, dissect_MessageSubmissionResult_PDU },
8312 /* probe-submission */
8313 { op_probe_submission , dissect_ProbeSubmissionArgument_PDU, dissect_ProbeSubmissionResult_PDU },
8314 /* cancel-deferred-delivery */
8315 { op_cancel_deferred_delivery, dissect_CancelDeferredDeliveryArgument_PDU, dissect_CancelDeferredDeliveryResult_PDU },
8316 /* submission-control */
8317 { op_submission_control , dissect_SubmissionControlArgument_PDU, dissect_SubmissionControlResult_PDU },
8318 /* message-delivery */
8319 { op_message_delivery , dissect_MessageDeliveryArgument_PDU, dissect_MessageDeliveryResult_PDU },
8320 /* report-delivery */
8321 { op_report_delivery , dissect_ReportDeliveryArgument_PDU, dissect_ReportDeliveryResult_PDU },
8322 /* delivery-control */
8323 { op_delivery_control , dissect_DeliveryControlArgument_PDU, dissect_DeliveryControlResult_PDU },
8324 /* register */
8325 { op_register , dissect_RegisterArgument_PDU, dissect_RegisterResult_PDU },
8326 /* change-credentials */
8327 { op_change_credentials , dissect_ChangeCredentialsArgument_PDU, dissect_RES_change_credentials_PDU },
8328 { 0, (dissector_t)(-1), (dissector_t)(-1) },
8332 static const ros_err_t p3_err_tab[] = {
8333 /* mts-bind-error*/
8334 { err_ros_bind, dissect_PAR_mts_bind_error_PDU },
8335 /* submission-control-violated*/
8336 { err_submission_control_violated, dissect_PAR_submission_control_violated_PDU },
8337 /* element-of-service-not-subscribed*/
8338 { err_element_of_service_not_subscribed, dissect_PAR_element_of_service_not_subscribed_PDU },
8339 /* deferred-delivery-cancellation-rejected*/
8340 { err_deferred_delivery_cancellation_rejected, dissect_PAR_deferred_delivery_cancellation_rejected_PDU },
8341 /* originator-invalid*/
8342 { err_originator_invalid, dissect_PAR_originator_invalid_PDU },
8343 /* recipient-improperly-specified*/
8344 { err_recipient_improperly_specified, dissect_ImproperlySpecifiedRecipients_PDU },
8345 /* message-submission-identifier-invalid*/
8346 { err_message_submission_identifier_invalid, dissect_PAR_message_submission_identifier_invalid_PDU },
8347 /* inconsistent-request*/
8348 { err_inconsistent_request, dissect_PAR_inconsistent_request_PDU },
8349 /* security-error*/
8350 { err_security_error, dissect_SecurityProblem_PDU },
8351 /* unsupported-critical-function*/
8352 { err_unsupported_critical_function, dissect_PAR_unsupported_critical_function_PDU },
8353 /* remote-bind-error*/
8354 { err_remote_bind_error, dissect_PAR_remote_bind_error_PDU },
8355 /* delivery-control-violated*/
8356 { err_delivery_control_violated, dissect_PAR_delivery_control_violated_PDU },
8357 /* control-violates-registration*/
8358 { err_control_violates_registration, dissect_PAR_control_violates_registration_PDU },
8359 /* operation-refused*/
8360 { err_operation_refused, dissect_RefusedOperation_PDU },
8361 /* register-rejected*/
8362 { err_register_rejected, dissect_PAR_register_rejected_PDU },
8363 /* new-credentials-unacceptable*/
8364 { err_new_credentials_unacceptable, dissect_PAR_new_credentials_unacceptable_PDU },
8365 /* old-credentials-incorrectly-specified*/
8366 { err_old_credentials_incorrectly_specified, dissect_PAR_old_credentials_incorrectly_specified_PDU },
8367 { 0, (dissector_t)(-1) },
8371 static const ros_info_t p3_ros_info = {
8372 "P3",
8373 &proto_p3,
8374 &ett_p3,
8375 p3_opr_code_string_vals,
8376 p3_opr_tab,
8377 p3_err_code_string_vals,
8378 p3_err_tab
8381 void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, bool report_unknown_cont_type)
8383 p1_address_ctx_t* ctx;
8385 if (actx->subtree.tree_ctx == NULL) {
8386 actx->subtree.tree_ctx = wmem_new0(actx->pinfo->pool, p1_address_ctx_t);
8389 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
8391 actx->subtree.top_tree = tree;
8392 actx->external.direct_reference = NULL;
8393 ctx->content_type_id = NULL;
8394 ctx->report_unknown_content_type = report_unknown_cont_type;
8397 const char* p1_get_last_oraddress (asn1_ctx_t* actx)
8399 p1_address_ctx_t* ctx;
8401 if ((actx == NULL) || (actx->subtree.tree_ctx == NULL))
8402 return "";
8404 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
8405 if (wmem_strbuf_get_len(ctx->oraddress) <= 0)
8406 return "";
8408 return wmem_strbuf_get_str(ctx->oraddress);
8412 * Dissect P1 MTS APDU
8415 dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
8417 proto_item *item=NULL;
8418 proto_tree *tree=NULL;
8419 asn1_ctx_t asn1_ctx;
8420 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8422 /* save parent_tree so subdissectors can create new top nodes */
8423 p1_initialize_content_globals (&asn1_ctx, parent_tree, true);
8425 if (parent_tree) {
8426 item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
8427 tree = proto_item_add_subtree(item, ett_p1);
8430 col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8431 col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
8433 dissect_p1_MTS_APDU (false, tvb, 0, &asn1_ctx, tree, hf_p1_MTS_APDU_PDU);
8434 p1_initialize_content_globals (&asn1_ctx, NULL, false);
8435 return tvb_captured_length(tvb);
8439 * Dissect P1 PDUs inside a PPDU.
8441 static int
8442 dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
8444 int offset = 0;
8445 int old_offset;
8446 proto_item *item;
8447 proto_tree *tree;
8448 struct SESSION_DATA_STRUCTURE* session;
8449 int (*p1_dissector)(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
8450 const char *p1_op_name;
8451 int hf_p1_index = 0;
8452 asn1_ctx_t asn1_ctx;
8453 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8455 /* do we have operation information from the ROS dissector? */
8456 if (data == NULL)
8457 return 0;
8458 session = (struct SESSION_DATA_STRUCTURE*)data;
8460 /* save parent_tree so subdissectors can create new top nodes */
8461 p1_initialize_content_globals (&asn1_ctx, parent_tree, true);
8463 asn1_ctx.private_data = session;
8465 item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, ENC_NA);
8466 tree = proto_item_add_subtree(item, ett_p1);
8468 col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
8469 col_clear(pinfo->cinfo, COL_INFO);
8471 switch(session->ros_op & ROS_OP_MASK) {
8472 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
8473 p1_dissector = dissect_p1_MTABindArgument;
8474 p1_op_name = "Bind-Argument";
8475 hf_p1_index = hf_p1_MTABindArgument_PDU;
8476 break;
8477 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
8478 p1_dissector = dissect_p1_MTABindResult;
8479 p1_op_name = "Bind-Result";
8480 hf_p1_index = hf_p1_MTABindResult_PDU;
8481 break;
8482 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
8483 p1_dissector = dissect_p1_MTABindError;
8484 p1_op_name = "Bind-Error";
8485 hf_p1_index = hf_p1_MTABindError_PDU;
8486 break;
8487 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
8488 p1_dissector = dissect_p1_MTS_APDU;
8489 p1_op_name = "Transfer";
8490 hf_p1_index = hf_p1_MTS_APDU_PDU;
8491 break;
8492 default:
8493 proto_tree_add_expert(tree, pinfo, &ei_p1_unsupported_pdu, tvb, offset, -1);
8494 return tvb_captured_length(tvb);
8497 col_set_str(pinfo->cinfo, COL_INFO, p1_op_name);
8499 while (tvb_reported_length_remaining(tvb, offset) > 0) {
8500 old_offset=offset;
8501 offset=(*p1_dissector)(false, tvb, offset, &asn1_ctx , tree, hf_p1_index);
8502 if (offset == old_offset) {
8503 proto_tree_add_expert(tree, pinfo, &ei_p1_zero_pdu, tvb, offset, -1);
8504 break;
8507 p1_initialize_content_globals (&asn1_ctx, NULL, false);
8508 return tvb_captured_length(tvb);
8514 /*--- proto_register_p1 -------------------------------------------*/
8515 void proto_register_p1(void) {
8517 /* List of fields */
8518 static hf_register_info hf[] =
8520 /* "Created by defining PDU in .cnf */
8521 { &hf_p1_MTABindArgument_PDU,
8522 { "MTABindArgument", "p1.MTABindArgument",
8523 FT_UINT32, BASE_DEC, VALS(p1_MTABindArgument_vals), 0,
8524 "p1.MTABindArgument", HFILL }},
8525 { &hf_p1_MTABindResult_PDU,
8526 { "MTABindResult", "p1.MTABindResult",
8527 FT_UINT32, BASE_DEC, VALS(p1_MTABindResult_vals), 0,
8528 "p1.MTABindResult", HFILL }},
8529 { &hf_p1_MTABindError_PDU,
8530 { "MTABindError", "p1.MTABindError",
8531 FT_UINT32, BASE_DEC, VALS(p1_MTABindError_vals), 0,
8532 "p1.MTABindError", HFILL }},
8533 { &hf_p1_MTS_APDU_PDU,
8534 { "MTS-APDU", "p1.MTS_APDU",
8535 FT_UINT32, BASE_DEC, VALS(p1_MTS_APDU_vals), 0,
8536 "p1.MTS_APDU", HFILL }},
8538 { &hf_p1_InternalTraceInformation_PDU,
8539 { "InternalTraceInformation", "p1.InternalTraceInformation",
8540 FT_UINT32, BASE_DEC, NULL, 0,
8541 NULL, HFILL }},
8542 { &hf_p1_InternalTraceInformationElement_PDU,
8543 { "InternalTraceInformationElement", "p1.InternalTraceInformationElement_element",
8544 FT_NONE, BASE_NONE, NULL, 0,
8545 NULL, HFILL }},
8546 { &hf_p1_TraceInformation_PDU,
8547 { "TraceInformation", "p1.TraceInformation",
8548 FT_UINT32, BASE_DEC, NULL, 0,
8549 NULL, HFILL }},
8550 { &hf_p1_TraceInformationElement_PDU,
8551 { "TraceInformationElement", "p1.TraceInformationElement_element",
8552 FT_NONE, BASE_NONE, NULL, 0,
8553 NULL, HFILL }},
8554 { &hf_p1_MTSBindArgument_PDU,
8555 { "MTSBindArgument", "p1.MTSBindArgument_element",
8556 FT_NONE, BASE_NONE, NULL, 0,
8557 NULL, HFILL }},
8558 { &hf_p1_MTSBindResult_PDU,
8559 { "MTSBindResult", "p1.MTSBindResult_element",
8560 FT_NONE, BASE_NONE, NULL, 0,
8561 NULL, HFILL }},
8562 { &hf_p1_PAR_mts_bind_error_PDU,
8563 { "PAR-mts-bind-error", "p1.PAR_mts_bind_error",
8564 FT_UINT32, BASE_DEC, VALS(p1_PAR_mts_bind_error_vals), 0,
8565 NULL, HFILL }},
8566 { &hf_p1_MessageSubmissionArgument_PDU,
8567 { "MessageSubmissionArgument", "p1.MessageSubmissionArgument_element",
8568 FT_NONE, BASE_NONE, NULL, 0,
8569 NULL, HFILL }},
8570 { &hf_p1_MessageSubmissionResult_PDU,
8571 { "MessageSubmissionResult", "p1.MessageSubmissionResult_element",
8572 FT_NONE, BASE_NONE, NULL, 0,
8573 NULL, HFILL }},
8574 { &hf_p1_ProbeSubmissionArgument_PDU,
8575 { "ProbeSubmissionArgument", "p1.ProbeSubmissionArgument_element",
8576 FT_NONE, BASE_NONE, NULL, 0,
8577 NULL, HFILL }},
8578 { &hf_p1_ProbeSubmissionResult_PDU,
8579 { "ProbeSubmissionResult", "p1.ProbeSubmissionResult_element",
8580 FT_NONE, BASE_NONE, NULL, 0,
8581 NULL, HFILL }},
8582 { &hf_p1_CancelDeferredDeliveryArgument_PDU,
8583 { "CancelDeferredDeliveryArgument", "p1.CancelDeferredDeliveryArgument_element",
8584 FT_NONE, BASE_NONE, NULL, 0,
8585 NULL, HFILL }},
8586 { &hf_p1_CancelDeferredDeliveryResult_PDU,
8587 { "CancelDeferredDeliveryResult", "p1.CancelDeferredDeliveryResult_element",
8588 FT_NONE, BASE_NONE, NULL, 0,
8589 NULL, HFILL }},
8590 { &hf_p1_SubmissionControlArgument_PDU,
8591 { "SubmissionControlArgument", "p1.SubmissionControlArgument_element",
8592 FT_NONE, BASE_NONE, NULL, 0,
8593 NULL, HFILL }},
8594 { &hf_p1_SubmissionControlResult_PDU,
8595 { "SubmissionControlResult", "p1.SubmissionControlResult_element",
8596 FT_NONE, BASE_NONE, NULL, 0,
8597 NULL, HFILL }},
8598 { &hf_p1_PAR_submission_control_violated_PDU,
8599 { "PAR-submission-control-violated", "p1.PAR_submission_control_violated_element",
8600 FT_NONE, BASE_NONE, NULL, 0,
8601 NULL, HFILL }},
8602 { &hf_p1_PAR_element_of_service_not_subscribed_PDU,
8603 { "PAR-element-of-service-not-subscribed", "p1.PAR_element_of_service_not_subscribed_element",
8604 FT_NONE, BASE_NONE, NULL, 0,
8605 NULL, HFILL }},
8606 { &hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU,
8607 { "PAR-deferred-delivery-cancellation-rejected", "p1.PAR_deferred_delivery_cancellation_rejected_element",
8608 FT_NONE, BASE_NONE, NULL, 0,
8609 NULL, HFILL }},
8610 { &hf_p1_PAR_originator_invalid_PDU,
8611 { "PAR-originator-invalid", "p1.PAR_originator_invalid_element",
8612 FT_NONE, BASE_NONE, NULL, 0,
8613 NULL, HFILL }},
8614 { &hf_p1_ImproperlySpecifiedRecipients_PDU,
8615 { "ImproperlySpecifiedRecipients", "p1.ImproperlySpecifiedRecipients",
8616 FT_UINT32, BASE_DEC, NULL, 0,
8617 NULL, HFILL }},
8618 { &hf_p1_PAR_message_submission_identifier_invalid_PDU,
8619 { "PAR-message-submission-identifier-invalid", "p1.PAR_message_submission_identifier_invalid_element",
8620 FT_NONE, BASE_NONE, NULL, 0,
8621 NULL, HFILL }},
8622 { &hf_p1_PAR_inconsistent_request_PDU,
8623 { "PAR-inconsistent-request", "p1.PAR_inconsistent_request_element",
8624 FT_NONE, BASE_NONE, NULL, 0,
8625 NULL, HFILL }},
8626 { &hf_p1_SecurityProblem_PDU,
8627 { "SecurityProblem", "p1.SecurityProblem",
8628 FT_UINT32, BASE_DEC, VALS(p1_SecurityProblem_vals), 0,
8629 NULL, HFILL }},
8630 { &hf_p1_PAR_unsupported_critical_function_PDU,
8631 { "PAR-unsupported-critical-function", "p1.PAR_unsupported_critical_function_element",
8632 FT_NONE, BASE_NONE, NULL, 0,
8633 NULL, HFILL }},
8634 { &hf_p1_PAR_remote_bind_error_PDU,
8635 { "PAR-remote-bind-error", "p1.PAR_remote_bind_error_element",
8636 FT_NONE, BASE_NONE, NULL, 0,
8637 NULL, HFILL }},
8638 { &hf_p1_MessageSubmissionTime_PDU,
8639 { "MessageSubmissionTime", "p1.MessageSubmissionTime",
8640 FT_STRING, BASE_NONE, NULL, 0,
8641 NULL, HFILL }},
8642 { &hf_p1_MessageDeliveryArgument_PDU,
8643 { "MessageDeliveryArgument", "p1.MessageDeliveryArgument_element",
8644 FT_NONE, BASE_NONE, NULL, 0,
8645 NULL, HFILL }},
8646 { &hf_p1_MessageDeliveryResult_PDU,
8647 { "MessageDeliveryResult", "p1.MessageDeliveryResult_element",
8648 FT_NONE, BASE_NONE, NULL, 0,
8649 NULL, HFILL }},
8650 { &hf_p1_ReportDeliveryArgument_PDU,
8651 { "ReportDeliveryArgument", "p1.ReportDeliveryArgument_element",
8652 FT_NONE, BASE_NONE, NULL, 0,
8653 NULL, HFILL }},
8654 { &hf_p1_ReportDeliveryResult_PDU,
8655 { "ReportDeliveryResult", "p1.ReportDeliveryResult",
8656 FT_UINT32, BASE_DEC, VALS(p1_ReportDeliveryResult_vals), 0,
8657 NULL, HFILL }},
8658 { &hf_p1_DeliveryControlArgument_PDU,
8659 { "DeliveryControlArgument", "p1.DeliveryControlArgument_element",
8660 FT_NONE, BASE_NONE, NULL, 0,
8661 NULL, HFILL }},
8662 { &hf_p1_DeliveryControlResult_PDU,
8663 { "DeliveryControlResult", "p1.DeliveryControlResult_element",
8664 FT_NONE, BASE_NONE, NULL, 0,
8665 NULL, HFILL }},
8666 { &hf_p1_PAR_delivery_control_violated_PDU,
8667 { "PAR-delivery-control-violated", "p1.PAR_delivery_control_violated_element",
8668 FT_NONE, BASE_NONE, NULL, 0,
8669 NULL, HFILL }},
8670 { &hf_p1_PAR_control_violates_registration_PDU,
8671 { "PAR-control-violates-registration", "p1.PAR_control_violates_registration_element",
8672 FT_NONE, BASE_NONE, NULL, 0,
8673 NULL, HFILL }},
8674 { &hf_p1_RefusedOperation_PDU,
8675 { "RefusedOperation", "p1.RefusedOperation_element",
8676 FT_NONE, BASE_NONE, NULL, 0,
8677 NULL, HFILL }},
8678 { &hf_p1_RecipientCertificate_PDU,
8679 { "RecipientCertificate", "p1.RecipientCertificate_element",
8680 FT_NONE, BASE_NONE, NULL, 0,
8681 NULL, HFILL }},
8682 { &hf_p1_ProofOfDelivery_PDU,
8683 { "ProofOfDelivery", "p1.ProofOfDelivery_element",
8684 FT_NONE, BASE_NONE, NULL, 0,
8685 NULL, HFILL }},
8686 { &hf_p1_RegisterArgument_PDU,
8687 { "RegisterArgument", "p1.RegisterArgument_element",
8688 FT_NONE, BASE_NONE, NULL, 0,
8689 NULL, HFILL }},
8690 { &hf_p1_RegisterResult_PDU,
8691 { "RegisterResult", "p1.RegisterResult",
8692 FT_UINT32, BASE_DEC, VALS(p1_RegisterResult_vals), 0,
8693 NULL, HFILL }},
8694 { &hf_p1_ChangeCredentialsArgument_PDU,
8695 { "ChangeCredentialsArgument", "p1.ChangeCredentialsArgument_element",
8696 FT_NONE, BASE_NONE, NULL, 0,
8697 NULL, HFILL }},
8698 { &hf_p1_RES_change_credentials_PDU,
8699 { "RES-change-credentials", "p1.RES_change_credentials_element",
8700 FT_NONE, BASE_NONE, NULL, 0,
8701 NULL, HFILL }},
8702 { &hf_p1_PAR_register_rejected_PDU,
8703 { "PAR-register-rejected", "p1.PAR_register_rejected_element",
8704 FT_NONE, BASE_NONE, NULL, 0,
8705 NULL, HFILL }},
8706 { &hf_p1_PAR_new_credentials_unacceptable_PDU,
8707 { "PAR-new-credentials-unacceptable", "p1.PAR_new_credentials_unacceptable_element",
8708 FT_NONE, BASE_NONE, NULL, 0,
8709 NULL, HFILL }},
8710 { &hf_p1_PAR_old_credentials_incorrectly_specified_PDU,
8711 { "PAR-old-credentials-incorrectly-specified", "p1.PAR_old_credentials_incorrectly_specified_element",
8712 FT_NONE, BASE_NONE, NULL, 0,
8713 NULL, HFILL }},
8714 { &hf_p1_MessageSubmissionEnvelope_PDU,
8715 { "MessageSubmissionEnvelope", "p1.MessageSubmissionEnvelope_element",
8716 FT_NONE, BASE_NONE, NULL, 0,
8717 NULL, HFILL }},
8718 { &hf_p1_PerRecipientMessageSubmissionFields_PDU,
8719 { "PerRecipientMessageSubmissionFields", "p1.PerRecipientMessageSubmissionFields_element",
8720 FT_NONE, BASE_NONE, NULL, 0,
8721 NULL, HFILL }},
8722 { &hf_p1_ProbeSubmissionEnvelope_PDU,
8723 { "ProbeSubmissionEnvelope", "p1.ProbeSubmissionEnvelope_element",
8724 FT_NONE, BASE_NONE, NULL, 0,
8725 NULL, HFILL }},
8726 { &hf_p1_PerRecipientProbeSubmissionFields_PDU,
8727 { "PerRecipientProbeSubmissionFields", "p1.PerRecipientProbeSubmissionFields_element",
8728 FT_NONE, BASE_NONE, NULL, 0,
8729 NULL, HFILL }},
8730 { &hf_p1_MessageDeliveryEnvelope_PDU,
8731 { "MessageDeliveryEnvelope", "p1.MessageDeliveryEnvelope_element",
8732 FT_NONE, BASE_NONE, NULL, 0,
8733 NULL, HFILL }},
8734 { &hf_p1_ReportDeliveryEnvelope_PDU,
8735 { "ReportDeliveryEnvelope", "p1.ReportDeliveryEnvelope_element",
8736 FT_NONE, BASE_NONE, NULL, 0,
8737 NULL, HFILL }},
8738 { &hf_p1_PerRecipientReportDeliveryFields_PDU,
8739 { "PerRecipientReportDeliveryFields", "p1.PerRecipientReportDeliveryFields_element",
8740 FT_NONE, BASE_NONE, NULL, 0,
8741 NULL, HFILL }},
8742 { &hf_p1_ExtendedContentType_PDU,
8743 { "ExtendedContentType", "p1.ExtendedContentType",
8744 FT_OID, BASE_NONE, NULL, 0,
8745 NULL, HFILL }},
8746 { &hf_p1_ContentIdentifier_PDU,
8747 { "ContentIdentifier", "p1.ContentIdentifier",
8748 FT_STRING, BASE_NONE, NULL, 0,
8749 NULL, HFILL }},
8750 { &hf_p1_PerMessageIndicators_PDU,
8751 { "PerMessageIndicators", "p1.PerMessageIndicators",
8752 FT_BYTES, BASE_NONE, NULL, 0,
8753 NULL, HFILL }},
8754 { &hf_p1_OriginatorReportRequest_PDU,
8755 { "OriginatorReportRequest", "p1.OriginatorReportRequest",
8756 FT_BYTES, BASE_NONE, NULL, 0,
8757 NULL, HFILL }},
8758 { &hf_p1_DeferredDeliveryTime_PDU,
8759 { "DeferredDeliveryTime", "p1.DeferredDeliveryTime",
8760 FT_STRING, BASE_NONE, NULL, 0,
8761 NULL, HFILL }},
8762 { &hf_p1_Priority_PDU,
8763 { "Priority", "p1.Priority",
8764 FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
8765 NULL, HFILL }},
8766 { &hf_p1_ContentLength_PDU,
8767 { "ContentLength", "p1.ContentLength",
8768 FT_UINT32, BASE_DEC, NULL, 0,
8769 NULL, HFILL }},
8770 { &hf_p1_MessageDeliveryTime_PDU,
8771 { "MessageDeliveryTime", "p1.MessageDeliveryTime",
8772 FT_STRING, BASE_NONE, NULL, 0,
8773 NULL, HFILL }},
8774 { &hf_p1_DeliveryFlags_PDU,
8775 { "DeliveryFlags", "p1.DeliveryFlags",
8776 FT_BYTES, BASE_NONE, NULL, 0,
8777 NULL, HFILL }},
8778 { &hf_p1_SubjectSubmissionIdentifier_PDU,
8779 { "SubjectSubmissionIdentifier", "p1.SubjectSubmissionIdentifier_element",
8780 FT_NONE, BASE_NONE, NULL, 0,
8781 NULL, HFILL }},
8782 { &hf_p1_RecipientReassignmentProhibited_PDU,
8783 { "RecipientReassignmentProhibited", "p1.RecipientReassignmentProhibited",
8784 FT_UINT32, BASE_DEC, VALS(p1_RecipientReassignmentProhibited_vals), 0,
8785 NULL, HFILL }},
8786 { &hf_p1_OriginatorRequestedAlternateRecipient_PDU,
8787 { "OriginatorRequestedAlternateRecipient", "p1.OriginatorRequestedAlternateRecipient_element",
8788 FT_NONE, BASE_NONE, NULL, 0,
8789 NULL, HFILL }},
8790 { &hf_p1_DLExpansionProhibited_PDU,
8791 { "DLExpansionProhibited", "p1.DLExpansionProhibited",
8792 FT_UINT32, BASE_DEC, VALS(p1_DLExpansionProhibited_vals), 0,
8793 NULL, HFILL }},
8794 { &hf_p1_ConversionWithLossProhibited_PDU,
8795 { "ConversionWithLossProhibited", "p1.ConversionWithLossProhibited",
8796 FT_UINT32, BASE_DEC, VALS(p1_ConversionWithLossProhibited_vals), 0,
8797 NULL, HFILL }},
8798 { &hf_p1_LatestDeliveryTime_PDU,
8799 { "LatestDeliveryTime", "p1.LatestDeliveryTime",
8800 FT_STRING, BASE_NONE, NULL, 0,
8801 NULL, HFILL }},
8802 { &hf_p1_RequestedDeliveryMethod_PDU,
8803 { "RequestedDeliveryMethod", "p1.RequestedDeliveryMethod",
8804 FT_UINT32, BASE_DEC, NULL, 0,
8805 NULL, HFILL }},
8806 { &hf_p1_PhysicalForwardingProhibited_PDU,
8807 { "PhysicalForwardingProhibited", "p1.PhysicalForwardingProhibited",
8808 FT_UINT32, BASE_DEC, VALS(p1_PhysicalForwardingProhibited_vals), 0,
8809 NULL, HFILL }},
8810 { &hf_p1_PhysicalForwardingAddressRequest_PDU,
8811 { "PhysicalForwardingAddressRequest", "p1.PhysicalForwardingAddressRequest",
8812 FT_UINT32, BASE_DEC, VALS(p1_PhysicalForwardingAddressRequest_vals), 0,
8813 NULL, HFILL }},
8814 { &hf_p1_PhysicalDeliveryModes_PDU,
8815 { "PhysicalDeliveryModes", "p1.PhysicalDeliveryModes",
8816 FT_BYTES, BASE_NONE, NULL, 0,
8817 NULL, HFILL }},
8818 { &hf_p1_RegisteredMailType_PDU,
8819 { "RegisteredMailType", "p1.RegisteredMailType",
8820 FT_UINT32, BASE_DEC, VALS(p1_RegisteredMailType_vals), 0,
8821 NULL, HFILL }},
8822 { &hf_p1_RecipientNumberForAdvice_PDU,
8823 { "RecipientNumberForAdvice", "p1.RecipientNumberForAdvice",
8824 FT_STRING, BASE_NONE, NULL, 0,
8825 NULL, HFILL }},
8826 { &hf_p1_PhysicalRenditionAttributes_PDU,
8827 { "PhysicalRenditionAttributes", "p1.PhysicalRenditionAttributes",
8828 FT_OID, BASE_NONE, NULL, 0,
8829 NULL, HFILL }},
8830 { &hf_p1_OriginatorReturnAddress_PDU,
8831 { "OriginatorReturnAddress", "p1.OriginatorReturnAddress_element",
8832 FT_NONE, BASE_NONE, NULL, 0,
8833 NULL, HFILL }},
8834 { &hf_p1_PhysicalDeliveryReportRequest_PDU,
8835 { "PhysicalDeliveryReportRequest", "p1.PhysicalDeliveryReportRequest",
8836 FT_UINT32, BASE_DEC, VALS(p1_PhysicalDeliveryReportRequest_vals), 0,
8837 NULL, HFILL }},
8838 { &hf_p1_OriginatorCertificate_PDU,
8839 { "OriginatorCertificate", "p1.OriginatorCertificate_element",
8840 FT_NONE, BASE_NONE, NULL, 0,
8841 NULL, HFILL }},
8842 { &hf_p1_MessageToken_PDU,
8843 { "MessageToken", "p1.MessageToken_element",
8844 FT_NONE, BASE_NONE, NULL, 0,
8845 NULL, HFILL }},
8846 { &hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU,
8847 { "ContentConfidentialityAlgorithmIdentifier", "p1.ContentConfidentialityAlgorithmIdentifier_element",
8848 FT_NONE, BASE_NONE, NULL, 0,
8849 NULL, HFILL }},
8850 { &hf_p1_ContentIntegrityCheck_PDU,
8851 { "ContentIntegrityCheck", "p1.ContentIntegrityCheck_element",
8852 FT_NONE, BASE_NONE, NULL, 0,
8853 NULL, HFILL }},
8854 { &hf_p1_MessageOriginAuthenticationCheck_PDU,
8855 { "MessageOriginAuthenticationCheck", "p1.MessageOriginAuthenticationCheck_element",
8856 FT_NONE, BASE_NONE, NULL, 0,
8857 NULL, HFILL }},
8858 { &hf_p1_p1_MessageSecurityLabel_PDU,
8859 { "MessageSecurityLabel", "p1.MessageSecurityLabel_element",
8860 FT_NONE, BASE_NONE, NULL, 0,
8861 NULL, HFILL }},
8862 { &hf_p1_ProofOfSubmissionRequest_PDU,
8863 { "ProofOfSubmissionRequest", "p1.ProofOfSubmissionRequest",
8864 FT_UINT32, BASE_DEC, VALS(p1_ProofOfSubmissionRequest_vals), 0,
8865 NULL, HFILL }},
8866 { &hf_p1_ProofOfDeliveryRequest_PDU,
8867 { "ProofOfDeliveryRequest", "p1.ProofOfDeliveryRequest",
8868 FT_UINT32, BASE_DEC, VALS(p1_ProofOfDeliveryRequest_vals), 0,
8869 NULL, HFILL }},
8870 { &hf_p1_ContentCorrelator_PDU,
8871 { "ContentCorrelator", "p1.ContentCorrelator",
8872 FT_UINT32, BASE_DEC, VALS(p1_ContentCorrelator_vals), 0,
8873 NULL, HFILL }},
8874 { &hf_p1_ProbeOriginAuthenticationCheck_PDU,
8875 { "ProbeOriginAuthenticationCheck", "p1.ProbeOriginAuthenticationCheck_element",
8876 FT_NONE, BASE_NONE, NULL, 0,
8877 NULL, HFILL }},
8878 { &hf_p1_RedirectionHistory_PDU,
8879 { "RedirectionHistory", "p1.RedirectionHistory",
8880 FT_UINT32, BASE_DEC, NULL, 0,
8881 NULL, HFILL }},
8882 { &hf_p1_Redirection_PDU,
8883 { "Redirection", "p1.Redirection_element",
8884 FT_NONE, BASE_NONE, NULL, 0,
8885 NULL, HFILL }},
8886 { &hf_p1_DLExpansionHistory_PDU,
8887 { "DLExpansionHistory", "p1.DLExpansionHistory",
8888 FT_UINT32, BASE_DEC, NULL, 0,
8889 NULL, HFILL }},
8890 { &hf_p1_DLExpansion_PDU,
8891 { "DLExpansion", "p1.DLExpansion_element",
8892 FT_NONE, BASE_NONE, NULL, 0,
8893 NULL, HFILL }},
8894 { &hf_p1_PhysicalForwardingAddress_PDU,
8895 { "PhysicalForwardingAddress", "p1.PhysicalForwardingAddress_element",
8896 FT_NONE, BASE_NONE, NULL, 0,
8897 NULL, HFILL }},
8898 { &hf_p1_OriginatorAndDLExpansionHistory_PDU,
8899 { "OriginatorAndDLExpansionHistory", "p1.OriginatorAndDLExpansionHistory",
8900 FT_UINT32, BASE_DEC, NULL, 0,
8901 NULL, HFILL }},
8902 { &hf_p1_ReportingDLName_PDU,
8903 { "ReportingDLName", "p1.ReportingDLName_element",
8904 FT_NONE, BASE_NONE, NULL, 0,
8905 NULL, HFILL }},
8906 { &hf_p1_ReportingMTACertificate_PDU,
8907 { "ReportingMTACertificate", "p1.ReportingMTACertificate_element",
8908 FT_NONE, BASE_NONE, NULL, 0,
8909 NULL, HFILL }},
8910 { &hf_p1_ReportOriginAuthenticationCheck_PDU,
8911 { "ReportOriginAuthenticationCheck", "p1.ReportOriginAuthenticationCheck_element",
8912 FT_NONE, BASE_NONE, NULL, 0,
8913 NULL, HFILL }},
8914 { &hf_p1_OriginatingMTACertificate_PDU,
8915 { "OriginatingMTACertificate", "p1.OriginatingMTACertificate_element",
8916 FT_NONE, BASE_NONE, NULL, 0,
8917 NULL, HFILL }},
8918 { &hf_p1_ProofOfSubmission_PDU,
8919 { "ProofOfSubmission", "p1.ProofOfSubmission_element",
8920 FT_NONE, BASE_NONE, NULL, 0,
8921 NULL, HFILL }},
8922 { &hf_p1_ReportingMTAName_PDU,
8923 { "ReportingMTAName", "p1.ReportingMTAName_element",
8924 FT_NONE, BASE_NONE, NULL, 0,
8925 NULL, HFILL }},
8926 { &hf_p1_ExtendedCertificates_PDU,
8927 { "ExtendedCertificates", "p1.ExtendedCertificates",
8928 FT_UINT32, BASE_DEC, NULL, 0,
8929 NULL, HFILL }},
8930 { &hf_p1_DLExemptedRecipients_PDU,
8931 { "DLExemptedRecipients", "p1.DLExemptedRecipients",
8932 FT_UINT32, BASE_DEC, NULL, 0,
8933 NULL, HFILL }},
8934 { &hf_p1_CertificateSelectors_PDU,
8935 { "CertificateSelectors", "p1.CertificateSelectors_element",
8936 FT_NONE, BASE_NONE, NULL, 0,
8937 NULL, HFILL }},
8938 { &hf_p1_Content_PDU,
8939 { "Content", "p1.Content",
8940 FT_BYTES, BASE_NONE, NULL, 0,
8941 NULL, HFILL }},
8942 { &hf_p1_MTSIdentifier_PDU,
8943 { "MTSIdentifier", "p1.MTSIdentifier_element",
8944 FT_NONE, BASE_NONE, NULL, 0,
8945 NULL, HFILL }},
8946 { &hf_p1_ORName_PDU,
8947 { "ORName", "p1.ORName_element",
8948 FT_NONE, BASE_NONE, NULL, 0,
8949 NULL, HFILL }},
8950 { &hf_p1_ORAddress_PDU,
8951 { "ORAddress", "p1.ORAddress_element",
8952 FT_NONE, BASE_NONE, NULL, 0,
8953 NULL, HFILL }},
8954 { &hf_p1_CommonName_PDU,
8955 { "CommonName", "p1.CommonName",
8956 FT_STRING, BASE_NONE, NULL, 0,
8957 NULL, HFILL }},
8958 { &hf_p1_TeletexCommonName_PDU,
8959 { "TeletexCommonName", "p1.TeletexCommonName",
8960 FT_STRING, BASE_NONE, NULL, 0,
8961 NULL, HFILL }},
8962 { &hf_p1_UniversalCommonName_PDU,
8963 { "UniversalCommonName", "p1.UniversalCommonName_element",
8964 FT_NONE, BASE_NONE, NULL, 0,
8965 NULL, HFILL }},
8966 { &hf_p1_TeletexOrganizationName_PDU,
8967 { "TeletexOrganizationName", "p1.TeletexOrganizationName",
8968 FT_STRING, BASE_NONE, NULL, 0,
8969 NULL, HFILL }},
8970 { &hf_p1_UniversalOrganizationName_PDU,
8971 { "UniversalOrganizationName", "p1.UniversalOrganizationName_element",
8972 FT_NONE, BASE_NONE, NULL, 0,
8973 NULL, HFILL }},
8974 { &hf_p1_TeletexPersonalName_PDU,
8975 { "TeletexPersonalName", "p1.TeletexPersonalName_element",
8976 FT_NONE, BASE_NONE, NULL, 0,
8977 NULL, HFILL }},
8978 { &hf_p1_UniversalPersonalName_PDU,
8979 { "UniversalPersonalName", "p1.UniversalPersonalName_element",
8980 FT_NONE, BASE_NONE, NULL, 0,
8981 NULL, HFILL }},
8982 { &hf_p1_TeletexOrganizationalUnitNames_PDU,
8983 { "TeletexOrganizationalUnitNames", "p1.TeletexOrganizationalUnitNames",
8984 FT_UINT32, BASE_DEC, NULL, 0,
8985 NULL, HFILL }},
8986 { &hf_p1_UniversalOrganizationalUnitNames_PDU,
8987 { "UniversalOrganizationalUnitNames", "p1.UniversalOrganizationalUnitNames",
8988 FT_UINT32, BASE_DEC, NULL, 0,
8989 NULL, HFILL }},
8990 { &hf_p1_PDSName_PDU,
8991 { "PDSName", "p1.PDSName",
8992 FT_STRING, BASE_NONE, NULL, 0,
8993 NULL, HFILL }},
8994 { &hf_p1_PhysicalDeliveryCountryName_PDU,
8995 { "PhysicalDeliveryCountryName", "p1.PhysicalDeliveryCountryName",
8996 FT_UINT32, BASE_DEC, VALS(p1_PhysicalDeliveryCountryName_vals), 0,
8997 NULL, HFILL }},
8998 { &hf_p1_PostalCode_PDU,
8999 { "PostalCode", "p1.PostalCode",
9000 FT_UINT32, BASE_DEC, VALS(p1_PostalCode_vals), 0,
9001 NULL, HFILL }},
9002 { &hf_p1_PhysicalDeliveryOfficeName_PDU,
9003 { "PhysicalDeliveryOfficeName", "p1.PhysicalDeliveryOfficeName_element",
9004 FT_NONE, BASE_NONE, NULL, 0,
9005 NULL, HFILL }},
9006 { &hf_p1_UniversalPhysicalDeliveryOfficeName_PDU,
9007 { "UniversalPhysicalDeliveryOfficeName", "p1.UniversalPhysicalDeliveryOfficeName_element",
9008 FT_NONE, BASE_NONE, NULL, 0,
9009 NULL, HFILL }},
9010 { &hf_p1_PhysicalDeliveryOfficeNumber_PDU,
9011 { "PhysicalDeliveryOfficeNumber", "p1.PhysicalDeliveryOfficeNumber_element",
9012 FT_NONE, BASE_NONE, NULL, 0,
9013 NULL, HFILL }},
9014 { &hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU,
9015 { "UniversalPhysicalDeliveryOfficeNumber", "p1.UniversalPhysicalDeliveryOfficeNumber_element",
9016 FT_NONE, BASE_NONE, NULL, 0,
9017 NULL, HFILL }},
9018 { &hf_p1_ExtensionORAddressComponents_PDU,
9019 { "ExtensionORAddressComponents", "p1.ExtensionORAddressComponents_element",
9020 FT_NONE, BASE_NONE, NULL, 0,
9021 NULL, HFILL }},
9022 { &hf_p1_UniversalExtensionORAddressComponents_PDU,
9023 { "UniversalExtensionORAddressComponents", "p1.UniversalExtensionORAddressComponents_element",
9024 FT_NONE, BASE_NONE, NULL, 0,
9025 NULL, HFILL }},
9026 { &hf_p1_PhysicalDeliveryPersonalName_PDU,
9027 { "PhysicalDeliveryPersonalName", "p1.PhysicalDeliveryPersonalName_element",
9028 FT_NONE, BASE_NONE, NULL, 0,
9029 NULL, HFILL }},
9030 { &hf_p1_UniversalPhysicalDeliveryPersonalName_PDU,
9031 { "UniversalPhysicalDeliveryPersonalName", "p1.UniversalPhysicalDeliveryPersonalName_element",
9032 FT_NONE, BASE_NONE, NULL, 0,
9033 NULL, HFILL }},
9034 { &hf_p1_PhysicalDeliveryOrganizationName_PDU,
9035 { "PhysicalDeliveryOrganizationName", "p1.PhysicalDeliveryOrganizationName_element",
9036 FT_NONE, BASE_NONE, NULL, 0,
9037 NULL, HFILL }},
9038 { &hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU,
9039 { "UniversalPhysicalDeliveryOrganizationName", "p1.UniversalPhysicalDeliveryOrganizationName_element",
9040 FT_NONE, BASE_NONE, NULL, 0,
9041 NULL, HFILL }},
9042 { &hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU,
9043 { "ExtensionPhysicalDeliveryAddressComponents", "p1.ExtensionPhysicalDeliveryAddressComponents_element",
9044 FT_NONE, BASE_NONE, NULL, 0,
9045 NULL, HFILL }},
9046 { &hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU,
9047 { "UniversalExtensionPhysicalDeliveryAddressComponents", "p1.UniversalExtensionPhysicalDeliveryAddressComponents_element",
9048 FT_NONE, BASE_NONE, NULL, 0,
9049 NULL, HFILL }},
9050 { &hf_p1_UnformattedPostalAddress_PDU,
9051 { "UnformattedPostalAddress", "p1.UnformattedPostalAddress_element",
9052 FT_NONE, BASE_NONE, NULL, 0,
9053 NULL, HFILL }},
9054 { &hf_p1_UniversalUnformattedPostalAddress_PDU,
9055 { "UniversalUnformattedPostalAddress", "p1.UniversalUnformattedPostalAddress_element",
9056 FT_NONE, BASE_NONE, NULL, 0,
9057 NULL, HFILL }},
9058 { &hf_p1_StreetAddress_PDU,
9059 { "StreetAddress", "p1.StreetAddress_element",
9060 FT_NONE, BASE_NONE, NULL, 0,
9061 NULL, HFILL }},
9062 { &hf_p1_UniversalStreetAddress_PDU,
9063 { "UniversalStreetAddress", "p1.UniversalStreetAddress_element",
9064 FT_NONE, BASE_NONE, NULL, 0,
9065 NULL, HFILL }},
9066 { &hf_p1_PostOfficeBoxAddress_PDU,
9067 { "PostOfficeBoxAddress", "p1.PostOfficeBoxAddress_element",
9068 FT_NONE, BASE_NONE, NULL, 0,
9069 NULL, HFILL }},
9070 { &hf_p1_UniversalPostOfficeBoxAddress_PDU,
9071 { "UniversalPostOfficeBoxAddress", "p1.UniversalPostOfficeBoxAddress_element",
9072 FT_NONE, BASE_NONE, NULL, 0,
9073 NULL, HFILL }},
9074 { &hf_p1_PosteRestanteAddress_PDU,
9075 { "PosteRestanteAddress", "p1.PosteRestanteAddress_element",
9076 FT_NONE, BASE_NONE, NULL, 0,
9077 NULL, HFILL }},
9078 { &hf_p1_UniversalPosteRestanteAddress_PDU,
9079 { "UniversalPosteRestanteAddress", "p1.UniversalPosteRestanteAddress_element",
9080 FT_NONE, BASE_NONE, NULL, 0,
9081 NULL, HFILL }},
9082 { &hf_p1_UniquePostalName_PDU,
9083 { "UniquePostalName", "p1.UniquePostalName_element",
9084 FT_NONE, BASE_NONE, NULL, 0,
9085 NULL, HFILL }},
9086 { &hf_p1_UniversalUniquePostalName_PDU,
9087 { "UniversalUniquePostalName", "p1.UniversalUniquePostalName_element",
9088 FT_NONE, BASE_NONE, NULL, 0,
9089 NULL, HFILL }},
9090 { &hf_p1_LocalPostalAttributes_PDU,
9091 { "LocalPostalAttributes", "p1.LocalPostalAttributes_element",
9092 FT_NONE, BASE_NONE, NULL, 0,
9093 NULL, HFILL }},
9094 { &hf_p1_UniversalLocalPostalAttributes_PDU,
9095 { "UniversalLocalPostalAttributes", "p1.UniversalLocalPostalAttributes_element",
9096 FT_NONE, BASE_NONE, NULL, 0,
9097 NULL, HFILL }},
9098 { &hf_p1_ExtendedNetworkAddress_PDU,
9099 { "ExtendedNetworkAddress", "p1.ExtendedNetworkAddress",
9100 FT_UINT32, BASE_DEC, VALS(p1_ExtendedNetworkAddress_vals), 0,
9101 NULL, HFILL }},
9102 { &hf_p1_TerminalType_PDU,
9103 { "TerminalType", "p1.TerminalType",
9104 FT_UINT32, BASE_DEC, VALS(p1_TerminalType_vals), 0,
9105 NULL, HFILL }},
9106 { &hf_p1_TeletexDomainDefinedAttributes_PDU,
9107 { "TeletexDomainDefinedAttributes", "p1.TeletexDomainDefinedAttributes",
9108 FT_UINT32, BASE_DEC, NULL, 0,
9109 NULL, HFILL }},
9110 { &hf_p1_UniversalDomainDefinedAttributes_PDU,
9111 { "UniversalDomainDefinedAttributes", "p1.UniversalDomainDefinedAttributes",
9112 FT_UINT32, BASE_DEC, NULL, 0,
9113 NULL, HFILL }},
9114 { &hf_p1_ExtendedEncodedInformationType_PDU,
9115 { "ExtendedEncodedInformationType", "p1.ExtendedEncodedInformationType",
9116 FT_OID, BASE_NONE, NULL, 0,
9117 NULL, HFILL }},
9118 { &hf_p1_MTANameAndOptionalGDI_PDU,
9119 { "MTANameAndOptionalGDI", "p1.MTANameAndOptionalGDI_element",
9120 FT_NONE, BASE_NONE, NULL, 0,
9121 NULL, HFILL }},
9122 { &hf_p1_AsymmetricToken_PDU,
9123 { "AsymmetricToken", "p1.AsymmetricToken_element",
9124 FT_NONE, BASE_NONE, NULL, 0,
9125 NULL, HFILL }},
9126 { &hf_p1_BindTokenSignedData_PDU,
9127 { "BindTokenSignedData", "p1.BindTokenSignedData",
9128 FT_BYTES, BASE_NONE, NULL, 0,
9129 NULL, HFILL }},
9130 { &hf_p1_MessageTokenSignedData_PDU,
9131 { "MessageTokenSignedData", "p1.MessageTokenSignedData_element",
9132 FT_NONE, BASE_NONE, NULL, 0,
9133 NULL, HFILL }},
9134 { &hf_p1_MessageTokenEncryptedData_PDU,
9135 { "MessageTokenEncryptedData", "p1.MessageTokenEncryptedData_element",
9136 FT_NONE, BASE_NONE, NULL, 0,
9137 NULL, HFILL }},
9138 { &hf_p1_BindTokenEncryptedData_PDU,
9139 { "BindTokenEncryptedData", "p1.BindTokenEncryptedData_element",
9140 FT_NONE, BASE_NONE, NULL, 0,
9141 NULL, HFILL }},
9142 { &hf_p1_SecurityClassification_PDU,
9143 { "SecurityClassification", "p1.SecurityClassification",
9144 FT_UINT32, BASE_DEC, VALS(p1_SecurityClassification_vals), 0,
9145 NULL, HFILL }},
9146 { &hf_p1_unauthenticated,
9147 { "unauthenticated", "p1.unauthenticated_element",
9148 FT_NONE, BASE_NONE, NULL, 0,
9149 NULL, HFILL }},
9150 { &hf_p1_authenticated_argument,
9151 { "authenticated", "p1.authenticated_element",
9152 FT_NONE, BASE_NONE, NULL, 0,
9153 "AuthenticatedArgument", HFILL }},
9154 { &hf_p1_authenticated_initiator_name,
9155 { "initiator-name", "p1.authenticated.initiator-name",
9156 FT_STRING, BASE_NONE, NULL, 0,
9157 "MTAName", HFILL }},
9158 { &hf_p1_initiator_credentials,
9159 { "initiator-credentials", "p1.initiator_credentials",
9160 FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9161 "InitiatorCredentials", HFILL }},
9162 { &hf_p1_security_context,
9163 { "security-context", "p1.security_context",
9164 FT_UINT32, BASE_DEC, NULL, 0,
9165 "SecurityContext", HFILL }},
9166 { &hf_p1_authenticated_result,
9167 { "authenticated", "p1.authenticated_element",
9168 FT_NONE, BASE_NONE, NULL, 0,
9169 "AuthenticatedResult", HFILL }},
9170 { &hf_p1_authenticated_responder_name,
9171 { "responder-name", "p1.authenticated.responder-name",
9172 FT_STRING, BASE_NONE, NULL, 0,
9173 "MTAName", HFILL }},
9174 { &hf_p1_responder_credentials,
9175 { "responder-credentials", "p1.responder_credentials",
9176 FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9177 "ResponderCredentials", HFILL }},
9178 { &hf_p1_message,
9179 { "message", "p1.message_element",
9180 FT_NONE, BASE_NONE, NULL, 0,
9181 NULL, HFILL }},
9182 { &hf_p1_probe,
9183 { "probe", "p1.probe_element",
9184 FT_NONE, BASE_NONE, NULL, 0,
9185 NULL, HFILL }},
9186 { &hf_p1_report,
9187 { "report", "p1.report_element",
9188 FT_NONE, BASE_NONE, NULL, 0,
9189 NULL, HFILL }},
9190 { &hf_p1_message_envelope,
9191 { "envelope", "p1.envelope_element",
9192 FT_NONE, BASE_NONE, NULL, 0,
9193 "MessageTransferEnvelope", HFILL }},
9194 { &hf_p1_content,
9195 { "content", "p1.content",
9196 FT_BYTES, BASE_NONE, NULL, 0,
9197 NULL, HFILL }},
9198 { &hf_p1_report_envelope,
9199 { "envelope", "p1.envelope_element",
9200 FT_NONE, BASE_NONE, NULL, 0,
9201 "ReportTransferEnvelope", HFILL }},
9202 { &hf_p1_report_content,
9203 { "content", "p1.content_element",
9204 FT_NONE, BASE_NONE, NULL, 0,
9205 "ReportTransferContent", HFILL }},
9206 { &hf_p1_message_identifier,
9207 { "message-identifier", "p1.message_identifier_element",
9208 FT_NONE, BASE_NONE, NULL, 0,
9209 "MessageIdentifier", HFILL }},
9210 { &hf_p1_perMessageTransferFields_originator_name,
9211 { "originator-name", "p1.perMessageTransferFields.originator-name_element",
9212 FT_NONE, BASE_NONE, NULL, 0,
9213 "MTAOriginatorName", HFILL }},
9214 { &hf_p1_original_encoded_information_types,
9215 { "original-encoded-information-types", "p1.original_encoded_information_types_element",
9216 FT_NONE, BASE_NONE, NULL, 0,
9217 "OriginalEncodedInformationTypes", HFILL }},
9218 { &hf_p1_content_type,
9219 { "content-type", "p1.content_type",
9220 FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9221 "ContentType", HFILL }},
9222 { &hf_p1_content_identifier,
9223 { "content-identifier", "p1.content_identifier",
9224 FT_STRING, BASE_NONE, NULL, 0,
9225 "ContentIdentifier", HFILL }},
9226 { &hf_p1_priority,
9227 { "priority", "p1.priority",
9228 FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9229 NULL, HFILL }},
9230 { &hf_p1_per_message_indicators,
9231 { "per-message-indicators", "p1.per_message_indicators",
9232 FT_BYTES, BASE_NONE, NULL, 0,
9233 "PerMessageIndicators", HFILL }},
9234 { &hf_p1_deferred_delivery_time,
9235 { "deferred-delivery-time", "p1.deferred_delivery_time",
9236 FT_STRING, BASE_NONE, NULL, 0,
9237 "DeferredDeliveryTime", HFILL }},
9238 { &hf_p1_per_domain_bilateral_information,
9239 { "per-domain-bilateral-information", "p1.per_domain_bilateral_information",
9240 FT_UINT32, BASE_DEC, NULL, 0,
9241 "SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation", HFILL }},
9242 { &hf_p1_per_domain_bilateral_information_item,
9243 { "PerDomainBilateralInformation", "p1.PerDomainBilateralInformation_element",
9244 FT_NONE, BASE_NONE, NULL, 0,
9245 NULL, HFILL }},
9246 { &hf_p1_trace_information,
9247 { "trace-information", "p1.trace_information",
9248 FT_UINT32, BASE_DEC, NULL, 0,
9249 "TraceInformation", HFILL }},
9250 { &hf_p1_extensions,
9251 { "extensions", "p1.extensions",
9252 FT_UINT32, BASE_DEC, NULL, 0,
9253 "SET_OF_ExtensionField", HFILL }},
9254 { &hf_p1_extensions_item,
9255 { "ExtensionField", "p1.ExtensionField_element",
9256 FT_NONE, BASE_NONE, NULL, 0,
9257 NULL, HFILL }},
9258 { &hf_p1_recipient_name,
9259 { "recipient-name", "p1.recipient_name_element",
9260 FT_NONE, BASE_NONE, NULL, 0,
9261 "MTARecipientName", HFILL }},
9262 { &hf_p1_originally_specified_recipient_number,
9263 { "originally-specified-recipient-number", "p1.originally_specified_recipient_number",
9264 FT_UINT32, BASE_DEC, NULL, 0,
9265 "OriginallySpecifiedRecipientNumber", HFILL }},
9266 { &hf_p1_per_recipient_indicators,
9267 { "per-recipient-indicators", "p1.per_recipient_indicators",
9268 FT_BYTES, BASE_NONE, NULL, 0,
9269 "PerRecipientIndicators", HFILL }},
9270 { &hf_p1_explicit_conversion,
9271 { "explicit-conversion", "p1.explicit_conversion",
9272 FT_UINT32, BASE_DEC, VALS(p1_ExplicitConversion_vals), 0,
9273 "ExplicitConversion", HFILL }},
9274 { &hf_p1_probe_identifier,
9275 { "probe-identifier", "p1.probe_identifier_element",
9276 FT_NONE, BASE_NONE, NULL, 0,
9277 "ProbeIdentifier", HFILL }},
9278 { &hf_p1_perProbeTransferFields_originator_name,
9279 { "originator-name", "p1.perProbeTransferFields.originator-name_element",
9280 FT_NONE, BASE_NONE, NULL, 0,
9281 "MTAOriginatorName", HFILL }},
9282 { &hf_p1_content_length,
9283 { "content-length", "p1.content_length",
9284 FT_UINT32, BASE_DEC, NULL, 0,
9285 "ContentLength", HFILL }},
9286 { &hf_p1_report_identifier,
9287 { "report-identifier", "p1.report_identifier_element",
9288 FT_NONE, BASE_NONE, NULL, 0,
9289 "ReportIdentifier", HFILL }},
9290 { &hf_p1_report_destination_name,
9291 { "report-destination-name", "p1.report_destination_name_element",
9292 FT_NONE, BASE_NONE, NULL, 0,
9293 "ReportDestinationName", HFILL }},
9294 { &hf_p1_subject_identifier,
9295 { "subject-identifier", "p1.subject_identifier_element",
9296 FT_NONE, BASE_NONE, NULL, 0,
9297 "SubjectIdentifier", HFILL }},
9298 { &hf_p1_subject_intermediate_trace_information,
9299 { "subject-intermediate-trace-information", "p1.subject_intermediate_trace_information",
9300 FT_UINT32, BASE_DEC, NULL, 0,
9301 "SubjectIntermediateTraceInformation", HFILL }},
9302 { &hf_p1_returned_content,
9303 { "returned-content", "p1.returned_content",
9304 FT_BYTES, BASE_NONE, NULL, 0,
9305 "Content", HFILL }},
9306 { &hf_p1_additional_information,
9307 { "additional-information", "p1.additional_information_element",
9308 FT_NONE, BASE_NONE, NULL, 0,
9309 "AdditionalInformation", HFILL }},
9310 { &hf_p1_mta_actual_recipient_name,
9311 { "actual-recipient-name", "p1.actual_recipient_name_element",
9312 FT_NONE, BASE_NONE, NULL, 0,
9313 "MTAActualRecipientName", HFILL }},
9314 { &hf_p1_last_trace_information,
9315 { "last-trace-information", "p1.last_trace_information_element",
9316 FT_NONE, BASE_NONE, NULL, 0,
9317 "LastTraceInformation", HFILL }},
9318 { &hf_p1_report_originally_intended_recipient_name,
9319 { "originally-intended-recipient-name", "p1.originally_intended_recipient_name_element",
9320 FT_NONE, BASE_NONE, NULL, 0,
9321 "OriginallyIntendedRecipientName", HFILL }},
9322 { &hf_p1_supplementary_information,
9323 { "supplementary-information", "p1.supplementary_information",
9324 FT_STRING, BASE_NONE, NULL, 0,
9325 "SupplementaryInformation", HFILL }},
9326 { &hf_p1_country_name,
9327 { "country-name", "p1.country_name",
9328 FT_UINT32, BASE_DEC, VALS(p1_CountryName_U_vals), 0,
9329 "CountryName", HFILL }},
9330 { &hf_p1_bilateral_domain,
9331 { "domain", "p1.domain",
9332 FT_UINT32, BASE_DEC, VALS(p1_T_bilateral_domain_vals), 0,
9333 "T_bilateral_domain", HFILL }},
9334 { &hf_p1_administration_domain_name,
9335 { "administration-domain-name", "p1.administration_domain_name",
9336 FT_UINT32, BASE_DEC, VALS(p1_AdministrationDomainName_U_vals), 0,
9337 "AdministrationDomainName", HFILL }},
9338 { &hf_p1_private_domain,
9339 { "private-domain", "p1.private_domain_element",
9340 FT_NONE, BASE_NONE, NULL, 0,
9341 NULL, HFILL }},
9342 { &hf_p1_private_domain_identifier,
9343 { "private-domain-identifier", "p1.private_domain_identifier",
9344 FT_UINT32, BASE_DEC, VALS(p1_PrivateDomainIdentifier_vals), 0,
9345 "PrivateDomainIdentifier", HFILL }},
9346 { &hf_p1_bilateral_information,
9347 { "bilateral-information", "p1.bilateral_information_element",
9348 FT_NONE, BASE_NONE, NULL, 0,
9349 NULL, HFILL }},
9350 { &hf_p1_arrival_time,
9351 { "arrival-time", "p1.arrival_time",
9352 FT_STRING, BASE_NONE, NULL, 0,
9353 "ArrivalTime", HFILL }},
9354 { &hf_p1_converted_encoded_information_types,
9355 { "converted-encoded-information-types", "p1.converted_encoded_information_types_element",
9356 FT_NONE, BASE_NONE, NULL, 0,
9357 "ConvertedEncodedInformationTypes", HFILL }},
9358 { &hf_p1_trace_report_type,
9359 { "report-type", "p1.report_type",
9360 FT_UINT32, BASE_DEC, VALS(p1_ReportType_vals), 0,
9361 "ReportType", HFILL }},
9362 { &hf_p1_InternalTraceInformation_item,
9363 { "InternalTraceInformationElement", "p1.InternalTraceInformationElement_element",
9364 FT_NONE, BASE_NONE, NULL, 0,
9365 NULL, HFILL }},
9366 { &hf_p1_global_domain_identifier,
9367 { "global-domain-identifier", "p1.global_domain_identifier_element",
9368 FT_NONE, BASE_NONE, NULL, 0,
9369 "GlobalDomainIdentifier", HFILL }},
9370 { &hf_p1_mta_name,
9371 { "mta-name", "p1.mta_name",
9372 FT_STRING, BASE_NONE, NULL, 0,
9373 "MTAName", HFILL }},
9374 { &hf_p1_mta_supplied_information,
9375 { "mta-supplied-information", "p1.mta_supplied_information_element",
9376 FT_NONE, BASE_NONE, NULL, 0,
9377 "MTASuppliedInformation", HFILL }},
9378 { &hf_p1__untag_item,
9379 { "TraceInformationElement", "p1.TraceInformationElement_element",
9380 FT_NONE, BASE_NONE, NULL, 0,
9381 NULL, HFILL }},
9382 { &hf_p1_domain_supplied_information,
9383 { "domain-supplied-information", "p1.domain_supplied_information_element",
9384 FT_NONE, BASE_NONE, NULL, 0,
9385 "DomainSuppliedInformation", HFILL }},
9386 { &hf_p1_deferred_time,
9387 { "deferred-time", "p1.deferred_time",
9388 FT_STRING, BASE_NONE, NULL, 0,
9389 "DeferredTime", HFILL }},
9390 { &hf_p1_other_actions,
9391 { "other-actions", "p1.other_actions",
9392 FT_BYTES, BASE_NONE, NULL, 0,
9393 "OtherActions", HFILL }},
9394 { &hf_p1_initiator_name,
9395 { "initiator-name", "p1.initiator_name",
9396 FT_UINT32, BASE_DEC, VALS(p1_ObjectName_vals), 0,
9397 "ObjectName", HFILL }},
9398 { &hf_p1_messages_waiting,
9399 { "messages-waiting", "p1.messages_waiting_element",
9400 FT_NONE, BASE_NONE, NULL, 0,
9401 "MessagesWaiting", HFILL }},
9402 { &hf_p1_responder_name,
9403 { "responder-name", "p1.responder_name",
9404 FT_UINT32, BASE_DEC, VALS(p1_ObjectName_vals), 0,
9405 "ObjectName", HFILL }},
9406 { &hf_p1_user_agent,
9407 { "user-agent", "p1.user_agent_element",
9408 FT_NONE, BASE_NONE, NULL, 0,
9409 "ORAddressAndOptionalDirectoryName", HFILL }},
9410 { &hf_p1_mTA,
9411 { "mTA", "p1.mTA",
9412 FT_STRING, BASE_NONE, NULL, 0,
9413 "MTAName", HFILL }},
9414 { &hf_p1_message_store,
9415 { "message-store", "p1.message_store_element",
9416 FT_NONE, BASE_NONE, NULL, 0,
9417 "ORAddressAndOptionalDirectoryName", HFILL }},
9418 { &hf_p1_urgent,
9419 { "urgent", "p1.urgent_element",
9420 FT_NONE, BASE_NONE, NULL, 0,
9421 "DeliveryQueue", HFILL }},
9422 { &hf_p1_normal,
9423 { "normal", "p1.normal_element",
9424 FT_NONE, BASE_NONE, NULL, 0,
9425 "DeliveryQueue", HFILL }},
9426 { &hf_p1_non_urgent,
9427 { "non-urgent", "p1.non_urgent_element",
9428 FT_NONE, BASE_NONE, NULL, 0,
9429 "DeliveryQueue", HFILL }},
9430 { &hf_p1_messages,
9431 { "messages", "p1.messages",
9432 FT_UINT32, BASE_DEC, NULL, 0,
9433 "INTEGER_0_ub_queue_size", HFILL }},
9434 { &hf_p1_delivery_queue_octets,
9435 { "octets", "p1.delivery-queue.octets",
9436 FT_UINT32, BASE_DEC, NULL, 0,
9437 "INTEGER_0_ub_content_length", HFILL }},
9438 { &hf_p1_simple,
9439 { "simple", "p1.simple",
9440 FT_UINT32, BASE_DEC, VALS(p1_Password_vals), 0,
9441 "Password", HFILL }},
9442 { &hf_p1_strong,
9443 { "strong", "p1.strong_element",
9444 FT_NONE, BASE_NONE, NULL, 0,
9445 "StrongCredentials", HFILL }},
9446 { &hf_p1_protected,
9447 { "protected", "p1.protected_element",
9448 FT_NONE, BASE_NONE, NULL, 0,
9449 "ProtectedPassword", HFILL }},
9450 { &hf_p1_ia5_string,
9451 { "ia5-string", "p1.ia5_string",
9452 FT_STRING, BASE_NONE, NULL, 0,
9453 "IA5String_SIZE_0_ub_password_length", HFILL }},
9454 { &hf_p1_octet_string,
9455 { "octet-string", "p1.octet_string",
9456 FT_BYTES, BASE_NONE, NULL, 0,
9457 "OCTET_STRING_SIZE_0_ub_password_length", HFILL }},
9458 { &hf_p1_bind_token,
9459 { "bind-token", "p1.bind_token_element",
9460 FT_NONE, BASE_NONE, NULL, 0,
9461 "Token", HFILL }},
9462 { &hf_p1_certificate,
9463 { "certificate", "p1.certificate_element",
9464 FT_NONE, BASE_NONE, NULL, 0,
9465 "Certificates", HFILL }},
9466 { &hf_p1_certificate_selector,
9467 { "certificate-selector", "p1.certificate_selector_element",
9468 FT_NONE, BASE_NONE, NULL, 0,
9469 "CertificateAssertion", HFILL }},
9470 { &hf_p1_signature,
9471 { "signature", "p1.signature_element",
9472 FT_NONE, BASE_NONE, NULL, 0,
9473 NULL, HFILL }},
9474 { &hf_p1_time1,
9475 { "time1", "p1.time1",
9476 FT_STRING, BASE_NONE, NULL, 0,
9477 "UTCTime", HFILL }},
9478 { &hf_p1_time2,
9479 { "time2", "p1.time2",
9480 FT_STRING, BASE_NONE, NULL, 0,
9481 "UTCTime", HFILL }},
9482 { &hf_p1_random1,
9483 { "random1", "p1.random1",
9484 FT_BYTES, BASE_NONE, NULL, 0,
9485 "BIT_STRING", HFILL }},
9486 { &hf_p1_random2,
9487 { "random2", "p1.random2",
9488 FT_BYTES, BASE_NONE, NULL, 0,
9489 "BIT_STRING", HFILL }},
9490 { &hf_p1_algorithmIdentifier,
9491 { "algorithmIdentifier", "p1.algorithmIdentifier_element",
9492 FT_NONE, BASE_NONE, NULL, 0,
9493 NULL, HFILL }},
9494 { &hf_p1_encrypted,
9495 { "encrypted", "p1.encrypted",
9496 FT_BYTES, BASE_NONE, NULL, 0,
9497 "BIT_STRING", HFILL }},
9498 { &hf_p1_SecurityContext_item,
9499 { "SecurityLabel", "p1.SecurityLabel_element",
9500 FT_NONE, BASE_NONE, NULL, 0,
9501 NULL, HFILL }},
9502 { &hf_p1_message_submission_envelope,
9503 { "envelope", "p1.envelope_element",
9504 FT_NONE, BASE_NONE, NULL, 0,
9505 "MessageSubmissionEnvelope", HFILL }},
9506 { &hf_p1_message_submission_identifier,
9507 { "message-submission-identifier", "p1.message_submission_identifier_element",
9508 FT_NONE, BASE_NONE, NULL, 0,
9509 "MessageSubmissionIdentifier", HFILL }},
9510 { &hf_p1_message_submission_time,
9511 { "message-submission-time", "p1.message_submission_time",
9512 FT_STRING, BASE_NONE, NULL, 0,
9513 "MessageSubmissionTime", HFILL }},
9514 { &hf_p1_probe_submission_identifier,
9515 { "probe-submission-identifier", "p1.probe_submission_identifier_element",
9516 FT_NONE, BASE_NONE, NULL, 0,
9517 "ProbeSubmissionIdentifier", HFILL }},
9518 { &hf_p1_probe_submission_time,
9519 { "probe-submission-time", "p1.probe_submission_time",
9520 FT_STRING, BASE_NONE, NULL, 0,
9521 "ProbeSubmissionTime", HFILL }},
9522 { &hf_p1_ImproperlySpecifiedRecipients_item,
9523 { "RecipientName", "p1.RecipientName_element",
9524 FT_NONE, BASE_NONE, NULL, 0,
9525 NULL, HFILL }},
9526 { &hf_p1_waiting_operations,
9527 { "waiting-operations", "p1.waiting_operations",
9528 FT_BYTES, BASE_NONE, NULL, 0,
9529 "Operations", HFILL }},
9530 { &hf_p1_waiting_messages,
9531 { "waiting-messages", "p1.waiting_messages",
9532 FT_BYTES, BASE_NONE, NULL, 0,
9533 "WaitingMessages", HFILL }},
9534 { &hf_p1_waiting_content_types,
9535 { "waiting-content-types", "p1.waiting_content_types",
9536 FT_UINT32, BASE_DEC, NULL, 0,
9537 "SET_SIZE_0_ub_content_types_OF_ContentType", HFILL }},
9538 { &hf_p1_waiting_content_types_item,
9539 { "ContentType", "p1.ContentType",
9540 FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9541 NULL, HFILL }},
9542 { &hf_p1_waiting_encoded_information_types,
9543 { "waiting-encoded-information-types", "p1.waiting_encoded_information_types_element",
9544 FT_NONE, BASE_NONE, NULL, 0,
9545 "EncodedInformationTypes", HFILL }},
9546 { &hf_p1_recipient_certificate,
9547 { "recipient-certificate", "p1.recipient_certificate_element",
9548 FT_NONE, BASE_NONE, NULL, 0,
9549 "RecipientCertificate", HFILL }},
9550 { &hf_p1_proof_of_delivery,
9551 { "proof-of-delivery", "p1.proof_of_delivery_element",
9552 FT_NONE, BASE_NONE, NULL, 0,
9553 "ProofOfDelivery", HFILL }},
9554 { &hf_p1_empty_result,
9555 { "empty-result", "p1.empty_result_element",
9556 FT_NONE, BASE_NONE, NULL, 0,
9557 NULL, HFILL }},
9558 { &hf_p1_max_extensions,
9559 { "extensions", "p1.extensions",
9560 FT_UINT32, BASE_DEC, NULL, 0,
9561 "SET_SIZE_1_MAX_OF_ExtensionField", HFILL }},
9562 { &hf_p1_max_extensions_item,
9563 { "ExtensionField", "p1.ExtensionField_element",
9564 FT_NONE, BASE_NONE, NULL, 0,
9565 NULL, HFILL }},
9566 { &hf_p1_restrict,
9567 { "restrict", "p1.restrict",
9568 FT_BOOLEAN, BASE_NONE, NULL, 0,
9569 "BOOLEAN", HFILL }},
9570 { &hf_p1_permissible_operations,
9571 { "permissible-operations", "p1.permissible_operations",
9572 FT_BYTES, BASE_NONE, NULL, 0,
9573 "Operations", HFILL }},
9574 { &hf_p1_permissible_maximum_content_length,
9575 { "permissible-maximum-content-length", "p1.permissible_maximum_content_length",
9576 FT_UINT32, BASE_DEC, NULL, 0,
9577 "ContentLength", HFILL }},
9578 { &hf_p1_permissible_lowest_priority,
9579 { "permissible-lowest-priority", "p1.permissible_lowest_priority",
9580 FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9581 "Priority", HFILL }},
9582 { &hf_p1_permissible_content_types,
9583 { "permissible-content-types", "p1.permissible_content_types",
9584 FT_UINT32, BASE_DEC, NULL, 0,
9585 "ContentTypes", HFILL }},
9586 { &hf_p1_permissible_encoded_information_types,
9587 { "permissible-encoded-information-types", "p1.permissible_encoded_information_types_element",
9588 FT_NONE, BASE_NONE, NULL, 0,
9589 "PermissibleEncodedInformationTypes", HFILL }},
9590 { &hf_p1_permissible_security_context,
9591 { "permissible-security-context", "p1.permissible_security_context",
9592 FT_UINT32, BASE_DEC, NULL, 0,
9593 "SecurityContext", HFILL }},
9594 { &hf_p1_refused_argument,
9595 { "refused-argument", "p1.refused_argument",
9596 FT_UINT32, BASE_DEC, VALS(p1_T_refused_argument_vals), 0,
9597 NULL, HFILL }},
9598 { &hf_p1_built_in_argument,
9599 { "built-in-argument", "p1.built_in_argument",
9600 FT_UINT32, BASE_DEC, VALS(p1_RefusedArgument_vals), 0,
9601 "RefusedArgument", HFILL }},
9602 { &hf_p1_refused_extension,
9603 { "refused-extension", "p1.refused_extension",
9604 FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9605 NULL, HFILL }},
9606 { &hf_p1_refusal_reason,
9607 { "refusal-reason", "p1.refusal_reason",
9608 FT_UINT32, BASE_DEC, VALS(p1_RefusalReason_vals), 0,
9609 "RefusalReason", HFILL }},
9610 { &hf_p1_user_name,
9611 { "user-name", "p1.user_name_element",
9612 FT_NONE, BASE_NONE, NULL, 0,
9613 "UserName", HFILL }},
9614 { &hf_p1_user_address,
9615 { "user-address", "p1.user_address",
9616 FT_UINT32, BASE_DEC, VALS(p1_UserAddress_vals), 0,
9617 "UserAddress", HFILL }},
9618 { &hf_p1_deliverable_class,
9619 { "deliverable-class", "p1.deliverable_class",
9620 FT_UINT32, BASE_DEC, NULL, 0,
9621 "SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass", HFILL }},
9622 { &hf_p1_deliverable_class_item,
9623 { "DeliverableClass", "p1.DeliverableClass_element",
9624 FT_NONE, BASE_NONE, NULL, 0,
9625 NULL, HFILL }},
9626 { &hf_p1_default_delivery_controls,
9627 { "default-delivery-controls", "p1.default_delivery_controls_element",
9628 FT_NONE, BASE_NONE, NULL, 0,
9629 "DefaultDeliveryControls", HFILL }},
9630 { &hf_p1_redirections,
9631 { "redirections", "p1.redirections",
9632 FT_UINT32, BASE_DEC, NULL, 0,
9633 NULL, HFILL }},
9634 { &hf_p1_restricted_delivery,
9635 { "restricted-delivery", "p1.restricted_delivery",
9636 FT_UINT32, BASE_DEC, NULL, 0,
9637 "RestrictedDelivery", HFILL }},
9638 { &hf_p1_retrieve_registrations,
9639 { "retrieve-registrations", "p1.retrieve_registrations_element",
9640 FT_NONE, BASE_NONE, NULL, 0,
9641 "RegistrationTypes", HFILL }},
9642 { &hf_p1_non_empty_result,
9643 { "non-empty-result", "p1.non_empty_result_element",
9644 FT_NONE, BASE_NONE, NULL, 0,
9645 NULL, HFILL }},
9646 { &hf_p1_registered_information,
9647 { "registered-information", "p1.registered_information_element",
9648 FT_NONE, BASE_NONE, NULL, 0,
9649 "RegisterArgument", HFILL }},
9650 { &hf_p1_old_credentials,
9651 { "old-credentials", "p1.old_credentials",
9652 FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9653 "Credentials", HFILL }},
9654 { &hf_p1_new_credentials,
9655 { "new-credentials", "p1.new_credentials",
9656 FT_UINT32, BASE_DEC, VALS(p1_Credentials_vals), 0,
9657 "Credentials", HFILL }},
9658 { &hf_p1_x121,
9659 { "x121", "p1.x121_element",
9660 FT_NONE, BASE_NONE, NULL, 0,
9661 NULL, HFILL }},
9662 { &hf_p1_x121_address,
9663 { "x121-address", "p1.x121_address",
9664 FT_STRING, BASE_NONE, NULL, 0,
9665 NULL, HFILL }},
9666 { &hf_p1_tsap_id,
9667 { "tsap-id", "p1.tsap_id",
9668 FT_STRING, BASE_NONE, NULL, 0,
9669 "PrintableString_SIZE_1_ub_tsap_id_length", HFILL }},
9670 { &hf_p1_presentation,
9671 { "presentation", "p1.presentation_element",
9672 FT_NONE, BASE_NONE, NULL, 0,
9673 "PSAPAddress", HFILL }},
9674 { &hf_p1_Redirections_item,
9675 { "RecipientRedirection", "p1.RecipientRedirection_element",
9676 FT_NONE, BASE_NONE, NULL, 0,
9677 NULL, HFILL }},
9678 { &hf_p1_redirection_classes,
9679 { "redirection-classes", "p1.redirection_classes",
9680 FT_UINT32, BASE_DEC, NULL, 0,
9681 "SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass", HFILL }},
9682 { &hf_p1_redirection_classes_item,
9683 { "RedirectionClass", "p1.RedirectionClass_element",
9684 FT_NONE, BASE_NONE, NULL, 0,
9685 NULL, HFILL }},
9686 { &hf_p1_recipient_assigned_alternate_recipient,
9687 { "recipient-assigned-alternate-recipient", "p1.recipient_assigned_alternate_recipient_element",
9688 FT_NONE, BASE_NONE, NULL, 0,
9689 "RecipientAssignedAlternateRecipient", HFILL }},
9690 { &hf_p1_content_types,
9691 { "content-types", "p1.content_types",
9692 FT_UINT32, BASE_DEC, NULL, 0,
9693 "ContentTypes", HFILL }},
9694 { &hf_p1_maximum_content_length,
9695 { "maximum-content-length", "p1.maximum_content_length",
9696 FT_UINT32, BASE_DEC, NULL, 0,
9697 "ContentLength", HFILL }},
9698 { &hf_p1_encoded_information_types_constraints,
9699 { "encoded-information-types-constraints", "p1.encoded_information_types_constraints_element",
9700 FT_NONE, BASE_NONE, NULL, 0,
9701 "EncodedInformationTypesConstraints", HFILL }},
9702 { &hf_p1_security_labels,
9703 { "security-labels", "p1.security_labels",
9704 FT_UINT32, BASE_DEC, NULL, 0,
9705 "SecurityContext", HFILL }},
9706 { &hf_p1_class_priority,
9707 { "priority", "p1.priority",
9708 FT_UINT32, BASE_DEC, NULL, 0,
9709 "SET_OF_Priority", HFILL }},
9710 { &hf_p1_class_priority_item,
9711 { "Priority", "p1.Priority",
9712 FT_UINT32, BASE_DEC, VALS(p1_Priority_U_vals), 0,
9713 NULL, HFILL }},
9714 { &hf_p1_objects,
9715 { "objects", "p1.objects",
9716 FT_UINT32, BASE_DEC, VALS(p1_T_objects_vals), 0,
9717 NULL, HFILL }},
9718 { &hf_p1_applies_only_to,
9719 { "applies-only-to", "p1.applies_only_to",
9720 FT_UINT32, BASE_DEC, NULL, 0,
9721 "SEQUENCE_OF_Restriction", HFILL }},
9722 { &hf_p1_applies_only_to_item,
9723 { "Restriction", "p1.Restriction_element",
9724 FT_NONE, BASE_NONE, NULL, 0,
9725 NULL, HFILL }},
9726 { &hf_p1_unacceptable_eits,
9727 { "unacceptable-eits", "p1.unacceptable_eits",
9728 FT_UINT32, BASE_DEC, NULL, 0,
9729 "ExtendedEncodedInformationTypes", HFILL }},
9730 { &hf_p1_acceptable_eits,
9731 { "acceptable-eits", "p1.acceptable_eits",
9732 FT_UINT32, BASE_DEC, NULL, 0,
9733 "ExtendedEncodedInformationTypes", HFILL }},
9734 { &hf_p1_exclusively_acceptable_eits,
9735 { "exclusively-acceptable-eits", "p1.exclusively_acceptable_eits",
9736 FT_UINT32, BASE_DEC, NULL, 0,
9737 "ExtendedEncodedInformationTypes", HFILL }},
9738 { &hf_p1_RestrictedDelivery_item,
9739 { "Restriction", "p1.Restriction_element",
9740 FT_NONE, BASE_NONE, NULL, 0,
9741 NULL, HFILL }},
9742 { &hf_p1_permitted,
9743 { "permitted", "p1.permitted",
9744 FT_BOOLEAN, BASE_NONE, NULL, 0,
9745 "BOOLEAN", HFILL }},
9746 { &hf_p1_source_type,
9747 { "source-type", "p1.source_type",
9748 FT_BYTES, BASE_NONE, NULL, 0,
9749 NULL, HFILL }},
9750 { &hf_p1_source_name,
9751 { "source-name", "p1.source_name",
9752 FT_UINT32, BASE_DEC, VALS(p1_ExactOrPattern_vals), 0,
9753 "ExactOrPattern", HFILL }},
9754 { &hf_p1_exact_match,
9755 { "exact-match", "p1.exact_match_element",
9756 FT_NONE, BASE_NONE, NULL, 0,
9757 "ORName", HFILL }},
9758 { &hf_p1_pattern_match,
9759 { "pattern-match", "p1.pattern_match_element",
9760 FT_NONE, BASE_NONE, NULL, 0,
9761 "ORName", HFILL }},
9762 { &hf_p1_standard_parameters,
9763 { "standard-parameters", "p1.standard_parameters",
9764 FT_BYTES, BASE_NONE, NULL, 0,
9765 NULL, HFILL }},
9766 { &hf_p1_type_extensions,
9767 { "extensions", "p1.extensions",
9768 FT_UINT32, BASE_DEC, NULL, 0,
9769 "T_type_extensions", HFILL }},
9770 { &hf_p1_type_extensions_item,
9771 { "extensions item", "p1.extensions_item",
9772 FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9773 "T_type_extensions_item", HFILL }},
9774 { &hf_p1_perMessageSubmissionFields_originator_name,
9775 { "originator-name", "p1.perMessageSubmissionFields.originator-name_element",
9776 FT_NONE, BASE_NONE, NULL, 0,
9777 "OriginatorName", HFILL }},
9778 { &hf_p1_submission_recipient_name,
9779 { "recipient-name", "p1.recipient_name_element",
9780 FT_NONE, BASE_NONE, NULL, 0,
9781 "RecipientName", HFILL }},
9782 { &hf_p1_originator_report_request,
9783 { "originator-report-request", "p1.originator_report_request",
9784 FT_BYTES, BASE_NONE, NULL, 0,
9785 "OriginatorReportRequest", HFILL }},
9786 { &hf_p1_perProbeSubmissionFields_originator_name,
9787 { "originator-name", "p1.perProbeSubmissionFields.originator-name_element",
9788 FT_NONE, BASE_NONE, NULL, 0,
9789 "OriginatorName", HFILL }},
9790 { &hf_p1_probe_recipient_name,
9791 { "recipient-name", "p1.recipient_name_element",
9792 FT_NONE, BASE_NONE, NULL, 0,
9793 "RecipientName", HFILL }},
9794 { &hf_p1_message_delivery_identifier,
9795 { "message-delivery-identifier", "p1.message_delivery_identifier_element",
9796 FT_NONE, BASE_NONE, NULL, 0,
9797 "MessageDeliveryIdentifier", HFILL }},
9798 { &hf_p1_message_delivery_time,
9799 { "message-delivery-time", "p1.message_delivery_time",
9800 FT_STRING, BASE_NONE, NULL, 0,
9801 "MessageDeliveryTime", HFILL }},
9802 { &hf_p1_other_fields,
9803 { "other-fields", "p1.other_fields_element",
9804 FT_NONE, BASE_NONE, NULL, 0,
9805 "OtherMessageDeliveryFields", HFILL }},
9806 { &hf_p1_delivered_content_type,
9807 { "content-type", "p1.content_type",
9808 FT_UINT32, BASE_DEC, VALS(p1_DeliveredContentType_vals), 0,
9809 "DeliveredContentType", HFILL }},
9810 { &hf_p1_delivered_originator_name,
9811 { "originator-name", "p1.originator_name_element",
9812 FT_NONE, BASE_NONE, NULL, 0,
9813 "DeliveredOriginatorName", HFILL }},
9814 { &hf_p1_delivery_flags,
9815 { "delivery-flags", "p1.delivery_flags",
9816 FT_BYTES, BASE_NONE, NULL, 0,
9817 "DeliveryFlags", HFILL }},
9818 { &hf_p1_other_recipient_names,
9819 { "other-recipient-names", "p1.other_recipient_names",
9820 FT_UINT32, BASE_DEC, NULL, 0,
9821 "OtherRecipientNames", HFILL }},
9822 { &hf_p1_this_recipient_name,
9823 { "this-recipient-name", "p1.this_recipient_name_element",
9824 FT_NONE, BASE_NONE, NULL, 0,
9825 "ThisRecipientName", HFILL }},
9826 { &hf_p1_originally_intended_recipient_name,
9827 { "originally-intended-recipient-name", "p1.originally_intended_recipient_name_element",
9828 FT_NONE, BASE_NONE, NULL, 0,
9829 "OriginallyIntendedRecipientName", HFILL }},
9830 { &hf_p1_subject_submission_identifier,
9831 { "subject-submission-identifier", "p1.subject_submission_identifier_element",
9832 FT_NONE, BASE_NONE, NULL, 0,
9833 "SubjectSubmissionIdentifier", HFILL }},
9834 { &hf_p1_actual_recipient_name,
9835 { "actual-recipient-name", "p1.actual_recipient_name_element",
9836 FT_NONE, BASE_NONE, NULL, 0,
9837 "ActualRecipientName", HFILL }},
9838 { &hf_p1_delivery_report_type,
9839 { "report-type", "p1.report_type",
9840 FT_UINT32, BASE_DEC, VALS(p1_ReportType_vals), 0,
9841 "ReportType", HFILL }},
9842 { &hf_p1_delivery,
9843 { "delivery", "p1.delivery_element",
9844 FT_NONE, BASE_NONE, NULL, 0,
9845 "DeliveryReport", HFILL }},
9846 { &hf_p1_non_delivery,
9847 { "non-delivery", "p1.non_delivery_element",
9848 FT_NONE, BASE_NONE, NULL, 0,
9849 "NonDeliveryReport", HFILL }},
9850 { &hf_p1_type_of_MTS_user,
9851 { "type-of-MTS-user", "p1.type_of_MTS_user",
9852 FT_UINT32, BASE_DEC, VALS(p1_TypeOfMTSUser_vals), 0,
9853 "TypeOfMTSUser", HFILL }},
9854 { &hf_p1_non_delivery_reason_code,
9855 { "non-delivery-reason-code", "p1.non_delivery_reason_code",
9856 FT_UINT32, BASE_DEC, VALS(p1_NonDeliveryReasonCode_vals), 0,
9857 "NonDeliveryReasonCode", HFILL }},
9858 { &hf_p1_non_delivery_diagnostic_code,
9859 { "non-delivery-diagnostic-code", "p1.non_delivery_diagnostic_code",
9860 FT_UINT32, BASE_DEC, VALS(p1_NonDeliveryDiagnosticCode_vals), 0,
9861 "NonDeliveryDiagnosticCode", HFILL }},
9862 { &hf_p1_ContentTypes_item,
9863 { "ContentType", "p1.ContentType",
9864 FT_UINT32, BASE_DEC, VALS(p1_ContentType_vals), 0,
9865 NULL, HFILL }},
9866 { &hf_p1_built_in,
9867 { "built-in", "p1.built_in",
9868 FT_UINT32, BASE_DEC, VALS(p1_BuiltInContentType_U_vals), 0,
9869 "BuiltInContentType", HFILL }},
9870 { &hf_p1_extended,
9871 { "extended", "p1.extended",
9872 FT_OID, BASE_NONE, NULL, 0,
9873 "ExtendedContentType", HFILL }},
9874 { &hf_p1_OtherRecipientNames_item,
9875 { "OtherRecipientName", "p1.OtherRecipientName_element",
9876 FT_NONE, BASE_NONE, NULL, 0,
9877 NULL, HFILL }},
9878 { &hf_p1_standard_extension,
9879 { "standard-extension", "p1.standard_extension",
9880 FT_INT32, BASE_DEC, VALS(p1_StandardExtension_vals), 0,
9881 "StandardExtension", HFILL }},
9882 { &hf_p1_private_extension,
9883 { "private-extension", "p1.private_extension",
9884 FT_OID, BASE_NONE, NULL, 0,
9885 NULL, HFILL }},
9886 { &hf_p1_extension_type,
9887 { "type", "p1.extension.type",
9888 FT_UINT32, BASE_DEC, VALS(p1_ExtensionType_vals), 0,
9889 "ExtensionType", HFILL }},
9890 { &hf_p1_criticality,
9891 { "criticality", "p1.criticality",
9892 FT_BYTES, BASE_NONE, NULL, 0,
9893 NULL, HFILL }},
9894 { &hf_p1_extension_value,
9895 { "value", "p1.value_element",
9896 FT_NONE, BASE_NONE, NULL, 0,
9897 "ExtensionValue", HFILL }},
9898 { &hf_p1_RequestedDeliveryMethod_item,
9899 { "RequestedDeliveryMethod item", "p1.RequestedDeliveryMethod_item",
9900 FT_UINT32, BASE_DEC, VALS(p1_RequestedDeliveryMethod_item_vals), 0,
9901 NULL, HFILL }},
9902 { &hf_p1_ia5text,
9903 { "ia5text", "p1.ia5text",
9904 FT_STRING, BASE_NONE, NULL, 0,
9905 "IA5String", HFILL }},
9906 { &hf_p1_octets,
9907 { "octets", "p1.octets",
9908 FT_BYTES, BASE_NONE, NULL, 0,
9909 "OCTET_STRING", HFILL }},
9910 { &hf_p1_RedirectionHistory_item,
9911 { "Redirection", "p1.Redirection_element",
9912 FT_NONE, BASE_NONE, NULL, 0,
9913 NULL, HFILL }},
9914 { &hf_p1_intended_recipient_name,
9915 { "intended-recipient-name", "p1.intended_recipient_name_element",
9916 FT_NONE, BASE_NONE, NULL, 0,
9917 "IntendedRecipientName", HFILL }},
9918 { &hf_p1_redirection_reason,
9919 { "redirection-reason", "p1.redirection_reason",
9920 FT_UINT32, BASE_DEC, VALS(p1_RedirectionReason_vals), 0,
9921 "RedirectionReason", HFILL }},
9922 { &hf_p1_intended_recipient,
9923 { "intended-recipient", "p1.intended_recipient_element",
9924 FT_NONE, BASE_NONE, NULL, 0,
9925 "ORAddressAndOptionalDirectoryName", HFILL }},
9926 { &hf_p1_redirection_time,
9927 { "redirection-time", "p1.redirection_time",
9928 FT_STRING, BASE_NONE, NULL, 0,
9929 "Time", HFILL }},
9930 { &hf_p1_DLExpansionHistory_item,
9931 { "DLExpansion", "p1.DLExpansion_element",
9932 FT_NONE, BASE_NONE, NULL, 0,
9933 NULL, HFILL }},
9934 { &hf_p1_dl,
9935 { "dl", "p1.dl_element",
9936 FT_NONE, BASE_NONE, NULL, 0,
9937 "ORAddressAndOptionalDirectoryName", HFILL }},
9938 { &hf_p1_dl_expansion_time,
9939 { "dl-expansion-time", "p1.dl_expansion_time",
9940 FT_STRING, BASE_NONE, NULL, 0,
9941 "Time", HFILL }},
9942 { &hf_p1_OriginatorAndDLExpansionHistory_item,
9943 { "OriginatorAndDLExpansion", "p1.OriginatorAndDLExpansion_element",
9944 FT_NONE, BASE_NONE, NULL, 0,
9945 NULL, HFILL }},
9946 { &hf_p1_originator_or_dl_name,
9947 { "originator-or-dl-name", "p1.originator_or_dl_name_element",
9948 FT_NONE, BASE_NONE, NULL, 0,
9949 "ORAddressAndOptionalDirectoryName", HFILL }},
9950 { &hf_p1_origination_or_expansion_time,
9951 { "origination-or-expansion-time", "p1.origination_or_expansion_time",
9952 FT_STRING, BASE_NONE, NULL, 0,
9953 "Time", HFILL }},
9954 { &hf_p1_domain,
9955 { "domain", "p1.domain_element",
9956 FT_NONE, BASE_NONE, NULL, 0,
9957 "GlobalDomainIdentifier", HFILL }},
9958 { &hf_p1_mta_directory_name,
9959 { "mta-directory-name", "p1.mta_directory_name",
9960 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9961 "Name", HFILL }},
9962 { &hf_p1_ExtendedCertificates_item,
9963 { "ExtendedCertificate", "p1.ExtendedCertificate",
9964 FT_UINT32, BASE_DEC, VALS(p1_ExtendedCertificate_vals), 0,
9965 NULL, HFILL }},
9966 { &hf_p1_directory_entry,
9967 { "directory-entry", "p1.directory_entry",
9968 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
9969 "Name", HFILL }},
9970 { &hf_p1_DLExemptedRecipients_item,
9971 { "ORAddressAndOrDirectoryName", "p1.ORAddressAndOrDirectoryName_element",
9972 FT_NONE, BASE_NONE, NULL, 0,
9973 NULL, HFILL }},
9974 { &hf_p1_encryption_recipient,
9975 { "encryption-recipient", "p1.encryption_recipient_element",
9976 FT_NONE, BASE_NONE, NULL, 0,
9977 "CertificateAssertion", HFILL }},
9978 { &hf_p1_encryption_originator,
9979 { "encryption-originator", "p1.encryption_originator_element",
9980 FT_NONE, BASE_NONE, NULL, 0,
9981 "CertificateAssertion", HFILL }},
9982 { &hf_p1_selectors_content_integrity_check,
9983 { "content-integrity-check", "p1.content_integrity_check_element",
9984 FT_NONE, BASE_NONE, NULL, 0,
9985 "CertificateAssertion", HFILL }},
9986 { &hf_p1_token_signature,
9987 { "token-signature", "p1.token_signature_element",
9988 FT_NONE, BASE_NONE, NULL, 0,
9989 "CertificateAssertion", HFILL }},
9990 { &hf_p1_message_origin_authentication,
9991 { "message-origin-authentication", "p1.message_origin_authentication_element",
9992 FT_NONE, BASE_NONE, NULL, 0,
9993 "CertificateAssertion", HFILL }},
9994 { &hf_p1_local_identifier,
9995 { "local-identifier", "p1.local_identifier",
9996 FT_STRING, BASE_NONE, NULL, 0,
9997 "LocalIdentifier", HFILL }},
9998 { &hf_p1_numeric_private_domain_identifier,
9999 { "numeric", "p1.numeric",
10000 FT_STRING, BASE_NONE, NULL, 0,
10001 "T_numeric_private_domain_identifier", HFILL }},
10002 { &hf_p1_printable_private_domain_identifier,
10003 { "printable", "p1.printable",
10004 FT_STRING, BASE_NONE, NULL, 0,
10005 "T_printable_private_domain_identifier", HFILL }},
10006 { &hf_p1_built_in_standard_attributes,
10007 { "built-in-standard-attributes", "p1.built_in_standard_attributes_element",
10008 FT_NONE, BASE_NONE, NULL, 0,
10009 "BuiltInStandardAttributes", HFILL }},
10010 { &hf_p1_built_in_domain_defined_attributes,
10011 { "built-in-domain-defined-attributes", "p1.built_in_domain_defined_attributes",
10012 FT_UINT32, BASE_DEC, NULL, 0,
10013 "BuiltInDomainDefinedAttributes", HFILL }},
10014 { &hf_p1_extension_attributes,
10015 { "extension-attributes", "p1.extension_attributes",
10016 FT_UINT32, BASE_DEC, NULL, 0,
10017 "ExtensionAttributes", HFILL }},
10018 { &hf_p1_network_address,
10019 { "network-address", "p1.network_address",
10020 FT_STRING, BASE_NONE, NULL, 0,
10021 "NetworkAddress", HFILL }},
10022 { &hf_p1_terminal_identifier,
10023 { "terminal-identifier", "p1.terminal_identifier",
10024 FT_STRING, BASE_NONE, NULL, 0,
10025 "TerminalIdentifier", HFILL }},
10026 { &hf_p1_private_domain_name,
10027 { "private-domain-name", "p1.private_domain_name",
10028 FT_UINT32, BASE_DEC, VALS(p1_PrivateDomainName_vals), 0,
10029 "PrivateDomainName", HFILL }},
10030 { &hf_p1_organization_name,
10031 { "organization-name", "p1.organization_name",
10032 FT_STRING, BASE_NONE, NULL, 0,
10033 "OrganizationName", HFILL }},
10034 { &hf_p1_numeric_user_identifier,
10035 { "numeric-user-identifier", "p1.numeric_user_identifier",
10036 FT_STRING, BASE_NONE, NULL, 0,
10037 "NumericUserIdentifier", HFILL }},
10038 { &hf_p1_personal_name,
10039 { "personal-name", "p1.personal_name_element",
10040 FT_NONE, BASE_NONE, NULL, 0,
10041 "PersonalName", HFILL }},
10042 { &hf_p1_organizational_unit_names,
10043 { "organizational-unit-names", "p1.organizational_unit_names",
10044 FT_UINT32, BASE_DEC, NULL, 0,
10045 "OrganizationalUnitNames", HFILL }},
10046 { &hf_p1_x121_dcc_code,
10047 { "x121-dcc-code", "p1.x121_dcc_code",
10048 FT_STRING, BASE_NONE, NULL, 0,
10049 NULL, HFILL }},
10050 { &hf_p1_iso_3166_alpha2_code,
10051 { "iso-3166-alpha2-code", "p1.iso_3166_alpha2_code",
10052 FT_STRING, BASE_NONE, NULL, 0,
10053 NULL, HFILL }},
10054 { &hf_p1_numeric,
10055 { "numeric", "p1.numeric",
10056 FT_STRING, BASE_NONE, NULL, 0,
10057 NULL, HFILL }},
10058 { &hf_p1_printable,
10059 { "printable", "p1.printable",
10060 FT_STRING, BASE_NONE, NULL, 0,
10061 NULL, HFILL }},
10062 { &hf_p1_numeric_private_domain_name,
10063 { "numeric", "p1.numeric",
10064 FT_STRING, BASE_NONE, NULL, 0,
10065 "T_numeric_private_domain_name", HFILL }},
10066 { &hf_p1_printable_private_domain_name,
10067 { "printable", "p1.printable",
10068 FT_STRING, BASE_NONE, NULL, 0,
10069 "T_printable_private_domain_name", HFILL }},
10070 { &hf_p1_printable_surname,
10071 { "surname", "p1.surname",
10072 FT_STRING, BASE_NONE, NULL, 0,
10073 "T_printable_surname", HFILL }},
10074 { &hf_p1_printable_given_name,
10075 { "given-name", "p1.given_name",
10076 FT_STRING, BASE_NONE, NULL, 0,
10077 "T_printable_given_name", HFILL }},
10078 { &hf_p1_printable_initials,
10079 { "initials", "p1.initials",
10080 FT_STRING, BASE_NONE, NULL, 0,
10081 "T_printable_initials", HFILL }},
10082 { &hf_p1_printable_generation_qualifier,
10083 { "generation-qualifier", "p1.generation_qualifier",
10084 FT_STRING, BASE_NONE, NULL, 0,
10085 "T_printable_generation_qualifier", HFILL }},
10086 { &hf_p1_OrganizationalUnitNames_item,
10087 { "OrganizationalUnitName", "p1.OrganizationalUnitName",
10088 FT_STRING, BASE_NONE, NULL, 0,
10089 NULL, HFILL }},
10090 { &hf_p1_BuiltInDomainDefinedAttributes_item,
10091 { "BuiltInDomainDefinedAttribute", "p1.BuiltInDomainDefinedAttribute_element",
10092 FT_NONE, BASE_NONE, NULL, 0,
10093 NULL, HFILL }},
10094 { &hf_p1_printable_type,
10095 { "type", "p1.printable.type",
10096 FT_STRING, BASE_NONE, NULL, 0,
10097 "T_printable_type", HFILL }},
10098 { &hf_p1_printable_value,
10099 { "value", "p1.value",
10100 FT_STRING, BASE_NONE, NULL, 0,
10101 "T_printable_value", HFILL }},
10102 { &hf_p1_ExtensionAttributes_item,
10103 { "ExtensionAttribute", "p1.ExtensionAttribute_element",
10104 FT_NONE, BASE_NONE, NULL, 0,
10105 NULL, HFILL }},
10106 { &hf_p1_extension_attribute_type,
10107 { "extension-attribute-type", "p1.extension_attribute_type",
10108 FT_INT32, BASE_DEC, VALS(p1_ExtensionAttributeType_vals), 0,
10109 "ExtensionAttributeType", HFILL }},
10110 { &hf_p1_extension_attribute_value,
10111 { "extension-attribute-value", "p1.extension_attribute_value_element",
10112 FT_NONE, BASE_NONE, NULL, 0,
10113 NULL, HFILL }},
10114 { &hf_p1_teletex_surname,
10115 { "surname", "p1.surname",
10116 FT_STRING, BASE_NONE, NULL, 0,
10117 "T_teletex_surname", HFILL }},
10118 { &hf_p1_teletex_given_name,
10119 { "given-name", "p1.given_name",
10120 FT_STRING, BASE_NONE, NULL, 0,
10121 "T_teletex_given_name", HFILL }},
10122 { &hf_p1_teletex_initials,
10123 { "initials", "p1.initials",
10124 FT_STRING, BASE_NONE, NULL, 0,
10125 "T_teletex_initials", HFILL }},
10126 { &hf_p1_teletex_generation_qualifier,
10127 { "generation-qualifier", "p1.generation_qualifier",
10128 FT_STRING, BASE_NONE, NULL, 0,
10129 "T_teletex_generation_qualifier", HFILL }},
10130 { &hf_p1_universal_surname,
10131 { "surname", "p1.surname_element",
10132 FT_NONE, BASE_NONE, NULL, 0,
10133 "UniversalOrBMPString", HFILL }},
10134 { &hf_p1_universal_given_name,
10135 { "given-name", "p1.given_name_element",
10136 FT_NONE, BASE_NONE, NULL, 0,
10137 "UniversalOrBMPString", HFILL }},
10138 { &hf_p1_universal_initials,
10139 { "initials", "p1.initials_element",
10140 FT_NONE, BASE_NONE, NULL, 0,
10141 "UniversalOrBMPString", HFILL }},
10142 { &hf_p1_universal_generation_qualifier,
10143 { "generation-qualifier", "p1.generation_qualifier_element",
10144 FT_NONE, BASE_NONE, NULL, 0,
10145 "UniversalOrBMPString", HFILL }},
10146 { &hf_p1_TeletexOrganizationalUnitNames_item,
10147 { "TeletexOrganizationalUnitName", "p1.TeletexOrganizationalUnitName",
10148 FT_STRING, BASE_NONE, NULL, 0,
10149 NULL, HFILL }},
10150 { &hf_p1_UniversalOrganizationalUnitNames_item,
10151 { "UniversalOrganizationalUnitName", "p1.UniversalOrganizationalUnitName_element",
10152 FT_NONE, BASE_NONE, NULL, 0,
10153 NULL, HFILL }},
10154 { &hf_p1_character_encoding,
10155 { "character-encoding", "p1.character_encoding",
10156 FT_UINT32, BASE_DEC, VALS(p1_T_character_encoding_vals), 0,
10157 NULL, HFILL }},
10158 { &hf_p1_two_octets,
10159 { "two-octets", "p1.two_octets",
10160 FT_STRING, BASE_NONE, NULL, 0,
10161 "BMPString_SIZE_1_ub_string_length", HFILL }},
10162 { &hf_p1_four_octets,
10163 { "four-octets", "p1.four_octets",
10164 FT_STRING, BASE_NONE, NULL, 0,
10165 "UniversalString_SIZE_1_ub_string_length", HFILL }},
10166 { &hf_p1_iso_639_language_code,
10167 { "iso-639-language-code", "p1.iso_639_language_code",
10168 FT_STRING, BASE_NONE, NULL, 0,
10169 "PrintableString_SIZE_CONSTR001", HFILL }},
10170 { &hf_p1_x121_dcc_code_01,
10171 { "x121-dcc-code", "p1.x121_dcc_code",
10172 FT_STRING, BASE_NONE, NULL, 0,
10173 "T_x121_dcc_code_01", HFILL }},
10174 { &hf_p1_iso_3166_alpha2_code_01,
10175 { "iso-3166-alpha2-code", "p1.iso_3166_alpha2_code",
10176 FT_STRING, BASE_NONE, NULL, 0,
10177 "T_iso_3166_alpha2_code_01", HFILL }},
10178 { &hf_p1_numeric_code,
10179 { "numeric-code", "p1.numeric_code",
10180 FT_STRING, BASE_NONE, NULL, 0,
10181 NULL, HFILL }},
10182 { &hf_p1_printable_code,
10183 { "printable-code", "p1.printable_code",
10184 FT_STRING, BASE_NONE, NULL, 0,
10185 "PrintableString_SIZE_1_ub_postal_code_length", HFILL }},
10186 { &hf_p1_printable_address,
10187 { "printable-address", "p1.printable_address",
10188 FT_UINT32, BASE_DEC, NULL, 0,
10189 NULL, HFILL }},
10190 { &hf_p1_printable_address_item,
10191 { "printable-address item", "p1.printable_address_item",
10192 FT_STRING, BASE_NONE, NULL, 0,
10193 "PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10194 { &hf_p1_teletex_string,
10195 { "teletex-string", "p1.teletex_string",
10196 FT_STRING, BASE_NONE, NULL, 0,
10197 "TeletexString_SIZE_1_ub_unformatted_address_length", HFILL }},
10198 { &hf_p1_printable_string,
10199 { "printable-string", "p1.printable_string",
10200 FT_STRING, BASE_NONE, NULL, 0,
10201 "PrintableString_SIZE_1_ub_pds_parameter_length", HFILL }},
10202 { &hf_p1_pds_teletex_string,
10203 { "teletex-string", "p1.teletex_string",
10204 FT_STRING, BASE_NONE, NULL, 0,
10205 "TeletexString_SIZE_1_ub_pds_parameter_length", HFILL }},
10206 { &hf_p1_e163_4_address,
10207 { "e163-4-address", "p1.e163_4_address_element",
10208 FT_NONE, BASE_NONE, NULL, 0,
10209 NULL, HFILL }},
10210 { &hf_p1_number,
10211 { "number", "p1.number",
10212 FT_STRING, BASE_NONE, NULL, 0,
10213 "NumericString_SIZE_1_ub_e163_4_number_length", HFILL }},
10214 { &hf_p1_sub_address,
10215 { "sub-address", "p1.sub_address",
10216 FT_STRING, BASE_NONE, NULL, 0,
10217 "NumericString_SIZE_1_ub_e163_4_sub_address_length", HFILL }},
10218 { &hf_p1_psap_address,
10219 { "psap-address", "p1.psap_address_element",
10220 FT_NONE, BASE_NONE, NULL, 0,
10221 "PresentationAddress", HFILL }},
10222 { &hf_p1_TeletexDomainDefinedAttributes_item,
10223 { "TeletexDomainDefinedAttribute", "p1.TeletexDomainDefinedAttribute_element",
10224 FT_NONE, BASE_NONE, NULL, 0,
10225 NULL, HFILL }},
10226 { &hf_p1_type,
10227 { "type", "p1.type",
10228 FT_STRING, BASE_NONE, NULL, 0,
10229 NULL, HFILL }},
10230 { &hf_p1_teletex_value,
10231 { "value", "p1.value",
10232 FT_STRING, BASE_NONE, NULL, 0,
10233 "T_teletex_value", HFILL }},
10234 { &hf_p1_UniversalDomainDefinedAttributes_item,
10235 { "UniversalDomainDefinedAttribute", "p1.UniversalDomainDefinedAttribute_element",
10236 FT_NONE, BASE_NONE, NULL, 0,
10237 NULL, HFILL }},
10238 { &hf_p1_universal_type,
10239 { "type", "p1.universal.type_element",
10240 FT_NONE, BASE_NONE, NULL, 0,
10241 "UniversalOrBMPString", HFILL }},
10242 { &hf_p1_universal_value,
10243 { "value", "p1.value_element",
10244 FT_NONE, BASE_NONE, NULL, 0,
10245 "UniversalOrBMPString", HFILL }},
10246 { &hf_p1_ExtendedEncodedInformationTypes_item,
10247 { "ExtendedEncodedInformationType", "p1.ExtendedEncodedInformationType",
10248 FT_OID, BASE_NONE, NULL, 0,
10249 NULL, HFILL }},
10250 { &hf_p1_g3_facsimile,
10251 { "g3-facsimile", "p1.g3_facsimile",
10252 FT_BYTES, BASE_NONE, NULL, 0,
10253 "G3FacsimileNonBasicParameters", HFILL }},
10254 { &hf_p1_teletex,
10255 { "teletex", "p1.teletex_element",
10256 FT_NONE, BASE_NONE, NULL, 0,
10257 "TeletexNonBasicParameters", HFILL }},
10258 { &hf_p1_graphic_character_sets,
10259 { "graphic-character-sets", "p1.graphic_character_sets",
10260 FT_STRING, BASE_NONE, NULL, 0,
10261 "TeletexString", HFILL }},
10262 { &hf_p1_control_character_sets,
10263 { "control-character-sets", "p1.control_character_sets",
10264 FT_STRING, BASE_NONE, NULL, 0,
10265 "TeletexString", HFILL }},
10266 { &hf_p1_page_formats,
10267 { "page-formats", "p1.page_formats",
10268 FT_BYTES, BASE_NONE, NULL, 0,
10269 "OCTET_STRING", HFILL }},
10270 { &hf_p1_miscellaneous_terminal_capabilities,
10271 { "miscellaneous-terminal-capabilities", "p1.miscellaneous_terminal_capabilities",
10272 FT_STRING, BASE_NONE, NULL, 0,
10273 "TeletexString", HFILL }},
10274 { &hf_p1_private_use,
10275 { "private-use", "p1.private_use",
10276 FT_BYTES, BASE_NONE, NULL, 0,
10277 "OCTET_STRING", HFILL }},
10278 { &hf_p1_token_type_identifier,
10279 { "token-type-identifier", "p1.token_type_identifier",
10280 FT_OID, BASE_NONE, NULL, 0,
10281 "TokenTypeIdentifier", HFILL }},
10282 { &hf_p1_token,
10283 { "token", "p1.token_element",
10284 FT_NONE, BASE_NONE, NULL, 0,
10285 "TokenTypeData", HFILL }},
10286 { &hf_p1_signature_algorithm_identifier,
10287 { "signature-algorithm-identifier", "p1.signature_algorithm_identifier_element",
10288 FT_NONE, BASE_NONE, NULL, 0,
10289 "AlgorithmIdentifier", HFILL }},
10290 { &hf_p1_name,
10291 { "name", "p1.name",
10292 FT_UINT32, BASE_DEC, VALS(p1_T_name_vals), 0,
10293 NULL, HFILL }},
10294 { &hf_p1_token_recipient_name,
10295 { "recipient-name", "p1.recipient_name_element",
10296 FT_NONE, BASE_NONE, NULL, 0,
10297 "RecipientName", HFILL }},
10298 { &hf_p1_token_mta,
10299 { "mta", "p1.mta_element",
10300 FT_NONE, BASE_NONE, NULL, 0,
10301 "MTANameAndOptionalGDI", HFILL }},
10302 { &hf_p1_time,
10303 { "time", "p1.time",
10304 FT_STRING, BASE_NONE, NULL, 0,
10305 NULL, HFILL }},
10306 { &hf_p1_signed_data,
10307 { "signed-data", "p1.signed_data_element",
10308 FT_NONE, BASE_NONE, NULL, 0,
10309 "TokenData", HFILL }},
10310 { &hf_p1_encryption_algorithm_identifier,
10311 { "encryption-algorithm-identifier", "p1.encryption_algorithm_identifier_element",
10312 FT_NONE, BASE_NONE, NULL, 0,
10313 "AlgorithmIdentifier", HFILL }},
10314 { &hf_p1_encrypted_data,
10315 { "encrypted-data", "p1.encrypted_data",
10316 FT_BYTES, BASE_NONE, NULL, 0,
10317 "BIT_STRING", HFILL }},
10318 { &hf_p1_asymmetric_token_data,
10319 { "asymmetric-token-data", "p1.asymmetric_token_data_element",
10320 FT_NONE, BASE_NONE, NULL, 0,
10321 "AsymmetricTokenData", HFILL }},
10322 { &hf_p1_algorithm_identifier,
10323 { "algorithm-identifier", "p1.algorithm_identifier_element",
10324 FT_NONE, BASE_NONE, NULL, 0,
10325 "AlgorithmIdentifier", HFILL }},
10326 { &hf_p1_token_data_type,
10327 { "type", "p1.token-data-type",
10328 FT_INT32, BASE_DEC, VALS(p1_TokenDataType_vals), 0,
10329 "TokenDataType", HFILL }},
10330 { &hf_p1_value,
10331 { "value", "p1.value_element",
10332 FT_NONE, BASE_NONE, NULL, 0,
10333 NULL, HFILL }},
10334 { &hf_p1_content_confidentiality_algorithm_identifier,
10335 { "content-confidentiality-algorithm-identifier", "p1.content_confidentiality_algorithm_identifier_element",
10336 FT_NONE, BASE_NONE, NULL, 0,
10337 "ContentConfidentialityAlgorithmIdentifier", HFILL }},
10338 { &hf_p1_content_integrity_check,
10339 { "content-integrity-check", "p1.content_integrity_check_element",
10340 FT_NONE, BASE_NONE, NULL, 0,
10341 "ContentIntegrityCheck", HFILL }},
10342 { &hf_p1_message_security_label,
10343 { "message-security-label", "p1.message_security_label_element",
10344 FT_NONE, BASE_NONE, NULL, 0,
10345 "MessageSecurityLabel", HFILL }},
10346 { &hf_p1_proof_of_delivery_request,
10347 { "proof-of-delivery-request", "p1.proof_of_delivery_request",
10348 FT_UINT32, BASE_DEC, VALS(p1_ProofOfDeliveryRequest_vals), 0,
10349 "ProofOfDeliveryRequest", HFILL }},
10350 { &hf_p1_message_sequence_number,
10351 { "message-sequence-number", "p1.message_sequence_number",
10352 FT_INT32, BASE_DEC, NULL, 0,
10353 "INTEGER", HFILL }},
10354 { &hf_p1_content_confidentiality_key,
10355 { "content-confidentiality-key", "p1.content_confidentiality_key",
10356 FT_BYTES, BASE_NONE, NULL, 0,
10357 "EncryptionKey", HFILL }},
10358 { &hf_p1_content_integrity_key,
10359 { "content-integrity-key", "p1.content_integrity_key",
10360 FT_BYTES, BASE_NONE, NULL, 0,
10361 "EncryptionKey", HFILL }},
10362 { &hf_p1_security_policy_identifier,
10363 { "security-policy-identifier", "p1.security_policy_identifier",
10364 FT_OID, BASE_NONE, NULL, 0,
10365 "SecurityPolicyIdentifier", HFILL }},
10366 { &hf_p1_security_classification,
10367 { "security-classification", "p1.security_classification",
10368 FT_UINT32, BASE_DEC, VALS(p1_SecurityClassification_vals), 0,
10369 "SecurityClassification", HFILL }},
10370 { &hf_p1_privacy_mark,
10371 { "privacy-mark", "p1.privacy_mark",
10372 FT_STRING, BASE_NONE, NULL, 0,
10373 "PrivacyMark", HFILL }},
10374 { &hf_p1_security_categories,
10375 { "security-categories", "p1.security_categories",
10376 FT_UINT32, BASE_DEC, NULL, 0,
10377 "SecurityCategories", HFILL }},
10378 { &hf_p1_SecurityCategories_item,
10379 { "SecurityCategory", "p1.SecurityCategory_element",
10380 FT_NONE, BASE_NONE, NULL, 0,
10381 NULL, HFILL }},
10382 { &hf_p1_category_type,
10383 { "type", "p1.category.type",
10384 FT_OID, BASE_NONE, NULL, 0,
10385 "SecurityCategoryIdentifier", HFILL }},
10386 { &hf_p1_category_value,
10387 { "value", "p1.value_element",
10388 FT_NONE, BASE_NONE, NULL, 0,
10389 "CategoryValue", HFILL }},
10390 { &hf_p1_mta_originator_name,
10391 { "originator-name", "p1.originator_name_element",
10392 FT_NONE, BASE_NONE, NULL, 0,
10393 "MTAOriginatorName", HFILL }},
10394 { &hf_p1_per_recipient_message_fields,
10395 { "per-recipient-fields", "p1.per_recipient_fields",
10396 FT_UINT32, BASE_DEC, NULL, 0,
10397 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields", HFILL }},
10398 { &hf_p1_per_recipient_message_fields_item,
10399 { "PerRecipientMessageTransferFields", "p1.PerRecipientMessageTransferFields_element",
10400 FT_NONE, BASE_NONE, NULL, 0,
10401 NULL, HFILL }},
10402 { &hf_p1_per_recipient_probe_transfer_fields,
10403 { "per-recipient-fields", "p1.per_recipient_fields",
10404 FT_UINT32, BASE_DEC, NULL, 0,
10405 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields", HFILL }},
10406 { &hf_p1_per_recipient_probe_transfer_fields_item,
10407 { "PerRecipientProbeTransferFields", "p1.PerRecipientProbeTransferFields_element",
10408 FT_NONE, BASE_NONE, NULL, 0,
10409 NULL, HFILL }},
10410 { &hf_p1_per_recipient_report_fields,
10411 { "per-recipient-fields", "p1.per_recipient_fields",
10412 FT_UINT32, BASE_DEC, NULL, 0,
10413 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields", HFILL }},
10414 { &hf_p1_per_recipient_report_fields_item,
10415 { "PerRecipientReportTransferFields", "p1.PerRecipientReportTransferFields_element",
10416 FT_NONE, BASE_NONE, NULL, 0,
10417 NULL, HFILL }},
10418 { &hf_p1_routing_action,
10419 { "routing-action", "p1.routing_action",
10420 FT_UINT32, BASE_DEC, VALS(p1_RoutingAction_vals), 0,
10421 "RoutingAction", HFILL }},
10422 { &hf_p1_attempted,
10423 { "attempted", "p1.attempted",
10424 FT_UINT32, BASE_DEC, VALS(p1_T_attempted_vals), 0,
10425 NULL, HFILL }},
10426 { &hf_p1_mta,
10427 { "mta", "p1.mta",
10428 FT_STRING, BASE_NONE, NULL, 0,
10429 "MTAName", HFILL }},
10430 { &hf_p1_attempted_domain,
10431 { "attempted-domain", "p1.attempted_domain_element",
10432 FT_NONE, BASE_NONE, NULL, 0,
10433 "GlobalDomainIdentifier", HFILL }},
10434 { &hf_p1_per_recipient_report_delivery_fields,
10435 { "per-recipient-fields", "p1.per_recipient_fields",
10436 FT_UINT32, BASE_DEC, NULL, 0,
10437 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields", HFILL }},
10438 { &hf_p1_per_recipient_report_delivery_fields_item,
10439 { "PerRecipientReportDeliveryFields", "p1.PerRecipientReportDeliveryFields_element",
10440 FT_NONE, BASE_NONE, NULL, 0,
10441 NULL, HFILL }},
10442 { &hf_p1_mts_originator_name,
10443 { "originator-name", "p1.originator_name_element",
10444 FT_NONE, BASE_NONE, NULL, 0,
10445 "OriginatorName", HFILL }},
10446 { &hf_p1_per_recipient_message_submission_fields,
10447 { "per-recipient-fields", "p1.per_recipient_fields",
10448 FT_UINT32, BASE_DEC, NULL, 0,
10449 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields", HFILL }},
10450 { &hf_p1_per_recipient_message_submission_fields_item,
10451 { "PerRecipientMessageSubmissionFields", "p1.PerRecipientMessageSubmissionFields_element",
10452 FT_NONE, BASE_NONE, NULL, 0,
10453 NULL, HFILL }},
10454 { &hf_p1_per_recipient_probe_submission_fields,
10455 { "per-recipient-fields", "p1.per_recipient_fields",
10456 FT_UINT32, BASE_DEC, NULL, 0,
10457 "SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields", HFILL }},
10458 { &hf_p1_per_recipient_probe_submission_fields_item,
10459 { "PerRecipientProbeSubmissionFields", "p1.PerRecipientProbeSubmissionFields_element",
10460 FT_NONE, BASE_NONE, NULL, 0,
10461 NULL, HFILL }},
10462 { &hf_p1_directory_name,
10463 { "directory-name", "p1.directory_name",
10464 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
10465 "Name", HFILL }},
10466 { &hf_p1_built_in_encoded_information_types,
10467 { "built-in-encoded-information-types", "p1.built_in_encoded_information_types",
10468 FT_BYTES, BASE_NONE, NULL, 0,
10469 "BuiltInEncodedInformationTypes", HFILL }},
10470 { &hf_p1_extended_encoded_information_types,
10471 { "extended-encoded-information-types", "p1.extended_encoded_information_types",
10472 FT_UINT32, BASE_DEC, NULL, 0,
10473 "ExtendedEncodedInformationTypes", HFILL }},
10474 { &hf_p1_PerRecipientIndicators_responsibility,
10475 { "responsibility", "p1.PerRecipientIndicators.responsibility",
10476 FT_BOOLEAN, 8, NULL, 0x80,
10477 NULL, HFILL }},
10478 { &hf_p1_PerRecipientIndicators_originating_MTA_report,
10479 { "originating-MTA-report", "p1.PerRecipientIndicators.originating.MTA.report",
10480 FT_BOOLEAN, 8, NULL, 0x40,
10481 NULL, HFILL }},
10482 { &hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report,
10483 { "originating-MTA-non-delivery-report", "p1.PerRecipientIndicators.originating.MTA.non.delivery.report",
10484 FT_BOOLEAN, 8, NULL, 0x20,
10485 NULL, HFILL }},
10486 { &hf_p1_PerRecipientIndicators_originator_report,
10487 { "originator-report", "p1.PerRecipientIndicators.originator.report",
10488 FT_BOOLEAN, 8, NULL, 0x10,
10489 NULL, HFILL }},
10490 { &hf_p1_PerRecipientIndicators_originator_non_delivery_report,
10491 { "originator-non-delivery-report", "p1.PerRecipientIndicators.originator.non.delivery.report",
10492 FT_BOOLEAN, 8, NULL, 0x08,
10493 NULL, HFILL }},
10494 { &hf_p1_PerRecipientIndicators_reserved_5,
10495 { "reserved-5", "p1.PerRecipientIndicators.reserved.5",
10496 FT_BOOLEAN, 8, NULL, 0x04,
10497 NULL, HFILL }},
10498 { &hf_p1_PerRecipientIndicators_reserved_6,
10499 { "reserved-6", "p1.PerRecipientIndicators.reserved.6",
10500 FT_BOOLEAN, 8, NULL, 0x02,
10501 NULL, HFILL }},
10502 { &hf_p1_PerRecipientIndicators_reserved_7,
10503 { "reserved-7", "p1.PerRecipientIndicators.reserved.7",
10504 FT_BOOLEAN, 8, NULL, 0x01,
10505 NULL, HFILL }},
10506 { &hf_p1_OtherActions_redirected,
10507 { "redirected", "p1.OtherActions.redirected",
10508 FT_BOOLEAN, 8, NULL, 0x80,
10509 NULL, HFILL }},
10510 { &hf_p1_OtherActions_dl_operation,
10511 { "dl-operation", "p1.OtherActions.dl.operation",
10512 FT_BOOLEAN, 8, NULL, 0x40,
10513 NULL, HFILL }},
10514 { &hf_p1_Operations_probe_submission_or_report_delivery,
10515 { "probe-submission-or-report-delivery", "p1.Operations.probe.submission.or.report.delivery",
10516 FT_BOOLEAN, 8, NULL, 0x80,
10517 NULL, HFILL }},
10518 { &hf_p1_Operations_message_submission_or_message_delivery,
10519 { "message-submission-or-message-delivery", "p1.Operations.message.submission.or.message.delivery",
10520 FT_BOOLEAN, 8, NULL, 0x40,
10521 NULL, HFILL }},
10522 { &hf_p1_WaitingMessages_long_content,
10523 { "long-content", "p1.WaitingMessages.long.content",
10524 FT_BOOLEAN, 8, NULL, 0x80,
10525 NULL, HFILL }},
10526 { &hf_p1_WaitingMessages_low_priority,
10527 { "low-priority", "p1.WaitingMessages.low.priority",
10528 FT_BOOLEAN, 8, NULL, 0x40,
10529 NULL, HFILL }},
10530 { &hf_p1_WaitingMessages_other_security_labels,
10531 { "other-security-labels", "p1.WaitingMessages.other.security.labels",
10532 FT_BOOLEAN, 8, NULL, 0x20,
10533 NULL, HFILL }},
10534 { &hf_p1_T_source_type_originated_by,
10535 { "originated-by", "p1.T.source.type.originated.by",
10536 FT_BOOLEAN, 8, NULL, 0x80,
10537 NULL, HFILL }},
10538 { &hf_p1_T_source_type_redirected_by,
10539 { "redirected-by", "p1.T.source.type.redirected.by",
10540 FT_BOOLEAN, 8, NULL, 0x40,
10541 NULL, HFILL }},
10542 { &hf_p1_T_source_type_dl_expanded_by,
10543 { "dl-expanded-by", "p1.T.source.type.dl.expanded.by",
10544 FT_BOOLEAN, 8, NULL, 0x20,
10545 NULL, HFILL }},
10546 { &hf_p1_T_standard_parameters_user_name,
10547 { "user-name", "p1.T.standard.parameters.user.name",
10548 FT_BOOLEAN, 8, NULL, 0x80,
10549 NULL, HFILL }},
10550 { &hf_p1_T_standard_parameters_user_address,
10551 { "user-address", "p1.T.standard.parameters.user.address",
10552 FT_BOOLEAN, 8, NULL, 0x40,
10553 NULL, HFILL }},
10554 { &hf_p1_T_standard_parameters_deliverable_class,
10555 { "deliverable-class", "p1.T.standard.parameters.deliverable.class",
10556 FT_BOOLEAN, 8, NULL, 0x20,
10557 NULL, HFILL }},
10558 { &hf_p1_T_standard_parameters_default_delivery_controls,
10559 { "default-delivery-controls", "p1.T.standard.parameters.default.delivery.controls",
10560 FT_BOOLEAN, 8, NULL, 0x10,
10561 NULL, HFILL }},
10562 { &hf_p1_T_standard_parameters_redirections,
10563 { "redirections", "p1.T.standard.parameters.redirections",
10564 FT_BOOLEAN, 8, NULL, 0x08,
10565 NULL, HFILL }},
10566 { &hf_p1_T_standard_parameters_restricted_delivery,
10567 { "restricted-delivery", "p1.T.standard.parameters.restricted.delivery",
10568 FT_BOOLEAN, 8, NULL, 0x04,
10569 NULL, HFILL }},
10570 { &hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients,
10571 { "disclosure-of-other-recipients", "p1.PerMessageIndicators.U.disclosure.of.other.recipients",
10572 FT_BOOLEAN, 8, NULL, 0x80,
10573 NULL, HFILL }},
10574 { &hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited,
10575 { "implicit-conversion-prohibited", "p1.PerMessageIndicators.U.implicit.conversion.prohibited",
10576 FT_BOOLEAN, 8, NULL, 0x40,
10577 NULL, HFILL }},
10578 { &hf_p1_PerMessageIndicators_U_alternate_recipient_allowed,
10579 { "alternate-recipient-allowed", "p1.PerMessageIndicators.U.alternate.recipient.allowed",
10580 FT_BOOLEAN, 8, NULL, 0x20,
10581 NULL, HFILL }},
10582 { &hf_p1_PerMessageIndicators_U_content_return_request,
10583 { "content-return-request", "p1.PerMessageIndicators.U.content.return.request",
10584 FT_BOOLEAN, 8, NULL, 0x10,
10585 NULL, HFILL }},
10586 { &hf_p1_PerMessageIndicators_U_reserved,
10587 { "reserved", "p1.PerMessageIndicators.U.reserved",
10588 FT_BOOLEAN, 8, NULL, 0x08,
10589 NULL, HFILL }},
10590 { &hf_p1_PerMessageIndicators_U_bit_5,
10591 { "bit-5", "p1.PerMessageIndicators.U.bit.5",
10592 FT_BOOLEAN, 8, NULL, 0x04,
10593 NULL, HFILL }},
10594 { &hf_p1_PerMessageIndicators_U_bit_6,
10595 { "bit-6", "p1.PerMessageIndicators.U.bit.6",
10596 FT_BOOLEAN, 8, NULL, 0x02,
10597 NULL, HFILL }},
10598 { &hf_p1_PerMessageIndicators_U_service_message,
10599 { "service-message", "p1.PerMessageIndicators.U.service.message",
10600 FT_BOOLEAN, 8, NULL, 0x01,
10601 NULL, HFILL }},
10602 { &hf_p1_OriginatorReportRequest_spare_bit0,
10603 { "spare_bit0", "p1.OriginatorReportRequest.spare.bit0",
10604 FT_BOOLEAN, 8, NULL, 0x80,
10605 NULL, HFILL }},
10606 { &hf_p1_OriginatorReportRequest_spare_bit1,
10607 { "spare_bit1", "p1.OriginatorReportRequest.spare.bit1",
10608 FT_BOOLEAN, 8, NULL, 0x40,
10609 NULL, HFILL }},
10610 { &hf_p1_OriginatorReportRequest_spare_bit2,
10611 { "spare_bit2", "p1.OriginatorReportRequest.spare.bit2",
10612 FT_BOOLEAN, 8, NULL, 0x20,
10613 NULL, HFILL }},
10614 { &hf_p1_OriginatorReportRequest_report,
10615 { "report", "p1.OriginatorReportRequest.report",
10616 FT_BOOLEAN, 8, NULL, 0x10,
10617 NULL, HFILL }},
10618 { &hf_p1_OriginatorReportRequest_non_delivery_report,
10619 { "non-delivery-report", "p1.OriginatorReportRequest.non.delivery.report",
10620 FT_BOOLEAN, 8, NULL, 0x08,
10621 NULL, HFILL }},
10622 { &hf_p1_DeliveryFlags_spare_bit0,
10623 { "spare_bit0", "p1.DeliveryFlags.spare.bit0",
10624 FT_BOOLEAN, 8, NULL, 0x80,
10625 NULL, HFILL }},
10626 { &hf_p1_DeliveryFlags_implicit_conversion_prohibited,
10627 { "implicit-conversion-prohibited", "p1.DeliveryFlags.implicit.conversion.prohibited",
10628 FT_BOOLEAN, 8, NULL, 0x40,
10629 NULL, HFILL }},
10630 { &hf_p1_Criticality_for_submission,
10631 { "for-submission", "p1.Criticality.for.submission",
10632 FT_BOOLEAN, 8, NULL, 0x80,
10633 NULL, HFILL }},
10634 { &hf_p1_Criticality_for_transfer,
10635 { "for-transfer", "p1.Criticality.for.transfer",
10636 FT_BOOLEAN, 8, NULL, 0x40,
10637 NULL, HFILL }},
10638 { &hf_p1_Criticality_for_delivery,
10639 { "for-delivery", "p1.Criticality.for.delivery",
10640 FT_BOOLEAN, 8, NULL, 0x20,
10641 NULL, HFILL }},
10642 { &hf_p1_PhysicalDeliveryModes_ordinary_mail,
10643 { "ordinary-mail", "p1.PhysicalDeliveryModes.ordinary.mail",
10644 FT_BOOLEAN, 8, NULL, 0x80,
10645 NULL, HFILL }},
10646 { &hf_p1_PhysicalDeliveryModes_special_delivery,
10647 { "special-delivery", "p1.PhysicalDeliveryModes.special.delivery",
10648 FT_BOOLEAN, 8, NULL, 0x40,
10649 NULL, HFILL }},
10650 { &hf_p1_PhysicalDeliveryModes_express_mail,
10651 { "express-mail", "p1.PhysicalDeliveryModes.express.mail",
10652 FT_BOOLEAN, 8, NULL, 0x20,
10653 NULL, HFILL }},
10654 { &hf_p1_PhysicalDeliveryModes_counter_collection,
10655 { "counter-collection", "p1.PhysicalDeliveryModes.counter.collection",
10656 FT_BOOLEAN, 8, NULL, 0x10,
10657 NULL, HFILL }},
10658 { &hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
10659 { "counter-collection-with-telephone-advice", "p1.PhysicalDeliveryModes.counter.collection.with.telephone.advice",
10660 FT_BOOLEAN, 8, NULL, 0x08,
10661 NULL, HFILL }},
10662 { &hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice,
10663 { "counter-collection-with-telex-advice", "p1.PhysicalDeliveryModes.counter.collection.with.telex.advice",
10664 FT_BOOLEAN, 8, NULL, 0x04,
10665 NULL, HFILL }},
10666 { &hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
10667 { "counter-collection-with-teletex-advice", "p1.PhysicalDeliveryModes.counter.collection.with.teletex.advice",
10668 FT_BOOLEAN, 8, NULL, 0x02,
10669 NULL, HFILL }},
10670 { &hf_p1_PhysicalDeliveryModes_bureau_fax_delivery,
10671 { "bureau-fax-delivery", "p1.PhysicalDeliveryModes.bureau.fax.delivery",
10672 FT_BOOLEAN, 8, NULL, 0x01,
10673 NULL, HFILL }},
10674 { &hf_p1_BuiltInEncodedInformationTypes_unknown,
10675 { "unknown", "p1.BuiltInEncodedInformationTypes.unknown",
10676 FT_BOOLEAN, 8, NULL, 0x80,
10677 NULL, HFILL }},
10678 { &hf_p1_BuiltInEncodedInformationTypes_telex,
10679 { "telex", "p1.BuiltInEncodedInformationTypes.telex",
10680 FT_BOOLEAN, 8, NULL, 0x40,
10681 NULL, HFILL }},
10682 { &hf_p1_BuiltInEncodedInformationTypes_ia5_text,
10683 { "ia5-text", "p1.BuiltInEncodedInformationTypes.ia5.text",
10684 FT_BOOLEAN, 8, NULL, 0x20,
10685 NULL, HFILL }},
10686 { &hf_p1_BuiltInEncodedInformationTypes_g3_facsimile,
10687 { "g3-facsimile", "p1.BuiltInEncodedInformationTypes.g3.facsimile",
10688 FT_BOOLEAN, 8, NULL, 0x10,
10689 NULL, HFILL }},
10690 { &hf_p1_BuiltInEncodedInformationTypes_g4_class_1,
10691 { "g4-class-1", "p1.BuiltInEncodedInformationTypes.g4.class.1",
10692 FT_BOOLEAN, 8, NULL, 0x08,
10693 NULL, HFILL }},
10694 { &hf_p1_BuiltInEncodedInformationTypes_teletex,
10695 { "teletex", "p1.BuiltInEncodedInformationTypes.teletex",
10696 FT_BOOLEAN, 8, NULL, 0x04,
10697 NULL, HFILL }},
10698 { &hf_p1_BuiltInEncodedInformationTypes_videotex,
10699 { "videotex", "p1.BuiltInEncodedInformationTypes.videotex",
10700 FT_BOOLEAN, 8, NULL, 0x02,
10701 NULL, HFILL }},
10702 { &hf_p1_BuiltInEncodedInformationTypes_voice,
10703 { "voice", "p1.BuiltInEncodedInformationTypes.voice",
10704 FT_BOOLEAN, 8, NULL, 0x01,
10705 NULL, HFILL }},
10706 { &hf_p1_BuiltInEncodedInformationTypes_sfd,
10707 { "sfd", "p1.BuiltInEncodedInformationTypes.sfd",
10708 FT_BOOLEAN, 8, NULL, 0x80,
10709 NULL, HFILL }},
10710 { &hf_p1_BuiltInEncodedInformationTypes_mixed_mode,
10711 { "mixed-mode", "p1.BuiltInEncodedInformationTypes.mixed.mode",
10712 FT_BOOLEAN, 8, NULL, 0x40,
10713 NULL, HFILL }},
10714 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit0,
10715 { "spare_bit0", "p1.G3FacsimileNonBasicParameters.spare.bit0",
10716 FT_BOOLEAN, 8, NULL, 0x80,
10717 NULL, HFILL }},
10718 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit1,
10719 { "spare_bit1", "p1.G3FacsimileNonBasicParameters.spare.bit1",
10720 FT_BOOLEAN, 8, NULL, 0x40,
10721 NULL, HFILL }},
10722 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit2,
10723 { "spare_bit2", "p1.G3FacsimileNonBasicParameters.spare.bit2",
10724 FT_BOOLEAN, 8, NULL, 0x20,
10725 NULL, HFILL }},
10726 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit3,
10727 { "spare_bit3", "p1.G3FacsimileNonBasicParameters.spare.bit3",
10728 FT_BOOLEAN, 8, NULL, 0x10,
10729 NULL, HFILL }},
10730 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit4,
10731 { "spare_bit4", "p1.G3FacsimileNonBasicParameters.spare.bit4",
10732 FT_BOOLEAN, 8, NULL, 0x08,
10733 NULL, HFILL }},
10734 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit5,
10735 { "spare_bit5", "p1.G3FacsimileNonBasicParameters.spare.bit5",
10736 FT_BOOLEAN, 8, NULL, 0x04,
10737 NULL, HFILL }},
10738 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit6,
10739 { "spare_bit6", "p1.G3FacsimileNonBasicParameters.spare.bit6",
10740 FT_BOOLEAN, 8, NULL, 0x02,
10741 NULL, HFILL }},
10742 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit7,
10743 { "spare_bit7", "p1.G3FacsimileNonBasicParameters.spare.bit7",
10744 FT_BOOLEAN, 8, NULL, 0x01,
10745 NULL, HFILL }},
10746 { &hf_p1_G3FacsimileNonBasicParameters_two_dimensional,
10747 { "two-dimensional", "p1.G3FacsimileNonBasicParameters.two.dimensional",
10748 FT_BOOLEAN, 8, NULL, 0x80,
10749 NULL, HFILL }},
10750 { &hf_p1_G3FacsimileNonBasicParameters_fine_resolution,
10751 { "fine-resolution", "p1.G3FacsimileNonBasicParameters.fine.resolution",
10752 FT_BOOLEAN, 8, NULL, 0x40,
10753 NULL, HFILL }},
10754 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit10,
10755 { "spare_bit10", "p1.G3FacsimileNonBasicParameters.spare.bit10",
10756 FT_BOOLEAN, 8, NULL, 0x20,
10757 NULL, HFILL }},
10758 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit11,
10759 { "spare_bit11", "p1.G3FacsimileNonBasicParameters.spare.bit11",
10760 FT_BOOLEAN, 8, NULL, 0x10,
10761 NULL, HFILL }},
10762 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit12,
10763 { "spare_bit12", "p1.G3FacsimileNonBasicParameters.spare.bit12",
10764 FT_BOOLEAN, 8, NULL, 0x08,
10765 NULL, HFILL }},
10766 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit13,
10767 { "spare_bit13", "p1.G3FacsimileNonBasicParameters.spare.bit13",
10768 FT_BOOLEAN, 8, NULL, 0x04,
10769 NULL, HFILL }},
10770 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit14,
10771 { "spare_bit14", "p1.G3FacsimileNonBasicParameters.spare.bit14",
10772 FT_BOOLEAN, 8, NULL, 0x02,
10773 NULL, HFILL }},
10774 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit15,
10775 { "spare_bit15", "p1.G3FacsimileNonBasicParameters.spare.bit15",
10776 FT_BOOLEAN, 8, NULL, 0x01,
10777 NULL, HFILL }},
10778 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit16,
10779 { "spare_bit16", "p1.G3FacsimileNonBasicParameters.spare.bit16",
10780 FT_BOOLEAN, 8, NULL, 0x80,
10781 NULL, HFILL }},
10782 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit17,
10783 { "spare_bit17", "p1.G3FacsimileNonBasicParameters.spare.bit17",
10784 FT_BOOLEAN, 8, NULL, 0x40,
10785 NULL, HFILL }},
10786 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit18,
10787 { "spare_bit18", "p1.G3FacsimileNonBasicParameters.spare.bit18",
10788 FT_BOOLEAN, 8, NULL, 0x20,
10789 NULL, HFILL }},
10790 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit19,
10791 { "spare_bit19", "p1.G3FacsimileNonBasicParameters.spare.bit19",
10792 FT_BOOLEAN, 8, NULL, 0x10,
10793 NULL, HFILL }},
10794 { &hf_p1_G3FacsimileNonBasicParameters_unlimited_length,
10795 { "unlimited-length", "p1.G3FacsimileNonBasicParameters.unlimited.length",
10796 FT_BOOLEAN, 8, NULL, 0x08,
10797 NULL, HFILL }},
10798 { &hf_p1_G3FacsimileNonBasicParameters_b4_length,
10799 { "b4-length", "p1.G3FacsimileNonBasicParameters.b4.length",
10800 FT_BOOLEAN, 8, NULL, 0x04,
10801 NULL, HFILL }},
10802 { &hf_p1_G3FacsimileNonBasicParameters_a3_width,
10803 { "a3-width", "p1.G3FacsimileNonBasicParameters.a3.width",
10804 FT_BOOLEAN, 8, NULL, 0x02,
10805 NULL, HFILL }},
10806 { &hf_p1_G3FacsimileNonBasicParameters_b4_width,
10807 { "b4-width", "p1.G3FacsimileNonBasicParameters.b4.width",
10808 FT_BOOLEAN, 8, NULL, 0x01,
10809 NULL, HFILL }},
10810 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit24,
10811 { "spare_bit24", "p1.G3FacsimileNonBasicParameters.spare.bit24",
10812 FT_BOOLEAN, 8, NULL, 0x80,
10813 NULL, HFILL }},
10814 { &hf_p1_G3FacsimileNonBasicParameters_t6_coding,
10815 { "t6-coding", "p1.G3FacsimileNonBasicParameters.t6.coding",
10816 FT_BOOLEAN, 8, NULL, 0x40,
10817 NULL, HFILL }},
10818 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit26,
10819 { "spare_bit26", "p1.G3FacsimileNonBasicParameters.spare.bit26",
10820 FT_BOOLEAN, 8, NULL, 0x20,
10821 NULL, HFILL }},
10822 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit27,
10823 { "spare_bit27", "p1.G3FacsimileNonBasicParameters.spare.bit27",
10824 FT_BOOLEAN, 8, NULL, 0x10,
10825 NULL, HFILL }},
10826 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit28,
10827 { "spare_bit28", "p1.G3FacsimileNonBasicParameters.spare.bit28",
10828 FT_BOOLEAN, 8, NULL, 0x08,
10829 NULL, HFILL }},
10830 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit29,
10831 { "spare_bit29", "p1.G3FacsimileNonBasicParameters.spare.bit29",
10832 FT_BOOLEAN, 8, NULL, 0x04,
10833 NULL, HFILL }},
10834 { &hf_p1_G3FacsimileNonBasicParameters_uncompressed,
10835 { "uncompressed", "p1.G3FacsimileNonBasicParameters.uncompressed",
10836 FT_BOOLEAN, 8, NULL, 0x02,
10837 NULL, HFILL }},
10838 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit31,
10839 { "spare_bit31", "p1.G3FacsimileNonBasicParameters.spare.bit31",
10840 FT_BOOLEAN, 8, NULL, 0x01,
10841 NULL, HFILL }},
10842 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit32,
10843 { "spare_bit32", "p1.G3FacsimileNonBasicParameters.spare.bit32",
10844 FT_BOOLEAN, 8, NULL, 0x80,
10845 NULL, HFILL }},
10846 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit33,
10847 { "spare_bit33", "p1.G3FacsimileNonBasicParameters.spare.bit33",
10848 FT_BOOLEAN, 8, NULL, 0x40,
10849 NULL, HFILL }},
10850 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit34,
10851 { "spare_bit34", "p1.G3FacsimileNonBasicParameters.spare.bit34",
10852 FT_BOOLEAN, 8, NULL, 0x20,
10853 NULL, HFILL }},
10854 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit35,
10855 { "spare_bit35", "p1.G3FacsimileNonBasicParameters.spare.bit35",
10856 FT_BOOLEAN, 8, NULL, 0x10,
10857 NULL, HFILL }},
10858 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit36,
10859 { "spare_bit36", "p1.G3FacsimileNonBasicParameters.spare.bit36",
10860 FT_BOOLEAN, 8, NULL, 0x08,
10861 NULL, HFILL }},
10862 { &hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
10863 { "width-middle-864-of-1728", "p1.G3FacsimileNonBasicParameters.width.middle.864.of.1728",
10864 FT_BOOLEAN, 8, NULL, 0x04,
10865 NULL, HFILL }},
10866 { &hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
10867 { "width-middle-1216-of-1728", "p1.G3FacsimileNonBasicParameters.width.middle.1216.of.1728",
10868 FT_BOOLEAN, 8, NULL, 0x02,
10869 NULL, HFILL }},
10870 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit39,
10871 { "spare_bit39", "p1.G3FacsimileNonBasicParameters.spare.bit39",
10872 FT_BOOLEAN, 8, NULL, 0x01,
10873 NULL, HFILL }},
10874 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit40,
10875 { "spare_bit40", "p1.G3FacsimileNonBasicParameters.spare.bit40",
10876 FT_BOOLEAN, 8, NULL, 0x80,
10877 NULL, HFILL }},
10878 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit41,
10879 { "spare_bit41", "p1.G3FacsimileNonBasicParameters.spare.bit41",
10880 FT_BOOLEAN, 8, NULL, 0x40,
10881 NULL, HFILL }},
10882 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit42,
10883 { "spare_bit42", "p1.G3FacsimileNonBasicParameters.spare.bit42",
10884 FT_BOOLEAN, 8, NULL, 0x20,
10885 NULL, HFILL }},
10886 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit43,
10887 { "spare_bit43", "p1.G3FacsimileNonBasicParameters.spare.bit43",
10888 FT_BOOLEAN, 8, NULL, 0x10,
10889 NULL, HFILL }},
10890 { &hf_p1_G3FacsimileNonBasicParameters_resolution_type,
10891 { "resolution-type", "p1.G3FacsimileNonBasicParameters.resolution.type",
10892 FT_BOOLEAN, 8, NULL, 0x08,
10893 NULL, HFILL }},
10894 { &hf_p1_G3FacsimileNonBasicParameters_resolution_400x400,
10895 { "resolution-400x400", "p1.G3FacsimileNonBasicParameters.resolution.400x400",
10896 FT_BOOLEAN, 8, NULL, 0x04,
10897 NULL, HFILL }},
10898 { &hf_p1_G3FacsimileNonBasicParameters_resolution_300x300,
10899 { "resolution-300x300", "p1.G3FacsimileNonBasicParameters.resolution.300x300",
10900 FT_BOOLEAN, 8, NULL, 0x02,
10901 NULL, HFILL }},
10902 { &hf_p1_G3FacsimileNonBasicParameters_resolution_8x15,
10903 { "resolution-8x15", "p1.G3FacsimileNonBasicParameters.resolution.8x15",
10904 FT_BOOLEAN, 8, NULL, 0x01,
10905 NULL, HFILL }},
10906 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit48,
10907 { "spare_bit48", "p1.G3FacsimileNonBasicParameters.spare.bit48",
10908 FT_BOOLEAN, 8, NULL, 0x80,
10909 NULL, HFILL }},
10910 { &hf_p1_G3FacsimileNonBasicParameters_edi,
10911 { "edi", "p1.G3FacsimileNonBasicParameters.edi",
10912 FT_BOOLEAN, 8, NULL, 0x40,
10913 NULL, HFILL }},
10914 { &hf_p1_G3FacsimileNonBasicParameters_dtm,
10915 { "dtm", "p1.G3FacsimileNonBasicParameters.dtm",
10916 FT_BOOLEAN, 8, NULL, 0x20,
10917 NULL, HFILL }},
10918 { &hf_p1_G3FacsimileNonBasicParameters_bft,
10919 { "bft", "p1.G3FacsimileNonBasicParameters.bft",
10920 FT_BOOLEAN, 8, NULL, 0x10,
10921 NULL, HFILL }},
10922 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit52,
10923 { "spare_bit52", "p1.G3FacsimileNonBasicParameters.spare.bit52",
10924 FT_BOOLEAN, 8, NULL, 0x08,
10925 NULL, HFILL }},
10926 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit53,
10927 { "spare_bit53", "p1.G3FacsimileNonBasicParameters.spare.bit53",
10928 FT_BOOLEAN, 8, NULL, 0x04,
10929 NULL, HFILL }},
10930 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit54,
10931 { "spare_bit54", "p1.G3FacsimileNonBasicParameters.spare.bit54",
10932 FT_BOOLEAN, 8, NULL, 0x02,
10933 NULL, HFILL }},
10934 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit55,
10935 { "spare_bit55", "p1.G3FacsimileNonBasicParameters.spare.bit55",
10936 FT_BOOLEAN, 8, NULL, 0x01,
10937 NULL, HFILL }},
10938 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit56,
10939 { "spare_bit56", "p1.G3FacsimileNonBasicParameters.spare.bit56",
10940 FT_BOOLEAN, 8, NULL, 0x80,
10941 NULL, HFILL }},
10942 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit57,
10943 { "spare_bit57", "p1.G3FacsimileNonBasicParameters.spare.bit57",
10944 FT_BOOLEAN, 8, NULL, 0x40,
10945 NULL, HFILL }},
10946 { &hf_p1_G3FacsimileNonBasicParameters_mixed_mode,
10947 { "mixed-mode", "p1.G3FacsimileNonBasicParameters.mixed.mode",
10948 FT_BOOLEAN, 8, NULL, 0x20,
10949 NULL, HFILL }},
10950 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit59,
10951 { "spare_bit59", "p1.G3FacsimileNonBasicParameters.spare.bit59",
10952 FT_BOOLEAN, 8, NULL, 0x10,
10953 NULL, HFILL }},
10954 { &hf_p1_G3FacsimileNonBasicParameters_character_mode,
10955 { "character-mode", "p1.G3FacsimileNonBasicParameters.character.mode",
10956 FT_BOOLEAN, 8, NULL, 0x08,
10957 NULL, HFILL }},
10958 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit61,
10959 { "spare_bit61", "p1.G3FacsimileNonBasicParameters.spare.bit61",
10960 FT_BOOLEAN, 8, NULL, 0x04,
10961 NULL, HFILL }},
10962 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit62,
10963 { "spare_bit62", "p1.G3FacsimileNonBasicParameters.spare.bit62",
10964 FT_BOOLEAN, 8, NULL, 0x02,
10965 NULL, HFILL }},
10966 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit63,
10967 { "spare_bit63", "p1.G3FacsimileNonBasicParameters.spare.bit63",
10968 FT_BOOLEAN, 8, NULL, 0x01,
10969 NULL, HFILL }},
10970 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit64,
10971 { "spare_bit64", "p1.G3FacsimileNonBasicParameters.spare.bit64",
10972 FT_BOOLEAN, 8, NULL, 0x80,
10973 NULL, HFILL }},
10974 { &hf_p1_G3FacsimileNonBasicParameters_twelve_bits,
10975 { "twelve-bits", "p1.G3FacsimileNonBasicParameters.twelve.bits",
10976 FT_BOOLEAN, 8, NULL, 0x40,
10977 NULL, HFILL }},
10978 { &hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann,
10979 { "preferred-huffmann", "p1.G3FacsimileNonBasicParameters.preferred.huffmann",
10980 FT_BOOLEAN, 8, NULL, 0x20,
10981 NULL, HFILL }},
10982 { &hf_p1_G3FacsimileNonBasicParameters_full_colour,
10983 { "full-colour", "p1.G3FacsimileNonBasicParameters.full.colour",
10984 FT_BOOLEAN, 8, NULL, 0x10,
10985 NULL, HFILL }},
10986 { &hf_p1_G3FacsimileNonBasicParameters_jpeg,
10987 { "jpeg", "p1.G3FacsimileNonBasicParameters.jpeg",
10988 FT_BOOLEAN, 8, NULL, 0x08,
10989 NULL, HFILL }},
10990 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit69,
10991 { "spare_bit69", "p1.G3FacsimileNonBasicParameters.spare.bit69",
10992 FT_BOOLEAN, 8, NULL, 0x04,
10993 NULL, HFILL }},
10994 { &hf_p1_G3FacsimileNonBasicParameters_spare_bit70,
10995 { "spare_bit70", "p1.G3FacsimileNonBasicParameters.spare.bit70",
10996 FT_BOOLEAN, 8, NULL, 0x02,
10997 NULL, HFILL }},
10998 { &hf_p1_G3FacsimileNonBasicParameters_processable_mode_26,
10999 { "processable-mode-26", "p1.G3FacsimileNonBasicParameters.processable.mode.26",
11000 FT_BOOLEAN, 8, NULL, 0x01,
11001 NULL, HFILL }},
11004 /* List of subtrees */
11005 static int *ett[] = {
11006 &ett_p1,
11007 &ett_p3,
11008 &ett_p1_content_unknown,
11009 &ett_p1_bilateral_information,
11010 &ett_p1_additional_information,
11011 &ett_p1_unknown_standard_extension,
11012 &ett_p1_unknown_extension_attribute_type,
11013 &ett_p1_unknown_tokendata_type,
11014 &ett_p1_MTABindArgument,
11015 &ett_p1_AuthenticatedArgument,
11016 &ett_p1_MTABindResult,
11017 &ett_p1_AuthenticatedResult,
11018 &ett_p1_MTS_APDU,
11019 &ett_p1_Message,
11020 &ett_p1_Report,
11021 &ett_p1_MessageTransferEnvelope,
11022 &ett_p1_PerMessageTransferFields,
11023 &ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation,
11024 &ett_p1_SET_OF_ExtensionField,
11025 &ett_p1_PerRecipientMessageTransferFields,
11026 &ett_p1_ProbeTransferEnvelope,
11027 &ett_p1_PerProbeTransferFields,
11028 &ett_p1_PerRecipientProbeTransferFields,
11029 &ett_p1_ReportTransferEnvelope,
11030 &ett_p1_ReportTransferContent,
11031 &ett_p1_PerReportTransferFields,
11032 &ett_p1_PerRecipientReportTransferFields,
11033 &ett_p1_PerDomainBilateralInformation,
11034 &ett_p1_T_bilateral_domain,
11035 &ett_p1_T_private_domain,
11036 &ett_p1_PerRecipientIndicators,
11037 &ett_p1_LastTraceInformation,
11038 &ett_p1_InternalTraceInformation,
11039 &ett_p1_InternalTraceInformationElement,
11040 &ett_p1_MTASuppliedInformation,
11041 &ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement,
11042 &ett_p1_TraceInformationElement,
11043 &ett_p1_DomainSuppliedInformation,
11044 &ett_p1_AdditionalActions,
11045 &ett_p1_OtherActions,
11046 &ett_p1_MTSBindArgument,
11047 &ett_p1_MTSBindResult,
11048 &ett_p1_ObjectName,
11049 &ett_p1_MessagesWaiting,
11050 &ett_p1_DeliveryQueue,
11051 &ett_p1_Credentials,
11052 &ett_p1_Password,
11053 &ett_p1_StrongCredentials,
11054 &ett_p1_ProtectedPassword,
11055 &ett_p1_Signature,
11056 &ett_p1_SecurityContext,
11057 &ett_p1_MessageSubmissionArgument,
11058 &ett_p1_MessageSubmissionResult,
11059 &ett_p1_ProbeSubmissionResult,
11060 &ett_p1_ImproperlySpecifiedRecipients,
11061 &ett_p1_Waiting,
11062 &ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType,
11063 &ett_p1_Operations,
11064 &ett_p1_WaitingMessages,
11065 &ett_p1_MessageDeliveryArgument,
11066 &ett_p1_MessageDeliveryResult,
11067 &ett_p1_ReportDeliveryArgument,
11068 &ett_p1_ReportDeliveryResult,
11069 &ett_p1_SET_SIZE_1_MAX_OF_ExtensionField,
11070 &ett_p1_DeliveryControlArgument,
11071 &ett_p1_DeliveryControlResult,
11072 &ett_p1_RefusedOperation,
11073 &ett_p1_T_refused_argument,
11074 &ett_p1_Controls,
11075 &ett_p1_RegisterArgument,
11076 &ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass,
11077 &ett_p1_RegisterResult,
11078 &ett_p1_T_non_empty_result,
11079 &ett_p1_ChangeCredentialsArgument,
11080 &ett_p1_UserAddress,
11081 &ett_p1_T_x121,
11082 &ett_p1_Redirections,
11083 &ett_p1_RecipientRedirection,
11084 &ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass,
11085 &ett_p1_MessageClass,
11086 &ett_p1_SET_OF_Priority,
11087 &ett_p1_SEQUENCE_OF_Restriction,
11088 &ett_p1_EncodedInformationTypesConstraints,
11089 &ett_p1_RestrictedDelivery,
11090 &ett_p1_Restriction,
11091 &ett_p1_T_source_type,
11092 &ett_p1_ExactOrPattern,
11093 &ett_p1_RegistrationTypes,
11094 &ett_p1_T_standard_parameters,
11095 &ett_p1_T_type_extensions,
11096 &ett_p1_MessageSubmissionEnvelope,
11097 &ett_p1_PerMessageSubmissionFields,
11098 &ett_p1_PerRecipientMessageSubmissionFields,
11099 &ett_p1_ProbeSubmissionEnvelope,
11100 &ett_p1_PerProbeSubmissionFields,
11101 &ett_p1_PerRecipientProbeSubmissionFields,
11102 &ett_p1_MessageDeliveryEnvelope,
11103 &ett_p1_OtherMessageDeliveryFields,
11104 &ett_p1_ReportDeliveryEnvelope,
11105 &ett_p1_PerReportDeliveryFields,
11106 &ett_p1_PerRecipientReportDeliveryFields,
11107 &ett_p1_ReportType,
11108 &ett_p1_DeliveryReport,
11109 &ett_p1_NonDeliveryReport,
11110 &ett_p1_ContentTypes,
11111 &ett_p1_ContentType,
11112 &ett_p1_DeliveredContentType,
11113 &ett_p1_PerMessageIndicators_U,
11114 &ett_p1_OriginatorReportRequest,
11115 &ett_p1_DeliveryFlags,
11116 &ett_p1_OtherRecipientNames,
11117 &ett_p1_ExtensionType,
11118 &ett_p1_Criticality,
11119 &ett_p1_ExtensionField,
11120 &ett_p1_RequestedDeliveryMethod,
11121 &ett_p1_PhysicalDeliveryModes,
11122 &ett_p1_ContentCorrelator,
11123 &ett_p1_RedirectionHistory,
11124 &ett_p1_Redirection,
11125 &ett_p1_IntendedRecipientName,
11126 &ett_p1_DLExpansionHistory,
11127 &ett_p1_DLExpansion,
11128 &ett_p1_OriginatorAndDLExpansionHistory,
11129 &ett_p1_OriginatorAndDLExpansion,
11130 &ett_p1_PerRecipientDeliveryReportFields,
11131 &ett_p1_PerRecipientNonDeliveryReportFields,
11132 &ett_p1_ReportingMTAName,
11133 &ett_p1_ExtendedCertificates,
11134 &ett_p1_ExtendedCertificate,
11135 &ett_p1_DLExemptedRecipients,
11136 &ett_p1_CertificateSelectors,
11137 &ett_p1_MTSIdentifier_U,
11138 &ett_p1_GlobalDomainIdentifier_U,
11139 &ett_p1_PrivateDomainIdentifier,
11140 &ett_p1_ORName_U,
11141 &ett_p1_ORAddress,
11142 &ett_p1_BuiltInStandardAttributes,
11143 &ett_p1_CountryName_U,
11144 &ett_p1_AdministrationDomainName_U,
11145 &ett_p1_PrivateDomainName,
11146 &ett_p1_PersonalName,
11147 &ett_p1_OrganizationalUnitNames,
11148 &ett_p1_BuiltInDomainDefinedAttributes,
11149 &ett_p1_BuiltInDomainDefinedAttribute,
11150 &ett_p1_ExtensionAttributes,
11151 &ett_p1_ExtensionAttribute,
11152 &ett_p1_TeletexPersonalName,
11153 &ett_p1_UniversalPersonalName,
11154 &ett_p1_TeletexOrganizationalUnitNames,
11155 &ett_p1_UniversalOrganizationalUnitNames,
11156 &ett_p1_UniversalOrBMPString,
11157 &ett_p1_T_character_encoding,
11158 &ett_p1_PhysicalDeliveryCountryName,
11159 &ett_p1_PostalCode,
11160 &ett_p1_UnformattedPostalAddress,
11161 &ett_p1_T_printable_address,
11162 &ett_p1_PDSParameter,
11163 &ett_p1_ExtendedNetworkAddress,
11164 &ett_p1_T_e163_4_address,
11165 &ett_p1_TeletexDomainDefinedAttributes,
11166 &ett_p1_TeletexDomainDefinedAttribute,
11167 &ett_p1_UniversalDomainDefinedAttributes,
11168 &ett_p1_UniversalDomainDefinedAttribute,
11169 &ett_p1_EncodedInformationTypes_U,
11170 &ett_p1_BuiltInEncodedInformationTypes,
11171 &ett_p1_ExtendedEncodedInformationTypes,
11172 &ett_p1_NonBasicParameters,
11173 &ett_p1_G3FacsimileNonBasicParameters,
11174 &ett_p1_TeletexNonBasicParameters,
11175 &ett_p1_Token,
11176 &ett_p1_AsymmetricTokenData,
11177 &ett_p1_T_name,
11178 &ett_p1_MTANameAndOptionalGDI,
11179 &ett_p1_AsymmetricToken,
11180 &ett_p1_TokenData,
11181 &ett_p1_MessageTokenSignedData,
11182 &ett_p1_MessageTokenEncryptedData,
11183 &ett_p1_SecurityLabel,
11184 &ett_p1_SecurityCategories,
11185 &ett_p1_SecurityCategory,
11186 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields,
11187 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields,
11188 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields,
11189 &ett_p1_T_attempted,
11190 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields,
11191 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields,
11192 &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields,
11195 static ei_register_info ei[] = {
11196 { &ei_p1_unknown_extension_attribute_type, { "p1.unknown.extension_attribute_type", PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type", EXPFILL }},
11197 { &ei_p1_unknown_standard_extension, { "p1.unknown.standard_extension", PI_UNDECODED, PI_WARN, "Unknown standard-extension", EXPFILL }},
11198 { &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 }},
11199 { &ei_p1_unknown_tokendata_type, { "p1.unknown.tokendata_type", PI_UNDECODED, PI_WARN, "Unknown tokendata-type", EXPFILL }},
11200 { &ei_p1_unsupported_pdu, { "p1.unsupported_pdu", PI_UNDECODED, PI_WARN, "Unsupported P1 PDU", EXPFILL }},
11201 { &ei_p1_zero_pdu, { "p1.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte P1 PDU", EXPFILL }},
11204 expert_module_t* expert_p1;
11205 module_t *p1_module;
11207 /* Register protocol */
11208 proto_p1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
11209 p1_handle = register_dissector("p1", dissect_p1, proto_p1);
11211 proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
11213 /* Register fields and subtrees */
11214 proto_register_field_array(proto_p1, hf, array_length(hf));
11215 proto_register_subtree_array(ett, array_length(ett));
11216 expert_p1 = expert_register_protocol(proto_p1);
11217 expert_register_field_array(expert_p1, ei, array_length(ei));
11219 p1_extension_dissector_table = register_dissector_table("p1.extension", "P1-EXTENSION", proto_p1, FT_UINT32, BASE_DEC);
11220 p1_extension_attribute_dissector_table = register_dissector_table("p1.extension-attribute", "P1-EXTENSION-ATTRIBUTE", proto_p1, FT_UINT32, BASE_DEC);
11221 p1_tokendata_dissector_table = register_dissector_table("p1.tokendata", "P1-TOKENDATA", proto_p1, FT_UINT32, BASE_DEC);
11223 /* Register our configuration options for P1, particularly our port */
11225 p1_module = prefs_register_protocol_subtree("OSI/X.400", proto_p1, NULL);
11226 /* For reading older preference files with "x411." preferences */
11227 prefs_register_module_alias("x411", p1_module);
11229 prefs_register_obsolete_preference(p1_module, "tcp.port");
11231 prefs_register_static_text_preference(p1_module, "tcp_port_info",
11232 "The TCP ports used by the P1 protocol should be added to the TPKT preference \"TPKT TCP ports\", or by selecting \"TPKT\" as the \"Transport\" protocol in the \"Decode As\" dialog.",
11233 "P1 TCP Port preference moved information");
11235 register_ber_syntax_dissector("P1 Message", proto_p1, dissect_p1_mts_apdu);
11236 /*--- Syntax registrations ---*/
11237 register_ber_syntax_dissector("ORAddress", proto_p1, dissect_ORAddress_PDU);
11238 register_ber_syntax_dissector("ORName", proto_p1, dissect_ORName_PDU);
11242 /*--- proto_reg_handoff_p1 --- */
11243 void proto_reg_handoff_p1(void) {
11244 dissector_add_uint("p1.extension", 1, create_dissector_handle(dissect_RecipientReassignmentProhibited_PDU, proto_p1));
11245 dissector_add_uint("p1.extension", 2, create_dissector_handle(dissect_OriginatorRequestedAlternateRecipient_PDU, proto_p1));
11246 dissector_add_uint("p1.extension", 3, create_dissector_handle(dissect_DLExpansionProhibited_PDU, proto_p1));
11247 dissector_add_uint("p1.extension", 4, create_dissector_handle(dissect_ConversionWithLossProhibited_PDU, proto_p1));
11248 dissector_add_uint("p1.extension", 5, create_dissector_handle(dissect_LatestDeliveryTime_PDU, proto_p1));
11249 dissector_add_uint("p1.extension", 6, create_dissector_handle(dissect_RequestedDeliveryMethod_PDU, proto_p1));
11250 dissector_add_uint("p1.extension", 7, create_dissector_handle(dissect_PhysicalForwardingProhibited_PDU, proto_p1));
11251 dissector_add_uint("p1.extension", 8, create_dissector_handle(dissect_PhysicalForwardingAddressRequest_PDU, proto_p1));
11252 dissector_add_uint("p1.extension", 9, create_dissector_handle(dissect_PhysicalDeliveryModes_PDU, proto_p1));
11253 dissector_add_uint("p1.extension", 10, create_dissector_handle(dissect_RegisteredMailType_PDU, proto_p1));
11254 dissector_add_uint("p1.extension", 11, create_dissector_handle(dissect_RecipientNumberForAdvice_PDU, proto_p1));
11255 dissector_add_uint("p1.extension", 12, create_dissector_handle(dissect_PhysicalRenditionAttributes_PDU, proto_p1));
11256 dissector_add_uint("p1.extension", 13, create_dissector_handle(dissect_OriginatorReturnAddress_PDU, proto_p1));
11257 dissector_add_uint("p1.extension", 14, create_dissector_handle(dissect_PhysicalDeliveryReportRequest_PDU, proto_p1));
11258 dissector_add_uint("p1.extension", 15, create_dissector_handle(dissect_OriginatorCertificate_PDU, proto_p1));
11259 dissector_add_uint("p1.extension", 16, create_dissector_handle(dissect_MessageToken_PDU, proto_p1));
11260 dissector_add_uint("p1.extension", 17, create_dissector_handle(dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_p1));
11261 dissector_add_uint("p1.extension", 18, create_dissector_handle(dissect_ContentIntegrityCheck_PDU, proto_p1));
11262 dissector_add_uint("p1.extension", 19, create_dissector_handle(dissect_MessageOriginAuthenticationCheck_PDU, proto_p1));
11263 dissector_add_uint("p1.extension", 20, create_dissector_handle(dissect_p1_MessageSecurityLabel_PDU, proto_p1));
11264 dissector_add_uint("p1.extension", 21, create_dissector_handle(dissect_ProofOfSubmissionRequest_PDU, proto_p1));
11265 dissector_add_uint("p1.extension", 22, create_dissector_handle(dissect_ProofOfDeliveryRequest_PDU, proto_p1));
11266 dissector_add_uint("p1.extension", 23, create_dissector_handle(dissect_ContentCorrelator_PDU, proto_p1));
11267 dissector_add_uint("p1.extension", 24, create_dissector_handle(dissect_ProbeOriginAuthenticationCheck_PDU, proto_p1));
11268 dissector_add_uint("p1.extension", 25, create_dissector_handle(dissect_RedirectionHistory_PDU, proto_p1));
11269 dissector_add_uint("p1.extension", 26, create_dissector_handle(dissect_DLExpansionHistory_PDU, proto_p1));
11270 dissector_add_uint("p1.extension", 27, create_dissector_handle(dissect_PhysicalForwardingAddress_PDU, proto_p1));
11271 dissector_add_uint("p1.extension", 28, create_dissector_handle(dissect_RecipientCertificate_PDU, proto_p1));
11272 dissector_add_uint("p1.extension", 29, create_dissector_handle(dissect_ProofOfDelivery_PDU, proto_p1));
11273 dissector_add_uint("p1.extension", 30, create_dissector_handle(dissect_OriginatorAndDLExpansionHistory_PDU, proto_p1));
11274 dissector_add_uint("p1.extension", 31, create_dissector_handle(dissect_ReportingDLName_PDU, proto_p1));
11275 dissector_add_uint("p1.extension", 32, create_dissector_handle(dissect_ReportingMTACertificate_PDU, proto_p1));
11276 dissector_add_uint("p1.extension", 33, create_dissector_handle(dissect_ReportOriginAuthenticationCheck_PDU, proto_p1));
11277 dissector_add_uint("p1.extension", 34, create_dissector_handle(dissect_OriginatingMTACertificate_PDU, proto_p1));
11278 dissector_add_uint("p1.extension", 35, create_dissector_handle(dissect_ProofOfSubmission_PDU, proto_p1));
11279 dissector_add_uint("p1.extension", 37, create_dissector_handle(dissect_TraceInformation_PDU, proto_p1));
11280 dissector_add_uint("p1.extension", 38, create_dissector_handle(dissect_InternalTraceInformation_PDU, proto_p1));
11281 dissector_add_uint("p1.extension", 39, create_dissector_handle(dissect_ReportingMTAName_PDU, proto_p1));
11282 dissector_add_uint("p1.extension", 40, create_dissector_handle(dissect_ExtendedCertificates_PDU, proto_p1));
11283 dissector_add_uint("p1.extension", 42, create_dissector_handle(dissect_DLExemptedRecipients_PDU, proto_p1));
11284 dissector_add_uint("p1.extension", 45, create_dissector_handle(dissect_CertificateSelectors_PDU, proto_p1));
11285 dissector_add_uint("p1.extension-attribute", 1, create_dissector_handle(dissect_CommonName_PDU, proto_p1));
11286 dissector_add_uint("p1.extension-attribute", 2, create_dissector_handle(dissect_TeletexCommonName_PDU, proto_p1));
11287 dissector_add_uint("p1.extension-attribute", 3, create_dissector_handle(dissect_TeletexOrganizationName_PDU, proto_p1));
11288 dissector_add_uint("p1.extension-attribute", 4, create_dissector_handle(dissect_TeletexPersonalName_PDU, proto_p1));
11289 dissector_add_uint("p1.extension-attribute", 5, create_dissector_handle(dissect_TeletexOrganizationalUnitNames_PDU, proto_p1));
11290 dissector_add_uint("p1.extension-attribute", 6, create_dissector_handle(dissect_TeletexDomainDefinedAttributes_PDU, proto_p1));
11291 dissector_add_uint("p1.extension-attribute", 7, create_dissector_handle(dissect_PDSName_PDU, proto_p1));
11292 dissector_add_uint("p1.extension-attribute", 8, create_dissector_handle(dissect_PhysicalDeliveryCountryName_PDU, proto_p1));
11293 dissector_add_uint("p1.extension-attribute", 9, create_dissector_handle(dissect_PostalCode_PDU, proto_p1));
11294 dissector_add_uint("p1.extension-attribute", 10, create_dissector_handle(dissect_PhysicalDeliveryOfficeName_PDU, proto_p1));
11295 dissector_add_uint("p1.extension-attribute", 11, create_dissector_handle(dissect_PhysicalDeliveryOfficeNumber_PDU, proto_p1));
11296 dissector_add_uint("p1.extension-attribute", 12, create_dissector_handle(dissect_ExtensionORAddressComponents_PDU, proto_p1));
11297 dissector_add_uint("p1.extension-attribute", 13, create_dissector_handle(dissect_PhysicalDeliveryPersonalName_PDU, proto_p1));
11298 dissector_add_uint("p1.extension-attribute", 14, create_dissector_handle(dissect_PhysicalDeliveryOrganizationName_PDU, proto_p1));
11299 dissector_add_uint("p1.extension-attribute", 15, create_dissector_handle(dissect_ExtensionPhysicalDeliveryAddressComponents_PDU, proto_p1));
11300 dissector_add_uint("p1.extension-attribute", 16, create_dissector_handle(dissect_UnformattedPostalAddress_PDU, proto_p1));
11301 dissector_add_uint("p1.extension-attribute", 17, create_dissector_handle(dissect_StreetAddress_PDU, proto_p1));
11302 dissector_add_uint("p1.extension-attribute", 18, create_dissector_handle(dissect_PostOfficeBoxAddress_PDU, proto_p1));
11303 dissector_add_uint("p1.extension-attribute", 19, create_dissector_handle(dissect_PosteRestanteAddress_PDU, proto_p1));
11304 dissector_add_uint("p1.extension-attribute", 20, create_dissector_handle(dissect_UniquePostalName_PDU, proto_p1));
11305 dissector_add_uint("p1.extension-attribute", 21, create_dissector_handle(dissect_LocalPostalAttributes_PDU, proto_p1));
11306 dissector_add_uint("p1.extension-attribute", 22, create_dissector_handle(dissect_ExtendedNetworkAddress_PDU, proto_p1));
11307 dissector_add_uint("p1.extension-attribute", 23, create_dissector_handle(dissect_TerminalType_PDU, proto_p1));
11308 dissector_add_uint("p1.extension-attribute", 24, create_dissector_handle(dissect_UniversalCommonName_PDU, proto_p1));
11309 dissector_add_uint("p1.extension-attribute", 25, create_dissector_handle(dissect_UniversalOrganizationName_PDU, proto_p1));
11310 dissector_add_uint("p1.extension-attribute", 26, create_dissector_handle(dissect_UniversalPersonalName_PDU, proto_p1));
11311 dissector_add_uint("p1.extension-attribute", 27, create_dissector_handle(dissect_UniversalOrganizationalUnitNames_PDU, proto_p1));
11312 dissector_add_uint("p1.extension-attribute", 28, create_dissector_handle(dissect_UniversalDomainDefinedAttributes_PDU, proto_p1));
11313 dissector_add_uint("p1.extension-attribute", 29, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeName_PDU, proto_p1));
11314 dissector_add_uint("p1.extension-attribute", 30, create_dissector_handle(dissect_UniversalPhysicalDeliveryOfficeNumber_PDU, proto_p1));
11315 dissector_add_uint("p1.extension-attribute", 31, create_dissector_handle(dissect_UniversalExtensionORAddressComponents_PDU, proto_p1));
11316 dissector_add_uint("p1.extension-attribute", 32, create_dissector_handle(dissect_UniversalPhysicalDeliveryPersonalName_PDU, proto_p1));
11317 dissector_add_uint("p1.extension-attribute", 33, create_dissector_handle(dissect_UniversalPhysicalDeliveryOrganizationName_PDU, proto_p1));
11318 dissector_add_uint("p1.extension-attribute", 34, create_dissector_handle(dissect_UniversalExtensionPhysicalDeliveryAddressComponents_PDU, proto_p1));
11319 dissector_add_uint("p1.extension-attribute", 35, create_dissector_handle(dissect_UniversalUnformattedPostalAddress_PDU, proto_p1));
11320 dissector_add_uint("p1.extension-attribute", 36, create_dissector_handle(dissect_UniversalStreetAddress_PDU, proto_p1));
11321 dissector_add_uint("p1.extension-attribute", 37, create_dissector_handle(dissect_UniversalPostOfficeBoxAddress_PDU, proto_p1));
11322 dissector_add_uint("p1.extension-attribute", 38, create_dissector_handle(dissect_UniversalPosteRestanteAddress_PDU, proto_p1));
11323 dissector_add_uint("p1.extension-attribute", 39, create_dissector_handle(dissect_UniversalUniquePostalName_PDU, proto_p1));
11324 dissector_add_uint("p1.extension-attribute", 40, create_dissector_handle(dissect_UniversalLocalPostalAttributes_PDU, proto_p1));
11325 register_ber_oid_dissector("2.6.3.6.0", dissect_AsymmetricToken_PDU, proto_p1, "id-tok-asymmetricToken");
11326 register_ber_oid_dissector("2.6.5.6.0", dissect_MTANameAndOptionalGDI_PDU, proto_p1, "id-on-mtaName");
11327 dissector_add_uint("p1.tokendata", 1, create_dissector_handle(dissect_BindTokenSignedData_PDU, proto_p1));
11328 dissector_add_uint("p1.tokendata", 2, create_dissector_handle(dissect_MessageTokenSignedData_PDU, proto_p1));
11329 dissector_add_uint("p1.tokendata", 3, create_dissector_handle(dissect_MessageTokenEncryptedData_PDU, proto_p1));
11330 dissector_add_uint("p1.tokendata", 4, create_dissector_handle(dissect_BindTokenEncryptedData_PDU, proto_p1));
11331 register_ber_oid_dissector("2.6.5.2.0", dissect_ContentLength_PDU, proto_p1, "id-at-mhs-maximum-content-length");
11332 register_ber_oid_dissector("2.6.5.2.1", dissect_ExtendedContentType_PDU, proto_p1, "id-at-mhs-deliverable-content-types");
11333 register_ber_oid_dissector("2.6.5.2.2", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-exclusively-acceptable-eits");
11334 register_ber_oid_dissector("2.6.5.2.3", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-members");
11335 register_ber_oid_dissector("2.6.5.2.6", dissect_ORAddress_PDU, proto_p1, "id-at-mhs-or-addresses");
11336 register_ber_oid_dissector("2.6.5.2.9", dissect_ExtendedContentType_PDU, proto_p1, "id-at-mhs-supported-content-types");
11337 register_ber_oid_dissector("2.6.5.2.12", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-archive-service");
11338 register_ber_oid_dissector("2.6.5.2.15", dissect_ORName_PDU, proto_p1, "id-at-mhs-dl-subscription-service");
11339 register_ber_oid_dissector("2.6.5.2.17", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-acceptable-eits");
11340 register_ber_oid_dissector("2.6.5.2.18", dissect_ExtendedEncodedInformationType_PDU, proto_p1, "id-at-mhs-unacceptable-eits");
11341 register_ber_oid_dissector("2.16.840.1.101.2.1.5.47", dissect_ORName_PDU, proto_p1, "id-at-aLExemptedAddressProcessor");
11342 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");
11343 register_ber_oid_dissector("2.6.4.3.80", dissect_CertificateSelectors_PDU, proto_p1, "id-att-certificate-selectors");
11344 register_ber_oid_dissector("2.6.4.3.1", dissect_Content_PDU, proto_p1, "id-att-content");
11345 register_ber_oid_dissector("2.6.4.3.3", dissect_ContentCorrelator_PDU, proto_p1, "id-att-content-correlator");
11346 register_ber_oid_dissector("2.6.4.3.4", dissect_ContentIdentifier_PDU, proto_p1, "id-att-content-identifier");
11347 register_ber_oid_dissector("2.6.4.3.5", dissect_ContentIntegrityCheck_PDU, proto_p1, "id-att-content-inetgrity-check");
11348 register_ber_oid_dissector("2.6.4.3.6", dissect_ContentLength_PDU, proto_p1, "id-att-content-length");
11349 register_ber_oid_dissector("2.6.4.3.8", dissect_ExtendedContentType_PDU, proto_p1, "id-att-content-type");
11350 register_ber_oid_dissector("2.6.4.3.9", dissect_ConversionWithLossProhibited_PDU, proto_p1, "id-att-conversion-with-loss-prohibited");
11351 register_ber_oid_dissector("2.6.4.3.51", dissect_DeferredDeliveryTime_PDU, proto_p1, "id-att-deferred-delivery-time");
11352 register_ber_oid_dissector("2.6.4.3.13", dissect_DeliveryFlags_PDU, proto_p1, "id-att-delivery-flags");
11353 register_ber_oid_dissector("2.6.4.3.78", dissect_ORName_PDU, proto_p1, "id-att-dl-exempted-recipients");
11354 register_ber_oid_dissector("2.6.4.3.14", dissect_DLExpansion_PDU, proto_p1, "id-att-dl-expansion-history");
11355 register_ber_oid_dissector("2.6.4.3.53", dissect_DLExpansionProhibited_PDU, proto_p1, "id-att-dl-expansion-prohibited");
11356 register_ber_oid_dissector("2.6.4.3.54", dissect_InternalTraceInformationElement_PDU, proto_p1, "id-att-internal-trace-information");
11357 register_ber_oid_dissector("2.6.4.3.55", dissect_LatestDeliveryTime_PDU, proto_p1, "id-att-latest-delivery-time");
11358 register_ber_oid_dissector("2.6.4.3.18", dissect_MessageDeliveryEnvelope_PDU, proto_p1, "id-att-message-delivery-envelope");
11359 register_ber_oid_dissector("2.6.4.3.20", dissect_MessageDeliveryTime_PDU, proto_p1, "id-att-message-delivery-time");
11360 register_ber_oid_dissector("2.6.4.3.19", dissect_MTSIdentifier_PDU, proto_p1, "id-att-message-identifier");
11361 register_ber_oid_dissector("2.6.4.3.21", dissect_MessageOriginAuthenticationCheck_PDU, proto_p1, "id-at-message-orgin-authentication-check");
11362 register_ber_oid_dissector("2.6.4.3.22", dissect_p1_MessageSecurityLabel_PDU, proto_p1, "id-att-message-security-label");
11363 register_ber_oid_dissector("2.6.4.3.59", dissect_MessageSubmissionEnvelope_PDU, proto_p1, "id-att-message-submission-envelope");
11364 register_ber_oid_dissector("2.6.4.3.23", dissect_MessageSubmissionTime_PDU, proto_p1, "id-att-message-submission-time");
11365 register_ber_oid_dissector("2.6.4.3.24", dissect_MessageToken_PDU, proto_p1, "id-att-message-token");
11366 register_ber_oid_dissector("2.6.4.3.81", dissect_ExtendedCertificates_PDU, proto_p1, "id-att-multiple-originator-certificates");
11367 register_ber_oid_dissector("2.6.4.3.17", dissect_ORName_PDU, proto_p1, "id-att-originally-intended-recipient-name");
11368 register_ber_oid_dissector("2.6.4.3.62", dissect_OriginatingMTACertificate_PDU, proto_p1, "id-att-originating-MTA-certificate");
11369 register_ber_oid_dissector("2.6.4.3.26", dissect_OriginatorCertificate_PDU, proto_p1, "id-att-originator-certificate");
11370 register_ber_oid_dissector("2.6.4.3.27", dissect_ORName_PDU, proto_p1, "id-att-originator-name");
11371 register_ber_oid_dissector("2.6.4.3.63", dissect_OriginatorReportRequest_PDU, proto_p1, "id-att-originator-report-request");
11372 register_ber_oid_dissector("2.6.4.3.64", dissect_OriginatorReturnAddress_PDU, proto_p1, "id-att-originator-return-address");
11373 register_ber_oid_dissector("2.6.4.3.28", dissect_ORName_PDU, proto_p1, "id-att-other-recipient-names");
11374 register_ber_oid_dissector("2.6.4.3.65", dissect_PerMessageIndicators_PDU, proto_p1, "id-att-per-message-indicators");
11375 register_ber_oid_dissector("2.6.4.3.66", dissect_PerRecipientMessageSubmissionFields_PDU, proto_p1, "id-att-per-recipient-message-submission-fields");
11376 register_ber_oid_dissector("2.6.4.3.67", dissect_PerRecipientProbeSubmissionFields_PDU, proto_p1, "id-att-per-recipient-probe-submission-fields");
11377 register_ber_oid_dissector("2.6.4.3.30", dissect_PerRecipientReportDeliveryFields_PDU, proto_p1, "id-att-per-recipient-report-delivery-fields");
11378 register_ber_oid_dissector("2.6.4.3.31", dissect_Priority_PDU, proto_p1, "id-att-priority");
11379 register_ber_oid_dissector("2.6.4.3.68", dissect_ProbeOriginAuthenticationCheck_PDU, proto_p1, "id-att-probe-origin-authentication-check");
11380 register_ber_oid_dissector("2.6.4.3.69", dissect_ProbeSubmissionEnvelope_PDU, proto_p1, "id-att-probe-submission-envelope");
11381 register_ber_oid_dissector("2.6.4.3.32", dissect_ProofOfDeliveryRequest_PDU, proto_p1, "id-att-proof-of-delivery-request");
11382 register_ber_oid_dissector("2.6.4.3.70", dissect_ProofOfSubmission_PDU, proto_p1, "id-att-proof-of-submission");
11383 register_ber_oid_dissector("2.6.4.3.82", dissect_ExtendedCertificates_PDU, proto_p1, "id-att-recipient-certificate");
11384 register_ber_oid_dissector("2.6.4.3.71", dissect_ORName_PDU, proto_p1, "id-att-recipient-names");
11385 register_ber_oid_dissector("2.6.4.3.72", dissect_RecipientReassignmentProhibited_PDU, proto_p1, "id-att-recipient-reassignment-prohibited");
11386 register_ber_oid_dissector("2.6.4.3.33", dissect_Redirection_PDU, proto_p1, "id-at-redirection-history");
11387 register_ber_oid_dissector("2.6.4.3.34", dissect_ReportDeliveryEnvelope_PDU, proto_p1, "id-att-report-delivery-envelope");
11388 register_ber_oid_dissector("2.6.4.3.35", dissect_ReportingDLName_PDU, proto_p1, "id-att-reporting-DL-name");
11389 register_ber_oid_dissector("2.6.4.3.36", dissect_ReportingMTACertificate_PDU, proto_p1, "id-att-reporting-MTA-certificate");
11390 register_ber_oid_dissector("2.6.4.3.37", dissect_ReportOriginAuthenticationCheck_PDU, proto_p1, "id-att-report-origin-authentication-check");
11391 register_ber_oid_dissector("2.6.4.3.38", dissect_SecurityClassification_PDU, proto_p1, "id-att-security-classification");
11392 register_ber_oid_dissector("2.6.4.3.40", dissect_SubjectSubmissionIdentifier_PDU, proto_p1, "id-att-subject-submission-identifier");
11393 register_ber_oid_dissector("2.6.4.3.41", dissect_ORName_PDU, proto_p1, "id-att-this-recipient-name");
11394 register_ber_oid_dissector("2.6.4.3.75", dissect_TraceInformationElement_PDU, proto_p1, "id-att-trace-information");
11395 register_ber_oid_dissector("2.6.1.7.36", dissect_MessageToken_PDU, proto_p1, "id-hat-forwarded-token");
11398 /* APPLICATION CONTEXT */
11400 oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
11402 /* ABSTRACT SYNTAXES */
11403 register_rtse_oid_dissector_handle("2.6.0.2.12", p1_handle, 0, "id-as-mta-rtse", true);
11404 register_rtse_oid_dissector_handle("2.6.0.2.7", p1_handle, 0, "id-as-mtse", false);
11407 register_rtse_oid_dissector_handle("applicationProtocol.1", p1_handle, 0, "mts-transfer-protocol-1984", false);
11408 register_rtse_oid_dissector_handle("applicationProtocol.12", p1_handle, 0, "mta-transfer-protocol", false);
11410 /* the ROS dissector will use the registered P3 ros info */
11411 register_rtse_oid_dissector_handle(id_as_mts_rtse, NULL, 0, "id-as-mts-rtse", true);
11412 register_rtse_oid_dissector_handle(id_as_msse, NULL, 0, "id-as-msse", true);
11414 /* APPLICATION CONTEXT */
11416 oid_add_from_string("id-ac-mts-access-88", id_ac_mts_access_88);
11417 oid_add_from_string("id-ac-mts-forced-access-88", id_ac_mts_forced_access_88);
11418 oid_add_from_string("id-ac-mts-access-94", id_ac_mts_access_94);
11419 oid_add_from_string("id-ac-mts-forced-access-94", id_ac_mts_forced_access_94);
11422 /* Register P3 with ROS */
11424 register_ros_protocol_info(id_as_msse, &p3_ros_info, 0, "id-as-msse", false);
11426 register_ros_protocol_info(id_as_mdse_88, &p3_ros_info, 0, "id-as-mdse-88", false);
11427 register_ros_protocol_info(id_as_mdse_94, &p3_ros_info, 0, "id-as-mdse-94", false);
11429 register_ros_protocol_info(id_as_mase_88, &p3_ros_info, 0, "id-as-mase-88", false);
11430 register_ros_protocol_info(id_as_mase_94, &p3_ros_info, 0, "id-as-mase-94", false);
11432 register_ros_protocol_info(id_as_mts, &p3_ros_info, 0, "id-as-mts", false);
11433 register_ros_protocol_info(id_as_mts_rtse, &p3_ros_info, 0, "id-as-mts-rtse", true);
11438 * Editor modelines - https://www.wireshark.org/tools/modelines.html
11440 * Local variables:
11441 * c-basic-offset: 4
11442 * tab-width: 8
11443 * indent-tabs-mode: nil
11444 * End:
11446 * vi: set shiftwidth=4 tabstop=8 expandtab:
11447 * :indentSize=4:tabSize=8:noTabs=true: