1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler */
4 /* ../../tools/asn2eth.py -X -b -e -p x411 -c x411.cnf -s packet-x411-template x411.asn */
6 /* Input file: packet-x411-template.c */
9 * Routines for X.411 (X.400 Message Transfer) packet dissection
14 * Ethereal - Network traffic analyzer
15 * By Gerald Combs <gerald@ethereal.com>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
38 #include <epan/packet.h>
39 #include <epan/conversation.h>
44 #include "packet-ber.h"
45 #include "packet-acse.h"
46 #include "packet-ros.h"
47 #include "packet-rtse.h"
49 #include "packet-x509af.h"
50 #include "packet-x509ce.h"
51 #include "packet-x509if.h"
52 #include "packet-x509sat.h"
54 #include "packet-x411.h"
55 #include <epan/emem.h>
56 #include <epan/strutil.h>
58 #define PNAME "X.411 Message Transfer Service"
62 /* Initialize the protocol and registered fields */
65 static struct SESSION_DATA_STRUCTURE* session = NULL;
66 static int extension_id = -1; /* integer extension id */
67 static const char *object_identifier_id; /* extensions identifier */
68 static const char *content_type_id; /* content type identifier */
70 #define MAX_ORA_STR_LEN 256
71 static char *oraddress = NULL;
72 static gboolean doing_address=FALSE;
73 static proto_item *address_item;
75 static proto_tree *top_tree=NULL;
78 call_x411_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
81 /*--- Included file: packet-x411-hf.c ---*/
83 static int hf_x411_MTABindArgument_PDU = -1; /* MTABindArgument */
84 static int hf_x411_MTABindResult_PDU = -1; /* MTABindResult */
85 static int hf_x411_MTABindError_PDU = -1; /* MTABindError */
86 static int hf_x411_MTS_APDU_PDU = -1; /* MTS_APDU */
87 static int hf_x411_InternalTraceInformation_PDU = -1; /* InternalTraceInformation */
88 static int hf_x411_TraceInformation_PDU = -1; /* TraceInformation */
89 static int hf_x411_RecipientReassignmentProhibited_PDU = -1; /* RecipientReassignmentProhibited */
90 static int hf_x411_MTSOriginatorRequestedAlternateRecipient_PDU = -1; /* MTSOriginatorRequestedAlternateRecipient */
91 static int hf_x411_DLExpansionProhibited_PDU = -1; /* DLExpansionProhibited */
92 static int hf_x411_ConversionWithLossProhibited_PDU = -1; /* ConversionWithLossProhibited */
93 static int hf_x411_LatestDeliveryTime_PDU = -1; /* LatestDeliveryTime */
94 static int hf_x411_RequestedDeliveryMethod_PDU = -1; /* RequestedDeliveryMethod */
95 static int hf_x411_PhysicalForwardingProhibited_PDU = -1; /* PhysicalForwardingProhibited */
96 static int hf_x411_PhysicalForwardingAddressRequest_PDU = -1; /* PhysicalForwardingAddressRequest */
97 static int hf_x411_PhysicalDeliveryModes_PDU = -1; /* PhysicalDeliveryModes */
98 static int hf_x411_RegisteredMailType_PDU = -1; /* RegisteredMailType */
99 static int hf_x411_RecipientNumberForAdvice_PDU = -1; /* RecipientNumberForAdvice */
100 static int hf_x411_PhysicalRenditionAttributes_PDU = -1; /* PhysicalRenditionAttributes */
101 static int hf_x411_OriginatorReturnAddress_PDU = -1; /* OriginatorReturnAddress */
102 static int hf_x411_PhysicalDeliveryReportRequest_PDU = -1; /* PhysicalDeliveryReportRequest */
103 static int hf_x411_OriginatorCertificate_PDU = -1; /* OriginatorCertificate */
104 static int hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU = -1; /* ContentConfidentialityAlgorithmIdentifier */
105 static int hf_x411_MessageSecurityLabel_PDU = -1; /* MessageSecurityLabel */
106 static int hf_x411_ProofOfSubmissionRequest_PDU = -1; /* ProofOfSubmissionRequest */
107 static int hf_x411_ProofOfDeliveryRequest_PDU = -1; /* ProofOfDeliveryRequest */
108 static int hf_x411_ContentCorrelator_PDU = -1; /* ContentCorrelator */
109 static int hf_x411_RedirectionHistory_PDU = -1; /* RedirectionHistory */
110 static int hf_x411_DLExpansionHistory_PDU = -1; /* DLExpansionHistory */
111 static int hf_x411_PhysicalForwardingAddress_PDU = -1; /* PhysicalForwardingAddress */
112 static int hf_x411_OriginatorAndDLExpansionHistory_PDU = -1; /* OriginatorAndDLExpansionHistory */
113 static int hf_x411_ReportingDLName_PDU = -1; /* ReportingDLName */
114 static int hf_x411_ReportingMTACertificate_PDU = -1; /* ReportingMTACertificate */
115 static int hf_x411_ReportingMTAName_PDU = -1; /* ReportingMTAName */
116 static int hf_x411_ExtendedCertificates_PDU = -1; /* ExtendedCertificates */
117 static int hf_x411_DLExemptedRecipients_PDU = -1; /* DLExemptedRecipients */
118 static int hf_x411_CertificateSelectors_PDU = -1; /* CertificateSelectors */
119 static int hf_x411_CommonName_PDU = -1; /* CommonName */
120 static int hf_x411_TeletexCommonName_PDU = -1; /* TeletexCommonName */
121 static int hf_x411_UniversalCommonName_PDU = -1; /* UniversalCommonName */
122 static int hf_x411_TeletexOrganizationName_PDU = -1; /* TeletexOrganizationName */
123 static int hf_x411_UniversalOrganizationName_PDU = -1; /* UniversalOrganizationName */
124 static int hf_x411_TeletexPersonalName_PDU = -1; /* TeletexPersonalName */
125 static int hf_x411_UniversalPersonalName_PDU = -1; /* UniversalPersonalName */
126 static int hf_x411_TeletexOrganizationalUnitNames_PDU = -1; /* TeletexOrganizationalUnitNames */
127 static int hf_x411_UniversalOrganizationalUnitNames_PDU = -1; /* UniversalOrganizationalUnitNames */
128 static int hf_x411_PDSName_PDU = -1; /* PDSName */
129 static int hf_x411_PhysicalDeliveryCountryName_PDU = -1; /* PhysicalDeliveryCountryName */
130 static int hf_x411_PostalCode_PDU = -1; /* PostalCode */
131 static int hf_x411_PhysicalDeliveryOfficeName_PDU = -1; /* PhysicalDeliveryOfficeName */
132 static int hf_x411_unauthenticated = -1; /* NULL */
133 static int hf_x411_authenticated_argument = -1; /* AuthenticatedArgument */
134 static int hf_x411_authenticated_initiator_name = -1; /* MTAName */
135 static int hf_x411_initiator_credentials = -1; /* InitiatorCredentials */
136 static int hf_x411_security_context = -1; /* SecurityContext */
137 static int hf_x411_authenticated_result = -1; /* AuthenticatedResult */
138 static int hf_x411_authenticated_responder_name = -1; /* MTAName */
139 static int hf_x411_responder_credentials = -1; /* ResponderCredentials */
140 static int hf_x411_message = -1; /* Message */
141 static int hf_x411_probe = -1; /* Probe */
142 static int hf_x411_report = -1; /* Report */
143 static int hf_x411_message_envelope = -1; /* MessageTransferEnvelope */
144 static int hf_x411_content = -1; /* Content */
145 static int hf_x411_report_envelope = -1; /* ReportTransferEnvelope */
146 static int hf_x411_report_content = -1; /* ReportTransferContent */
147 static int hf_x411_message_identifier = -1; /* MessageIdentifier */
148 static int hf_x411_mta_originator_name = -1; /* MTAOriginatorName */
149 static int hf_x411_original_encoded_information_types = -1; /* OriginalEncodedInformationTypes */
150 static int hf_x411_content_type = -1; /* ContentType */
151 static int hf_x411_content_identifier = -1; /* ContentIdentifier */
152 static int hf_x411_priority = -1; /* Priority */
153 static int hf_x411_per_message_indicators = -1; /* PerMessageIndicators */
154 static int hf_x411_deferred_delivery_time = -1; /* DeferredDeliveryTime */
155 static int hf_x411_per_domain_bilateral_information = -1; /* SEQUENCE_OF_PerDomainBilateralInformation */
156 static int hf_x411_per_domain_bilateral_information_item = -1; /* PerDomainBilateralInformation */
157 static int hf_x411_trace_information = -1; /* TraceInformation */
158 static int hf_x411_extensions = -1; /* SET_OF_ExtensionField */
159 static int hf_x411_extensions_item = -1; /* ExtensionField */
160 static int hf_x411_per_recipient_message_fields = -1; /* SEQUENCE_OF_PerRecipientMessageTransferFields */
161 static int hf_x411_per_recipient_message_fields_item = -1; /* PerRecipientMessageTransferFields */
162 static int hf_x411_recipient_name = -1; /* MTARecipientName */
163 static int hf_x411_originally_specified_recipient_number = -1; /* OriginallySpecifiedRecipientNumber */
164 static int hf_x411_per_recipient_indicators = -1; /* PerRecipientIndicators */
165 static int hf_x411_explicit_conversion = -1; /* ExplicitConversion */
166 static int hf_x411_probe_identifier = -1; /* ProbeIdentifier */
167 static int hf_x411_content_length = -1; /* ContentLength */
168 static int hf_x411_per_recipient_probe_transfer_fields = -1; /* SEQUENCE_OF_PerRecipientProbeTransferFields */
169 static int hf_x411_per_recipient_probe_transfer_fields_item = -1; /* PerRecipientProbeTransferFields */
170 static int hf_x411_report_identifier = -1; /* ReportIdentifier */
171 static int hf_x411_report_destination_name = -1; /* ReportDestinationName */
172 static int hf_x411_subject_identifier = -1; /* SubjectIdentifier */
173 static int hf_x411_subject_intermediate_trace_information = -1; /* SubjectIntermediateTraceInformation */
174 static int hf_x411_returned_content = -1; /* Content */
175 static int hf_x411_additional_information = -1; /* AdditionalInformation */
176 static int hf_x411_per_recipient_report_fields = -1; /* SEQUENCE_OF_PerRecipientReportTransferFields */
177 static int hf_x411_per_recipient_fields_item = -1; /* PerRecipientReportTransferFields */
178 static int hf_x411_mta_actual_recipient_name = -1; /* MTAActualRecipientName */
179 static int hf_x411_last_trace_information = -1; /* LastTraceInformation */
180 static int hf_x411_report_originally_intended_recipient_name = -1; /* MTAOriginallyIntendedRecipientName */
181 static int hf_x411_supplementary_information = -1; /* SupplementaryInformation */
182 static int hf_x411_country_name = -1; /* CountryName */
183 static int hf_x411_bilateral_domain = -1; /* T_domain */
184 static int hf_x411_administration_domain_name = -1; /* AdministrationDomainName */
185 static int hf_x411_private_domain = -1; /* T_private_domain */
186 static int hf_x411_private_domain_identifier = -1; /* PrivateDomainIdentifier */
187 static int hf_x411_arrival_time = -1; /* ArrivalTime */
188 static int hf_x411_converted_encoded_information_types = -1; /* ConvertedEncodedInformationTypes */
189 static int hf_x411_trace_report_type = -1; /* ReportType */
190 static int hf_x411_InternalTraceInformation_item = -1; /* InternalTraceInformationElement */
191 static int hf_x411_global_domain_identifier = -1; /* GlobalDomainIdentifier */
192 static int hf_x411_mta_name = -1; /* MTAName */
193 static int hf_x411_mta_supplied_information = -1; /* MTASuppliedInformation */
194 static int hf_x411_routing_action = -1; /* RoutingAction */
195 static int hf_x411_attempted = -1; /* T_attempted */
196 static int hf_x411_mta = -1; /* MTAName */
197 static int hf_x411_domain = -1; /* GlobalDomainIdentifier */
198 static int hf_x411_deferred_time = -1; /* DeferredTime */
199 static int hf_x411_other_actions = -1; /* OtherActions */
200 static int hf_x411_TraceInformation_item = -1; /* TraceInformationElement */
201 static int hf_x411_domain_supplied_information = -1; /* DomainSuppliedInformation */
202 static int hf_x411_attempted_domain = -1; /* GlobalDomainIdentifier */
203 static int hf_x411_initiator_name = -1; /* ObjectName */
204 static int hf_x411_messages_waiting = -1; /* MessagesWaiting */
205 static int hf_x411_responder_name = -1; /* ObjectName */
206 static int hf_x411_user_agent = -1; /* ORAddressAndOptionalDirectoryName */
207 static int hf_x411_mTA = -1; /* MTAName */
208 static int hf_x411_message_store = -1; /* ORAddressAndOptionalDirectoryName */
209 static int hf_x411_urgent = -1; /* DeliveryQueue */
210 static int hf_x411_normal = -1; /* DeliveryQueue */
211 static int hf_x411_non_urgent = -1; /* DeliveryQueue */
212 static int hf_x411_messages = -1; /* INTEGER */
213 static int hf_x411_delivery_queue_octets = -1; /* INTEGER */
214 static int hf_x411_simple = -1; /* Password */
215 static int hf_x411_ia5_string = -1; /* IA5String */
216 static int hf_x411_octet_string = -1; /* OCTET_STRING */
217 static int hf_x411_SecurityContext_item = -1; /* SecurityLabel */
218 static int hf_x411_message_submission_envelope = -1; /* MessageSubmissionEnvelope */
219 static int hf_x411_message_submission_identifier = -1; /* MessageSubmissionIdentifier */
220 static int hf_x411_message_submission_time = -1; /* MessageSubmissionTime */
221 static int hf_x411_probe_submission_identifier = -1; /* ProbeSubmissionIdentifier */
222 static int hf_x411_probe_submission_time = -1; /* ProbeSubmissionTime */
223 static int hf_x411_ImproperlySpecifiedRecipients_item = -1; /* MTSRecipientName */
224 static int hf_x411_waiting_operations = -1; /* Operations */
225 static int hf_x411_waiting_messages = -1; /* WaitingMessages */
226 static int hf_x411_waiting_content_types = -1; /* SET_OF_ContentType */
227 static int hf_x411_waiting_content_types_item = -1; /* ContentType */
228 static int hf_x411_waiting_encoded_information_types = -1; /* EncodedInformationTypes */
229 static int hf_x411_message_delivery_identifier = -1; /* MessageDeliveryIdentifier */
230 static int hf_x411_message_delivery_time = -1; /* MessageDeliveryTime */
231 static int hf_x411_other_fields = -1; /* OtherMessageDeliveryFields */
232 static int hf_x411_recipient_certificate = -1; /* RecipientCertificate */
233 static int hf_x411_subject_submission_identifier = -1; /* SubjectSubmissionIdentifier */
234 static int hf_x411_per_recipient_report_delivery_fields = -1; /* SEQUENCE_OF_PerRecipientReportDeliveryFields */
235 static int hf_x411_per_recipient_report_delivery_fields_item = -1; /* PerRecipientReportDeliveryFields */
236 static int hf_x411_empty_result = -1; /* NULL */
237 static int hf_x411_restrict = -1; /* BOOLEAN */
238 static int hf_x411_permissible_operations = -1; /* Operations */
239 static int hf_x411_permissible_maximum_content_length = -1; /* ContentLength */
240 static int hf_x411_permissible_lowest_priority = -1; /* Priority */
241 static int hf_x411_permissible_content_types = -1; /* ContentTypes */
242 static int hf_x411_permissible_encoded_information_types = -1; /* PermissibleEncodedInformationTypes */
243 static int hf_x411_permissible_security_context = -1; /* SecurityContext */
244 static int hf_x411_refused_argument = -1; /* T_refused_argument */
245 static int hf_x411_built_in_argument = -1; /* RefusedArgument */
246 static int hf_x411_refused_extension = -1; /* T_refused_extension */
247 static int hf_x411_refusal_reason = -1; /* RefusalReason */
248 static int hf_x411_user_name = -1; /* UserName */
249 static int hf_x411_user_address = -1; /* UserAddress */
250 static int hf_x411_deliverable_class = -1; /* SET_OF_DeliverableClass */
251 static int hf_x411_deliverable_class_item = -1; /* DeliverableClass */
252 static int hf_x411_default_delivery_controls = -1; /* DefaultDeliveryControls */
253 static int hf_x411_redirections = -1; /* Redirections */
254 static int hf_x411_restricted_delivery = -1; /* RestrictedDelivery */
255 static int hf_x411_retrieve_registrations = -1; /* RegistrationTypes */
256 static int hf_x411_non_empty_result = -1; /* T_non_empty_result */
257 static int hf_x411_registered_information = -1; /* RegisterArgument */
258 static int hf_x411_old_credentials = -1; /* Credentials */
259 static int hf_x411_new_credentials = -1; /* Credentials */
260 static int hf_x411_x121 = -1; /* T_x121 */
261 static int hf_x411_x121_address = -1; /* NumericString */
262 static int hf_x411_tsap_id = -1; /* PrintableString */
263 static int hf_x411_presentation = -1; /* PSAPAddress */
264 static int hf_x411_Redirections_item = -1; /* RecipientRedirection */
265 static int hf_x411_redirection_classes = -1; /* SET_OF_RedirectionClass */
266 static int hf_x411_redirection_classes_item = -1; /* RedirectionClass */
267 static int hf_x411_recipient_assigned_alternate_recipient = -1; /* RecipientAssignedAlternateRecipient */
268 static int hf_x411_content_types = -1; /* ContentTypes */
269 static int hf_x411_maximum_content_length = -1; /* ContentLength */
270 static int hf_x411_encoded_information_types_constraints = -1; /* EncodedInformationTypesConstraints */
271 static int hf_x411_security_labels = -1; /* SecurityContext */
272 static int hf_x411_class_priority = -1; /* SET_OF_Priority */
273 static int hf_x411_priority_item = -1; /* Priority */
274 static int hf_x411_objects = -1; /* T_objects */
275 static int hf_x411_applies_only_to = -1; /* SEQUENCE_OF_Restriction */
276 static int hf_x411_applies_only_to_item = -1; /* Restriction */
277 static int hf_x411_unacceptable_eits = -1; /* ExtendedEncodedInformationTypes */
278 static int hf_x411_acceptable_eits = -1; /* ExtendedEncodedInformationTypes */
279 static int hf_x411_exclusively_acceptable_eits = -1; /* ExtendedEncodedInformationTypes */
280 static int hf_x411_RestrictedDelivery_item = -1; /* Restriction */
281 static int hf_x411_permitted = -1; /* BOOLEAN */
282 static int hf_x411_source_type = -1; /* T_source_type */
283 static int hf_x411_source_name = -1; /* ExactOrPattern */
284 static int hf_x411_exact_match = -1; /* ORName */
285 static int hf_x411_pattern_match = -1; /* ORName */
286 static int hf_x411_standard_parameters = -1; /* T_standard_parameters */
287 static int hf_x411_type_extensions = -1; /* T_extensions */
288 static int hf_x411_type_extensions_item = -1; /* T_extensions_item */
289 static int hf_x411_mts_originator_name = -1; /* MTSOriginatorName */
290 static int hf_x411_per_recipient_message_submission_fields = -1; /* SEQUENCE_OF_PerRecipientMessageSubmissionFields */
291 static int hf_x411_per_recipient_message_submission_fields_item = -1; /* PerRecipientMessageSubmissionFields */
292 static int hf_x411_submission_recipient_name = -1; /* MTSRecipientName */
293 static int hf_x411_originator_report_request = -1; /* OriginatorReportRequest */
294 static int hf_x411_per_recipient_probe_submission_fields = -1; /* SEQUENCE_OF_PerRecipientProbeSubmissionFields */
295 static int hf_x411_per_recipient_probe_submission_fields_item = -1; /* PerRecipientProbeSubmissionFields */
296 static int hf_x411_probe_recipient_name = -1; /* MTSRecipientName */
297 static int hf_x411_delivered_content_type = -1; /* DeliveredContentType */
298 static int hf_x411_originator_name = -1; /* DeliveredOriginatorName */
299 static int hf_x411_delivery_flags = -1; /* DeliveryFlags */
300 static int hf_x411_other_recipient_names = -1; /* OtherRecipientNames */
301 static int hf_x411_this_recipient_name = -1; /* ThisRecipientName */
302 static int hf_x411_originally_intended_recipient_name = -1; /* MTSOriginallyIntendedRecipientName */
303 static int hf_x411_actual_recipient_name = -1; /* MTSActualRecipientName */
304 static int hf_x411_delivery_report_type = -1; /* ReportType */
305 static int hf_x411_delivery = -1; /* DeliveryReport */
306 static int hf_x411_non_delivery = -1; /* NonDeliveryReport */
307 static int hf_x411_type_of_MTS_user = -1; /* TypeOfMTSUser */
308 static int hf_x411_non_delivery_reason_code = -1; /* NonDeliveryReasonCode */
309 static int hf_x411_non_delivery_diagnostic_code = -1; /* NonDeliveryDiagnosticCode */
310 static int hf_x411_ContentTypes_item = -1; /* ContentType */
311 static int hf_x411_built_in = -1; /* BuiltInContentType */
312 static int hf_x411_extended = -1; /* ExtendedContentType */
313 static int hf_x411_OtherRecipientNames_item = -1; /* OtherRecipientName */
314 static int hf_x411_standard_extension = -1; /* INTEGER */
315 static int hf_x411_private_extension = -1; /* OBJECT_IDENTIFIER */
316 static int hf_x411_extension_type = -1; /* ExtensionType */
317 static int hf_x411_criticality = -1; /* Criticality */
318 static int hf_x411_extension_value = -1; /* ExtensionValue */
319 static int hf_x411_RequestedDeliveryMethod_item = -1; /* RequestedDeliveryMethod_item */
320 static int hf_x411_ia5text = -1; /* IA5String */
321 static int hf_x411_octets = -1; /* OCTET_STRING */
322 static int hf_x411_RedirectionHistory_item = -1; /* Redirection */
323 static int hf_x411_intended_recipient_name = -1; /* IntendedRecipientName */
324 static int hf_x411_redirection_reason = -1; /* RedirectionReason */
325 static int hf_x411_intended_recipient = -1; /* ORAddressAndOptionalDirectoryName */
326 static int hf_x411_redirection_time = -1; /* Time */
327 static int hf_x411_DLExpansionHistory_item = -1; /* DLExpansion */
328 static int hf_x411_dl = -1; /* ORAddressAndOptionalDirectoryName */
329 static int hf_x411_dl_expansion_time = -1; /* Time */
330 static int hf_x411_OriginatorAndDLExpansionHistory_item = -1; /* OriginatorAndDLExpansion */
331 static int hf_x411_originator_or_dl_name = -1; /* ORAddressAndOptionalDirectoryName */
332 static int hf_x411_origination_or_expansion_time = -1; /* Time */
333 static int hf_x411_report_type = -1; /* T_report_type */
334 static int hf_x411_report_type_delivery = -1; /* PerRecipientDeliveryReportFields */
335 static int hf_x411_non_delivery_report = -1; /* PerRecipientNonDeliveryReportFields */
336 static int hf_x411_mta_directory_name = -1; /* Name */
337 static int hf_x411_ExtendedCertificates_item = -1; /* ExtendedCertificate */
338 static int hf_x411_directory_entry = -1; /* Name */
339 static int hf_x411_certificate = -1; /* Certificates */
340 static int hf_x411_DLExemptedRecipients_item = -1; /* ORAddressAndOrDirectoryName */
341 static int hf_x411_encryption_recipient = -1; /* CertificateAssertion */
342 static int hf_x411_encryption_originator = -1; /* CertificateAssertion */
343 static int hf_x411_content_integrity_check = -1; /* CertificateAssertion */
344 static int hf_x411_token_signature = -1; /* CertificateAssertion */
345 static int hf_x411_message_origin_authentication = -1; /* CertificateAssertion */
346 static int hf_x411_local_identifier = -1; /* LocalIdentifier */
347 static int hf_x411_numeric = -1; /* NumericString */
348 static int hf_x411_printable = -1; /* PrintableString */
349 static int hf_x411_built_in_standard_attributes = -1; /* BuiltInStandardAttributes */
350 static int hf_x411_built_in_domain_defined_attributes = -1; /* BuiltInDomainDefinedAttributes */
351 static int hf_x411_extension_attributes = -1; /* ExtensionAttributes */
352 static int hf_x411_directory_name = -1; /* Name */
353 static int hf_x411_network_address = -1; /* NetworkAddress */
354 static int hf_x411_terminal_identifier = -1; /* TerminalIdentifier */
355 static int hf_x411_private_domain_name = -1; /* PrivateDomainName */
356 static int hf_x411_organization_name = -1; /* OrganizationName */
357 static int hf_x411_numeric_user_identifier = -1; /* NumericUserIdentifier */
358 static int hf_x411_personal_name = -1; /* PersonalName */
359 static int hf_x411_organizational_unit_names = -1; /* OrganizationalUnitNames */
360 static int hf_x411_x121_dcc_code = -1; /* NumericString */
361 static int hf_x411_iso_3166_alpha2_code = -1; /* PrintableString */
362 static int hf_x411_printable_surname = -1; /* PrintableString */
363 static int hf_x411_printable_given_name = -1; /* PrintableString */
364 static int hf_x411_printable_initials = -1; /* PrintableString */
365 static int hf_x411_printable_generation_qualifier = -1; /* PrintableString */
366 static int hf_x411_OrganizationalUnitNames_item = -1; /* OrganizationalUnitName */
367 static int hf_x411_BuiltInDomainDefinedAttributes_item = -1; /* BuiltInDomainDefinedAttribute */
368 static int hf_x411_printable_type = -1; /* PrintableString */
369 static int hf_x411_printable_value = -1; /* PrintableString */
370 static int hf_x411_ExtensionAttributes_item = -1; /* ExtensionAttribute */
371 static int hf_x411_extension_attribute_type = -1; /* INTEGER */
372 static int hf_x411_extension_attribute_value = -1; /* T_extension_attribute_value */
373 static int hf_x411_teletex_surname = -1; /* TeletexString */
374 static int hf_x411_teletex_given_name = -1; /* TeletexString */
375 static int hf_x411_teletex_initials = -1; /* TeletexString */
376 static int hf_x411_teletex_generation_qualifier = -1; /* TeletexString */
377 static int hf_x411_universal_surname = -1; /* UniversalOrBMPString */
378 static int hf_x411_universal_given_name = -1; /* UniversalOrBMPString */
379 static int hf_x411_universal_initials = -1; /* UniversalOrBMPString */
380 static int hf_x411_universal_generation_qualifier = -1; /* UniversalOrBMPString */
381 static int hf_x411_TeletexOrganizationalUnitNames_item = -1; /* TeletexOrganizationalUnitName */
382 static int hf_x411_UniversalOrganizationalUnitNames_item = -1; /* UniversalOrganizationalUnitName */
383 static int hf_x411_character_encoding = -1; /* T_character_encoding */
384 static int hf_x411_two_octets = -1; /* BMPString */
385 static int hf_x411_four_octets = -1; /* UniversalString */
386 static int hf_x411_iso_639_language_code = -1; /* PrintableString */
387 static int hf_x411_numeric_code = -1; /* NumericString */
388 static int hf_x411_printable_code = -1; /* PrintableString */
389 static int hf_x411_printable_address = -1; /* T_printable_address */
390 static int hf_x411_printable_address_item = -1; /* PrintableString */
391 static int hf_x411_teletex_string = -1; /* TeletexString */
392 static int hf_x411_printable_string = -1; /* PrintableString */
393 static int hf_x411_e163_4_address = -1; /* T_e163_4_address */
394 static int hf_x411_number = -1; /* NumericString */
395 static int hf_x411_sub_address = -1; /* NumericString */
396 static int hf_x411_psap_address = -1; /* PresentationAddress */
397 static int hf_x411_TeletexDomainDefinedAttributes_item = -1; /* TeletexDomainDefinedAttribute */
398 static int hf_x411_type = -1; /* TeletexString */
399 static int hf_x411_teletex_value = -1; /* TeletexString */
400 static int hf_x411_UniversalDomainDefinedAttributes_item = -1; /* UniversalDomainDefinedAttribute */
401 static int hf_x411_universal_type = -1; /* UniversalOrBMPString */
402 static int hf_x411_universal_value = -1; /* UniversalOrBMPString */
403 static int hf_x411_built_in_encoded_information_types = -1; /* BuiltInEncodedInformationTypes */
404 static int hf_x411_g3_facsimile = -1; /* G3FacsimileNonBasicParameters */
405 static int hf_x411_teletex = -1; /* TeletexNonBasicParameters */
406 static int hf_x411_extended_encoded_information_types = -1; /* ExtendedEncodedInformationTypes */
407 static int hf_x411_ExtendedEncodedInformationTypes_item = -1; /* ExtendedEncodedInformationType */
408 static int hf_x411_graphic_character_sets = -1; /* TeletexString */
409 static int hf_x411_control_character_sets = -1; /* TeletexString */
410 static int hf_x411_page_formats = -1; /* OCTET_STRING */
411 static int hf_x411_miscellaneous_terminal_capabilities = -1; /* TeletexString */
412 static int hf_x411_private_use = -1; /* OCTET_STRING */
413 static int hf_x411_security_policy_identifier = -1; /* SecurityPolicyIdentifier */
414 static int hf_x411_security_classification = -1; /* SecurityClassification */
415 static int hf_x411_privacy_mark = -1; /* PrivacyMark */
416 static int hf_x411_security_categories = -1; /* SecurityCategories */
417 static int hf_x411_SecurityCategories_item = -1; /* SecurityCategory */
418 static int hf_x411_category_type = -1; /* OBJECT_IDENTIFIER */
419 static int hf_x411_category_value = -1; /* CategoryValue */
421 static int hf_x411_PerRecipientIndicators_responsibility = -1;
422 static int hf_x411_PerRecipientIndicators_originating_MTA_report = -1;
423 static int hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report = -1;
424 static int hf_x411_PerRecipientIndicators_originator_report = -1;
425 static int hf_x411_PerRecipientIndicators_originator_non_delivery_report = -1;
426 static int hf_x411_PerRecipientIndicators_reserved_5 = -1;
427 static int hf_x411_PerRecipientIndicators_reserved_6 = -1;
428 static int hf_x411_PerRecipientIndicators_reserved_7 = -1;
429 static int hf_x411_OtherActions_redirected = -1;
430 static int hf_x411_OtherActions_dl_operation = -1;
431 static int hf_x411_Operations_probe_submission_or_report_delivery = -1;
432 static int hf_x411_Operations_message_submission_or_message_delivery = -1;
433 static int hf_x411_WaitingMessages_long_content = -1;
434 static int hf_x411_WaitingMessages_low_priority = -1;
435 static int hf_x411_WaitingMessages_other_security_labels = -1;
436 static int hf_x411_T_source_type_originated_by = -1;
437 static int hf_x411_T_source_type_redirected_by = -1;
438 static int hf_x411_T_source_type_dl_expanded_by = -1;
439 static int hf_x411_T_standard_parameters_user_name = -1;
440 static int hf_x411_T_standard_parameters_user_address = -1;
441 static int hf_x411_T_standard_parameters_deliverable_class = -1;
442 static int hf_x411_T_standard_parameters_default_delivery_controls = -1;
443 static int hf_x411_T_standard_parameters_redirections = -1;
444 static int hf_x411_T_standard_parameters_restricted_delivery = -1;
445 static int hf_x411_PerMessageIndicators_disclosure_of_other_recipients = -1;
446 static int hf_x411_PerMessageIndicators_implicit_conversion_prohibited = -1;
447 static int hf_x411_PerMessageIndicators_alternate_recipient_allowed = -1;
448 static int hf_x411_PerMessageIndicators_content_return_request = -1;
449 static int hf_x411_PerMessageIndicators_reserved = -1;
450 static int hf_x411_PerMessageIndicators_bit_5 = -1;
451 static int hf_x411_PerMessageIndicators_bit_6 = -1;
452 static int hf_x411_PerMessageIndicators_service_message = -1;
453 static int hf_x411_OriginatorReportRequest_report = -1;
454 static int hf_x411_OriginatorReportRequest_non_delivery_report = -1;
455 static int hf_x411_DeliveryFlags_implicit_conversion_prohibited = -1;
456 static int hf_x411_Criticality_for_submission = -1;
457 static int hf_x411_Criticality_for_transfer = -1;
458 static int hf_x411_Criticality_for_delivery = -1;
459 static int hf_x411_PhysicalDeliveryModes_ordinary_mail = -1;
460 static int hf_x411_PhysicalDeliveryModes_special_delivery = -1;
461 static int hf_x411_PhysicalDeliveryModes_express_mail = -1;
462 static int hf_x411_PhysicalDeliveryModes_counter_collection = -1;
463 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice = -1;
464 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice = -1;
465 static int hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice = -1;
466 static int hf_x411_PhysicalDeliveryModes_bureau_fax_delivery = -1;
467 static int hf_x411_BuiltInEncodedInformationTypes_unknown = -1;
468 static int hf_x411_BuiltInEncodedInformationTypes_ia5_text = -1;
469 static int hf_x411_BuiltInEncodedInformationTypes_g3_facsimile = -1;
470 static int hf_x411_BuiltInEncodedInformationTypes_g4_class_1 = -1;
471 static int hf_x411_BuiltInEncodedInformationTypes_teletex = -1;
472 static int hf_x411_BuiltInEncodedInformationTypes_videotex = -1;
473 static int hf_x411_BuiltInEncodedInformationTypes_voice = -1;
474 static int hf_x411_BuiltInEncodedInformationTypes_sfd = -1;
475 static int hf_x411_BuiltInEncodedInformationTypes_mixed_mode = -1;
476 static int hf_x411_G3FacsimileNonBasicParameters_two_dimensional = -1;
477 static int hf_x411_G3FacsimileNonBasicParameters_fine_resolution = -1;
478 static int hf_x411_G3FacsimileNonBasicParameters_unlimited_length = -1;
479 static int hf_x411_G3FacsimileNonBasicParameters_b4_length = -1;
480 static int hf_x411_G3FacsimileNonBasicParameters_a3_width = -1;
481 static int hf_x411_G3FacsimileNonBasicParameters_b4_width = -1;
482 static int hf_x411_G3FacsimileNonBasicParameters_t6_coding = -1;
483 static int hf_x411_G3FacsimileNonBasicParameters_uncompressed = -1;
484 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728 = -1;
485 static int hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728 = -1;
486 static int hf_x411_G3FacsimileNonBasicParameters_resolution_type = -1;
487 static int hf_x411_G3FacsimileNonBasicParameters_resolution_400x400 = -1;
488 static int hf_x411_G3FacsimileNonBasicParameters_resolution_300x300 = -1;
489 static int hf_x411_G3FacsimileNonBasicParameters_resolution_8x15 = -1;
490 static int hf_x411_G3FacsimileNonBasicParameters_edi = -1;
491 static int hf_x411_G3FacsimileNonBasicParameters_dtm = -1;
492 static int hf_x411_G3FacsimileNonBasicParameters_bft = -1;
493 static int hf_x411_G3FacsimileNonBasicParameters_mixed_mode = -1;
494 static int hf_x411_G3FacsimileNonBasicParameters_character_mode = -1;
495 static int hf_x411_G3FacsimileNonBasicParameters_twelve_bits = -1;
496 static int hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann = -1;
497 static int hf_x411_G3FacsimileNonBasicParameters_full_colour = -1;
498 static int hf_x411_G3FacsimileNonBasicParameters_jpeg = -1;
499 static int hf_x411_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
501 /*--- End of included file: packet-x411-hf.c ---*/
504 /* Initialize the subtree pointers */
505 static gint ett_x411 = -1;
507 /*--- Included file: packet-x411-ett.c ---*/
509 static gint ett_x411_MTABindArgument = -1;
510 static gint ett_x411_AuthenticatedArgument = -1;
511 static gint ett_x411_MTABindResult = -1;
512 static gint ett_x411_AuthenticatedResult = -1;
513 static gint ett_x411_MTS_APDU = -1;
514 static gint ett_x411_Message = -1;
515 static gint ett_x411_Report = -1;
516 static gint ett_x411_MessageTransferEnvelope = -1;
517 static gint ett_x411_SEQUENCE_OF_PerDomainBilateralInformation = -1;
518 static gint ett_x411_SET_OF_ExtensionField = -1;
519 static gint ett_x411_SEQUENCE_OF_PerRecipientMessageTransferFields = -1;
520 static gint ett_x411_PerRecipientMessageTransferFields = -1;
521 static gint ett_x411_ProbeTransferEnvelope = -1;
522 static gint ett_x411_SEQUENCE_OF_PerRecipientProbeTransferFields = -1;
523 static gint ett_x411_PerRecipientProbeTransferFields = -1;
524 static gint ett_x411_ReportTransferEnvelope = -1;
525 static gint ett_x411_ReportTransferContent = -1;
526 static gint ett_x411_SEQUENCE_OF_PerRecipientReportTransferFields = -1;
527 static gint ett_x411_PerRecipientReportTransferFields = -1;
528 static gint ett_x411_PerDomainBilateralInformation = -1;
529 static gint ett_x411_T_domain = -1;
530 static gint ett_x411_T_private_domain = -1;
531 static gint ett_x411_PerRecipientIndicators = -1;
532 static gint ett_x411_LastTraceInformation = -1;
533 static gint ett_x411_InternalTraceInformation = -1;
534 static gint ett_x411_InternalTraceInformationElement = -1;
535 static gint ett_x411_MTASuppliedInformation = -1;
536 static gint ett_x411_T_attempted = -1;
537 static gint ett_x411_TraceInformation = -1;
538 static gint ett_x411_TraceInformationElement = -1;
539 static gint ett_x411_DomainSuppliedInformation = -1;
540 static gint ett_x411_OtherActions = -1;
541 static gint ett_x411_MTSBindArgument = -1;
542 static gint ett_x411_MTSBindResult = -1;
543 static gint ett_x411_ObjectName = -1;
544 static gint ett_x411_MessagesWaiting = -1;
545 static gint ett_x411_DeliveryQueue = -1;
546 static gint ett_x411_Credentials = -1;
547 static gint ett_x411_Password = -1;
548 static gint ett_x411_SecurityContext = -1;
549 static gint ett_x411_MessageSubmissionArgument = -1;
550 static gint ett_x411_MessageSubmissionResult = -1;
551 static gint ett_x411_ProbeSubmissionResult = -1;
552 static gint ett_x411_ImproperlySpecifiedRecipients = -1;
553 static gint ett_x411_Waiting = -1;
554 static gint ett_x411_SET_OF_ContentType = -1;
555 static gint ett_x411_Operations = -1;
556 static gint ett_x411_WaitingMessages = -1;
557 static gint ett_x411_MessageDeliveryArgument = -1;
558 static gint ett_x411_MessageDeliveryResult = -1;
559 static gint ett_x411_ReportDeliveryArgument = -1;
560 static gint ett_x411_SEQUENCE_OF_PerRecipientReportDeliveryFields = -1;
561 static gint ett_x411_ReportDeliveryResult = -1;
562 static gint ett_x411_DeliveryControlArgument = -1;
563 static gint ett_x411_DeliveryControlResult = -1;
564 static gint ett_x411_RefusedOperation = -1;
565 static gint ett_x411_T_refused_argument = -1;
566 static gint ett_x411_Controls = -1;
567 static gint ett_x411_RegisterArgument = -1;
568 static gint ett_x411_SET_OF_DeliverableClass = -1;
569 static gint ett_x411_RegisterResult = -1;
570 static gint ett_x411_T_non_empty_result = -1;
571 static gint ett_x411_ChangeCredentialsArgument = -1;
572 static gint ett_x411_UserAddress = -1;
573 static gint ett_x411_T_x121 = -1;
574 static gint ett_x411_Redirections = -1;
575 static gint ett_x411_RecipientRedirection = -1;
576 static gint ett_x411_SET_OF_RedirectionClass = -1;
577 static gint ett_x411_MessageClass = -1;
578 static gint ett_x411_SET_OF_Priority = -1;
579 static gint ett_x411_SEQUENCE_OF_Restriction = -1;
580 static gint ett_x411_EncodedInformationTypesConstraints = -1;
581 static gint ett_x411_RestrictedDelivery = -1;
582 static gint ett_x411_Restriction = -1;
583 static gint ett_x411_T_source_type = -1;
584 static gint ett_x411_ExactOrPattern = -1;
585 static gint ett_x411_RegistrationTypes = -1;
586 static gint ett_x411_T_standard_parameters = -1;
587 static gint ett_x411_T_extensions = -1;
588 static gint ett_x411_MessageSubmissionEnvelope = -1;
589 static gint ett_x411_SEQUENCE_OF_PerRecipientMessageSubmissionFields = -1;
590 static gint ett_x411_PerRecipientMessageSubmissionFields = -1;
591 static gint ett_x411_ProbeSubmissionEnvelope = -1;
592 static gint ett_x411_SEQUENCE_OF_PerRecipientProbeSubmissionFields = -1;
593 static gint ett_x411_PerRecipientProbeSubmissionFields = -1;
594 static gint ett_x411_MessageDeliveryEnvelope = -1;
595 static gint ett_x411_OtherMessageDeliveryFields = -1;
596 static gint ett_x411_ReportDeliveryEnvelope = -1;
597 static gint ett_x411_PerRecipientReportDeliveryFields = -1;
598 static gint ett_x411_ReportType = -1;
599 static gint ett_x411_DeliveryReport = -1;
600 static gint ett_x411_NonDeliveryReport = -1;
601 static gint ett_x411_ContentTypes = -1;
602 static gint ett_x411_ContentType = -1;
603 static gint ett_x411_DeliveredContentType = -1;
604 static gint ett_x411_PerMessageIndicators = -1;
605 static gint ett_x411_OriginatorReportRequest = -1;
606 static gint ett_x411_DeliveryFlags = -1;
607 static gint ett_x411_OtherRecipientNames = -1;
608 static gint ett_x411_ExtensionType = -1;
609 static gint ett_x411_Criticality = -1;
610 static gint ett_x411_ExtensionField = -1;
611 static gint ett_x411_RequestedDeliveryMethod = -1;
612 static gint ett_x411_PhysicalDeliveryModes = -1;
613 static gint ett_x411_ContentCorrelator = -1;
614 static gint ett_x411_RedirectionHistory = -1;
615 static gint ett_x411_Redirection = -1;
616 static gint ett_x411_IntendedRecipientName = -1;
617 static gint ett_x411_DLExpansionHistory = -1;
618 static gint ett_x411_DLExpansion = -1;
619 static gint ett_x411_OriginatorAndDLExpansionHistory = -1;
620 static gint ett_x411_OriginatorAndDLExpansion = -1;
621 static gint ett_x411_PerRecipientReportFields = -1;
622 static gint ett_x411_T_report_type = -1;
623 static gint ett_x411_PerRecipientDeliveryReportFields = -1;
624 static gint ett_x411_PerRecipientNonDeliveryReportFields = -1;
625 static gint ett_x411_ReportingMTAName = -1;
626 static gint ett_x411_ExtendedCertificates = -1;
627 static gint ett_x411_ExtendedCertificate = -1;
628 static gint ett_x411_DLExemptedRecipients = -1;
629 static gint ett_x411_CertificateSelectors = -1;
630 static gint ett_x411_MTSIdentifier = -1;
631 static gint ett_x411_GlobalDomainIdentifier = -1;
632 static gint ett_x411_PrivateDomainIdentifier = -1;
633 static gint ett_x411_ORName = -1;
634 static gint ett_x411_ORAddress = -1;
635 static gint ett_x411_BuiltInStandardAttributes = -1;
636 static gint ett_x411_CountryName = -1;
637 static gint ett_x411_AdministrationDomainName = -1;
638 static gint ett_x411_PrivateDomainName = -1;
639 static gint ett_x411_PersonalName = -1;
640 static gint ett_x411_OrganizationalUnitNames = -1;
641 static gint ett_x411_BuiltInDomainDefinedAttributes = -1;
642 static gint ett_x411_BuiltInDomainDefinedAttribute = -1;
643 static gint ett_x411_ExtensionAttributes = -1;
644 static gint ett_x411_ExtensionAttribute = -1;
645 static gint ett_x411_TeletexPersonalName = -1;
646 static gint ett_x411_UniversalPersonalName = -1;
647 static gint ett_x411_TeletexOrganizationalUnitNames = -1;
648 static gint ett_x411_UniversalOrganizationalUnitNames = -1;
649 static gint ett_x411_UniversalOrBMPString = -1;
650 static gint ett_x411_T_character_encoding = -1;
651 static gint ett_x411_PhysicalDeliveryCountryName = -1;
652 static gint ett_x411_PostalCode = -1;
653 static gint ett_x411_UnformattedPostalAddress = -1;
654 static gint ett_x411_T_printable_address = -1;
655 static gint ett_x411_PDSParameter = -1;
656 static gint ett_x411_ExtendedNetworkAddress = -1;
657 static gint ett_x411_T_e163_4_address = -1;
658 static gint ett_x411_TeletexDomainDefinedAttributes = -1;
659 static gint ett_x411_TeletexDomainDefinedAttribute = -1;
660 static gint ett_x411_UniversalDomainDefinedAttributes = -1;
661 static gint ett_x411_UniversalDomainDefinedAttribute = -1;
662 static gint ett_x411_EncodedInformationTypes = -1;
663 static gint ett_x411_BuiltInEncodedInformationTypes = -1;
664 static gint ett_x411_ExtendedEncodedInformationTypes = -1;
665 static gint ett_x411_NonBasicParameters = -1;
666 static gint ett_x411_G3FacsimileNonBasicParameters = -1;
667 static gint ett_x411_TeletexNonBasicParameters = -1;
668 static gint ett_x411_SecurityLabel = -1;
669 static gint ett_x411_SecurityCategories = -1;
670 static gint ett_x411_SecurityCategory = -1;
672 /*--- End of included file: packet-x411-ett.c ---*/
676 /*--- Included file: packet-x411-fn.c ---*/
678 /*--- Fields for imported types ---*/
680 static int dissect_mta_directory_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
681 return dissect_x509if_Name(TRUE, tvb, offset, pinfo, tree, hf_x411_mta_directory_name);
683 static int dissect_directory_entry_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
684 return dissect_x509if_Name(TRUE, tvb, offset, pinfo, tree, hf_x411_directory_entry);
686 static int dissect_certificate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
687 return dissect_x509af_Certificates(TRUE, tvb, offset, pinfo, tree, hf_x411_certificate);
689 static int dissect_encryption_recipient_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
690 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x411_encryption_recipient);
692 static int dissect_encryption_originator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
693 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x411_encryption_originator);
695 static int dissect_content_integrity_check_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
696 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x411_content_integrity_check);
698 static int dissect_token_signature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
699 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x411_token_signature);
701 static int dissect_message_origin_authentication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
702 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x411_message_origin_authentication);
704 static int dissect_directory_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
705 return dissect_x509if_Name(TRUE, tvb, offset, pinfo, tree, hf_x411_directory_name);
707 static int dissect_psap_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
708 return dissect_x509sat_PresentationAddress(TRUE, tvb, offset, pinfo, tree, hf_x411_psap_address);
714 dissect_x411_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
715 offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
719 static int dissect_unauthenticated(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
720 return dissect_x411_NULL(FALSE, tvb, offset, pinfo, tree, hf_x411_unauthenticated);
722 static int dissect_empty_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
723 return dissect_x411_NULL(FALSE, tvb, offset, pinfo, tree, hf_x411_empty_result);
729 dissect_x411_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
730 tvbuff_t *mtaname = NULL;
732 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
733 pinfo, tree, tvb, offset, hf_index,
739 proto_item_append_text(address_item, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
743 if (check_col(pinfo->cinfo, COL_INFO) && mtaname) {
744 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
752 static int dissect_authenticated_initiator_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
753 return dissect_x411_MTAName(TRUE, tvb, offset, pinfo, tree, hf_x411_authenticated_initiator_name);
755 static int dissect_authenticated_responder_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
756 return dissect_x411_MTAName(TRUE, tvb, offset, pinfo, tree, hf_x411_authenticated_responder_name);
758 static int dissect_mta_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
759 return dissect_x411_MTAName(FALSE, tvb, offset, pinfo, tree, hf_x411_mta_name);
761 static int dissect_mta(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
762 return dissect_x411_MTAName(FALSE, tvb, offset, pinfo, tree, hf_x411_mta);
764 static int dissect_mTA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
765 return dissect_x411_MTAName(TRUE, tvb, offset, pinfo, tree, hf_x411_mTA);
771 dissect_x411_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
772 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
773 pinfo, tree, tvb, offset, hf_index,
778 static int dissect_ia5_string(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
779 return dissect_x411_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x411_ia5_string);
781 static int dissect_ia5text(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
782 return dissect_x411_IA5String(FALSE, tvb, offset, pinfo, tree, hf_x411_ia5text);
788 dissect_x411_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
789 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
794 static int dissect_octet_string(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
795 return dissect_x411_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x411_octet_string);
797 static int dissect_octets(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
798 return dissect_x411_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x411_octets);
800 static int dissect_page_formats_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
801 return dissect_x411_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_x411_page_formats);
803 static int dissect_private_use_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
804 return dissect_x411_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_x411_private_use);
808 static const value_string x411_Password_vals[] = {
810 { 1, "octet-string" },
814 static const ber_choice_t Password_choice[] = {
815 { 0, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_ia5_string },
816 { 1, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_octet_string },
821 dissect_x411_Password(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
822 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
823 Password_choice, hf_index, ett_x411_Password,
828 static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
829 return dissect_x411_Password(FALSE, tvb, offset, pinfo, tree, hf_x411_simple);
833 static const value_string x411_Credentials_vals[] = {
834 { -1/*choice*/, "simple" },
838 static const ber_choice_t Credentials_choice[] = {
839 { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_simple },
844 dissect_x411_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
845 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
846 Credentials_choice, hf_index, ett_x411_Credentials,
851 static int dissect_old_credentials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
852 return dissect_x411_Credentials(TRUE, tvb, offset, pinfo, tree, hf_x411_old_credentials);
854 static int dissect_new_credentials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
855 return dissect_x411_Credentials(TRUE, tvb, offset, pinfo, tree, hf_x411_new_credentials);
861 dissect_x411_InitiatorCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
862 offset = dissect_x411_Credentials(implicit_tag, tvb, offset, pinfo, tree, hf_index);
866 static int dissect_initiator_credentials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
867 return dissect_x411_InitiatorCredentials(TRUE, tvb, offset, pinfo, tree, hf_x411_initiator_credentials);
873 dissect_x411_SecurityPolicyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
874 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
878 static int dissect_security_policy_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
879 return dissect_x411_SecurityPolicyIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_security_policy_identifier);
883 static const value_string x411_SecurityClassification_vals[] = {
885 { 1, "unclassified" },
887 { 3, "confidential" },
895 dissect_x411_SecurityClassification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
896 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
901 static int dissect_security_classification(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
902 return dissect_x411_SecurityClassification(FALSE, tvb, offset, pinfo, tree, hf_x411_security_classification);
908 dissect_x411_PrivacyMark(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
909 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
910 pinfo, tree, tvb, offset, hf_index,
915 static int dissect_privacy_mark(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
916 return dissect_x411_PrivacyMark(FALSE, tvb, offset, pinfo, tree, hf_x411_privacy_mark);
922 dissect_x411_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
924 offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &object_identifier_id);
931 static int dissect_private_extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
932 return dissect_x411_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x411_private_extension);
934 static int dissect_category_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
935 return dissect_x411_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x411_category_type);
941 dissect_x411_CategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
943 offset = dissect_unknown_ber(pinfo, tvb, offset, tree);
948 static int dissect_category_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
949 return dissect_x411_CategoryValue(TRUE, tvb, offset, pinfo, tree, hf_x411_category_value);
953 static const ber_sequence_t SecurityCategory_sequence[] = {
954 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_category_type_impl },
955 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_category_value_impl },
960 dissect_x411_SecurityCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
961 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
962 SecurityCategory_sequence, hf_index, ett_x411_SecurityCategory);
966 static int dissect_SecurityCategories_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
967 return dissect_x411_SecurityCategory(FALSE, tvb, offset, pinfo, tree, hf_x411_SecurityCategories_item);
971 static const ber_sequence_t SecurityCategories_set_of[1] = {
972 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SecurityCategories_item },
976 dissect_x411_SecurityCategories(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
977 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
978 SecurityCategories_set_of, hf_index, ett_x411_SecurityCategories);
982 static int dissect_security_categories(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
983 return dissect_x411_SecurityCategories(FALSE, tvb, offset, pinfo, tree, hf_x411_security_categories);
987 static const ber_sequence_t SecurityLabel_set[] = {
988 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_security_policy_identifier },
989 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_security_classification },
990 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_privacy_mark },
991 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_security_categories },
996 dissect_x411_SecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
997 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
998 SecurityLabel_set, hf_index, ett_x411_SecurityLabel);
1002 static int dissect_SecurityContext_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1003 return dissect_x411_SecurityLabel(FALSE, tvb, offset, pinfo, tree, hf_x411_SecurityContext_item);
1007 static const ber_sequence_t SecurityContext_set_of[1] = {
1008 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_SecurityContext_item },
1012 dissect_x411_SecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1013 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1014 SecurityContext_set_of, hf_index, ett_x411_SecurityContext);
1018 static int dissect_security_context_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1019 return dissect_x411_SecurityContext(TRUE, tvb, offset, pinfo, tree, hf_x411_security_context);
1021 static int dissect_permissible_security_context_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1022 return dissect_x411_SecurityContext(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_security_context);
1024 static int dissect_security_labels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1025 return dissect_x411_SecurityContext(TRUE, tvb, offset, pinfo, tree, hf_x411_security_labels);
1029 static const ber_sequence_t AuthenticatedArgument_set[] = {
1030 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_authenticated_initiator_name_impl },
1031 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_initiator_credentials_impl },
1032 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_security_context_impl },
1037 dissect_x411_AuthenticatedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1038 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1039 AuthenticatedArgument_set, hf_index, ett_x411_AuthenticatedArgument);
1043 static int dissect_authenticated_argument_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1044 return dissect_x411_AuthenticatedArgument(TRUE, tvb, offset, pinfo, tree, hf_x411_authenticated_argument);
1048 static const value_string x411_MTABindArgument_vals[] = {
1049 { 0, "unauthenticated" },
1050 { 1, "authenticated" },
1054 static const ber_choice_t MTABindArgument_choice[] = {
1055 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_unauthenticated },
1056 { 1, BER_CLASS_CON, 1, 0, dissect_authenticated_argument_impl },
1057 { 0, 0, 0, 0, NULL }
1061 dissect_x411_MTABindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1062 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1063 MTABindArgument_choice, hf_index, ett_x411_MTABindArgument,
1072 dissect_x411_ResponderCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1073 offset = dissect_x411_Credentials(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1077 static int dissect_responder_credentials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1078 return dissect_x411_ResponderCredentials(TRUE, tvb, offset, pinfo, tree, hf_x411_responder_credentials);
1082 static const ber_sequence_t AuthenticatedResult_set[] = {
1083 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_authenticated_responder_name_impl },
1084 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_responder_credentials_impl },
1089 dissect_x411_AuthenticatedResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1090 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1091 AuthenticatedResult_set, hf_index, ett_x411_AuthenticatedResult);
1095 static int dissect_authenticated_result_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1096 return dissect_x411_AuthenticatedResult(TRUE, tvb, offset, pinfo, tree, hf_x411_authenticated_result);
1100 static const value_string x411_MTABindResult_vals[] = {
1101 { 0, "unauthenticated" },
1102 { 1, "authenticated" },
1106 static const ber_choice_t MTABindResult_choice[] = {
1107 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_unauthenticated },
1108 { 1, BER_CLASS_CON, 1, 0, dissect_authenticated_result_impl },
1109 { 0, 0, 0, 0, NULL }
1113 dissect_x411_MTABindResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1114 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1115 MTABindResult_choice, hf_index, ett_x411_MTABindResult,
1122 static const value_string x411_MTABindError_vals[] = {
1124 { 2, "authentication-error" },
1125 { 3, "unacceptable-dialogue-mode" },
1126 { 4, "unacceptable-security-context" },
1127 { 5, "inadequate-association-confidentiality" },
1133 dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1135 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1138 if((error != -1) && check_col(pinfo->cinfo, COL_INFO))
1139 col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, x411_MTABindError_vals, "error(%d)"));
1149 dissect_x411_NumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1150 tvbuff_t *nstring = NULL;
1152 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1153 pinfo, tree, tvb, offset, hf_index,
1157 if(doing_address && nstring)
1158 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
1163 static int dissect_x121_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1164 return dissect_x411_NumericString(FALSE, tvb, offset, pinfo, tree, hf_x411_x121_address);
1166 static int dissect_numeric(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1167 return dissect_x411_NumericString(FALSE, tvb, offset, pinfo, tree, hf_x411_numeric);
1169 static int dissect_x121_dcc_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1170 return dissect_x411_NumericString(FALSE, tvb, offset, pinfo, tree, hf_x411_x121_dcc_code);
1172 static int dissect_numeric_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1173 return dissect_x411_NumericString(FALSE, tvb, offset, pinfo, tree, hf_x411_numeric_code);
1175 static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1176 return dissect_x411_NumericString(TRUE, tvb, offset, pinfo, tree, hf_x411_number);
1178 static int dissect_sub_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1179 return dissect_x411_NumericString(TRUE, tvb, offset, pinfo, tree, hf_x411_sub_address);
1185 dissect_x411_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1186 tvbuff_t *pstring = NULL;
1189 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1190 pinfo, tree, tvb, offset, hf_index,
1194 if(doing_address && pstring) {
1195 if(hf_index == hf_x411_printable_surname) fmt = "/S=";
1196 else if(hf_index == hf_x411_printable_given_name) fmt = "/G=";
1197 else if(hf_index == hf_x411_printable_initials) fmt = "/I=";
1198 else if(hf_index == hf_x411_printable_generation_qualifier) fmt = "/GQ=";
1199 else if(hf_index == hf_x411_printable_type) fmt = "/DD.";
1200 else if(hf_index == hf_x411_printable_value) fmt = "=";
1203 g_strlcat(oraddress, fmt, MAX_ORA_STR_LEN);
1205 g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
1212 static int dissect_tsap_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1213 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_tsap_id);
1215 static int dissect_printable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1216 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable);
1218 static int dissect_iso_3166_alpha2_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1219 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_iso_3166_alpha2_code);
1221 static int dissect_printable_surname_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1222 return dissect_x411_PrintableString(TRUE, tvb, offset, pinfo, tree, hf_x411_printable_surname);
1224 static int dissect_printable_given_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1225 return dissect_x411_PrintableString(TRUE, tvb, offset, pinfo, tree, hf_x411_printable_given_name);
1227 static int dissect_printable_initials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1228 return dissect_x411_PrintableString(TRUE, tvb, offset, pinfo, tree, hf_x411_printable_initials);
1230 static int dissect_printable_generation_qualifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1231 return dissect_x411_PrintableString(TRUE, tvb, offset, pinfo, tree, hf_x411_printable_generation_qualifier);
1233 static int dissect_printable_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1234 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_type);
1236 static int dissect_printable_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1237 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_value);
1239 static int dissect_iso_639_language_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1240 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_iso_639_language_code);
1242 static int dissect_printable_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1243 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_code);
1245 static int dissect_printable_address_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1246 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_address_item);
1248 static int dissect_printable_string(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1249 return dissect_x411_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_string);
1253 static const value_string x411_CountryName_vals[] = {
1254 { 0, "x121-dcc-code" },
1255 { 1, "iso-3166-alpha2-code" },
1259 static const ber_choice_t CountryName_choice[] = {
1260 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x121_dcc_code },
1261 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_iso_3166_alpha2_code },
1262 { 0, 0, 0, 0, NULL }
1266 dissect_x411_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1268 gboolean pc, ind_field;
1273 /* XXX asn2eth can not yet handle tagged assignment yes so this
1274 * XXX is some conformance file magic to work around that bug
1276 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
1277 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
1281 g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
1283 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1284 CountryName_choice, hf_index, ett_x411_CountryName, NULL);
1291 static int dissect_country_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1292 return dissect_x411_CountryName(FALSE, tvb, offset, pinfo, tree, hf_x411_country_name);
1296 static const value_string x411_AdministrationDomainName_vals[] = {
1302 static const ber_choice_t AdministrationDomainName_choice[] = {
1303 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_numeric },
1304 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable },
1305 { 0, 0, 0, 0, NULL }
1309 dissect_x411_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1311 gboolean pc, ind_field;
1316 /* XXX asn2eth can not yet handle tagged assignment yes so this
1317 * XXX is some conformance file magic to work around that bug
1319 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
1320 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
1324 g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
1326 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1327 AdministrationDomainName_choice, hf_index, ett_x411_AdministrationDomainName, NULL);
1332 static int dissect_administration_domain_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1333 return dissect_x411_AdministrationDomainName(FALSE, tvb, offset, pinfo, tree, hf_x411_administration_domain_name);
1335 static int dissect_administration_domain_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1336 return dissect_x411_AdministrationDomainName(TRUE, tvb, offset, pinfo, tree, hf_x411_administration_domain_name);
1340 static const value_string x411_PrivateDomainIdentifier_vals[] = {
1346 static const ber_choice_t PrivateDomainIdentifier_choice[] = {
1347 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_numeric },
1348 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable },
1349 { 0, 0, 0, 0, NULL }
1353 dissect_x411_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1356 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1358 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1359 PrivateDomainIdentifier_choice, hf_index, ett_x411_PrivateDomainIdentifier,
1366 static int dissect_private_domain_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1367 return dissect_x411_PrivateDomainIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_private_domain_identifier);
1369 static int dissect_private_domain_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1370 return dissect_x411_PrivateDomainIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x411_private_domain_identifier);
1374 static const ber_sequence_t GlobalDomainIdentifier_sequence[] = {
1375 { BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_country_name },
1376 { BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_administration_domain_name },
1377 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_private_domain_identifier },
1382 dissect_x411_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1384 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
1385 address_item = tree;
1387 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1388 GlobalDomainIdentifier_sequence, hf_index, ett_x411_GlobalDomainIdentifier);
1392 proto_item_append_text(address_item, " (%s/", oraddress);
1398 static int dissect_global_domain_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1399 return dissect_x411_GlobalDomainIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_global_domain_identifier);
1401 static int dissect_domain(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1402 return dissect_x411_GlobalDomainIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_domain);
1404 static int dissect_attempted_domain(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1405 return dissect_x411_GlobalDomainIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_attempted_domain);
1411 dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1412 tvbuff_t *id = NULL;
1414 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1415 pinfo, tree, tvb, offset, hf_index,
1419 if(doing_address && id)
1420 proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
1425 static int dissect_local_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1426 return dissect_x411_LocalIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_local_identifier);
1430 static const ber_sequence_t MTSIdentifier_sequence[] = {
1431 { BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_global_domain_identifier },
1432 { BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_local_identifier },
1437 dissect_x411_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1439 doing_address = TRUE;
1441 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1442 MTSIdentifier_sequence, hf_index, ett_x411_MTSIdentifier);
1445 doing_address = FALSE;
1454 dissect_x411_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1455 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1459 static int dissect_message_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1460 return dissect_x411_MessageIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_message_identifier);
1466 dissect_x411_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1467 tvbuff_t *string = NULL;
1469 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1470 pinfo, tree, tvb, offset, hf_index,
1474 if(doing_address && string) {
1475 g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
1476 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1487 dissect_x411_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1488 offset = dissect_x411_X121Address(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1492 static int dissect_network_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1493 return dissect_x411_NetworkAddress(TRUE, tvb, offset, pinfo, tree, hf_x411_network_address);
1499 dissect_x411_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1500 tvbuff_t *string = NULL;
1502 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1503 pinfo, tree, tvb, offset, hf_index,
1507 if(doing_address && string) {
1508 g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
1509 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1515 static int dissect_terminal_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1516 return dissect_x411_TerminalIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x411_terminal_identifier);
1520 static const value_string x411_PrivateDomainName_vals[] = {
1526 static const ber_choice_t PrivateDomainName_choice[] = {
1527 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_numeric },
1528 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable },
1529 { 0, 0, 0, 0, NULL }
1533 dissect_x411_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1536 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
1538 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1539 PrivateDomainName_choice, hf_index, ett_x411_PrivateDomainName,
1546 static int dissect_private_domain_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1547 return dissect_x411_PrivateDomainName(TRUE, tvb, offset, pinfo, tree, hf_x411_private_domain_name);
1553 dissect_x411_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1554 tvbuff_t *string = NULL;
1556 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1557 pinfo, tree, tvb, offset, hf_index,
1561 if(doing_address && string) {
1562 g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
1563 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
1569 static int dissect_organization_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1570 return dissect_x411_OrganizationName(TRUE, tvb, offset, pinfo, tree, hf_x411_organization_name);
1576 dissect_x411_NumericUserIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1577 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
1578 pinfo, tree, tvb, offset, hf_index,
1583 static int dissect_numeric_user_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1584 return dissect_x411_NumericUserIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x411_numeric_user_identifier);
1588 static const ber_sequence_t PersonalName_set[] = {
1589 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_printable_surname_impl },
1590 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_printable_given_name_impl },
1591 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_printable_initials_impl },
1592 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_printable_generation_qualifier_impl },
1597 dissect_x411_PersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1598 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1599 PersonalName_set, hf_index, ett_x411_PersonalName);
1603 static int dissect_personal_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1604 return dissect_x411_PersonalName(TRUE, tvb, offset, pinfo, tree, hf_x411_personal_name);
1610 dissect_x411_OrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1611 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1612 pinfo, tree, tvb, offset, hf_index,
1617 static int dissect_OrganizationalUnitNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1618 return dissect_x411_OrganizationalUnitName(FALSE, tvb, offset, pinfo, tree, hf_x411_OrganizationalUnitNames_item);
1622 static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
1623 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_OrganizationalUnitNames_item },
1627 dissect_x411_OrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1628 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1629 OrganizationalUnitNames_sequence_of, hf_index, ett_x411_OrganizationalUnitNames);
1633 static int dissect_organizational_unit_names_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1634 return dissect_x411_OrganizationalUnitNames(TRUE, tvb, offset, pinfo, tree, hf_x411_organizational_unit_names);
1638 static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
1639 { BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_country_name },
1640 { BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_administration_domain_name },
1641 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_network_address_impl },
1642 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminal_identifier_impl },
1643 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_private_domain_name_impl },
1644 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_organization_name_impl },
1645 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numeric_user_identifier_impl },
1646 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_personal_name_impl },
1647 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_organizational_unit_names_impl },
1652 dissect_x411_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1654 address_item = tree;
1656 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1657 BuiltInStandardAttributes_sequence, hf_index, ett_x411_BuiltInStandardAttributes);
1663 static int dissect_built_in_standard_attributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1664 return dissect_x411_BuiltInStandardAttributes(FALSE, tvb, offset, pinfo, tree, hf_x411_built_in_standard_attributes);
1668 static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
1669 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable_type },
1670 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable_value },
1675 dissect_x411_BuiltInDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1676 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1677 BuiltInDomainDefinedAttribute_sequence, hf_index, ett_x411_BuiltInDomainDefinedAttribute);
1681 static int dissect_BuiltInDomainDefinedAttributes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1682 return dissect_x411_BuiltInDomainDefinedAttribute(FALSE, tvb, offset, pinfo, tree, hf_x411_BuiltInDomainDefinedAttributes_item);
1686 static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
1687 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BuiltInDomainDefinedAttributes_item },
1691 dissect_x411_BuiltInDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1692 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1693 BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_x411_BuiltInDomainDefinedAttributes);
1697 static int dissect_built_in_domain_defined_attributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1698 return dissect_x411_BuiltInDomainDefinedAttributes(FALSE, tvb, offset, pinfo, tree, hf_x411_built_in_domain_defined_attributes);
1704 dissect_x411_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1705 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1710 static int dissect_messages_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1711 return dissect_x411_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x411_messages);
1713 static int dissect_delivery_queue_octets_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1714 return dissect_x411_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x411_delivery_queue_octets);
1716 static int dissect_standard_extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1717 return dissect_x411_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x411_standard_extension);
1719 static int dissect_extension_attribute_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1720 return dissect_x411_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x411_extension_attribute_type);
1726 dissect_x411_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1728 offset=call_x411_oid_callback("x411.extension-attribute", tvb, offset, pinfo, tree);
1733 static int dissect_extension_attribute_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1734 return dissect_x411_T_extension_attribute_value(TRUE, tvb, offset, pinfo, tree, hf_x411_extension_attribute_value);
1738 static const ber_sequence_t ExtensionAttribute_sequence[] = {
1739 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_extension_attribute_type_impl },
1740 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_extension_attribute_value_impl },
1745 dissect_x411_ExtensionAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1746 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1747 ExtensionAttribute_sequence, hf_index, ett_x411_ExtensionAttribute);
1751 static int dissect_ExtensionAttributes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1752 return dissect_x411_ExtensionAttribute(FALSE, tvb, offset, pinfo, tree, hf_x411_ExtensionAttributes_item);
1756 static const ber_sequence_t ExtensionAttributes_set_of[1] = {
1757 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExtensionAttributes_item },
1761 dissect_x411_ExtensionAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1762 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1763 ExtensionAttributes_set_of, hf_index, ett_x411_ExtensionAttributes);
1767 static int dissect_extension_attributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1768 return dissect_x411_ExtensionAttributes(FALSE, tvb, offset, pinfo, tree, hf_x411_extension_attributes);
1772 static const ber_sequence_t ORName_sequence[] = {
1773 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_built_in_standard_attributes },
1774 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_built_in_domain_defined_attributes },
1775 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extension_attributes },
1776 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_directory_name_impl },
1781 dissect_x411_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1783 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
1784 address_item = NULL;
1785 doing_address = TRUE;
1787 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1788 ORName_sequence, hf_index, ett_x411_ORName);
1791 if(*oraddress && address_item)
1792 proto_item_append_text(address_item, " (%s/)", oraddress);
1794 doing_address = FALSE;
1799 static int dissect_exact_match_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1800 return dissect_x411_ORName(TRUE, tvb, offset, pinfo, tree, hf_x411_exact_match);
1802 static int dissect_pattern_match_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1803 return dissect_x411_ORName(TRUE, tvb, offset, pinfo, tree, hf_x411_pattern_match);
1809 dissect_x411_ORAddressAndOptionalDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1810 offset = dissect_x411_ORName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1814 static int dissect_user_agent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1815 return dissect_x411_ORAddressAndOptionalDirectoryName(FALSE, tvb, offset, pinfo, tree, hf_x411_user_agent);
1817 static int dissect_message_store_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1818 return dissect_x411_ORAddressAndOptionalDirectoryName(TRUE, tvb, offset, pinfo, tree, hf_x411_message_store);
1820 static int dissect_intended_recipient(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1821 return dissect_x411_ORAddressAndOptionalDirectoryName(FALSE, tvb, offset, pinfo, tree, hf_x411_intended_recipient);
1823 static int dissect_dl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1824 return dissect_x411_ORAddressAndOptionalDirectoryName(FALSE, tvb, offset, pinfo, tree, hf_x411_dl);
1826 static int dissect_originator_or_dl_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1827 return dissect_x411_ORAddressAndOptionalDirectoryName(FALSE, tvb, offset, pinfo, tree, hf_x411_originator_or_dl_name);
1833 dissect_x411_MTAOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1834 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1838 static int dissect_mta_originator_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1839 return dissect_x411_MTAOriginatorName(FALSE, tvb, offset, pinfo, tree, hf_x411_mta_originator_name);
1843 static const asn_namedbit BuiltInEncodedInformationTypes_bits[] = {
1844 { 0, &hf_x411_BuiltInEncodedInformationTypes_unknown, -1, -1, "unknown", NULL },
1845 { 2, &hf_x411_BuiltInEncodedInformationTypes_ia5_text, -1, -1, "ia5-text", NULL },
1846 { 3, &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile, -1, -1, "g3-facsimile", NULL },
1847 { 4, &hf_x411_BuiltInEncodedInformationTypes_g4_class_1, -1, -1, "g4-class-1", NULL },
1848 { 5, &hf_x411_BuiltInEncodedInformationTypes_teletex, -1, -1, "teletex", NULL },
1849 { 6, &hf_x411_BuiltInEncodedInformationTypes_videotex, -1, -1, "videotex", NULL },
1850 { 7, &hf_x411_BuiltInEncodedInformationTypes_voice, -1, -1, "voice", NULL },
1851 { 8, &hf_x411_BuiltInEncodedInformationTypes_sfd, -1, -1, "sfd", NULL },
1852 { 9, &hf_x411_BuiltInEncodedInformationTypes_mixed_mode, -1, -1, "mixed-mode", NULL },
1853 { 0, NULL, 0, 0, NULL, NULL }
1857 dissect_x411_BuiltInEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1858 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1859 BuiltInEncodedInformationTypes_bits, hf_index, ett_x411_BuiltInEncodedInformationTypes,
1864 static int dissect_built_in_encoded_information_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1865 return dissect_x411_BuiltInEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_built_in_encoded_information_types);
1869 static const asn_namedbit G3FacsimileNonBasicParameters_bits[] = {
1870 { 8, &hf_x411_G3FacsimileNonBasicParameters_two_dimensional, -1, -1, "two-dimensional", NULL },
1871 { 9, &hf_x411_G3FacsimileNonBasicParameters_fine_resolution, -1, -1, "fine-resolution", NULL },
1872 { 20, &hf_x411_G3FacsimileNonBasicParameters_unlimited_length, -1, -1, "unlimited-length", NULL },
1873 { 21, &hf_x411_G3FacsimileNonBasicParameters_b4_length, -1, -1, "b4-length", NULL },
1874 { 22, &hf_x411_G3FacsimileNonBasicParameters_a3_width, -1, -1, "a3-width", NULL },
1875 { 23, &hf_x411_G3FacsimileNonBasicParameters_b4_width, -1, -1, "b4-width", NULL },
1876 { 25, &hf_x411_G3FacsimileNonBasicParameters_t6_coding, -1, -1, "t6-coding", NULL },
1877 { 30, &hf_x411_G3FacsimileNonBasicParameters_uncompressed, -1, -1, "uncompressed", NULL },
1878 { 37, &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728, -1, -1, "width-middle-864-of-1728", NULL },
1879 { 38, &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728, -1, -1, "width-middle-1216-of-1728", NULL },
1880 { 44, &hf_x411_G3FacsimileNonBasicParameters_resolution_type, -1, -1, "resolution-type", NULL },
1881 { 45, &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400, -1, -1, "resolution-400x400", NULL },
1882 { 46, &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300, -1, -1, "resolution-300x300", NULL },
1883 { 47, &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15, -1, -1, "resolution-8x15", NULL },
1884 { 49, &hf_x411_G3FacsimileNonBasicParameters_edi, -1, -1, "edi", NULL },
1885 { 50, &hf_x411_G3FacsimileNonBasicParameters_dtm, -1, -1, "dtm", NULL },
1886 { 51, &hf_x411_G3FacsimileNonBasicParameters_bft, -1, -1, "bft", NULL },
1887 { 58, &hf_x411_G3FacsimileNonBasicParameters_mixed_mode, -1, -1, "mixed-mode", NULL },
1888 { 60, &hf_x411_G3FacsimileNonBasicParameters_character_mode, -1, -1, "character-mode", NULL },
1889 { 65, &hf_x411_G3FacsimileNonBasicParameters_twelve_bits, -1, -1, "twelve-bits", NULL },
1890 { 66, &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann, -1, -1, "preferred-huffmann", NULL },
1891 { 67, &hf_x411_G3FacsimileNonBasicParameters_full_colour, -1, -1, "full-colour", NULL },
1892 { 68, &hf_x411_G3FacsimileNonBasicParameters_jpeg, -1, -1, "jpeg", NULL },
1893 { 71, &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26, -1, -1, "processable-mode-26", NULL },
1894 { 0, NULL, 0, 0, NULL, NULL }
1898 dissect_x411_G3FacsimileNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1899 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1900 G3FacsimileNonBasicParameters_bits, hf_index, ett_x411_G3FacsimileNonBasicParameters,
1905 static int dissect_g3_facsimile_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1906 return dissect_x411_G3FacsimileNonBasicParameters(TRUE, tvb, offset, pinfo, tree, hf_x411_g3_facsimile);
1912 dissect_x411_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1913 tvbuff_t *tstring = NULL;
1915 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
1916 pinfo, tree, tvb, offset, hf_index,
1920 if(doing_address && tstring)
1921 g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
1927 static int dissect_teletex_surname_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1928 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_teletex_surname);
1930 static int dissect_teletex_given_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1931 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_teletex_given_name);
1933 static int dissect_teletex_initials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1934 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_teletex_initials);
1936 static int dissect_teletex_generation_qualifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1937 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_teletex_generation_qualifier);
1939 static int dissect_teletex_string(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1940 return dissect_x411_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_x411_teletex_string);
1942 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1943 return dissect_x411_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_x411_type);
1945 static int dissect_teletex_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1946 return dissect_x411_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_x411_teletex_value);
1948 static int dissect_graphic_character_sets_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1949 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_graphic_character_sets);
1951 static int dissect_control_character_sets_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1952 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_control_character_sets);
1954 static int dissect_miscellaneous_terminal_capabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1955 return dissect_x411_TeletexString(TRUE, tvb, offset, pinfo, tree, hf_x411_miscellaneous_terminal_capabilities);
1959 static const ber_sequence_t TeletexNonBasicParameters_set[] = {
1960 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_graphic_character_sets_impl },
1961 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_control_character_sets_impl },
1962 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_page_formats_impl },
1963 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscellaneous_terminal_capabilities_impl },
1964 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_private_use_impl },
1969 dissect_x411_TeletexNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1970 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1971 TeletexNonBasicParameters_set, hf_index, ett_x411_TeletexNonBasicParameters);
1975 static int dissect_teletex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1976 return dissect_x411_TeletexNonBasicParameters(TRUE, tvb, offset, pinfo, tree, hf_x411_teletex);
1982 dissect_x411_ExtendedEncodedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1983 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1987 static int dissect_ExtendedEncodedInformationTypes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1988 return dissect_x411_ExtendedEncodedInformationType(FALSE, tvb, offset, pinfo, tree, hf_x411_ExtendedEncodedInformationTypes_item);
1992 static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
1993 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ExtendedEncodedInformationTypes_item },
1997 dissect_x411_ExtendedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1998 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1999 ExtendedEncodedInformationTypes_set_of, hf_index, ett_x411_ExtendedEncodedInformationTypes);
2003 static int dissect_unacceptable_eits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2004 return dissect_x411_ExtendedEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_unacceptable_eits);
2006 static int dissect_acceptable_eits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2007 return dissect_x411_ExtendedEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_acceptable_eits);
2009 static int dissect_exclusively_acceptable_eits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2010 return dissect_x411_ExtendedEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_exclusively_acceptable_eits);
2012 static int dissect_extended_encoded_information_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2013 return dissect_x411_ExtendedEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_extended_encoded_information_types);
2017 static const ber_sequence_t EncodedInformationTypes_set[] = {
2018 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_built_in_encoded_information_types_impl },
2019 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_g3_facsimile_impl },
2020 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_impl },
2021 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extended_encoded_information_types_impl },
2026 dissect_x411_EncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2027 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2028 EncodedInformationTypes_set, hf_index, ett_x411_EncodedInformationTypes);
2032 static int dissect_waiting_encoded_information_types(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2033 return dissect_x411_EncodedInformationTypes(FALSE, tvb, offset, pinfo, tree, hf_x411_waiting_encoded_information_types);
2039 dissect_x411_OriginalEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2040 offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2044 static int dissect_original_encoded_information_types(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2045 return dissect_x411_OriginalEncodedInformationTypes(FALSE, tvb, offset, pinfo, tree, hf_x411_original_encoded_information_types);
2047 static int dissect_original_encoded_information_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2048 return dissect_x411_OriginalEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_original_encoded_information_types);
2052 static const value_string x411_BuiltInContentType_vals[] = {
2053 { 0, "unidentified" },
2055 { 2, "interpersonal-messaging-1984" },
2056 { 22, "interpersonal-messaging-1988" },
2057 { 35, "edi-messaging" },
2058 { 40, "voice-messaging" },
2064 dissect_x411_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2067 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2071 /* convert integer content type to oid for dispatch when the content is found */
2074 object_identifier_id = ep_strdup("2.6.1.10.0");
2077 object_identifier_id = ep_strdup("2.6.1.10.1");
2086 static int dissect_built_in(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2087 return dissect_x411_BuiltInContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_built_in);
2089 static int dissect_built_in_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2090 return dissect_x411_BuiltInContentType(TRUE, tvb, offset, pinfo, tree, hf_x411_built_in);
2096 dissect_x411_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2097 const char *name = NULL;
2099 offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &content_type_id);
2102 if(content_type_id) {
2103 name = get_ber_oid_name(content_type_id);
2105 if(!name) name = content_type_id;
2107 proto_item_append_text(tree, " (%s)", name);
2113 static int dissect_extended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2114 return dissect_x411_ExtendedContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_extended);
2118 static const value_string x411_ContentType_vals[] = {
2124 static const ber_choice_t ContentType_choice[] = {
2125 { 0, BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_built_in },
2126 { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extended },
2127 { 0, 0, 0, 0, NULL }
2131 dissect_x411_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2132 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2133 ContentType_choice, hf_index, ett_x411_ContentType,
2138 static int dissect_content_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2139 return dissect_x411_ContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_content_type);
2141 static int dissect_waiting_content_types_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2142 return dissect_x411_ContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_waiting_content_types_item);
2144 static int dissect_ContentTypes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2145 return dissect_x411_ContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_ContentTypes_item);
2151 dissect_x411_ContentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2153 gboolean pc, ind_field;
2158 /* XXX asn2eth can not yet handle tagged assignment yes so this
2159 * XXX is some conformance file magic to work around that bug
2161 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
2162 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
2165 /* this is magic I haven't seen used before - I've stripped the tag - but now I'm going to say it is IMPLICIT! */
2166 offset = dissect_ber_restricted_string(TRUE, BER_UNI_TAG_PrintableString,
2167 pinfo, tree, tvb, offset, hf_index,
2174 static int dissect_content_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2175 return dissect_x411_ContentIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_content_identifier);
2177 static int dissect_content_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2178 return dissect_x411_ContentIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x411_content_identifier);
2182 static const value_string x411_Priority_vals[] = {
2184 { 1, "non-urgent" },
2191 dissect_x411_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2192 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2197 static int dissect_priority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2198 return dissect_x411_Priority(FALSE, tvb, offset, pinfo, tree, hf_x411_priority);
2200 static int dissect_permissible_lowest_priority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2201 return dissect_x411_Priority(FALSE, tvb, offset, pinfo, tree, hf_x411_permissible_lowest_priority);
2203 static int dissect_priority_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2204 return dissect_x411_Priority(FALSE, tvb, offset, pinfo, tree, hf_x411_priority_item);
2208 static const asn_namedbit PerMessageIndicators_bits[] = {
2209 { 0, &hf_x411_PerMessageIndicators_disclosure_of_other_recipients, -1, -1, "disclosure-of-other-recipients", NULL },
2210 { 1, &hf_x411_PerMessageIndicators_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
2211 { 2, &hf_x411_PerMessageIndicators_alternate_recipient_allowed, -1, -1, "alternate-recipient-allowed", NULL },
2212 { 3, &hf_x411_PerMessageIndicators_content_return_request, -1, -1, "content-return-request", NULL },
2213 { 4, &hf_x411_PerMessageIndicators_reserved, -1, -1, "reserved", NULL },
2214 { 5, &hf_x411_PerMessageIndicators_bit_5, -1, -1, "bit-5", NULL },
2215 { 6, &hf_x411_PerMessageIndicators_bit_6, -1, -1, "bit-6", NULL },
2216 { 7, &hf_x411_PerMessageIndicators_service_message, -1, -1, "service-message", NULL },
2217 { 0, NULL, 0, 0, NULL, NULL }
2221 dissect_x411_PerMessageIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2222 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2223 PerMessageIndicators_bits, hf_index, ett_x411_PerMessageIndicators,
2228 static int dissect_per_message_indicators(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2229 return dissect_x411_PerMessageIndicators(FALSE, tvb, offset, pinfo, tree, hf_x411_per_message_indicators);
2235 dissect_x411_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2236 tvbuff_t *arrival = NULL;
2238 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
2239 pinfo, tree, tvb, offset, hf_index,
2244 proto_item_append_text(address_item, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
2249 static int dissect_redirection_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2250 return dissect_x411_Time(FALSE, tvb, offset, pinfo, tree, hf_x411_redirection_time);
2252 static int dissect_dl_expansion_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2253 return dissect_x411_Time(FALSE, tvb, offset, pinfo, tree, hf_x411_dl_expansion_time);
2255 static int dissect_origination_or_expansion_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2256 return dissect_x411_Time(FALSE, tvb, offset, pinfo, tree, hf_x411_origination_or_expansion_time);
2262 dissect_x411_DeferredDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2263 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2267 static int dissect_deferred_delivery_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2268 return dissect_x411_DeferredDeliveryTime(TRUE, tvb, offset, pinfo, tree, hf_x411_deferred_delivery_time);
2272 static const ber_sequence_t T_private_domain_sequence[] = {
2273 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_administration_domain_name_impl },
2274 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_private_domain_identifier_impl },
2279 dissect_x411_T_private_domain(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2280 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2281 T_private_domain_sequence, hf_index, ett_x411_T_private_domain);
2285 static int dissect_private_domain(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2286 return dissect_x411_T_private_domain(FALSE, tvb, offset, pinfo, tree, hf_x411_private_domain);
2290 static const value_string x411_T_domain_vals[] = {
2291 { 0, "administration-domain-name" },
2292 { 1, "private-domain" },
2296 static const ber_choice_t T_domain_choice[] = {
2297 { 0, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_administration_domain_name },
2298 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_private_domain },
2299 { 0, 0, 0, 0, NULL }
2303 dissect_x411_T_domain(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2304 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2305 T_domain_choice, hf_index, ett_x411_T_domain,
2310 static int dissect_bilateral_domain(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2311 return dissect_x411_T_domain(FALSE, tvb, offset, pinfo, tree, hf_x411_bilateral_domain);
2315 static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
2316 { BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_country_name },
2317 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_bilateral_domain },
2322 dissect_x411_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2323 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2324 PerDomainBilateralInformation_sequence, hf_index, ett_x411_PerDomainBilateralInformation);
2328 static int dissect_per_domain_bilateral_information_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2329 return dissect_x411_PerDomainBilateralInformation(FALSE, tvb, offset, pinfo, tree, hf_x411_per_domain_bilateral_information_item);
2333 static const ber_sequence_t SEQUENCE_OF_PerDomainBilateralInformation_sequence_of[1] = {
2334 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_per_domain_bilateral_information_item },
2338 dissect_x411_SEQUENCE_OF_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2339 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2340 SEQUENCE_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerDomainBilateralInformation);
2344 static int dissect_per_domain_bilateral_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2345 return dissect_x411_SEQUENCE_OF_PerDomainBilateralInformation(TRUE, tvb, offset, pinfo, tree, hf_x411_per_domain_bilateral_information);
2351 dissect_x411_ArrivalTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2352 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2356 static int dissect_arrival_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2357 return dissect_x411_ArrivalTime(TRUE, tvb, offset, pinfo, tree, hf_x411_arrival_time);
2361 static const value_string x411_RoutingAction_vals[] = {
2369 dissect_x411_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2372 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2376 proto_item_append_text(address_item, " %s", val_to_str(action, x411_RoutingAction_vals, "action(%d)"));
2381 static int dissect_routing_action_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2382 return dissect_x411_RoutingAction(TRUE, tvb, offset, pinfo, tree, hf_x411_routing_action);
2388 dissect_x411_DeferredTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2389 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2393 static int dissect_deferred_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2394 return dissect_x411_DeferredTime(TRUE, tvb, offset, pinfo, tree, hf_x411_deferred_time);
2400 dissect_x411_ConvertedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2401 offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2405 static int dissect_converted_encoded_information_types(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2406 return dissect_x411_ConvertedEncodedInformationTypes(FALSE, tvb, offset, pinfo, tree, hf_x411_converted_encoded_information_types);
2408 static int dissect_converted_encoded_information_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2409 return dissect_x411_ConvertedEncodedInformationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_converted_encoded_information_types);
2413 static const asn_namedbit OtherActions_bits[] = {
2414 { 0, &hf_x411_OtherActions_redirected, -1, -1, "redirected", NULL },
2415 { 1, &hf_x411_OtherActions_dl_operation, -1, -1, "dl-operation", NULL },
2416 { 0, NULL, 0, 0, NULL, NULL }
2420 dissect_x411_OtherActions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2421 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2422 OtherActions_bits, hf_index, ett_x411_OtherActions,
2427 static int dissect_other_actions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2428 return dissect_x411_OtherActions(TRUE, tvb, offset, pinfo, tree, hf_x411_other_actions);
2432 static const ber_sequence_t DomainSuppliedInformation_set[] = {
2433 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_arrival_time_impl },
2434 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_routing_action_impl },
2435 { BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attempted_domain },
2436 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferred_time_impl },
2437 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_converted_encoded_information_types },
2438 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_other_actions_impl },
2443 dissect_x411_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2445 doing_address = FALSE;
2447 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2448 DomainSuppliedInformation_set, hf_index, ett_x411_DomainSuppliedInformation);
2451 doing_address = TRUE;
2452 proto_item_append_text(tree, ")");
2457 static int dissect_domain_supplied_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2458 return dissect_x411_DomainSuppliedInformation(FALSE, tvb, offset, pinfo, tree, hf_x411_domain_supplied_information);
2462 static const ber_sequence_t TraceInformationElement_sequence[] = {
2463 { BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_global_domain_identifier },
2464 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_domain_supplied_information },
2469 dissect_x411_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2471 doing_address = TRUE;
2473 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2474 TraceInformationElement_sequence, hf_index, ett_x411_TraceInformationElement);
2477 doing_address = FALSE;
2482 static int dissect_TraceInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2483 return dissect_x411_TraceInformationElement(FALSE, tvb, offset, pinfo, tree, hf_x411_TraceInformation_item);
2487 static const ber_sequence_t TraceInformation_sequence_of[1] = {
2488 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TraceInformation_item },
2492 dissect_x411_TraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2493 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2494 TraceInformation_sequence_of, hf_index, ett_x411_TraceInformation);
2498 static int dissect_trace_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2499 return dissect_x411_TraceInformation(FALSE, tvb, offset, pinfo, tree, hf_x411_trace_information);
2503 static const value_string x411_ExtensionType_vals[] = {
2504 { 0, "standard-extension" },
2505 { 3, "private-extension" },
2509 static const ber_choice_t ExtensionType_choice[] = {
2510 { 0, BER_CLASS_CON, 0, 0, dissect_standard_extension_impl },
2511 { 3, BER_CLASS_CON, 3, 0, dissect_private_extension_impl },
2512 { 0, 0, 0, 0, NULL }
2516 dissect_x411_ExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2517 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2518 ExtensionType_choice, hf_index, ett_x411_ExtensionType,
2523 static int dissect_extension_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2524 return dissect_x411_ExtensionType(FALSE, tvb, offset, pinfo, tree, hf_x411_extension_type);
2528 static const asn_namedbit Criticality_bits[] = {
2529 { 0, &hf_x411_Criticality_for_submission, -1, -1, "for-submission", NULL },
2530 { 1, &hf_x411_Criticality_for_transfer, -1, -1, "for-transfer", NULL },
2531 { 2, &hf_x411_Criticality_for_delivery, -1, -1, "for-delivery", NULL },
2532 { 0, NULL, 0, 0, NULL, NULL }
2536 dissect_x411_Criticality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2537 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2538 Criticality_bits, hf_index, ett_x411_Criticality,
2543 static int dissect_criticality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2544 return dissect_x411_Criticality(TRUE, tvb, offset, pinfo, tree, hf_x411_criticality);
2550 dissect_x411_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2553 if(extension_id != -1)
2554 offset=call_x411_oid_callback("x411.extension", tvb, offset, pinfo, tree);
2555 else if(object_identifier_id) {
2556 call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
2557 name = get_ber_oid_name(object_identifier_id);
2558 proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id);
2565 static int dissect_extension_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2566 return dissect_x411_ExtensionValue(TRUE, tvb, offset, pinfo, tree, hf_x411_extension_value);
2570 static const ber_sequence_t ExtensionField_sequence[] = {
2571 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extension_type },
2572 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_criticality_impl },
2573 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_extension_value_impl },
2578 dissect_x411_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2579 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2580 ExtensionField_sequence, hf_index, ett_x411_ExtensionField);
2584 static int dissect_extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2585 return dissect_x411_ExtensionField(FALSE, tvb, offset, pinfo, tree, hf_x411_extensions_item);
2589 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
2590 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensions_item },
2594 dissect_x411_SET_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2595 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2596 SET_OF_ExtensionField_set_of, hf_index, ett_x411_SET_OF_ExtensionField);
2600 static int dissect_extensions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2601 return dissect_x411_SET_OF_ExtensionField(FALSE, tvb, offset, pinfo, tree, hf_x411_extensions);
2603 static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2604 return dissect_x411_SET_OF_ExtensionField(TRUE, tvb, offset, pinfo, tree, hf_x411_extensions);
2610 dissect_x411_MTARecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2611 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2615 static int dissect_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2616 return dissect_x411_MTARecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_recipient_name);
2622 dissect_x411_OriginallySpecifiedRecipientNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2623 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2628 static int dissect_originally_specified_recipient_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2629 return dissect_x411_OriginallySpecifiedRecipientNumber(TRUE, tvb, offset, pinfo, tree, hf_x411_originally_specified_recipient_number);
2633 static const asn_namedbit PerRecipientIndicators_bits[] = {
2634 { 0, &hf_x411_PerRecipientIndicators_responsibility, -1, -1, "responsibility", NULL },
2635 { 1, &hf_x411_PerRecipientIndicators_originating_MTA_report, -1, -1, "originating-MTA-report", NULL },
2636 { 2, &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report, -1, -1, "originating-MTA-non-delivery-report", NULL },
2637 { 3, &hf_x411_PerRecipientIndicators_originator_report, -1, -1, "originator-report", NULL },
2638 { 4, &hf_x411_PerRecipientIndicators_originator_non_delivery_report, -1, -1, "originator-non-delivery-report", NULL },
2639 { 5, &hf_x411_PerRecipientIndicators_reserved_5, -1, -1, "reserved-5", NULL },
2640 { 6, &hf_x411_PerRecipientIndicators_reserved_6, -1, -1, "reserved-6", NULL },
2641 { 7, &hf_x411_PerRecipientIndicators_reserved_7, -1, -1, "reserved-7", NULL },
2642 { 0, NULL, 0, 0, NULL, NULL }
2646 dissect_x411_PerRecipientIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2647 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2648 PerRecipientIndicators_bits, hf_index, ett_x411_PerRecipientIndicators,
2653 static int dissect_per_recipient_indicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2654 return dissect_x411_PerRecipientIndicators(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_indicators);
2658 static const value_string x411_ExplicitConversion_vals[] = {
2659 { 0, "ia5-text-to-teletex" },
2660 { 8, "ia5-text-to-g3-facsimile" },
2661 { 9, "ia5-text-to-g4-class-1" },
2662 { 10, "ia5-text-to-videotex" },
2663 { 11, "teletex-to-ia5-text" },
2664 { 12, "teletex-to-g3-facsimile" },
2665 { 13, "teletex-to-g4-class-1" },
2666 { 14, "teletex-to-videotex" },
2667 { 16, "videotex-to-ia5-text" },
2668 { 17, "videotex-to-teletex" },
2674 dissect_x411_ExplicitConversion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2675 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2680 static int dissect_explicit_conversion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2681 return dissect_x411_ExplicitConversion(TRUE, tvb, offset, pinfo, tree, hf_x411_explicit_conversion);
2685 static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
2686 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_recipient_name },
2687 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originally_specified_recipient_number_impl },
2688 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_per_recipient_indicators_impl },
2689 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
2690 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2695 dissect_x411_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2696 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2697 PerRecipientMessageTransferFields_set, hf_index, ett_x411_PerRecipientMessageTransferFields);
2701 static int dissect_per_recipient_message_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2702 return dissect_x411_PerRecipientMessageTransferFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_message_fields_item);
2706 static const ber_sequence_t SEQUENCE_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
2707 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_message_fields_item },
2711 dissect_x411_SEQUENCE_OF_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2712 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2713 SEQUENCE_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientMessageTransferFields);
2717 static int dissect_per_recipient_message_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2718 return dissect_x411_SEQUENCE_OF_PerRecipientMessageTransferFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_message_fields);
2722 static const ber_sequence_t MessageTransferEnvelope_set[] = {
2723 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_message_identifier },
2724 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mta_originator_name },
2725 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
2726 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
2727 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
2728 { BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_priority },
2729 { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
2730 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferred_delivery_time_impl },
2731 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_per_domain_bilateral_information_impl },
2732 { BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_trace_information },
2733 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2734 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_per_recipient_message_fields_impl },
2739 dissect_x411_MessageTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2740 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2741 MessageTransferEnvelope_set, hf_index, ett_x411_MessageTransferEnvelope);
2745 static int dissect_message_envelope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2746 return dissect_x411_MessageTransferEnvelope(FALSE, tvb, offset, pinfo, tree, hf_x411_message_envelope);
2752 dissect_x411_Content(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2755 /* we can do this now constructed octet strings are supported */
2756 offset = dissect_ber_octet_string(FALSE, pinfo, NULL, tvb, offset, hf_index, &next_tvb);
2758 if (next_tvb && content_type_id)
2759 (void) call_ber_oid_callback(content_type_id, next_tvb, 0, pinfo, top_tree ? top_tree : tree);
2764 static int dissect_content(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2765 return dissect_x411_Content(FALSE, tvb, offset, pinfo, tree, hf_x411_content);
2767 static int dissect_returned_content_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2768 return dissect_x411_Content(TRUE, tvb, offset, pinfo, tree, hf_x411_returned_content);
2772 static const ber_sequence_t Message_sequence[] = {
2773 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_message_envelope },
2774 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_content },
2779 dissect_x411_Message(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2780 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2781 Message_sequence, hf_index, ett_x411_Message);
2785 static int dissect_message_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2786 return dissect_x411_Message(TRUE, tvb, offset, pinfo, tree, hf_x411_message);
2792 dissect_x411_ProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2793 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2797 static int dissect_probe_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2798 return dissect_x411_ProbeIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_probe_identifier);
2804 dissect_x411_ContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2805 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2810 static int dissect_content_length_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2811 return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_content_length);
2813 static int dissect_permissible_maximum_content_length_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2814 return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_maximum_content_length);
2816 static int dissect_maximum_content_length_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2817 return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_maximum_content_length);
2821 static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
2822 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_recipient_name },
2823 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originally_specified_recipient_number_impl },
2824 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_per_recipient_indicators_impl },
2825 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
2826 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2831 dissect_x411_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2832 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2833 PerRecipientProbeTransferFields_set, hf_index, ett_x411_PerRecipientProbeTransferFields);
2837 static int dissect_per_recipient_probe_transfer_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2838 return dissect_x411_PerRecipientProbeTransferFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields_item);
2842 static const ber_sequence_t SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
2843 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_probe_transfer_fields_item },
2847 dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2848 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2849 SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientProbeTransferFields);
2853 static int dissect_per_recipient_probe_transfer_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2854 return dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields);
2858 static const ber_sequence_t ProbeTransferEnvelope_set[] = {
2859 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_probe_identifier },
2860 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mta_originator_name },
2861 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
2862 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
2863 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
2864 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_length_impl },
2865 { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
2866 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_per_domain_bilateral_information_impl },
2867 { BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_trace_information },
2868 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2869 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_per_recipient_probe_transfer_fields_impl },
2874 dissect_x411_ProbeTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2875 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2876 ProbeTransferEnvelope_set, hf_index, ett_x411_ProbeTransferEnvelope);
2884 dissect_x411_Probe(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2885 offset = dissect_x411_ProbeTransferEnvelope(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2889 static int dissect_probe_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2890 return dissect_x411_Probe(TRUE, tvb, offset, pinfo, tree, hf_x411_probe);
2896 dissect_x411_ReportIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2897 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2901 static int dissect_report_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2902 return dissect_x411_ReportIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_report_identifier);
2908 dissect_x411_ReportDestinationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2909 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2913 static int dissect_report_destination_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2914 return dissect_x411_ReportDestinationName(FALSE, tvb, offset, pinfo, tree, hf_x411_report_destination_name);
2918 static const ber_sequence_t ReportTransferEnvelope_set[] = {
2919 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_report_identifier },
2920 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_report_destination_name },
2921 { BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_trace_information },
2922 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2927 dissect_x411_ReportTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2928 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2929 ReportTransferEnvelope_set, hf_index, ett_x411_ReportTransferEnvelope);
2933 static int dissect_report_envelope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2934 return dissect_x411_ReportTransferEnvelope(FALSE, tvb, offset, pinfo, tree, hf_x411_report_envelope);
2940 dissect_x411_MessageOrProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2941 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2949 dissect_x411_SubjectIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2950 offset = dissect_x411_MessageOrProbeIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2954 static int dissect_subject_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2955 return dissect_x411_SubjectIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_subject_identifier);
2961 dissect_x411_SubjectIntermediateTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2962 offset = dissect_x411_TraceInformation(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2966 static int dissect_subject_intermediate_trace_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2967 return dissect_x411_SubjectIntermediateTraceInformation(FALSE, tvb, offset, pinfo, tree, hf_x411_subject_intermediate_trace_information);
2973 dissect_x411_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2974 /*XXX not implemented yet */
2979 static int dissect_additional_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2980 return dissect_x411_AdditionalInformation(TRUE, tvb, offset, pinfo, tree, hf_x411_additional_information);
2986 dissect_x411_MTAActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2987 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2991 static int dissect_mta_actual_recipient_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2992 return dissect_x411_MTAActualRecipientName(TRUE, tvb, offset, pinfo, tree, hf_x411_mta_actual_recipient_name);
2998 dissect_x411_MessageDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2999 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3003 static int dissect_message_delivery_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3004 return dissect_x411_MessageDeliveryTime(FALSE, tvb, offset, pinfo, tree, hf_x411_message_delivery_time);
3006 static int dissect_message_delivery_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3007 return dissect_x411_MessageDeliveryTime(TRUE, tvb, offset, pinfo, tree, hf_x411_message_delivery_time);
3011 static const value_string x411_TypeOfMTSUser_vals[] = {
3017 { 5, "physical-recipient" },
3024 dissect_x411_TypeOfMTSUser(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3025 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3030 static int dissect_type_of_MTS_user(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3031 return dissect_x411_TypeOfMTSUser(FALSE, tvb, offset, pinfo, tree, hf_x411_type_of_MTS_user);
3033 static int dissect_type_of_MTS_user_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3034 return dissect_x411_TypeOfMTSUser(TRUE, tvb, offset, pinfo, tree, hf_x411_type_of_MTS_user);
3038 static const ber_sequence_t DeliveryReport_set[] = {
3039 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_message_delivery_time_impl },
3040 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_type_of_MTS_user_impl },
3045 dissect_x411_DeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3046 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3047 DeliveryReport_set, hf_index, ett_x411_DeliveryReport);
3051 static int dissect_delivery_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3052 return dissect_x411_DeliveryReport(TRUE, tvb, offset, pinfo, tree, hf_x411_delivery);
3056 static const value_string x411_NonDeliveryReasonCode_vals[] = {
3057 { 0, "transfer-failure" },
3058 { 1, "unable-to-transfer" },
3059 { 2, "conversion-not-performed" },
3060 { 3, "physical-rendition-not-performed" },
3061 { 4, "physical-delivery-not-performed" },
3062 { 5, "restricted-delivery" },
3063 { 6, "directory-operation-unsuccessful" },
3064 { 7, "deferred-delivery-not-performed" },
3065 { 8, "transfer-failure-for-security-reason" },
3071 dissect_x411_NonDeliveryReasonCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3072 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3077 static int dissect_non_delivery_reason_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3078 return dissect_x411_NonDeliveryReasonCode(FALSE, tvb, offset, pinfo, tree, hf_x411_non_delivery_reason_code);
3080 static int dissect_non_delivery_reason_code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3081 return dissect_x411_NonDeliveryReasonCode(TRUE, tvb, offset, pinfo, tree, hf_x411_non_delivery_reason_code);
3085 static const value_string x411_NonDeliveryDiagnosticCode_vals[] = {
3086 { 0, "unrecognised-OR-name" },
3087 { 1, "ambiguous-OR-name" },
3088 { 2, "mts-congestion" },
3089 { 3, "loop-detected" },
3090 { 4, "recipient-unavailable" },
3091 { 5, "maximum-time-expired" },
3092 { 6, "encoded-information-types-unsupported" },
3093 { 7, "content-too-long" },
3094 { 8, "conversion-impractical" },
3095 { 9, "implicit-conversion-prohibited" },
3096 { 10, "implicit-conversion-not-subscribed" },
3097 { 11, "invalid-arguments" },
3098 { 12, "content-syntax-error" },
3099 { 13, "size-constraint-violation" },
3100 { 14, "protocol-violation" },
3101 { 15, "content-type-not-supported" },
3102 { 16, "too-many-recipients" },
3103 { 17, "no-bilateral-agreement" },
3104 { 18, "unsupported-critical-function" },
3105 { 19, "conversion-with-loss-prohibited" },
3106 { 20, "line-too-long" },
3107 { 21, "page-split" },
3108 { 22, "pictorial-symbol-loss" },
3109 { 23, "punctuation-symbol-loss" },
3110 { 24, "alphabetic-character-loss" },
3111 { 25, "multiple-information-loss" },
3112 { 26, "recipient-reassignment-prohibited" },
3113 { 27, "redirection-loop-detected" },
3114 { 28, "dl-expansion-prohibited" },
3115 { 29, "no-dl-submit-permission" },
3116 { 30, "dl-expansion-failure" },
3117 { 31, "physical-rendition-attributes-not-supported" },
3118 { 32, "undeliverable-mail-physical-delivery-address-incorrect" },
3119 { 33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
3120 { 34, "undeliverable-mail-physical-delivery-address-incomplete" },
3121 { 35, "undeliverable-mail-recipient-unknown" },
3122 { 36, "undeliverable-mail-recipient-deceased" },
3123 { 37, "undeliverable-mail-organization-expired" },
3124 { 38, "undeliverable-mail-recipient-refused-to-accept" },
3125 { 39, "undeliverable-mail-recipient-did-not-claim" },
3126 { 40, "undeliverable-mail-recipient-changed-address-permanently" },
3127 { 41, "undeliverable-mail-recipient-changed-address-temporarily" },
3128 { 42, "undeliverable-mail-recipient-changed-temporary-address" },
3129 { 43, "undeliverable-mail-new-address-unknown" },
3130 { 44, "undeliverable-mail-recipient-did-not-want-forwarding" },
3131 { 45, "undeliverable-mail-originator-prohibited-forwarding" },
3132 { 46, "secure-messaging-error" },
3133 { 47, "unable-to-downgrade" },
3134 { 48, "unable-to-complete-transfer" },
3135 { 49, "transfer-attempts-limit-reached" },
3136 { 50, "incorrect-notification-type" },
3137 { 51, "dl-expansion-prohibited-by-security-policy" },
3138 { 52, "forbidden-alternate-recipient" },
3139 { 53, "security-policy-violation" },
3140 { 54, "security-services-refusal" },
3141 { 55, "unauthorised-dl-member" },
3142 { 56, "unauthorised-dl-name" },
3143 { 57, "unauthorised-originally-intended-recipient-name" },
3144 { 58, "unauthorised-originator-name" },
3145 { 59, "unauthorised-recipient-name" },
3146 { 60, "unreliable-system" },
3147 { 61, "authentication-failure-on-subject-message" },
3148 { 62, "decryption-failed" },
3149 { 63, "decryption-key-unobtainable" },
3150 { 64, "double-envelope-creation-failure" },
3151 { 65, "double-enveloping-message-restoring-failure" },
3152 { 66, "failure-of-proof-of-message" },
3153 { 67, "integrity-failure-on-subject-message" },
3154 { 68, "invalid-security-label" },
3155 { 69, "key-failure" },
3156 { 70, "mandatory-parameter-absence" },
3157 { 71, "operation-security-failure" },
3158 { 72, "repudiation-failure-of-message" },
3159 { 73, "security-context-failure" },
3160 { 74, "token-decryption-failed" },
3161 { 75, "token-error" },
3162 { 76, "unknown-security-label" },
3163 { 77, "unsupported-algorithm-identifier" },
3164 { 78, "unsupported-security-policy" },
3170 dissect_x411_NonDeliveryDiagnosticCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3171 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3176 static int dissect_non_delivery_diagnostic_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3177 return dissect_x411_NonDeliveryDiagnosticCode(FALSE, tvb, offset, pinfo, tree, hf_x411_non_delivery_diagnostic_code);
3179 static int dissect_non_delivery_diagnostic_code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3180 return dissect_x411_NonDeliveryDiagnosticCode(TRUE, tvb, offset, pinfo, tree, hf_x411_non_delivery_diagnostic_code);
3184 static const ber_sequence_t NonDeliveryReport_set[] = {
3185 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_non_delivery_reason_code_impl },
3186 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_non_delivery_diagnostic_code_impl },
3191 dissect_x411_NonDeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3192 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3193 NonDeliveryReport_set, hf_index, ett_x411_NonDeliveryReport);
3197 static int dissect_non_delivery_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3198 return dissect_x411_NonDeliveryReport(TRUE, tvb, offset, pinfo, tree, hf_x411_non_delivery);
3202 static const value_string x411_ReportType_vals[] = {
3204 { 1, "non-delivery" },
3208 static const ber_choice_t ReportType_choice[] = {
3209 { 0, BER_CLASS_CON, 0, 0, dissect_delivery_impl },
3210 { 1, BER_CLASS_CON, 1, 0, dissect_non_delivery_impl },
3211 { 0, 0, 0, 0, NULL }
3215 dissect_x411_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3216 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3217 ReportType_choice, hf_index, ett_x411_ReportType,
3222 static int dissect_trace_report_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3223 return dissect_x411_ReportType(TRUE, tvb, offset, pinfo, tree, hf_x411_trace_report_type);
3225 static int dissect_delivery_report_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3226 return dissect_x411_ReportType(TRUE, tvb, offset, pinfo, tree, hf_x411_delivery_report_type);
3230 static const ber_sequence_t LastTraceInformation_set[] = {
3231 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_arrival_time_impl },
3232 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_converted_encoded_information_types },
3233 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_trace_report_type_impl },
3238 dissect_x411_LastTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3239 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3240 LastTraceInformation_set, hf_index, ett_x411_LastTraceInformation);
3244 static int dissect_last_trace_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3245 return dissect_x411_LastTraceInformation(TRUE, tvb, offset, pinfo, tree, hf_x411_last_trace_information);
3251 dissect_x411_MTAOriginallyIntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3252 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3256 static int dissect_report_originally_intended_recipient_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3257 return dissect_x411_MTAOriginallyIntendedRecipientName(TRUE, tvb, offset, pinfo, tree, hf_x411_report_originally_intended_recipient_name);
3263 dissect_x411_SupplementaryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3264 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
3265 pinfo, tree, tvb, offset, hf_index,
3270 static int dissect_supplementary_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3271 return dissect_x411_SupplementaryInformation(TRUE, tvb, offset, pinfo, tree, hf_x411_supplementary_information);
3275 static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
3276 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mta_actual_recipient_name_impl },
3277 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_originally_specified_recipient_number_impl },
3278 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_per_recipient_indicators_impl },
3279 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_last_trace_information_impl },
3280 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_report_originally_intended_recipient_name_impl },
3281 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supplementary_information_impl },
3282 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3287 dissect_x411_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3288 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3289 PerRecipientReportTransferFields_set, hf_index, ett_x411_PerRecipientReportTransferFields);
3293 static int dissect_per_recipient_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3294 return dissect_x411_PerRecipientReportTransferFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_fields_item);
3298 static const ber_sequence_t SEQUENCE_OF_PerRecipientReportTransferFields_sequence_of[1] = {
3299 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_fields_item },
3303 dissect_x411_SEQUENCE_OF_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3304 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3305 SEQUENCE_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientReportTransferFields);
3309 static int dissect_per_recipient_report_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3310 return dissect_x411_SEQUENCE_OF_PerRecipientReportTransferFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_report_fields);
3314 static const ber_sequence_t ReportTransferContent_set[] = {
3315 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_subject_identifier },
3316 { BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_subject_intermediate_trace_information },
3317 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
3318 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
3319 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
3320 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_returned_content_impl },
3321 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additional_information_impl },
3322 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3323 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_per_recipient_report_fields_impl },
3328 dissect_x411_ReportTransferContent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3329 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3330 ReportTransferContent_set, hf_index, ett_x411_ReportTransferContent);
3334 static int dissect_report_content(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3335 return dissect_x411_ReportTransferContent(FALSE, tvb, offset, pinfo, tree, hf_x411_report_content);
3339 static const ber_sequence_t Report_sequence[] = {
3340 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_report_envelope },
3341 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_report_content },
3346 dissect_x411_Report(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3347 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3348 Report_sequence, hf_index, ett_x411_Report);
3352 static int dissect_report_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3353 return dissect_x411_Report(TRUE, tvb, offset, pinfo, tree, hf_x411_report);
3357 static const value_string x411_MTS_APDU_vals[] = {
3364 static const ber_choice_t MTS_APDU_choice[] = {
3365 { 0, BER_CLASS_CON, 0, 0, dissect_message_impl },
3366 { 2, BER_CLASS_CON, 2, 0, dissect_probe_impl },
3367 { 1, BER_CLASS_CON, 1, 0, dissect_report_impl },
3368 { 0, 0, 0, 0, NULL }
3372 dissect_x411_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3373 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3374 MTS_APDU_choice, hf_index, ett_x411_MTS_APDU,
3383 dissect_x411_MTAOriginatorRequestedAlternateRecipient(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3384 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3390 static const value_string x411_T_attempted_vals[] = {
3396 static const ber_choice_t T_attempted_choice[] = {
3397 { 0, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_mta },
3398 { 1, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_domain },
3399 { 0, 0, 0, 0, NULL }
3403 dissect_x411_T_attempted(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3404 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3405 T_attempted_choice, hf_index, ett_x411_T_attempted,
3410 static int dissect_attempted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3411 return dissect_x411_T_attempted(FALSE, tvb, offset, pinfo, tree, hf_x411_attempted);
3415 static const ber_sequence_t MTASuppliedInformation_set[] = {
3416 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_arrival_time_impl },
3417 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_routing_action_impl },
3418 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attempted },
3419 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferred_time_impl },
3420 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_converted_encoded_information_types },
3421 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_other_actions_impl },
3426 dissect_x411_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3428 doing_address = FALSE;
3430 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3431 MTASuppliedInformation_set, hf_index, ett_x411_MTASuppliedInformation);
3434 doing_address = TRUE;
3435 proto_item_append_text(tree, ")");
3440 static int dissect_mta_supplied_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3441 return dissect_x411_MTASuppliedInformation(FALSE, tvb, offset, pinfo, tree, hf_x411_mta_supplied_information);
3445 static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
3446 { BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_global_domain_identifier },
3447 { BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_mta_name },
3448 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_mta_supplied_information },
3453 dissect_x411_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3455 doing_address = TRUE;
3457 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3458 InternalTraceInformationElement_sequence, hf_index, ett_x411_InternalTraceInformationElement);
3461 doing_address = FALSE;
3467 static int dissect_InternalTraceInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3468 return dissect_x411_InternalTraceInformationElement(FALSE, tvb, offset, pinfo, tree, hf_x411_InternalTraceInformation_item);
3472 static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
3473 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_InternalTraceInformation_item },
3477 dissect_x411_InternalTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3478 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3479 InternalTraceInformation_sequence_of, hf_index, ett_x411_InternalTraceInformation);
3485 static const value_string x411_ObjectName_vals[] = {
3486 { 0, "user-agent" },
3488 { 2, "message-store" },
3492 static const ber_choice_t ObjectName_choice[] = {
3493 { 0, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_user_agent },
3494 { 1, BER_CLASS_CON, 0, 0, dissect_mTA_impl },
3495 { 2, BER_CLASS_CON, 4, 0, dissect_message_store_impl },
3496 { 0, 0, 0, 0, NULL }
3500 dissect_x411_ObjectName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3501 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3502 ObjectName_choice, hf_index, ett_x411_ObjectName,
3507 static int dissect_initiator_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3508 return dissect_x411_ObjectName(FALSE, tvb, offset, pinfo, tree, hf_x411_initiator_name);
3510 static int dissect_responder_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3511 return dissect_x411_ObjectName(FALSE, tvb, offset, pinfo, tree, hf_x411_responder_name);
3515 static const ber_sequence_t DeliveryQueue_set[] = {
3516 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messages_impl },
3517 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_queue_octets_impl },
3522 dissect_x411_DeliveryQueue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3523 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3524 DeliveryQueue_set, hf_index, ett_x411_DeliveryQueue);
3528 static int dissect_urgent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3529 return dissect_x411_DeliveryQueue(TRUE, tvb, offset, pinfo, tree, hf_x411_urgent);
3531 static int dissect_normal_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3532 return dissect_x411_DeliveryQueue(TRUE, tvb, offset, pinfo, tree, hf_x411_normal);
3534 static int dissect_non_urgent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3535 return dissect_x411_DeliveryQueue(TRUE, tvb, offset, pinfo, tree, hf_x411_non_urgent);
3539 static const ber_sequence_t MessagesWaiting_set[] = {
3540 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_urgent_impl },
3541 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_normal_impl },
3542 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_non_urgent_impl },
3547 dissect_x411_MessagesWaiting(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3548 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3549 MessagesWaiting_set, hf_index, ett_x411_MessagesWaiting);
3553 static int dissect_messages_waiting(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3554 return dissect_x411_MessagesWaiting(FALSE, tvb, offset, pinfo, tree, hf_x411_messages_waiting);
3558 static const ber_sequence_t MTSBindArgument_set[] = {
3559 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_initiator_name },
3560 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_messages_waiting },
3561 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_initiator_credentials_impl },
3562 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_security_context_impl },
3563 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3568 dissect_x411_MTSBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3569 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3570 MTSBindArgument_set, hf_index, ett_x411_MTSBindArgument);
3576 static const ber_sequence_t MTSBindResult_set[] = {
3577 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_responder_name },
3578 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_messages_waiting },
3579 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_responder_credentials_impl },
3580 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3585 dissect_x411_MTSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3586 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3587 MTSBindResult_set, hf_index, ett_x411_MTSBindResult);
3593 static const value_string x411_MTSBindError_vals[] = {
3595 { 2, "authentication-error" },
3596 { 3, "unacceptable-dialogue-mode" },
3597 { 4, "unacceptable-security-context" },
3598 { 5, "inadequate-association-confidentiality" },
3604 dissect_x411_MTSBindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3605 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3614 dissect_x411_ORAddressAndOrDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3615 offset = dissect_x411_ORName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3619 static int dissect_DLExemptedRecipients_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3620 return dissect_x411_ORAddressAndOrDirectoryName(FALSE, tvb, offset, pinfo, tree, hf_x411_DLExemptedRecipients_item);
3626 dissect_x411_MTSOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3627 offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3631 static int dissect_mts_originator_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3632 return dissect_x411_MTSOriginatorName(FALSE, tvb, offset, pinfo, tree, hf_x411_mts_originator_name);
3638 dissect_x411_MTSRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3639 offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3643 static int dissect_ImproperlySpecifiedRecipients_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3644 return dissect_x411_MTSRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_ImproperlySpecifiedRecipients_item);
3646 static int dissect_submission_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3647 return dissect_x411_MTSRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_submission_recipient_name);
3649 static int dissect_probe_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3650 return dissect_x411_MTSRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_probe_recipient_name);
3654 static const asn_namedbit OriginatorReportRequest_bits[] = {
3655 { 3, &hf_x411_OriginatorReportRequest_report, -1, -1, "report", NULL },
3656 { 4, &hf_x411_OriginatorReportRequest_non_delivery_report, -1, -1, "non-delivery-report", NULL },
3657 { 0, NULL, 0, 0, NULL, NULL }
3661 dissect_x411_OriginatorReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3662 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3663 OriginatorReportRequest_bits, hf_index, ett_x411_OriginatorReportRequest,
3668 static int dissect_originator_report_request_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3669 return dissect_x411_OriginatorReportRequest(TRUE, tvb, offset, pinfo, tree, hf_x411_originator_report_request);
3673 static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
3674 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_submission_recipient_name },
3675 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originator_report_request_impl },
3676 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
3677 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3682 dissect_x411_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3683 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3684 PerRecipientMessageSubmissionFields_set, hf_index, ett_x411_PerRecipientMessageSubmissionFields);
3688 static int dissect_per_recipient_message_submission_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3689 return dissect_x411_PerRecipientMessageSubmissionFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_message_submission_fields_item);
3693 static const ber_sequence_t SEQUENCE_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
3694 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_message_submission_fields_item },
3698 dissect_x411_SEQUENCE_OF_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3699 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3700 SEQUENCE_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientMessageSubmissionFields);
3704 static int dissect_per_recipient_message_submission_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3705 return dissect_x411_SEQUENCE_OF_PerRecipientMessageSubmissionFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_message_submission_fields);
3709 static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
3710 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mts_originator_name },
3711 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
3712 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
3713 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
3714 { BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_priority },
3715 { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
3716 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferred_delivery_time_impl },
3717 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3718 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_per_recipient_message_submission_fields_impl },
3723 dissect_x411_MessageSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3724 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3725 MessageSubmissionEnvelope_set, hf_index, ett_x411_MessageSubmissionEnvelope);
3729 static int dissect_message_submission_envelope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3730 return dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, offset, pinfo, tree, hf_x411_message_submission_envelope);
3734 static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
3735 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_message_submission_envelope },
3736 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_content },
3741 dissect_x411_MessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3742 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3743 MessageSubmissionArgument_sequence, hf_index, ett_x411_MessageSubmissionArgument);
3751 dissect_x411_MessageSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3752 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3756 static int dissect_message_submission_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3757 return dissect_x411_MessageSubmissionIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_message_submission_identifier);
3763 dissect_x411_MessageSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3764 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3768 static int dissect_message_submission_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3769 return dissect_x411_MessageSubmissionTime(TRUE, tvb, offset, pinfo, tree, hf_x411_message_submission_time);
3773 static const ber_sequence_t MessageSubmissionResult_set[] = {
3774 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_message_submission_identifier },
3775 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_message_submission_time_impl },
3776 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
3777 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3782 dissect_x411_MessageSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3783 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3784 MessageSubmissionResult_set, hf_index, ett_x411_MessageSubmissionResult);
3790 static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
3791 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_probe_recipient_name },
3792 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originator_report_request_impl },
3793 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
3794 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3799 dissect_x411_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3800 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3801 PerRecipientProbeSubmissionFields_set, hf_index, ett_x411_PerRecipientProbeSubmissionFields);
3805 static int dissect_per_recipient_probe_submission_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3806 return dissect_x411_PerRecipientProbeSubmissionFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_submission_fields_item);
3810 static const ber_sequence_t SEQUENCE_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
3811 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_probe_submission_fields_item },
3815 dissect_x411_SEQUENCE_OF_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3816 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3817 SEQUENCE_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientProbeSubmissionFields);
3821 static int dissect_per_recipient_probe_submission_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3822 return dissect_x411_SEQUENCE_OF_PerRecipientProbeSubmissionFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_submission_fields);
3826 static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
3827 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mts_originator_name },
3828 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
3829 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
3830 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
3831 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_length_impl },
3832 { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
3833 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3834 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_per_recipient_probe_submission_fields_impl },
3839 dissect_x411_ProbeSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3840 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3841 ProbeSubmissionEnvelope_set, hf_index, ett_x411_ProbeSubmissionEnvelope);
3849 dissect_x411_ProbeSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3850 offset = dissect_x411_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3858 dissect_x411_ProbeSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3859 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3863 static int dissect_probe_submission_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3864 return dissect_x411_ProbeSubmissionIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_probe_submission_identifier);
3870 dissect_x411_ProbeSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3871 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3875 static int dissect_probe_submission_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3876 return dissect_x411_ProbeSubmissionTime(TRUE, tvb, offset, pinfo, tree, hf_x411_probe_submission_time);
3880 static const ber_sequence_t ProbeSubmissionResult_set[] = {
3881 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_probe_submission_identifier },
3882 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_probe_submission_time_impl },
3883 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
3884 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3889 dissect_x411_ProbeSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3890 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3891 ProbeSubmissionResult_set, hf_index, ett_x411_ProbeSubmissionResult);
3899 dissect_x411_CancelDeferredDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3900 offset = dissect_x411_MessageSubmissionIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3908 dissect_x411_CancelDeferredDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3909 offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
3917 dissect_x411_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3918 offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
3922 static int dissect_restrict_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3923 return dissect_x411_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_x411_restrict);
3925 static int dissect_permitted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3926 return dissect_x411_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x411_permitted);
3930 static const asn_namedbit Operations_bits[] = {
3931 { 0, &hf_x411_Operations_probe_submission_or_report_delivery, -1, -1, "probe-submission-or-report-delivery", NULL },
3932 { 1, &hf_x411_Operations_message_submission_or_message_delivery, -1, -1, "message-submission-or-message-delivery", NULL },
3933 { 0, NULL, 0, 0, NULL, NULL }
3937 dissect_x411_Operations(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3938 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3939 Operations_bits, hf_index, ett_x411_Operations,
3944 static int dissect_waiting_operations_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3945 return dissect_x411_Operations(TRUE, tvb, offset, pinfo, tree, hf_x411_waiting_operations);
3947 static int dissect_permissible_operations_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3948 return dissect_x411_Operations(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_operations);
3952 static const ber_sequence_t ContentTypes_set_of[1] = {
3953 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ContentTypes_item },
3957 dissect_x411_ContentTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3958 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3959 ContentTypes_set_of, hf_index, ett_x411_ContentTypes);
3963 static int dissect_permissible_content_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3964 return dissect_x411_ContentTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_content_types);
3966 static int dissect_content_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3967 return dissect_x411_ContentTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_content_types);
3971 static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
3972 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unacceptable_eits_impl },
3973 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acceptable_eits_impl },
3974 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_exclusively_acceptable_eits_impl },
3979 dissect_x411_EncodedInformationTypesConstraints(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3980 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3981 EncodedInformationTypesConstraints_sequence, hf_index, ett_x411_EncodedInformationTypesConstraints);
3985 static int dissect_encoded_information_types_constraints_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3986 return dissect_x411_EncodedInformationTypesConstraints(TRUE, tvb, offset, pinfo, tree, hf_x411_encoded_information_types_constraints);
3992 dissect_x411_PermissibleEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3993 offset = dissect_x411_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3997 static int dissect_permissible_encoded_information_types(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3998 return dissect_x411_PermissibleEncodedInformationTypes(FALSE, tvb, offset, pinfo, tree, hf_x411_permissible_encoded_information_types);
4002 static const ber_sequence_t Controls_set[] = {
4003 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_restrict_impl },
4004 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_operations_impl },
4005 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_maximum_content_length_impl },
4006 { BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_permissible_lowest_priority },
4007 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_content_types_impl },
4008 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_permissible_encoded_information_types },
4009 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_security_context_impl },
4014 dissect_x411_Controls(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4015 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4016 Controls_set, hf_index, ett_x411_Controls);
4024 dissect_x411_SubmissionControls(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4025 offset = dissect_x411_Controls(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4033 dissect_x411_SubmissionControlArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4034 offset = dissect_x411_SubmissionControls(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4040 static const asn_namedbit WaitingMessages_bits[] = {
4041 { 0, &hf_x411_WaitingMessages_long_content, -1, -1, "long-content", NULL },
4042 { 1, &hf_x411_WaitingMessages_low_priority, -1, -1, "low-priority", NULL },
4043 { 2, &hf_x411_WaitingMessages_other_security_labels, -1, -1, "other-security-labels", NULL },
4044 { 0, NULL, 0, 0, NULL, NULL }
4048 dissect_x411_WaitingMessages(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4049 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
4050 WaitingMessages_bits, hf_index, ett_x411_WaitingMessages,
4055 static int dissect_waiting_messages_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4056 return dissect_x411_WaitingMessages(TRUE, tvb, offset, pinfo, tree, hf_x411_waiting_messages);
4060 static const ber_sequence_t SET_OF_ContentType_set_of[1] = {
4061 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_waiting_content_types_item },
4065 dissect_x411_SET_OF_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4066 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
4067 SET_OF_ContentType_set_of, hf_index, ett_x411_SET_OF_ContentType);
4071 static int dissect_waiting_content_types_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4072 return dissect_x411_SET_OF_ContentType(TRUE, tvb, offset, pinfo, tree, hf_x411_waiting_content_types);
4076 static const ber_sequence_t Waiting_set[] = {
4077 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_operations_impl },
4078 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_messages_impl },
4079 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_content_types_impl },
4080 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_waiting_encoded_information_types },
4085 dissect_x411_Waiting(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4086 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4087 Waiting_set, hf_index, ett_x411_Waiting);
4095 dissect_x411_SubmissionControlResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4096 offset = dissect_x411_Waiting(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4102 static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
4103 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_ImproperlySpecifiedRecipients_item },
4107 dissect_x411_ImproperlySpecifiedRecipients(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4108 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4109 ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_x411_ImproperlySpecifiedRecipients);
4115 static const value_string x411_SecurityProblem_vals[] = {
4116 { 0, "assemby-instructions-conflict-with-security-services" },
4117 { 1, "authentication-problem" },
4118 { 2, "authentication-failure-on-subject-message" },
4119 { 3, "confidentiality-association-problem" },
4120 { 4, "decryption-failed" },
4121 { 5, "decryption-key-unobtainable" },
4122 { 6, "failure-of-proof-of-message" },
4123 { 7, "forbidden-user-security-label-register" },
4124 { 8, "incompatible-change-with-original-security-context" },
4125 { 9, "integrity-failure-on-subject-message" },
4126 { 10, "invalid-security-label" },
4127 { 11, "invalid-security-label-update" },
4128 { 12, "key-failure" },
4129 { 13, "mandatory-parameter-absence" },
4130 { 14, "operation-security-failure" },
4131 { 15, "redirection-prohibited" },
4132 { 16, "refused-alternate-recipient-name" },
4133 { 17, "repudiation-failure-of-message" },
4134 { 18, "responder-credentials-checking-problem" },
4135 { 19, "security-context-failure" },
4136 { 20, "security-context-problem" },
4137 { 21, "security-policy-violation" },
4138 { 22, "security-services-refusal" },
4139 { 23, "token-decryption-failed" },
4140 { 24, "token-error" },
4141 { 25, "unable-to-aggregate-security-labels" },
4142 { 26, "unauthorised-dl-name" },
4143 { 27, "unauthorised-entry-class" },
4144 { 28, "unauthorised-originally-intended-recipient-name" },
4145 { 29, "unauthorised-originator-name" },
4146 { 30, "unauthorised-recipient-name" },
4147 { 31, "unauthorised-security-label-update" },
4148 { 32, "unauthorised-user-name" },
4149 { 33, "unknown-security-label" },
4150 { 34, "unsupported-algorithm-identifier" },
4151 { 35, "unsupported-security-policy" },
4157 dissect_x411_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4158 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4167 dissect_x411_MessageDeliveryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4168 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4172 static int dissect_message_delivery_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4173 return dissect_x411_MessageDeliveryIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_message_delivery_identifier);
4177 static const value_string x411_DeliveredContentType_vals[] = {
4183 static const ber_choice_t DeliveredContentType_choice[] = {
4184 { 0, BER_CLASS_CON, 0, 0, dissect_built_in_impl },
4185 { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extended },
4186 { 0, 0, 0, 0, NULL }
4190 dissect_x411_DeliveredContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4191 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4192 DeliveredContentType_choice, hf_index, ett_x411_DeliveredContentType,
4197 static int dissect_delivered_content_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4198 return dissect_x411_DeliveredContentType(FALSE, tvb, offset, pinfo, tree, hf_x411_delivered_content_type);
4204 dissect_x411_DeliveredOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4205 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4209 static int dissect_originator_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4210 return dissect_x411_DeliveredOriginatorName(FALSE, tvb, offset, pinfo, tree, hf_x411_originator_name);
4214 static const asn_namedbit DeliveryFlags_bits[] = {
4215 { 1, &hf_x411_DeliveryFlags_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
4216 { 0, NULL, 0, 0, NULL, NULL }
4220 dissect_x411_DeliveryFlags(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4221 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
4222 DeliveryFlags_bits, hf_index, ett_x411_DeliveryFlags,
4227 static int dissect_delivery_flags_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4228 return dissect_x411_DeliveryFlags(TRUE, tvb, offset, pinfo, tree, hf_x411_delivery_flags);
4234 dissect_x411_OtherRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4235 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4239 static int dissect_OtherRecipientNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4240 return dissect_x411_OtherRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_OtherRecipientNames_item);
4244 static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
4245 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_OtherRecipientNames_item },
4249 dissect_x411_OtherRecipientNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4250 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4251 OtherRecipientNames_sequence_of, hf_index, ett_x411_OtherRecipientNames);
4255 static int dissect_other_recipient_names_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4256 return dissect_x411_OtherRecipientNames(TRUE, tvb, offset, pinfo, tree, hf_x411_other_recipient_names);
4262 dissect_x411_ThisRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4263 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4267 static int dissect_this_recipient_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4268 return dissect_x411_ThisRecipientName(TRUE, tvb, offset, pinfo, tree, hf_x411_this_recipient_name);
4274 dissect_x411_MTSOriginallyIntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4275 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4279 static int dissect_originally_intended_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4280 return dissect_x411_MTSOriginallyIntendedRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_originally_intended_recipient_name);
4282 static int dissect_originally_intended_recipient_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4283 return dissect_x411_MTSOriginallyIntendedRecipientName(TRUE, tvb, offset, pinfo, tree, hf_x411_originally_intended_recipient_name);
4287 static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
4288 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_delivered_content_type },
4289 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_originator_name },
4290 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_original_encoded_information_types_impl },
4291 { BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_priority },
4292 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_flags_impl },
4293 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_other_recipient_names_impl },
4294 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_this_recipient_name_impl },
4295 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originally_intended_recipient_name_impl },
4296 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_converted_encoded_information_types_impl },
4297 { BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_message_submission_time_impl },
4298 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_identifier_impl },
4299 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4304 dissect_x411_OtherMessageDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4305 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4306 OtherMessageDeliveryFields_set, hf_index, ett_x411_OtherMessageDeliveryFields);
4310 static int dissect_other_fields(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4311 return dissect_x411_OtherMessageDeliveryFields(FALSE, tvb, offset, pinfo, tree, hf_x411_other_fields);
4315 static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
4316 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_message_delivery_identifier },
4317 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_message_delivery_time },
4318 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_other_fields },
4319 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_content },
4324 dissect_x411_MessageDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4325 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4326 MessageDeliveryArgument_sequence, hf_index, ett_x411_MessageDeliveryArgument);
4334 dissect_x411_RecipientCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4335 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4339 static int dissect_recipient_certificate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4340 return dissect_x411_RecipientCertificate(TRUE, tvb, offset, pinfo, tree, hf_x411_recipient_certificate);
4344 static const ber_sequence_t MessageDeliveryResult_set[] = {
4345 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_recipient_certificate_impl },
4346 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4351 dissect_x411_MessageDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4352 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4353 MessageDeliveryResult_set, hf_index, ett_x411_MessageDeliveryResult);
4361 dissect_x411_SubjectSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4362 offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4366 static int dissect_subject_submission_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4367 return dissect_x411_SubjectSubmissionIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_subject_submission_identifier);
4373 dissect_x411_MTSActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4374 offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4378 static int dissect_actual_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4379 return dissect_x411_MTSActualRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_actual_recipient_name);
4381 static int dissect_actual_recipient_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4382 return dissect_x411_MTSActualRecipientName(TRUE, tvb, offset, pinfo, tree, hf_x411_actual_recipient_name);
4386 static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
4387 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actual_recipient_name_impl },
4388 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_delivery_report_type_impl },
4389 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_converted_encoded_information_types },
4390 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originally_intended_recipient_name_impl },
4391 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supplementary_information_impl },
4392 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4397 dissect_x411_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4398 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4399 PerRecipientReportDeliveryFields_set, hf_index, ett_x411_PerRecipientReportDeliveryFields);
4403 static int dissect_per_recipient_report_delivery_fields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4404 return dissect_x411_PerRecipientReportDeliveryFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_report_delivery_fields_item);
4408 static const ber_sequence_t SEQUENCE_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
4409 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_report_delivery_fields_item },
4413 dissect_x411_SEQUENCE_OF_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4414 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4415 SEQUENCE_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientReportDeliveryFields);
4419 static int dissect_per_recipient_report_delivery_fields(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4420 return dissect_x411_SEQUENCE_OF_PerRecipientReportDeliveryFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_report_delivery_fields);
4424 static const ber_sequence_t ReportDeliveryArgument_set[] = {
4425 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_subject_submission_identifier },
4426 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
4427 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
4428 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
4429 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4430 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_per_recipient_report_delivery_fields },
4431 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_returned_content_impl },
4436 dissect_x411_ReportDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4437 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4438 ReportDeliveryArgument_set, hf_index, ett_x411_ReportDeliveryArgument);
4444 static const value_string x411_ReportDeliveryResult_vals[] = {
4445 { 0, "empty-result" },
4446 { 1, "extensions" },
4447 { 2, "extensions" },
4451 static const ber_choice_t ReportDeliveryResult_choice[] = {
4452 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_empty_result },
4453 { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_extensions },
4454 { 2, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_extensions },
4455 { 3, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_extensions },
4456 { 0, 0, 0, 0, NULL }
4460 dissect_x411_ReportDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4461 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4462 ReportDeliveryResult_choice, hf_index, ett_x411_ReportDeliveryResult,
4469 static const ber_sequence_t DeliveryControlArgument_set[] = {
4470 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_restrict_impl },
4471 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_operations_impl },
4472 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_maximum_content_length_impl },
4473 { BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_permissible_lowest_priority },
4474 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_content_types_impl },
4475 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_permissible_encoded_information_types },
4476 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_permissible_security_context_impl },
4477 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4482 dissect_x411_DeliveryControlArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4483 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4484 DeliveryControlArgument_set, hf_index, ett_x411_DeliveryControlArgument);
4490 static const ber_sequence_t DeliveryControlResult_set[] = {
4491 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_operations_impl },
4492 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_messages_impl },
4493 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_waiting_content_types_impl },
4494 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_waiting_encoded_information_types },
4495 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4500 dissect_x411_DeliveryControlResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4501 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4502 DeliveryControlResult_set, hf_index, ett_x411_DeliveryControlResult);
4508 static const value_string x411_RefusedArgument_vals[] = {
4510 { 1, "user-address" },
4511 { 2, "deliverable-content-types" },
4512 { 3, "deliverable-maximum-content-length" },
4513 { 4, "deliverable-encoded-information-types-constraints" },
4514 { 5, "deliverable-security-labels" },
4515 { 6, "recipient-assigned-redirections" },
4516 { 7, "restricted-delivery" },
4517 { 8, "retrieve-registrations" },
4519 { 11, "permissible-operations" },
4520 { 12, "permissible-lowest-priority" },
4521 { 13, "permissible-encoded-information-types" },
4522 { 14, "permissible-content-types" },
4523 { 15, "permissible-maximum-content-length" },
4524 { 16, "permissible-security-context" },
4530 dissect_x411_RefusedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4531 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4536 static int dissect_built_in_argument_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4537 return dissect_x411_RefusedArgument(TRUE, tvb, offset, pinfo, tree, hf_x411_built_in_argument);
4543 dissect_x411_T_refused_extension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4544 /*XXX not implemented yet */
4549 static int dissect_refused_extension(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4550 return dissect_x411_T_refused_extension(FALSE, tvb, offset, pinfo, tree, hf_x411_refused_extension);
4554 static const value_string x411_T_refused_argument_vals[] = {
4555 { 0, "built-in-argument" },
4556 { 1, "refused-extension" },
4560 static const ber_choice_t T_refused_argument_choice[] = {
4561 { 0, BER_CLASS_CON, 1, 0, dissect_built_in_argument_impl },
4562 { 1, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_refused_extension },
4563 { 0, 0, 0, 0, NULL }
4567 dissect_x411_T_refused_argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4568 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4569 T_refused_argument_choice, hf_index, ett_x411_T_refused_argument,
4574 static int dissect_refused_argument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4575 return dissect_x411_T_refused_argument(FALSE, tvb, offset, pinfo, tree, hf_x411_refused_argument);
4579 static const value_string x411_RefusalReason_vals[] = {
4580 { 0, "facility-unavailable" },
4581 { 1, "facility-not-subscribed" },
4582 { 2, "parameter-unacceptable" },
4588 dissect_x411_RefusalReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4589 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4594 static int dissect_refusal_reason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4595 return dissect_x411_RefusalReason(TRUE, tvb, offset, pinfo, tree, hf_x411_refusal_reason);
4599 static const ber_sequence_t RefusedOperation_set[] = {
4600 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_refused_argument },
4601 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_refusal_reason_impl },
4606 dissect_x411_RefusedOperation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4607 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4608 RefusedOperation_set, hf_index, ett_x411_RefusedOperation);
4616 dissect_x411_ProofOfDeliveryAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4617 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4625 dissect_x411_DeliveryControls(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4626 offset = dissect_x411_Controls(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4634 dissect_x411_UserName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4635 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4639 static int dissect_user_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4640 return dissect_x411_UserName(FALSE, tvb, offset, pinfo, tree, hf_x411_user_name);
4644 static const ber_sequence_t T_x121_sequence[] = {
4645 { BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x121_address },
4646 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tsap_id },
4651 dissect_x411_T_x121(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4652 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4653 T_x121_sequence, hf_index, ett_x411_T_x121);
4657 static int dissect_x121_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4658 return dissect_x411_T_x121(TRUE, tvb, offset, pinfo, tree, hf_x411_x121);
4664 dissect_x411_PSAPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4665 offset = dissect_x509sat_PresentationAddress(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4669 static int dissect_presentation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4670 return dissect_x411_PSAPAddress(TRUE, tvb, offset, pinfo, tree, hf_x411_presentation);
4674 static const value_string x411_UserAddress_vals[] = {
4676 { 1, "presentation" },
4680 static const ber_choice_t UserAddress_choice[] = {
4681 { 0, BER_CLASS_CON, 0, 0, dissect_x121_impl },
4682 { 1, BER_CLASS_CON, 1, 0, dissect_presentation_impl },
4683 { 0, 0, 0, 0, NULL }
4687 dissect_x411_UserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4688 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4689 UserAddress_choice, hf_index, ett_x411_UserAddress,
4694 static int dissect_user_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4695 return dissect_x411_UserAddress(TRUE, tvb, offset, pinfo, tree, hf_x411_user_address);
4699 static const ber_sequence_t SET_OF_Priority_set_of[1] = {
4700 { BER_CLASS_APP, 7, BER_FLAGS_NOOWNTAG, dissect_priority_item },
4704 dissect_x411_SET_OF_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4705 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
4706 SET_OF_Priority_set_of, hf_index, ett_x411_SET_OF_Priority);
4710 static int dissect_class_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4711 return dissect_x411_SET_OF_Priority(TRUE, tvb, offset, pinfo, tree, hf_x411_class_priority);
4715 static const value_string x411_T_objects_vals[] = {
4724 dissect_x411_T_objects(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4725 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4730 static int dissect_objects_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4731 return dissect_x411_T_objects(TRUE, tvb, offset, pinfo, tree, hf_x411_objects);
4735 static const asn_namedbit T_source_type_bits[] = {
4736 { 0, &hf_x411_T_source_type_originated_by, -1, -1, "originated-by", NULL },
4737 { 1, &hf_x411_T_source_type_redirected_by, -1, -1, "redirected-by", NULL },
4738 { 2, &hf_x411_T_source_type_dl_expanded_by, -1, -1, "dl-expanded-by", NULL },
4739 { 0, NULL, 0, 0, NULL, NULL }
4743 dissect_x411_T_source_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4744 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
4745 T_source_type_bits, hf_index, ett_x411_T_source_type,
4750 static int dissect_source_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4751 return dissect_x411_T_source_type(FALSE, tvb, offset, pinfo, tree, hf_x411_source_type);
4755 static const value_string x411_ExactOrPattern_vals[] = {
4756 { 0, "exact-match" },
4757 { 1, "pattern-match" },
4761 static const ber_choice_t ExactOrPattern_choice[] = {
4762 { 0, BER_CLASS_CON, 0, 0, dissect_exact_match_impl },
4763 { 1, BER_CLASS_CON, 1, 0, dissect_pattern_match_impl },
4764 { 0, 0, 0, 0, NULL }
4768 dissect_x411_ExactOrPattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4769 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4770 ExactOrPattern_choice, hf_index, ett_x411_ExactOrPattern,
4775 static int dissect_source_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4776 return dissect_x411_ExactOrPattern(FALSE, tvb, offset, pinfo, tree, hf_x411_source_name);
4780 static const ber_sequence_t Restriction_set[] = {
4781 { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_permitted },
4782 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_source_type },
4783 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_source_name },
4788 dissect_x411_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4789 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4790 Restriction_set, hf_index, ett_x411_Restriction);
4794 static int dissect_applies_only_to_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4795 return dissect_x411_Restriction(FALSE, tvb, offset, pinfo, tree, hf_x411_applies_only_to_item);
4797 static int dissect_RestrictedDelivery_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4798 return dissect_x411_Restriction(FALSE, tvb, offset, pinfo, tree, hf_x411_RestrictedDelivery_item);
4802 static const ber_sequence_t SEQUENCE_OF_Restriction_sequence_of[1] = {
4803 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_applies_only_to_item },
4807 dissect_x411_SEQUENCE_OF_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4808 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4809 SEQUENCE_OF_Restriction_sequence_of, hf_index, ett_x411_SEQUENCE_OF_Restriction);
4813 static int dissect_applies_only_to_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4814 return dissect_x411_SEQUENCE_OF_Restriction(TRUE, tvb, offset, pinfo, tree, hf_x411_applies_only_to);
4818 static const ber_sequence_t MessageClass_set[] = {
4819 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_types_impl },
4820 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximum_content_length_impl },
4821 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encoded_information_types_constraints_impl },
4822 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_security_labels_impl },
4823 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_class_priority_impl },
4824 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_objects_impl },
4825 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_applies_only_to_impl },
4826 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4831 dissect_x411_MessageClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4832 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4833 MessageClass_set, hf_index, ett_x411_MessageClass);
4841 dissect_x411_DeliverableClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4842 offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4846 static int dissect_deliverable_class_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4847 return dissect_x411_DeliverableClass(FALSE, tvb, offset, pinfo, tree, hf_x411_deliverable_class_item);
4851 static const ber_sequence_t SET_OF_DeliverableClass_set_of[1] = {
4852 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_deliverable_class_item },
4856 dissect_x411_SET_OF_DeliverableClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4857 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
4858 SET_OF_DeliverableClass_set_of, hf_index, ett_x411_SET_OF_DeliverableClass);
4862 static int dissect_deliverable_class(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4863 return dissect_x411_SET_OF_DeliverableClass(FALSE, tvb, offset, pinfo, tree, hf_x411_deliverable_class);
4869 dissect_x411_DefaultDeliveryControls(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4870 offset = dissect_x411_Controls(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4874 static int dissect_default_delivery_controls(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4875 return dissect_x411_DefaultDeliveryControls(FALSE, tvb, offset, pinfo, tree, hf_x411_default_delivery_controls);
4881 dissect_x411_RedirectionClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4882 offset = dissect_x411_MessageClass(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4886 static int dissect_redirection_classes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4887 return dissect_x411_RedirectionClass(FALSE, tvb, offset, pinfo, tree, hf_x411_redirection_classes_item);
4891 static const ber_sequence_t SET_OF_RedirectionClass_set_of[1] = {
4892 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_redirection_classes_item },
4896 dissect_x411_SET_OF_RedirectionClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4897 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
4898 SET_OF_RedirectionClass_set_of, hf_index, ett_x411_SET_OF_RedirectionClass);
4902 static int dissect_redirection_classes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4903 return dissect_x411_SET_OF_RedirectionClass(TRUE, tvb, offset, pinfo, tree, hf_x411_redirection_classes);
4909 dissect_x411_RecipientAssignedAlternateRecipient(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4910 offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4914 static int dissect_recipient_assigned_alternate_recipient_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4915 return dissect_x411_RecipientAssignedAlternateRecipient(TRUE, tvb, offset, pinfo, tree, hf_x411_recipient_assigned_alternate_recipient);
4919 static const ber_sequence_t RecipientRedirection_set[] = {
4920 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirection_classes_impl },
4921 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_recipient_assigned_alternate_recipient_impl },
4926 dissect_x411_RecipientRedirection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4927 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4928 RecipientRedirection_set, hf_index, ett_x411_RecipientRedirection);
4932 static int dissect_Redirections_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4933 return dissect_x411_RecipientRedirection(FALSE, tvb, offset, pinfo, tree, hf_x411_Redirections_item);
4937 static const ber_sequence_t Redirections_sequence_of[1] = {
4938 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_Redirections_item },
4942 dissect_x411_Redirections(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4943 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4944 Redirections_sequence_of, hf_index, ett_x411_Redirections);
4948 static int dissect_redirections_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4949 return dissect_x411_Redirections(TRUE, tvb, offset, pinfo, tree, hf_x411_redirections);
4953 static const ber_sequence_t RestrictedDelivery_sequence_of[1] = {
4954 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_RestrictedDelivery_item },
4958 dissect_x411_RestrictedDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4959 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4960 RestrictedDelivery_sequence_of, hf_index, ett_x411_RestrictedDelivery);
4964 static int dissect_restricted_delivery_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4965 return dissect_x411_RestrictedDelivery(TRUE, tvb, offset, pinfo, tree, hf_x411_restricted_delivery);
4969 static const asn_namedbit T_standard_parameters_bits[] = {
4970 { 0, &hf_x411_T_standard_parameters_user_name, -1, -1, "user-name", NULL },
4971 { 1, &hf_x411_T_standard_parameters_user_address, -1, -1, "user-address", NULL },
4972 { 2, &hf_x411_T_standard_parameters_deliverable_class, -1, -1, "deliverable-class", NULL },
4973 { 3, &hf_x411_T_standard_parameters_default_delivery_controls, -1, -1, "default-delivery-controls", NULL },
4974 { 4, &hf_x411_T_standard_parameters_redirections, -1, -1, "redirections", NULL },
4975 { 5, &hf_x411_T_standard_parameters_restricted_delivery, -1, -1, "restricted-delivery", NULL },
4976 { 0, NULL, 0, 0, NULL, NULL }
4980 dissect_x411_T_standard_parameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4981 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
4982 T_standard_parameters_bits, hf_index, ett_x411_T_standard_parameters,
4987 static int dissect_standard_parameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4988 return dissect_x411_T_standard_parameters(TRUE, tvb, offset, pinfo, tree, hf_x411_standard_parameters);
4994 dissect_x411_T_extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4995 /*XXX not implemented yet */
5000 static int dissect_type_extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5001 return dissect_x411_T_extensions_item(FALSE, tvb, offset, pinfo, tree, hf_x411_type_extensions_item);
5005 static const ber_sequence_t T_extensions_set_of[1] = {
5006 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_type_extensions_item },
5010 dissect_x411_T_extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5011 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
5012 T_extensions_set_of, hf_index, ett_x411_T_extensions);
5016 static int dissect_type_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5017 return dissect_x411_T_extensions(TRUE, tvb, offset, pinfo, tree, hf_x411_type_extensions);
5021 static const ber_sequence_t RegistrationTypes_sequence[] = {
5022 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_standard_parameters_impl },
5023 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_type_extensions_impl },
5028 dissect_x411_RegistrationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5029 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5030 RegistrationTypes_sequence, hf_index, ett_x411_RegistrationTypes);
5034 static int dissect_retrieve_registrations_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5035 return dissect_x411_RegistrationTypes(TRUE, tvb, offset, pinfo, tree, hf_x411_retrieve_registrations);
5039 static const ber_sequence_t RegisterArgument_set[] = {
5040 { BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_user_name },
5041 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_user_address_impl },
5042 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_deliverable_class },
5043 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_default_delivery_controls },
5044 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirections_impl },
5045 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_restricted_delivery_impl },
5046 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_retrieve_registrations_impl },
5047 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
5052 dissect_x411_RegisterArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5053 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5054 RegisterArgument_set, hf_index, ett_x411_RegisterArgument);
5058 static int dissect_registered_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5059 return dissect_x411_RegisterArgument(TRUE, tvb, offset, pinfo, tree, hf_x411_registered_information);
5063 static const ber_sequence_t T_non_empty_result_set[] = {
5064 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_registered_information_impl },
5065 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
5070 dissect_x411_T_non_empty_result(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5071 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5072 T_non_empty_result_set, hf_index, ett_x411_T_non_empty_result);
5076 static int dissect_non_empty_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5077 return dissect_x411_T_non_empty_result(FALSE, tvb, offset, pinfo, tree, hf_x411_non_empty_result);
5081 static const value_string x411_RegisterResult_vals[] = {
5082 { 0, "empty-result" },
5083 { 1, "non-empty-result" },
5087 static const ber_choice_t RegisterResult_choice[] = {
5088 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_empty_result },
5089 { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_non_empty_result },
5090 { 0, 0, 0, 0, NULL }
5094 dissect_x411_RegisterResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5095 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5096 RegisterResult_choice, hf_index, ett_x411_RegisterResult,
5103 static const ber_sequence_t ChangeCredentialsArgument_set[] = {
5104 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_old_credentials_impl },
5105 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_new_credentials_impl },
5110 dissect_x411_ChangeCredentialsArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5111 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5112 ChangeCredentialsArgument_set, hf_index, ett_x411_ChangeCredentialsArgument);
5118 static const ber_sequence_t MessageDeliveryEnvelope_sequence[] = {
5119 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_message_delivery_identifier },
5120 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_message_delivery_time },
5121 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_other_fields },
5126 dissect_x411_MessageDeliveryEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5127 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5128 MessageDeliveryEnvelope_sequence, hf_index, ett_x411_MessageDeliveryEnvelope);
5134 static const ber_sequence_t ReportDeliveryEnvelope_set[] = {
5135 { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_subject_submission_identifier },
5136 { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
5137 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
5138 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
5139 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
5140 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_per_recipient_report_delivery_fields },
5145 dissect_x411_ReportDeliveryEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5146 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5147 ReportDeliveryEnvelope_set, hf_index, ett_x411_ReportDeliveryEnvelope);
5153 static const value_string x411_RecipientReassignmentProhibited_vals[] = {
5154 { 0, "recipient-reassignment-allowed" },
5155 { 1, "recipient-reassignment-prohibited" },
5161 dissect_x411_RecipientReassignmentProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5162 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5171 dissect_x411_MTSOriginatorRequestedAlternateRecipient(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5172 offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5178 static const value_string x411_DLExpansionProhibited_vals[] = {
5179 { 0, "dl-expansion-allowed" },
5180 { 1, "dl-expansion-prohibited" },
5186 dissect_x411_DLExpansionProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5187 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5194 static const value_string x411_ConversionWithLossProhibited_vals[] = {
5195 { 0, "conversion-with-loss-allowed" },
5196 { 1, "conversion-with-loss-prohibited" },
5202 dissect_x411_ConversionWithLossProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5203 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5212 dissect_x411_LatestDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5213 offset = dissect_x411_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5219 static const value_string x411_RequestedDeliveryMethod_item_vals[] = {
5220 { 0, "any-delivery-method" },
5221 { 1, "mhs-delivery" },
5222 { 2, "physical-delivery" },
5223 { 3, "telex-delivery" },
5224 { 4, "teletex-delivery" },
5225 { 5, "g3-facsimile-delivery" },
5226 { 6, "g4-facsimile-delivery" },
5227 { 7, "ia5-terminal-delivery" },
5228 { 8, "videotex-delivery" },
5229 { 9, "telephone-delivery" },
5235 dissect_x411_RequestedDeliveryMethod_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5236 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5241 static int dissect_RequestedDeliveryMethod_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5242 return dissect_x411_RequestedDeliveryMethod_item(FALSE, tvb, offset, pinfo, tree, hf_x411_RequestedDeliveryMethod_item);
5246 static const ber_sequence_t RequestedDeliveryMethod_sequence_of[1] = {
5247 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_RequestedDeliveryMethod_item },
5251 dissect_x411_RequestedDeliveryMethod(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5252 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5253 RequestedDeliveryMethod_sequence_of, hf_index, ett_x411_RequestedDeliveryMethod);
5259 static const value_string x411_PhysicalForwardingProhibited_vals[] = {
5260 { 0, "physical-forwarding-allowed" },
5261 { 1, "physical-forwarding-prohibited" },
5267 dissect_x411_PhysicalForwardingProhibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5268 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5275 static const value_string x411_PhysicalForwardingAddressRequest_vals[] = {
5276 { 0, "physical-forwarding-address-not-requested" },
5277 { 1, "physical-forwarding-address-requested" },
5283 dissect_x411_PhysicalForwardingAddressRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5284 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5291 static const asn_namedbit PhysicalDeliveryModes_bits[] = {
5292 { 0, &hf_x411_PhysicalDeliveryModes_ordinary_mail, -1, -1, "ordinary-mail", NULL },
5293 { 1, &hf_x411_PhysicalDeliveryModes_special_delivery, -1, -1, "special-delivery", NULL },
5294 { 2, &hf_x411_PhysicalDeliveryModes_express_mail, -1, -1, "express-mail", NULL },
5295 { 3, &hf_x411_PhysicalDeliveryModes_counter_collection, -1, -1, "counter-collection", NULL },
5296 { 4, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice, -1, -1, "counter-collection-with-telephone-advice", NULL },
5297 { 5, &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice, -1, -1, "counter-collection-with-telex-advice", NULL },
5298 { 6, &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice, -1, -1, "counter-collection-with-teletex-advice", NULL },
5299 { 7, &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery, -1, -1, "bureau-fax-delivery", NULL },
5300 { 0, NULL, 0, 0, NULL, NULL }
5304 dissect_x411_PhysicalDeliveryModes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5305 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
5306 PhysicalDeliveryModes_bits, hf_index, ett_x411_PhysicalDeliveryModes,
5313 static const value_string x411_RegisteredMailType_vals[] = {
5314 { 0, "non-registered-mail" },
5315 { 1, "registered-mail" },
5316 { 2, "registered-mail-to-addressee-in-person" },
5322 dissect_x411_RegisteredMailType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5323 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5332 dissect_x411_RecipientNumberForAdvice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5333 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5334 pinfo, tree, tvb, offset, hf_index,
5343 dissect_x411_PhysicalRenditionAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5344 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5350 static const ber_sequence_t ORAddress_sequence[] = {
5351 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_built_in_standard_attributes },
5352 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_built_in_domain_defined_attributes },
5353 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extension_attributes },
5358 dissect_x411_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5360 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
5361 doing_address = TRUE;
5362 address_item = NULL;
5364 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5365 ORAddress_sequence, hf_index, ett_x411_ORAddress);
5368 if(*oraddress && address_item)
5369 proto_item_append_text(address_item, " %s/", oraddress);
5371 doing_address = FALSE;
5380 dissect_x411_OriginatorReturnAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5381 offset = dissect_x411_ORAddress(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5387 static const value_string x411_PhysicalDeliveryReportRequest_vals[] = {
5388 { 0, "return-of-undeliverable-mail-by-PDS" },
5389 { 1, "return-of-notification-by-PDS" },
5390 { 2, "return-of-notification-by-MHS" },
5391 { 3, "return-of-notification-by-MHS-and-PDS" },
5397 dissect_x411_PhysicalDeliveryReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5398 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5407 dissect_x411_OriginatorCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5408 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5416 dissect_x411_ContentConfidentialityAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5417 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5425 dissect_x411_ContentIntegrityAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5426 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5434 dissect_x411_MessageOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5435 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5443 dissect_x411_MessageSecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5444 offset = dissect_x411_SecurityLabel(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5450 static const value_string x411_ProofOfSubmissionRequest_vals[] = {
5451 { 0, "proof-of-submission-not-requested" },
5452 { 1, "proof-of-submission-requested" },
5458 dissect_x411_ProofOfSubmissionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5459 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5466 static const value_string x411_ProofOfDeliveryRequest_vals[] = {
5467 { 0, "proof-of-delivery-not-requested" },
5468 { 1, "proof-of-delivery-requested" },
5474 dissect_x411_ProofOfDeliveryRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5475 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5482 static const value_string x411_ContentCorrelator_vals[] = {
5488 static const ber_choice_t ContentCorrelator_choice[] = {
5489 { 0, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_ia5text },
5490 { 1, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_octets },
5491 { 0, 0, 0, 0, NULL }
5495 dissect_x411_ContentCorrelator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5496 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5497 ContentCorrelator_choice, hf_index, ett_x411_ContentCorrelator,
5506 dissect_x411_ProbeOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5507 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5513 static const ber_sequence_t IntendedRecipientName_sequence[] = {
5514 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_intended_recipient },
5515 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_redirection_time },
5520 dissect_x411_IntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5521 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5522 IntendedRecipientName_sequence, hf_index, ett_x411_IntendedRecipientName);
5526 static int dissect_intended_recipient_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5527 return dissect_x411_IntendedRecipientName(FALSE, tvb, offset, pinfo, tree, hf_x411_intended_recipient_name);
5531 static const value_string x411_RedirectionReason_vals[] = {
5532 { 0, "recipient-assigned-alternate-recipient" },
5533 { 1, "originator-requested-alternate-recipient" },
5534 { 2, "recipient-MD-assigned-alternate-recipient" },
5535 { 3, "directory-look-up" },
5542 dissect_x411_RedirectionReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5543 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5548 static int dissect_redirection_reason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5549 return dissect_x411_RedirectionReason(FALSE, tvb, offset, pinfo, tree, hf_x411_redirection_reason);
5553 static const ber_sequence_t Redirection_sequence[] = {
5554 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_intended_recipient_name },
5555 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_redirection_reason },
5560 dissect_x411_Redirection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5561 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5562 Redirection_sequence, hf_index, ett_x411_Redirection);
5566 static int dissect_RedirectionHistory_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5567 return dissect_x411_Redirection(FALSE, tvb, offset, pinfo, tree, hf_x411_RedirectionHistory_item);
5571 static const ber_sequence_t RedirectionHistory_sequence_of[1] = {
5572 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RedirectionHistory_item },
5576 dissect_x411_RedirectionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5577 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5578 RedirectionHistory_sequence_of, hf_index, ett_x411_RedirectionHistory);
5584 static const ber_sequence_t DLExpansion_sequence[] = {
5585 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_dl },
5586 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dl_expansion_time },
5591 dissect_x411_DLExpansion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5592 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5593 DLExpansion_sequence, hf_index, ett_x411_DLExpansion);
5597 static int dissect_DLExpansionHistory_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5598 return dissect_x411_DLExpansion(FALSE, tvb, offset, pinfo, tree, hf_x411_DLExpansionHistory_item);
5602 static const ber_sequence_t DLExpansionHistory_sequence_of[1] = {
5603 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DLExpansionHistory_item },
5607 dissect_x411_DLExpansionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5608 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5609 DLExpansionHistory_sequence_of, hf_index, ett_x411_DLExpansionHistory);
5617 dissect_x411_PhysicalForwardingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5618 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5624 static const ber_sequence_t OriginatorAndDLExpansion_sequence[] = {
5625 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_originator_or_dl_name },
5626 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_origination_or_expansion_time },
5631 dissect_x411_OriginatorAndDLExpansion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5632 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5633 OriginatorAndDLExpansion_sequence, hf_index, ett_x411_OriginatorAndDLExpansion);
5637 static int dissect_OriginatorAndDLExpansionHistory_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5638 return dissect_x411_OriginatorAndDLExpansion(FALSE, tvb, offset, pinfo, tree, hf_x411_OriginatorAndDLExpansionHistory_item);
5642 static const ber_sequence_t OriginatorAndDLExpansionHistory_sequence_of[1] = {
5643 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_OriginatorAndDLExpansionHistory_item },
5647 dissect_x411_OriginatorAndDLExpansionHistory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5648 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5649 OriginatorAndDLExpansionHistory_sequence_of, hf_index, ett_x411_OriginatorAndDLExpansionHistory);
5657 dissect_x411_ReportingDLName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5658 offset = dissect_x411_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5666 dissect_x411_ReportingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5667 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5675 dissect_x411_ReportOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5676 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5682 static const ber_sequence_t PerRecipientDeliveryReportFields_sequence[] = {
5683 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_message_delivery_time },
5684 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_type_of_MTS_user },
5685 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_recipient_certificate_impl },
5690 dissect_x411_PerRecipientDeliveryReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5691 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5692 PerRecipientDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientDeliveryReportFields);
5696 static int dissect_report_type_delivery_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5697 return dissect_x411_PerRecipientDeliveryReportFields(TRUE, tvb, offset, pinfo, tree, hf_x411_report_type_delivery);
5701 static const ber_sequence_t PerRecipientNonDeliveryReportFields_sequence[] = {
5702 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_non_delivery_reason_code },
5703 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_non_delivery_diagnostic_code },
5708 dissect_x411_PerRecipientNonDeliveryReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5709 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5710 PerRecipientNonDeliveryReportFields_sequence, hf_index, ett_x411_PerRecipientNonDeliveryReportFields);
5714 static int dissect_non_delivery_report_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5715 return dissect_x411_PerRecipientNonDeliveryReportFields(TRUE, tvb, offset, pinfo, tree, hf_x411_non_delivery_report);
5719 static const value_string x411_T_report_type_vals[] = {
5721 { 1, "non-delivery" },
5725 static const ber_choice_t T_report_type_choice[] = {
5726 { 0, BER_CLASS_CON, 0, 0, dissect_report_type_delivery_impl },
5727 { 1, BER_CLASS_CON, 1, 0, dissect_non_delivery_report_impl },
5728 { 0, 0, 0, 0, NULL }
5732 dissect_x411_T_report_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5733 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5734 T_report_type_choice, hf_index, ett_x411_T_report_type,
5739 static int dissect_report_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5740 return dissect_x411_T_report_type(FALSE, tvb, offset, pinfo, tree, hf_x411_report_type);
5744 static const ber_sequence_t PerRecipientReportFields_sequence[] = {
5745 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_actual_recipient_name },
5746 { BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_originally_intended_recipient_name },
5747 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_report_type },
5752 dissect_x411_PerRecipientReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5753 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5754 PerRecipientReportFields_sequence, hf_index, ett_x411_PerRecipientReportFields);
5762 dissect_x411_OriginatingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5763 offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5771 dissect_x411_ProofOfSubmissionAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5772 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5778 static const ber_sequence_t ReportingMTAName_sequence[] = {
5779 { BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_domain },
5780 { BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_mta_name },
5781 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mta_directory_name_impl },
5786 dissect_x411_ReportingMTAName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5787 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5788 ReportingMTAName_sequence, hf_index, ett_x411_ReportingMTAName);
5794 static const value_string x411_ExtendedCertificate_vals[] = {
5795 { 0, "directory-entry" },
5796 { 1, "certificate" },
5800 static const ber_choice_t ExtendedCertificate_choice[] = {
5801 { 0, BER_CLASS_CON, 0, 0, dissect_directory_entry_impl },
5802 { 1, BER_CLASS_CON, 1, 0, dissect_certificate_impl },
5803 { 0, 0, 0, 0, NULL }
5807 dissect_x411_ExtendedCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5808 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5809 ExtendedCertificate_choice, hf_index, ett_x411_ExtendedCertificate,
5814 static int dissect_ExtendedCertificates_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5815 return dissect_x411_ExtendedCertificate(FALSE, tvb, offset, pinfo, tree, hf_x411_ExtendedCertificates_item);
5819 static const ber_sequence_t ExtendedCertificates_set_of[1] = {
5820 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ExtendedCertificates_item },
5824 dissect_x411_ExtendedCertificates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5825 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
5826 ExtendedCertificates_set_of, hf_index, ett_x411_ExtendedCertificates);
5832 static const ber_sequence_t DLExemptedRecipients_set_of[1] = {
5833 { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_DLExemptedRecipients_item },
5837 dissect_x411_DLExemptedRecipients(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5838 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
5839 DLExemptedRecipients_set_of, hf_index, ett_x411_DLExemptedRecipients);
5845 static const ber_sequence_t CertificateSelectors_set[] = {
5846 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryption_recipient_impl },
5847 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryption_originator_impl },
5848 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_integrity_check_impl },
5849 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_token_signature_impl },
5850 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_message_origin_authentication_impl },
5855 dissect_x411_CertificateSelectors(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5856 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5857 CertificateSelectors_set, hf_index, ett_x411_CertificateSelectors);
5865 dissect_x411_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5866 tvbuff_t *string = NULL;
5868 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
5869 pinfo, tree, tvb, offset, hf_index,
5873 if(doing_address && string) {
5874 g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
5875 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
5887 dissect_x411_TeletexCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5888 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5889 pinfo, tree, tvb, offset, hf_index,
5898 dissect_x411_BMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5899 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
5900 pinfo, tree, tvb, offset, hf_index,
5905 static int dissect_two_octets(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5906 return dissect_x411_BMPString(FALSE, tvb, offset, pinfo, tree, hf_x411_two_octets);
5912 dissect_x411_UniversalString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5913 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UniversalString,
5914 pinfo, tree, tvb, offset, hf_index,
5919 static int dissect_four_octets(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5920 return dissect_x411_UniversalString(FALSE, tvb, offset, pinfo, tree, hf_x411_four_octets);
5924 static const value_string x411_T_character_encoding_vals[] = {
5925 { 0, "two-octets" },
5926 { 1, "four-octets" },
5930 static const ber_choice_t T_character_encoding_choice[] = {
5931 { 0, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_two_octets },
5932 { 1, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_four_octets },
5933 { 0, 0, 0, 0, NULL }
5937 dissect_x411_T_character_encoding(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5938 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5939 T_character_encoding_choice, hf_index, ett_x411_T_character_encoding,
5944 static int dissect_character_encoding(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5945 return dissect_x411_T_character_encoding(FALSE, tvb, offset, pinfo, tree, hf_x411_character_encoding);
5949 static const ber_sequence_t UniversalOrBMPString_set[] = {
5950 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_character_encoding },
5951 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_iso_639_language_code },
5956 dissect_x411_UniversalOrBMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5957 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5958 UniversalOrBMPString_set, hf_index, ett_x411_UniversalOrBMPString);
5962 static int dissect_universal_surname_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5963 return dissect_x411_UniversalOrBMPString(TRUE, tvb, offset, pinfo, tree, hf_x411_universal_surname);
5965 static int dissect_universal_given_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5966 return dissect_x411_UniversalOrBMPString(TRUE, tvb, offset, pinfo, tree, hf_x411_universal_given_name);
5968 static int dissect_universal_initials_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5969 return dissect_x411_UniversalOrBMPString(TRUE, tvb, offset, pinfo, tree, hf_x411_universal_initials);
5971 static int dissect_universal_generation_qualifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5972 return dissect_x411_UniversalOrBMPString(TRUE, tvb, offset, pinfo, tree, hf_x411_universal_generation_qualifier);
5974 static int dissect_universal_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5975 return dissect_x411_UniversalOrBMPString(FALSE, tvb, offset, pinfo, tree, hf_x411_universal_type);
5977 static int dissect_universal_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5978 return dissect_x411_UniversalOrBMPString(FALSE, tvb, offset, pinfo, tree, hf_x411_universal_value);
5984 dissect_x411_UniversalCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5985 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5993 dissect_x411_TeletexOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5994 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
5995 pinfo, tree, tvb, offset, hf_index,
6004 dissect_x411_UniversalOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6005 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6011 static const ber_sequence_t TeletexPersonalName_set[] = {
6012 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_teletex_surname_impl },
6013 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_given_name_impl },
6014 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_initials_impl },
6015 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_generation_qualifier_impl },
6020 dissect_x411_TeletexPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6021 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
6022 TeletexPersonalName_set, hf_index, ett_x411_TeletexPersonalName);
6028 static const ber_sequence_t UniversalPersonalName_set[] = {
6029 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_universal_surname_impl },
6030 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_universal_given_name_impl },
6031 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_universal_initials_impl },
6032 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_universal_generation_qualifier_impl },
6037 dissect_x411_UniversalPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6038 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
6039 UniversalPersonalName_set, hf_index, ett_x411_UniversalPersonalName);
6047 dissect_x411_TeletexOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6048 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
6049 pinfo, tree, tvb, offset, hf_index,
6054 static int dissect_TeletexOrganizationalUnitNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6055 return dissect_x411_TeletexOrganizationalUnitName(FALSE, tvb, offset, pinfo, tree, hf_x411_TeletexOrganizationalUnitNames_item);
6059 static const ber_sequence_t TeletexOrganizationalUnitNames_sequence_of[1] = {
6060 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_TeletexOrganizationalUnitNames_item },
6064 dissect_x411_TeletexOrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6065 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6066 TeletexOrganizationalUnitNames_sequence_of, hf_index, ett_x411_TeletexOrganizationalUnitNames);
6074 dissect_x411_UniversalOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6075 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6079 static int dissect_UniversalOrganizationalUnitNames_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6080 return dissect_x411_UniversalOrganizationalUnitName(FALSE, tvb, offset, pinfo, tree, hf_x411_UniversalOrganizationalUnitNames_item);
6084 static const ber_sequence_t UniversalOrganizationalUnitNames_sequence_of[1] = {
6085 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_UniversalOrganizationalUnitNames_item },
6089 dissect_x411_UniversalOrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6090 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6091 UniversalOrganizationalUnitNames_sequence_of, hf_index, ett_x411_UniversalOrganizationalUnitNames);
6099 dissect_x411_PDSName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6100 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
6101 pinfo, tree, tvb, offset, hf_index,
6108 static const value_string x411_PhysicalDeliveryCountryName_vals[] = {
6109 { 0, "x121-dcc-code" },
6110 { 1, "iso-3166-alpha2-code" },
6114 static const ber_choice_t PhysicalDeliveryCountryName_choice[] = {
6115 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_x121_dcc_code },
6116 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_iso_3166_alpha2_code },
6117 { 0, 0, 0, 0, NULL }
6121 dissect_x411_PhysicalDeliveryCountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6122 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6123 PhysicalDeliveryCountryName_choice, hf_index, ett_x411_PhysicalDeliveryCountryName,
6130 static const value_string x411_PostalCode_vals[] = {
6131 { 0, "numeric-code" },
6132 { 1, "printable-code" },
6136 static const ber_choice_t PostalCode_choice[] = {
6137 { 0, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_numeric_code },
6138 { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable_code },
6139 { 0, 0, 0, 0, NULL }
6143 dissect_x411_PostalCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6144 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6145 PostalCode_choice, hf_index, ett_x411_PostalCode,
6152 static const ber_sequence_t PDSParameter_set[] = {
6153 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_printable_string },
6154 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_teletex_string },
6159 dissect_x411_PDSParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6160 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
6161 PDSParameter_set, hf_index, ett_x411_PDSParameter);
6169 dissect_x411_PhysicalDeliveryOfficeName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6170 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6178 dissect_x411_UniversalPDSParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6179 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6187 dissect_x411_UniversalPhysicalDeliveryOfficeName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6188 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6196 dissect_x411_PhysicalDeliveryOfficeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6197 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6205 dissect_x411_UniversalPhysicalDeliveryOfficeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6206 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6214 dissect_x411_ExtensionORAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6215 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6223 dissect_x411_UniversalExtensionORAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6224 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6232 dissect_x411_PhysicalDeliveryPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6233 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6241 dissect_x411_UniversalPhysicalDeliveryPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6242 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6250 dissect_x411_PhysicalDeliveryOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6251 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6259 dissect_x411_UniversalPhysicalDeliveryOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6260 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6268 dissect_x411_ExtensionPhysicalDeliveryAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6269 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6277 dissect_x411_UniversalExtensionPhysicalDeliveryAddressComponents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6278 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6284 static const ber_sequence_t T_printable_address_sequence_of[1] = {
6285 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printable_address_item },
6289 dissect_x411_T_printable_address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6290 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6291 T_printable_address_sequence_of, hf_index, ett_x411_T_printable_address);
6295 static int dissect_printable_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6296 return dissect_x411_T_printable_address(FALSE, tvb, offset, pinfo, tree, hf_x411_printable_address);
6300 static const ber_sequence_t UnformattedPostalAddress_set[] = {
6301 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_printable_address },
6302 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_teletex_string },
6307 dissect_x411_UnformattedPostalAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6308 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
6309 UnformattedPostalAddress_set, hf_index, ett_x411_UnformattedPostalAddress);
6317 dissect_x411_UniversalUnformattedPostalAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6318 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6326 dissect_x411_StreetAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6327 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6335 dissect_x411_UniversalStreetAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6336 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6344 dissect_x411_PostOfficeBoxAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6345 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6353 dissect_x411_UniversalPostOfficeBoxAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6354 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6362 dissect_x411_UniversalPosteRestanteAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6363 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6371 dissect_x411_UniquePostalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6372 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6380 dissect_x411_UniversalUniquePostalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6381 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6389 dissect_x411_LocalPostalAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6390 offset = dissect_x411_PDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6398 dissect_x411_UniversalLocalPostalAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6399 offset = dissect_x411_UniversalPDSParameter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6405 static const ber_sequence_t T_e163_4_address_sequence[] = {
6406 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_number_impl },
6407 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sub_address_impl },
6412 dissect_x411_T_e163_4_address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6413 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6414 T_e163_4_address_sequence, hf_index, ett_x411_T_e163_4_address);
6418 static int dissect_e163_4_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6419 return dissect_x411_T_e163_4_address(FALSE, tvb, offset, pinfo, tree, hf_x411_e163_4_address);
6423 static const value_string x411_ExtendedNetworkAddress_vals[] = {
6424 { 0, "e163-4-address" },
6425 { 1, "psap-address" },
6429 static const ber_choice_t ExtendedNetworkAddress_choice[] = {
6430 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_e163_4_address },
6431 { 1, BER_CLASS_CON, 0, 0, dissect_psap_address_impl },
6432 { 0, 0, 0, 0, NULL }
6436 dissect_x411_ExtendedNetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6437 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6438 ExtendedNetworkAddress_choice, hf_index, ett_x411_ExtendedNetworkAddress,
6445 static const value_string x411_TerminalType_vals[] = {
6448 { 5, "g3-facsimile" },
6449 { 6, "g4-facsimile" },
6450 { 7, "ia5-terminal" },
6457 dissect_x411_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6458 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6465 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
6466 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_type },
6467 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_teletex_value },
6472 dissect_x411_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6473 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6474 TeletexDomainDefinedAttribute_sequence, hf_index, ett_x411_TeletexDomainDefinedAttribute);
6478 static int dissect_TeletexDomainDefinedAttributes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6479 return dissect_x411_TeletexDomainDefinedAttribute(FALSE, tvb, offset, pinfo, tree, hf_x411_TeletexDomainDefinedAttributes_item);
6483 static const ber_sequence_t TeletexDomainDefinedAttributes_sequence_of[1] = {
6484 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TeletexDomainDefinedAttributes_item },
6488 dissect_x411_TeletexDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6489 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6490 TeletexDomainDefinedAttributes_sequence_of, hf_index, ett_x411_TeletexDomainDefinedAttributes);
6496 static const ber_sequence_t UniversalDomainDefinedAttribute_sequence[] = {
6497 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_universal_type },
6498 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_universal_value },
6503 dissect_x411_UniversalDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6504 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6505 UniversalDomainDefinedAttribute_sequence, hf_index, ett_x411_UniversalDomainDefinedAttribute);
6509 static int dissect_UniversalDomainDefinedAttributes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6510 return dissect_x411_UniversalDomainDefinedAttribute(FALSE, tvb, offset, pinfo, tree, hf_x411_UniversalDomainDefinedAttributes_item);
6514 static const ber_sequence_t UniversalDomainDefinedAttributes_sequence_of[1] = {
6515 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_UniversalDomainDefinedAttributes_item },
6519 dissect_x411_UniversalDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6520 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6521 UniversalDomainDefinedAttributes_sequence_of, hf_index, ett_x411_UniversalDomainDefinedAttributes);
6527 static const ber_sequence_t NonBasicParameters_set[] = {
6528 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_g3_facsimile_impl },
6529 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_impl },
6534 dissect_x411_NonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6535 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
6536 NonBasicParameters_set, hf_index, ett_x411_NonBasicParameters);
6543 static void dissect_MTABindArgument_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6544 dissect_x411_MTABindArgument(FALSE, tvb, 0, pinfo, tree, hf_x411_MTABindArgument_PDU);
6546 static void dissect_MTABindResult_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6547 dissect_x411_MTABindResult(FALSE, tvb, 0, pinfo, tree, hf_x411_MTABindResult_PDU);
6549 static void dissect_MTABindError_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6550 dissect_x411_MTABindError(FALSE, tvb, 0, pinfo, tree, hf_x411_MTABindError_PDU);
6552 static void dissect_MTS_APDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6553 dissect_x411_MTS_APDU(FALSE, tvb, 0, pinfo, tree, hf_x411_MTS_APDU_PDU);
6555 static void dissect_InternalTraceInformation_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6556 dissect_x411_InternalTraceInformation(FALSE, tvb, 0, pinfo, tree, hf_x411_InternalTraceInformation_PDU);
6558 static void dissect_TraceInformation_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6559 dissect_x411_TraceInformation(TRUE, tvb, 0, pinfo, tree, hf_x411_TraceInformation_PDU);
6561 static void dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6562 dissect_x411_RecipientReassignmentProhibited(FALSE, tvb, 0, pinfo, tree, hf_x411_RecipientReassignmentProhibited_PDU);
6564 static void dissect_MTSOriginatorRequestedAlternateRecipient_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6565 dissect_x411_MTSOriginatorRequestedAlternateRecipient(FALSE, tvb, 0, pinfo, tree, hf_x411_MTSOriginatorRequestedAlternateRecipient_PDU);
6567 static void dissect_DLExpansionProhibited_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6568 dissect_x411_DLExpansionProhibited(FALSE, tvb, 0, pinfo, tree, hf_x411_DLExpansionProhibited_PDU);
6570 static void dissect_ConversionWithLossProhibited_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6571 dissect_x411_ConversionWithLossProhibited(FALSE, tvb, 0, pinfo, tree, hf_x411_ConversionWithLossProhibited_PDU);
6573 static void dissect_LatestDeliveryTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6574 dissect_x411_LatestDeliveryTime(FALSE, tvb, 0, pinfo, tree, hf_x411_LatestDeliveryTime_PDU);
6576 static void dissect_RequestedDeliveryMethod_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6577 dissect_x411_RequestedDeliveryMethod(FALSE, tvb, 0, pinfo, tree, hf_x411_RequestedDeliveryMethod_PDU);
6579 static void dissect_PhysicalForwardingProhibited_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6580 dissect_x411_PhysicalForwardingProhibited(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalForwardingProhibited_PDU);
6582 static void dissect_PhysicalForwardingAddressRequest_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6583 dissect_x411_PhysicalForwardingAddressRequest(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalForwardingAddressRequest_PDU);
6585 static void dissect_PhysicalDeliveryModes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6586 dissect_x411_PhysicalDeliveryModes(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalDeliveryModes_PDU);
6588 static void dissect_RegisteredMailType_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6589 dissect_x411_RegisteredMailType(FALSE, tvb, 0, pinfo, tree, hf_x411_RegisteredMailType_PDU);
6591 static void dissect_RecipientNumberForAdvice_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6592 dissect_x411_RecipientNumberForAdvice(FALSE, tvb, 0, pinfo, tree, hf_x411_RecipientNumberForAdvice_PDU);
6594 static void dissect_PhysicalRenditionAttributes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6595 dissect_x411_PhysicalRenditionAttributes(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalRenditionAttributes_PDU);
6597 static void dissect_OriginatorReturnAddress_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6598 dissect_x411_OriginatorReturnAddress(FALSE, tvb, 0, pinfo, tree, hf_x411_OriginatorReturnAddress_PDU);
6600 static void dissect_PhysicalDeliveryReportRequest_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6601 dissect_x411_PhysicalDeliveryReportRequest(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalDeliveryReportRequest_PDU);
6603 static void dissect_OriginatorCertificate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6604 dissect_x411_OriginatorCertificate(FALSE, tvb, 0, pinfo, tree, hf_x411_OriginatorCertificate_PDU);
6606 static void dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6607 dissect_x411_ContentConfidentialityAlgorithmIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU);
6609 static void dissect_MessageSecurityLabel_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6610 dissect_x411_MessageSecurityLabel(FALSE, tvb, 0, pinfo, tree, hf_x411_MessageSecurityLabel_PDU);
6612 static void dissect_ProofOfSubmissionRequest_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6613 dissect_x411_ProofOfSubmissionRequest(FALSE, tvb, 0, pinfo, tree, hf_x411_ProofOfSubmissionRequest_PDU);
6615 static void dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6616 dissect_x411_ProofOfDeliveryRequest(FALSE, tvb, 0, pinfo, tree, hf_x411_ProofOfDeliveryRequest_PDU);
6618 static void dissect_ContentCorrelator_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6619 dissect_x411_ContentCorrelator(FALSE, tvb, 0, pinfo, tree, hf_x411_ContentCorrelator_PDU);
6621 static void dissect_RedirectionHistory_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6622 dissect_x411_RedirectionHistory(FALSE, tvb, 0, pinfo, tree, hf_x411_RedirectionHistory_PDU);
6624 static void dissect_DLExpansionHistory_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6625 dissect_x411_DLExpansionHistory(FALSE, tvb, 0, pinfo, tree, hf_x411_DLExpansionHistory_PDU);
6627 static void dissect_PhysicalForwardingAddress_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6628 dissect_x411_PhysicalForwardingAddress(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalForwardingAddress_PDU);
6630 static void dissect_OriginatorAndDLExpansionHistory_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6631 dissect_x411_OriginatorAndDLExpansionHistory(FALSE, tvb, 0, pinfo, tree, hf_x411_OriginatorAndDLExpansionHistory_PDU);
6633 static void dissect_ReportingDLName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6634 dissect_x411_ReportingDLName(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportingDLName_PDU);
6636 static void dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6637 dissect_x411_ReportingMTACertificate(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportingMTACertificate_PDU);
6639 static void dissect_ReportingMTAName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6640 dissect_x411_ReportingMTAName(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportingMTAName_PDU);
6642 static void dissect_ExtendedCertificates_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6643 dissect_x411_ExtendedCertificates(FALSE, tvb, 0, pinfo, tree, hf_x411_ExtendedCertificates_PDU);
6645 static void dissect_DLExemptedRecipients_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6646 dissect_x411_DLExemptedRecipients(FALSE, tvb, 0, pinfo, tree, hf_x411_DLExemptedRecipients_PDU);
6648 static void dissect_CertificateSelectors_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6649 dissect_x411_CertificateSelectors(FALSE, tvb, 0, pinfo, tree, hf_x411_CertificateSelectors_PDU);
6651 static void dissect_CommonName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6652 dissect_x411_CommonName(FALSE, tvb, 0, pinfo, tree, hf_x411_CommonName_PDU);
6654 static void dissect_TeletexCommonName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6655 dissect_x411_TeletexCommonName(FALSE, tvb, 0, pinfo, tree, hf_x411_TeletexCommonName_PDU);
6657 static void dissect_UniversalCommonName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6658 dissect_x411_UniversalCommonName(FALSE, tvb, 0, pinfo, tree, hf_x411_UniversalCommonName_PDU);
6660 static void dissect_TeletexOrganizationName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6661 dissect_x411_TeletexOrganizationName(FALSE, tvb, 0, pinfo, tree, hf_x411_TeletexOrganizationName_PDU);
6663 static void dissect_UniversalOrganizationName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6664 dissect_x411_UniversalOrganizationName(FALSE, tvb, 0, pinfo, tree, hf_x411_UniversalOrganizationName_PDU);
6666 static void dissect_TeletexPersonalName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6667 dissect_x411_TeletexPersonalName(FALSE, tvb, 0, pinfo, tree, hf_x411_TeletexPersonalName_PDU);
6669 static void dissect_UniversalPersonalName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6670 dissect_x411_UniversalPersonalName(FALSE, tvb, 0, pinfo, tree, hf_x411_UniversalPersonalName_PDU);
6672 static void dissect_TeletexOrganizationalUnitNames_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6673 dissect_x411_TeletexOrganizationalUnitNames(FALSE, tvb, 0, pinfo, tree, hf_x411_TeletexOrganizationalUnitNames_PDU);
6675 static void dissect_UniversalOrganizationalUnitNames_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6676 dissect_x411_UniversalOrganizationalUnitNames(FALSE, tvb, 0, pinfo, tree, hf_x411_UniversalOrganizationalUnitNames_PDU);
6678 static void dissect_PDSName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6679 dissect_x411_PDSName(FALSE, tvb, 0, pinfo, tree, hf_x411_PDSName_PDU);
6681 static void dissect_PhysicalDeliveryCountryName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6682 dissect_x411_PhysicalDeliveryCountryName(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalDeliveryCountryName_PDU);
6684 static void dissect_PostalCode_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6685 dissect_x411_PostalCode(FALSE, tvb, 0, pinfo, tree, hf_x411_PostalCode_PDU);
6687 static void dissect_PhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
6688 dissect_x411_PhysicalDeliveryOfficeName(FALSE, tvb, 0, pinfo, tree, hf_x411_PhysicalDeliveryOfficeName_PDU);
6692 /*--- End of included file: packet-x411-fn.c ---*/
6696 call_x411_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6699 char extension_oid[BER_MAX_OID_STR_LEN];
6701 sprintf(extension_oid, "%s.%d", base_oid, extension_id);
6703 name = get_ber_oid_name(extension_oid);
6704 proto_item_append_text(tree, " (%s)", name ? name : extension_oid);
6706 return call_ber_oid_callback(extension_oid, tvb, offset, pinfo, tree);
6712 * Dissect X411 MTS APDU
6715 dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
6717 proto_item *item=NULL;
6718 proto_tree *tree=NULL;
6720 /* save parent_tree so subdissectors can create new top nodes */
6721 top_tree=parent_tree;
6724 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
6725 tree = proto_item_add_subtree(item, ett_x411);
6728 if (check_col(pinfo->cinfo, COL_PROTOCOL))
6729 col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
6730 if (check_col(pinfo->cinfo, COL_INFO))
6731 col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
6733 return dissect_x411_MTS_APDU (FALSE, tvb, 0, pinfo, tree, hf_x411_MTS_APDU_PDU);
6737 * Dissect X411 PDUs inside a PPDU.
6740 dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
6744 proto_item *item=NULL;
6745 proto_tree *tree=NULL;
6746 int (*x411_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) = NULL;
6750 /* save parent_tree so subdissectors can create new top nodes */
6751 top_tree=parent_tree;
6753 /* do we have operation information from the ROS dissector? */
6754 if( !pinfo->private_data ){
6756 proto_tree_add_text(parent_tree, tvb, offset, -1,
6757 "Internal error: can't get operation information from ROS dissector.");
6761 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
6765 item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
6766 tree = proto_item_add_subtree(item, ett_x411);
6768 if (check_col(pinfo->cinfo, COL_PROTOCOL))
6769 col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
6770 if (check_col(pinfo->cinfo, COL_INFO))
6771 col_clear(pinfo->cinfo, COL_INFO);
6773 switch(session->ros_op & ROS_OP_MASK) {
6774 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
6775 x411_dissector = dissect_x411_MTABindArgument;
6776 x411_op_name = "Bind-Argument";
6777 hf_x411_index = hf_x411_MTABindArgument_PDU;
6779 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
6780 x411_dissector = dissect_x411_MTABindResult;
6781 x411_op_name = "Bind-Result";
6782 hf_x411_index = hf_x411_MTABindResult_PDU;
6784 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
6785 x411_dissector = dissect_x411_MTABindError;
6786 x411_op_name = "Bind-Error";
6787 hf_x411_index = hf_x411_MTABindError_PDU;
6789 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
6790 x411_dissector = dissect_x411_MTS_APDU;
6791 x411_op_name = "Transfer";
6792 hf_x411_index = hf_x411_MTS_APDU_PDU;
6795 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported X411 PDU");
6799 if (check_col(pinfo->cinfo, COL_INFO))
6800 col_add_str(pinfo->cinfo, COL_INFO, x411_op_name);
6802 while (tvb_reported_length_remaining(tvb, offset) > 0){
6804 offset=(*x411_dissector)(FALSE, tvb, offset, pinfo , tree, hf_x411_index);
6805 if(offset == old_offset){
6806 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte X411 PDU");
6807 offset = tvb_length(tvb);
6814 /*--- proto_register_x411 -------------------------------------------*/
6815 void proto_register_x411(void) {
6817 /* List of fields */
6818 static hf_register_info hf[] =
6821 /*--- Included file: packet-x411-hfarr.c ---*/
6823 { &hf_x411_MTABindArgument_PDU,
6824 { "MTABindArgument", "x411.MTABindArgument",
6825 FT_UINT32, BASE_DEC, VALS(x411_MTABindArgument_vals), 0,
6826 "MTABindArgument", HFILL }},
6827 { &hf_x411_MTABindResult_PDU,
6828 { "MTABindResult", "x411.MTABindResult",
6829 FT_UINT32, BASE_DEC, VALS(x411_MTABindResult_vals), 0,
6830 "MTABindResult", HFILL }},
6831 { &hf_x411_MTABindError_PDU,
6832 { "MTABindError", "x411.MTABindError",
6833 FT_UINT32, BASE_DEC, VALS(x411_MTABindError_vals), 0,
6834 "MTABindError", HFILL }},
6835 { &hf_x411_MTS_APDU_PDU,
6836 { "MTS-APDU", "x411.MTS_APDU",
6837 FT_UINT32, BASE_DEC, VALS(x411_MTS_APDU_vals), 0,
6838 "MTS-APDU", HFILL }},
6839 { &hf_x411_InternalTraceInformation_PDU,
6840 { "InternalTraceInformation", "x411.InternalTraceInformation",
6841 FT_UINT32, BASE_DEC, NULL, 0,
6842 "InternalTraceInformation", HFILL }},
6843 { &hf_x411_TraceInformation_PDU,
6844 { "TraceInformation", "x411.TraceInformation",
6845 FT_UINT32, BASE_DEC, NULL, 0,
6846 "TraceInformation", HFILL }},
6847 { &hf_x411_RecipientReassignmentProhibited_PDU,
6848 { "RecipientReassignmentProhibited", "x411.RecipientReassignmentProhibited",
6849 FT_UINT32, BASE_DEC, VALS(x411_RecipientReassignmentProhibited_vals), 0,
6850 "RecipientReassignmentProhibited", HFILL }},
6851 { &hf_x411_MTSOriginatorRequestedAlternateRecipient_PDU,
6852 { "MTSOriginatorRequestedAlternateRecipient", "x411.MTSOriginatorRequestedAlternateRecipient",
6853 FT_NONE, BASE_NONE, NULL, 0,
6854 "MTSOriginatorRequestedAlternateRecipient", HFILL }},
6855 { &hf_x411_DLExpansionProhibited_PDU,
6856 { "DLExpansionProhibited", "x411.DLExpansionProhibited",
6857 FT_UINT32, BASE_DEC, VALS(x411_DLExpansionProhibited_vals), 0,
6858 "DLExpansionProhibited", HFILL }},
6859 { &hf_x411_ConversionWithLossProhibited_PDU,
6860 { "ConversionWithLossProhibited", "x411.ConversionWithLossProhibited",
6861 FT_UINT32, BASE_DEC, VALS(x411_ConversionWithLossProhibited_vals), 0,
6862 "ConversionWithLossProhibited", HFILL }},
6863 { &hf_x411_LatestDeliveryTime_PDU,
6864 { "LatestDeliveryTime", "x411.LatestDeliveryTime",
6865 FT_STRING, BASE_NONE, NULL, 0,
6866 "LatestDeliveryTime", HFILL }},
6867 { &hf_x411_RequestedDeliveryMethod_PDU,
6868 { "RequestedDeliveryMethod", "x411.RequestedDeliveryMethod",
6869 FT_UINT32, BASE_DEC, NULL, 0,
6870 "RequestedDeliveryMethod", HFILL }},
6871 { &hf_x411_PhysicalForwardingProhibited_PDU,
6872 { "PhysicalForwardingProhibited", "x411.PhysicalForwardingProhibited",
6873 FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingProhibited_vals), 0,
6874 "PhysicalForwardingProhibited", HFILL }},
6875 { &hf_x411_PhysicalForwardingAddressRequest_PDU,
6876 { "PhysicalForwardingAddressRequest", "x411.PhysicalForwardingAddressRequest",
6877 FT_UINT32, BASE_DEC, VALS(x411_PhysicalForwardingAddressRequest_vals), 0,
6878 "PhysicalForwardingAddressRequest", HFILL }},
6879 { &hf_x411_PhysicalDeliveryModes_PDU,
6880 { "PhysicalDeliveryModes", "x411.PhysicalDeliveryModes",
6881 FT_BYTES, BASE_HEX, NULL, 0,
6882 "PhysicalDeliveryModes", HFILL }},
6883 { &hf_x411_RegisteredMailType_PDU,
6884 { "RegisteredMailType", "x411.RegisteredMailType",
6885 FT_UINT32, BASE_DEC, VALS(x411_RegisteredMailType_vals), 0,
6886 "RegisteredMailType", HFILL }},
6887 { &hf_x411_RecipientNumberForAdvice_PDU,
6888 { "RecipientNumberForAdvice", "x411.RecipientNumberForAdvice",
6889 FT_STRING, BASE_NONE, NULL, 0,
6890 "RecipientNumberForAdvice", HFILL }},
6891 { &hf_x411_PhysicalRenditionAttributes_PDU,
6892 { "PhysicalRenditionAttributes", "x411.PhysicalRenditionAttributes",
6893 FT_STRING, BASE_NONE, NULL, 0,
6894 "PhysicalRenditionAttributes", HFILL }},
6895 { &hf_x411_OriginatorReturnAddress_PDU,
6896 { "OriginatorReturnAddress", "x411.OriginatorReturnAddress",
6897 FT_NONE, BASE_NONE, NULL, 0,
6898 "OriginatorReturnAddress", HFILL }},
6899 { &hf_x411_PhysicalDeliveryReportRequest_PDU,
6900 { "PhysicalDeliveryReportRequest", "x411.PhysicalDeliveryReportRequest",
6901 FT_INT32, BASE_DEC, VALS(x411_PhysicalDeliveryReportRequest_vals), 0,
6902 "PhysicalDeliveryReportRequest", HFILL }},
6903 { &hf_x411_OriginatorCertificate_PDU,
6904 { "OriginatorCertificate", "x411.OriginatorCertificate",
6905 FT_NONE, BASE_NONE, NULL, 0,
6906 "OriginatorCertificate", HFILL }},
6907 { &hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU,
6908 { "ContentConfidentialityAlgorithmIdentifier", "x411.ContentConfidentialityAlgorithmIdentifier",
6909 FT_NONE, BASE_NONE, NULL, 0,
6910 "ContentConfidentialityAlgorithmIdentifier", HFILL }},
6911 { &hf_x411_MessageSecurityLabel_PDU,
6912 { "MessageSecurityLabel", "x411.MessageSecurityLabel",
6913 FT_NONE, BASE_NONE, NULL, 0,
6914 "MessageSecurityLabel", HFILL }},
6915 { &hf_x411_ProofOfSubmissionRequest_PDU,
6916 { "ProofOfSubmissionRequest", "x411.ProofOfSubmissionRequest",
6917 FT_UINT32, BASE_DEC, VALS(x411_ProofOfSubmissionRequest_vals), 0,
6918 "ProofOfSubmissionRequest", HFILL }},
6919 { &hf_x411_ProofOfDeliveryRequest_PDU,
6920 { "ProofOfDeliveryRequest", "x411.ProofOfDeliveryRequest",
6921 FT_UINT32, BASE_DEC, VALS(x411_ProofOfDeliveryRequest_vals), 0,
6922 "ProofOfDeliveryRequest", HFILL }},
6923 { &hf_x411_ContentCorrelator_PDU,
6924 { "ContentCorrelator", "x411.ContentCorrelator",
6925 FT_UINT32, BASE_DEC, VALS(x411_ContentCorrelator_vals), 0,
6926 "ContentCorrelator", HFILL }},
6927 { &hf_x411_RedirectionHistory_PDU,
6928 { "RedirectionHistory", "x411.RedirectionHistory",
6929 FT_UINT32, BASE_DEC, NULL, 0,
6930 "RedirectionHistory", HFILL }},
6931 { &hf_x411_DLExpansionHistory_PDU,
6932 { "DLExpansionHistory", "x411.DLExpansionHistory",
6933 FT_UINT32, BASE_DEC, NULL, 0,
6934 "DLExpansionHistory", HFILL }},
6935 { &hf_x411_PhysicalForwardingAddress_PDU,
6936 { "PhysicalForwardingAddress", "x411.PhysicalForwardingAddress",
6937 FT_NONE, BASE_NONE, NULL, 0,
6938 "PhysicalForwardingAddress", HFILL }},
6939 { &hf_x411_OriginatorAndDLExpansionHistory_PDU,
6940 { "OriginatorAndDLExpansionHistory", "x411.OriginatorAndDLExpansionHistory",
6941 FT_UINT32, BASE_DEC, NULL, 0,
6942 "OriginatorAndDLExpansionHistory", HFILL }},
6943 { &hf_x411_ReportingDLName_PDU,
6944 { "ReportingDLName", "x411.ReportingDLName",
6945 FT_NONE, BASE_NONE, NULL, 0,
6946 "ReportingDLName", HFILL }},
6947 { &hf_x411_ReportingMTACertificate_PDU,
6948 { "ReportingMTACertificate", "x411.ReportingMTACertificate",
6949 FT_NONE, BASE_NONE, NULL, 0,
6950 "ReportingMTACertificate", HFILL }},
6951 { &hf_x411_ReportingMTAName_PDU,
6952 { "ReportingMTAName", "x411.ReportingMTAName",
6953 FT_NONE, BASE_NONE, NULL, 0,
6954 "ReportingMTAName", HFILL }},
6955 { &hf_x411_ExtendedCertificates_PDU,
6956 { "ExtendedCertificates", "x411.ExtendedCertificates",
6957 FT_UINT32, BASE_DEC, NULL, 0,
6958 "ExtendedCertificates", HFILL }},
6959 { &hf_x411_DLExemptedRecipients_PDU,
6960 { "DLExemptedRecipients", "x411.DLExemptedRecipients",
6961 FT_UINT32, BASE_DEC, NULL, 0,
6962 "DLExemptedRecipients", HFILL }},
6963 { &hf_x411_CertificateSelectors_PDU,
6964 { "CertificateSelectors", "x411.CertificateSelectors",
6965 FT_NONE, BASE_NONE, NULL, 0,
6966 "CertificateSelectors", HFILL }},
6967 { &hf_x411_CommonName_PDU,
6968 { "CommonName", "x411.CommonName",
6969 FT_STRING, BASE_NONE, NULL, 0,
6970 "CommonName", HFILL }},
6971 { &hf_x411_TeletexCommonName_PDU,
6972 { "TeletexCommonName", "x411.TeletexCommonName",
6973 FT_STRING, BASE_NONE, NULL, 0,
6974 "TeletexCommonName", HFILL }},
6975 { &hf_x411_UniversalCommonName_PDU,
6976 { "UniversalCommonName", "x411.UniversalCommonName",
6977 FT_NONE, BASE_NONE, NULL, 0,
6978 "UniversalCommonName", HFILL }},
6979 { &hf_x411_TeletexOrganizationName_PDU,
6980 { "TeletexOrganizationName", "x411.TeletexOrganizationName",
6981 FT_STRING, BASE_NONE, NULL, 0,
6982 "TeletexOrganizationName", HFILL }},
6983 { &hf_x411_UniversalOrganizationName_PDU,
6984 { "UniversalOrganizationName", "x411.UniversalOrganizationName",
6985 FT_NONE, BASE_NONE, NULL, 0,
6986 "UniversalOrganizationName", HFILL }},
6987 { &hf_x411_TeletexPersonalName_PDU,
6988 { "TeletexPersonalName", "x411.TeletexPersonalName",
6989 FT_NONE, BASE_NONE, NULL, 0,
6990 "TeletexPersonalName", HFILL }},
6991 { &hf_x411_UniversalPersonalName_PDU,
6992 { "UniversalPersonalName", "x411.UniversalPersonalName",
6993 FT_NONE, BASE_NONE, NULL, 0,
6994 "UniversalPersonalName", HFILL }},
6995 { &hf_x411_TeletexOrganizationalUnitNames_PDU,
6996 { "TeletexOrganizationalUnitNames", "x411.TeletexOrganizationalUnitNames",
6997 FT_UINT32, BASE_DEC, NULL, 0,
6998 "TeletexOrganizationalUnitNames", HFILL }},
6999 { &hf_x411_UniversalOrganizationalUnitNames_PDU,
7000 { "UniversalOrganizationalUnitNames", "x411.UniversalOrganizationalUnitNames",
7001 FT_UINT32, BASE_DEC, NULL, 0,
7002 "UniversalOrganizationalUnitNames", HFILL }},
7003 { &hf_x411_PDSName_PDU,
7004 { "PDSName", "x411.PDSName",
7005 FT_STRING, BASE_NONE, NULL, 0,
7006 "PDSName", HFILL }},
7007 { &hf_x411_PhysicalDeliveryCountryName_PDU,
7008 { "PhysicalDeliveryCountryName", "x411.PhysicalDeliveryCountryName",
7009 FT_UINT32, BASE_DEC, VALS(x411_PhysicalDeliveryCountryName_vals), 0,
7010 "PhysicalDeliveryCountryName", HFILL }},
7011 { &hf_x411_PostalCode_PDU,
7012 { "PostalCode", "x411.PostalCode",
7013 FT_UINT32, BASE_DEC, VALS(x411_PostalCode_vals), 0,
7014 "PostalCode", HFILL }},
7015 { &hf_x411_PhysicalDeliveryOfficeName_PDU,
7016 { "PhysicalDeliveryOfficeName", "x411.PhysicalDeliveryOfficeName",
7017 FT_NONE, BASE_NONE, NULL, 0,
7018 "PhysicalDeliveryOfficeName", HFILL }},
7019 { &hf_x411_unauthenticated,
7020 { "unauthenticated", "x411.unauthenticated",
7021 FT_NONE, BASE_NONE, NULL, 0,
7023 { &hf_x411_authenticated_argument,
7024 { "authenticated", "x411.authenticated",
7025 FT_NONE, BASE_NONE, NULL, 0,
7026 "MTABindArgument/authenticated", HFILL }},
7027 { &hf_x411_authenticated_initiator_name,
7028 { "initiator-name", "x411.initiator_name",
7029 FT_STRING, BASE_NONE, NULL, 0,
7030 "MTABindArgument/authenticated/initiator-name", HFILL }},
7031 { &hf_x411_initiator_credentials,
7032 { "initiator-credentials", "x411.initiator_credentials",
7033 FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
7035 { &hf_x411_security_context,
7036 { "security-context", "x411.security_context",
7037 FT_UINT32, BASE_DEC, NULL, 0,
7039 { &hf_x411_authenticated_result,
7040 { "authenticated", "x411.authenticated",
7041 FT_NONE, BASE_NONE, NULL, 0,
7042 "MTABindResult/authenticated", HFILL }},
7043 { &hf_x411_authenticated_responder_name,
7044 { "responder-name", "x411.responder_name",
7045 FT_STRING, BASE_NONE, NULL, 0,
7046 "MTABindResult/authenticated/responder-name", HFILL }},
7047 { &hf_x411_responder_credentials,
7048 { "responder-credentials", "x411.responder_credentials",
7049 FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
7052 { "message", "x411.message",
7053 FT_NONE, BASE_NONE, NULL, 0,
7054 "MTS-APDU/message", HFILL }},
7056 { "probe", "x411.probe",
7057 FT_NONE, BASE_NONE, NULL, 0,
7058 "MTS-APDU/probe", HFILL }},
7060 { "report", "x411.report",
7061 FT_NONE, BASE_NONE, NULL, 0,
7062 "MTS-APDU/report", HFILL }},
7063 { &hf_x411_message_envelope,
7064 { "envelope", "x411.envelope",
7065 FT_NONE, BASE_NONE, NULL, 0,
7066 "Message/envelope", HFILL }},
7068 { "content", "x411.content",
7069 FT_BYTES, BASE_HEX, NULL, 0,
7071 { &hf_x411_report_envelope,
7072 { "envelope", "x411.envelope",
7073 FT_NONE, BASE_NONE, NULL, 0,
7074 "Report/envelope", HFILL }},
7075 { &hf_x411_report_content,
7076 { "content", "x411.content",
7077 FT_NONE, BASE_NONE, NULL, 0,
7078 "Report/content", HFILL }},
7079 { &hf_x411_message_identifier,
7080 { "message-identifier", "x411.message_identifier",
7081 FT_NONE, BASE_NONE, NULL, 0,
7082 "MessageTransferEnvelope/message-identifier", HFILL }},
7083 { &hf_x411_mta_originator_name,
7084 { "originator-name", "x411.originator_name",
7085 FT_NONE, BASE_NONE, NULL, 0,
7087 { &hf_x411_original_encoded_information_types,
7088 { "original-encoded-information-types", "x411.original_encoded_information_types",
7089 FT_NONE, BASE_NONE, NULL, 0,
7091 { &hf_x411_content_type,
7092 { "content-type", "x411.content_type",
7093 FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
7095 { &hf_x411_content_identifier,
7096 { "content-identifier", "x411.content_identifier",
7097 FT_STRING, BASE_NONE, NULL, 0,
7099 { &hf_x411_priority,
7100 { "priority", "x411.priority",
7101 FT_UINT32, BASE_DEC, VALS(x411_Priority_vals), 0,
7103 { &hf_x411_per_message_indicators,
7104 { "per-message-indicators", "x411.per_message_indicators",
7105 FT_BYTES, BASE_HEX, NULL, 0,
7107 { &hf_x411_deferred_delivery_time,
7108 { "deferred-delivery-time", "x411.deferred_delivery_time",
7109 FT_STRING, BASE_NONE, NULL, 0,
7111 { &hf_x411_per_domain_bilateral_information,
7112 { "per-domain-bilateral-information", "x411.per_domain_bilateral_information",
7113 FT_UINT32, BASE_DEC, NULL, 0,
7115 { &hf_x411_per_domain_bilateral_information_item,
7116 { "Item", "x411.per_domain_bilateral_information_item",
7117 FT_NONE, BASE_NONE, NULL, 0,
7119 { &hf_x411_trace_information,
7120 { "trace-information", "x411.trace_information",
7121 FT_UINT32, BASE_DEC, NULL, 0,
7123 { &hf_x411_extensions,
7124 { "extensions", "x411.extensions",
7125 FT_UINT32, BASE_DEC, NULL, 0,
7127 { &hf_x411_extensions_item,
7128 { "Item", "x411.extensions_item",
7129 FT_NONE, BASE_NONE, NULL, 0,
7131 { &hf_x411_per_recipient_message_fields,
7132 { "per-recipient-fields", "x411.per_recipient_fields",
7133 FT_UINT32, BASE_DEC, NULL, 0,
7134 "MessageTransferEnvelope/per-recipient-fields", HFILL }},
7135 { &hf_x411_per_recipient_message_fields_item,
7136 { "Item", "x411.per_recipient_fields_item",
7137 FT_NONE, BASE_NONE, NULL, 0,
7138 "MessageTransferEnvelope/per-recipient-fields/_item", HFILL }},
7139 { &hf_x411_recipient_name,
7140 { "recipient-name", "x411.recipient_name",
7141 FT_NONE, BASE_NONE, NULL, 0,
7143 { &hf_x411_originally_specified_recipient_number,
7144 { "originally-specified-recipient-number", "x411.originally_specified_recipient_number",
7145 FT_INT32, BASE_DEC, NULL, 0,
7147 { &hf_x411_per_recipient_indicators,
7148 { "per-recipient-indicators", "x411.per_recipient_indicators",
7149 FT_BYTES, BASE_HEX, NULL, 0,
7151 { &hf_x411_explicit_conversion,
7152 { "explicit-conversion", "x411.explicit_conversion",
7153 FT_UINT32, BASE_DEC, VALS(x411_ExplicitConversion_vals), 0,
7155 { &hf_x411_probe_identifier,
7156 { "probe-identifier", "x411.probe_identifier",
7157 FT_NONE, BASE_NONE, NULL, 0,
7158 "ProbeTransferEnvelope/probe-identifier", HFILL }},
7159 { &hf_x411_content_length,
7160 { "content-length", "x411.content_length",
7161 FT_UINT32, BASE_DEC, NULL, 0,
7163 { &hf_x411_per_recipient_probe_transfer_fields,
7164 { "per-recipient-fields", "x411.per_recipient_fields",
7165 FT_UINT32, BASE_DEC, NULL, 0,
7166 "ProbeTransferEnvelope/per-recipient-fields", HFILL }},
7167 { &hf_x411_per_recipient_probe_transfer_fields_item,
7168 { "Item", "x411.per_recipient_fields_item",
7169 FT_NONE, BASE_NONE, NULL, 0,
7170 "ProbeTransferEnvelope/per-recipient-fields/_item", HFILL }},
7171 { &hf_x411_report_identifier,
7172 { "report-identifier", "x411.report_identifier",
7173 FT_NONE, BASE_NONE, NULL, 0,
7174 "ReportTransferEnvelope/report-identifier", HFILL }},
7175 { &hf_x411_report_destination_name,
7176 { "report-destination-name", "x411.report_destination_name",
7177 FT_NONE, BASE_NONE, NULL, 0,
7178 "ReportTransferEnvelope/report-destination-name", HFILL }},
7179 { &hf_x411_subject_identifier,
7180 { "subject-identifier", "x411.subject_identifier",
7181 FT_NONE, BASE_NONE, NULL, 0,
7182 "ReportTransferContent/subject-identifier", HFILL }},
7183 { &hf_x411_subject_intermediate_trace_information,
7184 { "subject-intermediate-trace-information", "x411.subject_intermediate_trace_information",
7185 FT_UINT32, BASE_DEC, NULL, 0,
7186 "ReportTransferContent/subject-intermediate-trace-information", HFILL }},
7187 { &hf_x411_returned_content,
7188 { "returned-content", "x411.returned_content",
7189 FT_BYTES, BASE_HEX, NULL, 0,
7191 { &hf_x411_additional_information,
7192 { "additional-information", "x411.additional_information",
7193 FT_NONE, BASE_NONE, NULL, 0,
7194 "ReportTransferContent/additional-information", HFILL }},
7195 { &hf_x411_per_recipient_report_fields,
7196 { "per-recipient-fields", "x411.per_recipient_fields",
7197 FT_UINT32, BASE_DEC, NULL, 0,
7198 "ReportTransferContent/per-recipient-fields", HFILL }},
7199 { &hf_x411_per_recipient_fields_item,
7200 { "Item", "x411.per_recipient_fields_item",
7201 FT_NONE, BASE_NONE, NULL, 0,
7202 "ReportTransferContent/per-recipient-fields/_item", HFILL }},
7203 { &hf_x411_mta_actual_recipient_name,
7204 { "actual-recipient-name", "x411.actual_recipient_name",
7205 FT_NONE, BASE_NONE, NULL, 0,
7206 "PerRecipientReportTransferFields/actual-recipient-name", HFILL }},
7207 { &hf_x411_last_trace_information,
7208 { "last-trace-information", "x411.last_trace_information",
7209 FT_NONE, BASE_NONE, NULL, 0,
7210 "PerRecipientReportTransferFields/last-trace-information", HFILL }},
7211 { &hf_x411_report_originally_intended_recipient_name,
7212 { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
7213 FT_NONE, BASE_NONE, NULL, 0,
7214 "PerRecipientReportTransferFields/originally-intended-recipient-name", HFILL }},
7215 { &hf_x411_supplementary_information,
7216 { "supplementary-information", "x411.supplementary_information",
7217 FT_STRING, BASE_NONE, NULL, 0,
7219 { &hf_x411_country_name,
7220 { "country-name", "x411.country_name",
7221 FT_UINT32, BASE_DEC, VALS(x411_CountryName_vals), 0,
7223 { &hf_x411_bilateral_domain,
7224 { "domain", "x411.domain",
7225 FT_UINT32, BASE_DEC, VALS(x411_T_domain_vals), 0,
7226 "PerDomainBilateralInformation/domain", HFILL }},
7227 { &hf_x411_administration_domain_name,
7228 { "administration-domain-name", "x411.administration_domain_name",
7229 FT_UINT32, BASE_DEC, VALS(x411_AdministrationDomainName_vals), 0,
7231 { &hf_x411_private_domain,
7232 { "private-domain", "x411.private_domain",
7233 FT_NONE, BASE_NONE, NULL, 0,
7234 "PerDomainBilateralInformation/domain/private-domain", HFILL }},
7235 { &hf_x411_private_domain_identifier,
7236 { "private-domain-identifier", "x411.private_domain_identifier",
7237 FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainIdentifier_vals), 0,
7239 { &hf_x411_arrival_time,
7240 { "arrival-time", "x411.arrival_time",
7241 FT_STRING, BASE_NONE, NULL, 0,
7243 { &hf_x411_converted_encoded_information_types,
7244 { "converted-encoded-information-types", "x411.converted_encoded_information_types",
7245 FT_NONE, BASE_NONE, NULL, 0,
7247 { &hf_x411_trace_report_type,
7248 { "report-type", "x411.report_type",
7249 FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
7250 "LastTraceInformation/report-type", HFILL }},
7251 { &hf_x411_InternalTraceInformation_item,
7252 { "Item", "x411.InternalTraceInformation_item",
7253 FT_NONE, BASE_NONE, NULL, 0,
7254 "InternalTraceInformation/_item", HFILL }},
7255 { &hf_x411_global_domain_identifier,
7256 { "global-domain-identifier", "x411.global_domain_identifier",
7257 FT_NONE, BASE_NONE, NULL, 0,
7259 { &hf_x411_mta_name,
7260 { "mta-name", "x411.mta_name",
7261 FT_STRING, BASE_NONE, NULL, 0,
7263 { &hf_x411_mta_supplied_information,
7264 { "mta-supplied-information", "x411.mta_supplied_information",
7265 FT_NONE, BASE_NONE, NULL, 0,
7266 "InternalTraceInformationElement/mta-supplied-information", HFILL }},
7267 { &hf_x411_routing_action,
7268 { "routing-action", "x411.routing_action",
7269 FT_UINT32, BASE_DEC, VALS(x411_RoutingAction_vals), 0,
7271 { &hf_x411_attempted,
7272 { "attempted", "x411.attempted",
7273 FT_UINT32, BASE_DEC, VALS(x411_T_attempted_vals), 0,
7274 "MTASuppliedInformation/attempted", HFILL }},
7276 { "mta", "x411.mta",
7277 FT_STRING, BASE_NONE, NULL, 0,
7278 "MTASuppliedInformation/attempted/mta", HFILL }},
7280 { "domain", "x411.domain",
7281 FT_NONE, BASE_NONE, NULL, 0,
7283 { &hf_x411_deferred_time,
7284 { "deferred-time", "x411.deferred_time",
7285 FT_STRING, BASE_NONE, NULL, 0,
7287 { &hf_x411_other_actions,
7288 { "other-actions", "x411.other_actions",
7289 FT_BYTES, BASE_HEX, NULL, 0,
7291 { &hf_x411_TraceInformation_item,
7292 { "Item", "x411.TraceInformation_item",
7293 FT_NONE, BASE_NONE, NULL, 0,
7294 "TraceInformation/_item", HFILL }},
7295 { &hf_x411_domain_supplied_information,
7296 { "domain-supplied-information", "x411.domain_supplied_information",
7297 FT_NONE, BASE_NONE, NULL, 0,
7298 "TraceInformationElement/domain-supplied-information", HFILL }},
7299 { &hf_x411_attempted_domain,
7300 { "attempted-domain", "x411.attempted_domain",
7301 FT_NONE, BASE_NONE, NULL, 0,
7302 "DomainSuppliedInformation/attempted-domain", HFILL }},
7303 { &hf_x411_initiator_name,
7304 { "initiator-name", "x411.initiator_name",
7305 FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
7306 "MTSBindArgument/initiator-name", HFILL }},
7307 { &hf_x411_messages_waiting,
7308 { "messages-waiting", "x411.messages_waiting",
7309 FT_NONE, BASE_NONE, NULL, 0,
7311 { &hf_x411_responder_name,
7312 { "responder-name", "x411.responder_name",
7313 FT_UINT32, BASE_DEC, VALS(x411_ObjectName_vals), 0,
7314 "MTSBindResult/responder-name", HFILL }},
7315 { &hf_x411_user_agent,
7316 { "user-agent", "x411.user_agent",
7317 FT_NONE, BASE_NONE, NULL, 0,
7318 "ObjectName/user-agent", HFILL }},
7320 { "mTA", "x411.mTA",
7321 FT_STRING, BASE_NONE, NULL, 0,
7322 "ObjectName/mTA", HFILL }},
7323 { &hf_x411_message_store,
7324 { "message-store", "x411.message_store",
7325 FT_NONE, BASE_NONE, NULL, 0,
7326 "ObjectName/message-store", HFILL }},
7328 { "urgent", "x411.urgent",
7329 FT_NONE, BASE_NONE, NULL, 0,
7330 "MessagesWaiting/urgent", HFILL }},
7332 { "normal", "x411.normal",
7333 FT_NONE, BASE_NONE, NULL, 0,
7334 "MessagesWaiting/normal", HFILL }},
7335 { &hf_x411_non_urgent,
7336 { "non-urgent", "x411.non_urgent",
7337 FT_NONE, BASE_NONE, NULL, 0,
7338 "MessagesWaiting/non-urgent", HFILL }},
7339 { &hf_x411_messages,
7340 { "messages", "x411.messages",
7341 FT_INT32, BASE_DEC, NULL, 0,
7342 "DeliveryQueue/messages", HFILL }},
7343 { &hf_x411_delivery_queue_octets,
7344 { "octets", "x411.octets",
7345 FT_INT32, BASE_DEC, NULL, 0,
7346 "DeliveryQueue/octets", HFILL }},
7348 { "simple", "x411.simple",
7349 FT_UINT32, BASE_DEC, VALS(x411_Password_vals), 0,
7350 "Credentials/simple", HFILL }},
7351 { &hf_x411_ia5_string,
7352 { "ia5-string", "x411.ia5_string",
7353 FT_STRING, BASE_NONE, NULL, 0,
7354 "Password/ia5-string", HFILL }},
7355 { &hf_x411_octet_string,
7356 { "octet-string", "x411.octet_string",
7357 FT_BYTES, BASE_HEX, NULL, 0,
7358 "Password/octet-string", HFILL }},
7359 { &hf_x411_SecurityContext_item,
7360 { "Item", "x411.SecurityContext_item",
7361 FT_NONE, BASE_NONE, NULL, 0,
7362 "SecurityContext/_item", HFILL }},
7363 { &hf_x411_message_submission_envelope,
7364 { "envelope", "x411.envelope",
7365 FT_NONE, BASE_NONE, NULL, 0,
7366 "MessageSubmissionArgument/envelope", HFILL }},
7367 { &hf_x411_message_submission_identifier,
7368 { "message-submission-identifier", "x411.message_submission_identifier",
7369 FT_NONE, BASE_NONE, NULL, 0,
7370 "MessageSubmissionResult/message-submission-identifier", HFILL }},
7371 { &hf_x411_message_submission_time,
7372 { "message-submission-time", "x411.message_submission_time",
7373 FT_STRING, BASE_NONE, NULL, 0,
7375 { &hf_x411_probe_submission_identifier,
7376 { "probe-submission-identifier", "x411.probe_submission_identifier",
7377 FT_NONE, BASE_NONE, NULL, 0,
7378 "ProbeSubmissionResult/probe-submission-identifier", HFILL }},
7379 { &hf_x411_probe_submission_time,
7380 { "probe-submission-time", "x411.probe_submission_time",
7381 FT_STRING, BASE_NONE, NULL, 0,
7382 "ProbeSubmissionResult/probe-submission-time", HFILL }},
7383 { &hf_x411_ImproperlySpecifiedRecipients_item,
7384 { "Item", "x411.ImproperlySpecifiedRecipients_item",
7385 FT_NONE, BASE_NONE, NULL, 0,
7386 "ImproperlySpecifiedRecipients/_item", HFILL }},
7387 { &hf_x411_waiting_operations,
7388 { "waiting-operations", "x411.waiting_operations",
7389 FT_BYTES, BASE_HEX, NULL, 0,
7391 { &hf_x411_waiting_messages,
7392 { "waiting-messages", "x411.waiting_messages",
7393 FT_BYTES, BASE_HEX, NULL, 0,
7395 { &hf_x411_waiting_content_types,
7396 { "waiting-content-types", "x411.waiting_content_types",
7397 FT_UINT32, BASE_DEC, NULL, 0,
7399 { &hf_x411_waiting_content_types_item,
7400 { "Item", "x411.waiting_content_types_item",
7401 FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
7403 { &hf_x411_waiting_encoded_information_types,
7404 { "waiting-encoded-information-types", "x411.waiting_encoded_information_types",
7405 FT_NONE, BASE_NONE, NULL, 0,
7407 { &hf_x411_message_delivery_identifier,
7408 { "message-delivery-identifier", "x411.message_delivery_identifier",
7409 FT_NONE, BASE_NONE, NULL, 0,
7411 { &hf_x411_message_delivery_time,
7412 { "message-delivery-time", "x411.message_delivery_time",
7413 FT_STRING, BASE_NONE, NULL, 0,
7415 { &hf_x411_other_fields,
7416 { "other-fields", "x411.other_fields",
7417 FT_NONE, BASE_NONE, NULL, 0,
7419 { &hf_x411_recipient_certificate,
7420 { "recipient-certificate", "x411.recipient_certificate",
7421 FT_NONE, BASE_NONE, NULL, 0,
7423 { &hf_x411_subject_submission_identifier,
7424 { "subject-submission-identifier", "x411.subject_submission_identifier",
7425 FT_NONE, BASE_NONE, NULL, 0,
7427 { &hf_x411_per_recipient_report_delivery_fields,
7428 { "per-recipient-fields", "x411.per_recipient_fields",
7429 FT_UINT32, BASE_DEC, NULL, 0,
7431 { &hf_x411_per_recipient_report_delivery_fields_item,
7432 { "Item", "x411.per_recipient_fields_item",
7433 FT_NONE, BASE_NONE, NULL, 0,
7435 { &hf_x411_empty_result,
7436 { "empty-result", "x411.empty_result",
7437 FT_NONE, BASE_NONE, NULL, 0,
7439 { &hf_x411_restrict,
7440 { "restrict", "x411.restrict",
7441 FT_BOOLEAN, 8, NULL, 0,
7443 { &hf_x411_permissible_operations,
7444 { "permissible-operations", "x411.permissible_operations",
7445 FT_BYTES, BASE_HEX, NULL, 0,
7447 { &hf_x411_permissible_maximum_content_length,
7448 { "permissible-maximum-content-length", "x411.permissible_maximum_content_length",
7449 FT_UINT32, BASE_DEC, NULL, 0,
7451 { &hf_x411_permissible_lowest_priority,
7452 { "permissible-lowest-priority", "x411.permissible_lowest_priority",
7453 FT_UINT32, BASE_DEC, VALS(x411_Priority_vals), 0,
7455 { &hf_x411_permissible_content_types,
7456 { "permissible-content-types", "x411.permissible_content_types",
7457 FT_UINT32, BASE_DEC, NULL, 0,
7459 { &hf_x411_permissible_encoded_information_types,
7460 { "permissible-encoded-information-types", "x411.permissible_encoded_information_types",
7461 FT_NONE, BASE_NONE, NULL, 0,
7463 { &hf_x411_permissible_security_context,
7464 { "permissible-security-context", "x411.permissible_security_context",
7465 FT_UINT32, BASE_DEC, NULL, 0,
7467 { &hf_x411_refused_argument,
7468 { "refused-argument", "x411.refused_argument",
7469 FT_UINT32, BASE_DEC, VALS(x411_T_refused_argument_vals), 0,
7470 "RefusedOperation/refused-argument", HFILL }},
7471 { &hf_x411_built_in_argument,
7472 { "built-in-argument", "x411.built_in_argument",
7473 FT_UINT32, BASE_DEC, VALS(x411_RefusedArgument_vals), 0,
7474 "RefusedOperation/refused-argument/built-in-argument", HFILL }},
7475 { &hf_x411_refused_extension,
7476 { "refused-extension", "x411.refused_extension",
7477 FT_NONE, BASE_NONE, NULL, 0,
7478 "RefusedOperation/refused-argument/refused-extension", HFILL }},
7479 { &hf_x411_refusal_reason,
7480 { "refusal-reason", "x411.refusal_reason",
7481 FT_UINT32, BASE_DEC, VALS(x411_RefusalReason_vals), 0,
7482 "RefusedOperation/refusal-reason", HFILL }},
7483 { &hf_x411_user_name,
7484 { "user-name", "x411.user_name",
7485 FT_NONE, BASE_NONE, NULL, 0,
7486 "RegisterArgument/user-name", HFILL }},
7487 { &hf_x411_user_address,
7488 { "user-address", "x411.user_address",
7489 FT_UINT32, BASE_DEC, VALS(x411_UserAddress_vals), 0,
7490 "RegisterArgument/user-address", HFILL }},
7491 { &hf_x411_deliverable_class,
7492 { "deliverable-class", "x411.deliverable_class",
7493 FT_UINT32, BASE_DEC, NULL, 0,
7494 "RegisterArgument/deliverable-class", HFILL }},
7495 { &hf_x411_deliverable_class_item,
7496 { "Item", "x411.deliverable_class_item",
7497 FT_NONE, BASE_NONE, NULL, 0,
7498 "RegisterArgument/deliverable-class/_item", HFILL }},
7499 { &hf_x411_default_delivery_controls,
7500 { "default-delivery-controls", "x411.default_delivery_controls",
7501 FT_NONE, BASE_NONE, NULL, 0,
7502 "RegisterArgument/default-delivery-controls", HFILL }},
7503 { &hf_x411_redirections,
7504 { "redirections", "x411.redirections",
7505 FT_UINT32, BASE_DEC, NULL, 0,
7506 "RegisterArgument/redirections", HFILL }},
7507 { &hf_x411_restricted_delivery,
7508 { "restricted-delivery", "x411.restricted_delivery",
7509 FT_UINT32, BASE_DEC, NULL, 0,
7510 "RegisterArgument/restricted-delivery", HFILL }},
7511 { &hf_x411_retrieve_registrations,
7512 { "retrieve-registrations", "x411.retrieve_registrations",
7513 FT_NONE, BASE_NONE, NULL, 0,
7514 "RegisterArgument/retrieve-registrations", HFILL }},
7515 { &hf_x411_non_empty_result,
7516 { "non-empty-result", "x411.non_empty_result",
7517 FT_NONE, BASE_NONE, NULL, 0,
7518 "RegisterResult/non-empty-result", HFILL }},
7519 { &hf_x411_registered_information,
7520 { "registered-information", "x411.registered_information",
7521 FT_NONE, BASE_NONE, NULL, 0,
7522 "RegisterResult/non-empty-result/registered-information", HFILL }},
7523 { &hf_x411_old_credentials,
7524 { "old-credentials", "x411.old_credentials",
7525 FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
7526 "ChangeCredentialsArgument/old-credentials", HFILL }},
7527 { &hf_x411_new_credentials,
7528 { "new-credentials", "x411.new_credentials",
7529 FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
7530 "ChangeCredentialsArgument/new-credentials", HFILL }},
7532 { "x121", "x411.x121",
7533 FT_NONE, BASE_NONE, NULL, 0,
7534 "UserAddress/x121", HFILL }},
7535 { &hf_x411_x121_address,
7536 { "x121-address", "x411.x121_address",
7537 FT_STRING, BASE_NONE, NULL, 0,
7538 "UserAddress/x121/x121-address", HFILL }},
7540 { "tsap-id", "x411.tsap_id",
7541 FT_STRING, BASE_NONE, NULL, 0,
7542 "UserAddress/x121/tsap-id", HFILL }},
7543 { &hf_x411_presentation,
7544 { "presentation", "x411.presentation",
7545 FT_NONE, BASE_NONE, NULL, 0,
7546 "UserAddress/presentation", HFILL }},
7547 { &hf_x411_Redirections_item,
7548 { "Item", "x411.Redirections_item",
7549 FT_NONE, BASE_NONE, NULL, 0,
7550 "Redirections/_item", HFILL }},
7551 { &hf_x411_redirection_classes,
7552 { "redirection-classes", "x411.redirection_classes",
7553 FT_UINT32, BASE_DEC, NULL, 0,
7554 "RecipientRedirection/redirection-classes", HFILL }},
7555 { &hf_x411_redirection_classes_item,
7556 { "Item", "x411.redirection_classes_item",
7557 FT_NONE, BASE_NONE, NULL, 0,
7558 "RecipientRedirection/redirection-classes/_item", HFILL }},
7559 { &hf_x411_recipient_assigned_alternate_recipient,
7560 { "recipient-assigned-alternate-recipient", "x411.recipient_assigned_alternate_recipient",
7561 FT_NONE, BASE_NONE, NULL, 0,
7562 "RecipientRedirection/recipient-assigned-alternate-recipient", HFILL }},
7563 { &hf_x411_content_types,
7564 { "content-types", "x411.content_types",
7565 FT_UINT32, BASE_DEC, NULL, 0,
7566 "MessageClass/content-types", HFILL }},
7567 { &hf_x411_maximum_content_length,
7568 { "maximum-content-length", "x411.maximum_content_length",
7569 FT_UINT32, BASE_DEC, NULL, 0,
7570 "MessageClass/maximum-content-length", HFILL }},
7571 { &hf_x411_encoded_information_types_constraints,
7572 { "encoded-information-types-constraints", "x411.encoded_information_types_constraints",
7573 FT_NONE, BASE_NONE, NULL, 0,
7574 "MessageClass/encoded-information-types-constraints", HFILL }},
7575 { &hf_x411_security_labels,
7576 { "security-labels", "x411.security_labels",
7577 FT_UINT32, BASE_DEC, NULL, 0,
7578 "MessageClass/security-labels", HFILL }},
7579 { &hf_x411_class_priority,
7580 { "priority", "x411.priority",
7581 FT_UINT32, BASE_DEC, NULL, 0,
7582 "MessageClass/priority", HFILL }},
7583 { &hf_x411_priority_item,
7584 { "Item", "x411.priority_item",
7585 FT_UINT32, BASE_DEC, VALS(x411_Priority_vals), 0,
7586 "MessageClass/priority/_item", HFILL }},
7588 { "objects", "x411.objects",
7589 FT_UINT32, BASE_DEC, VALS(x411_T_objects_vals), 0,
7590 "MessageClass/objects", HFILL }},
7591 { &hf_x411_applies_only_to,
7592 { "applies-only-to", "x411.applies_only_to",
7593 FT_UINT32, BASE_DEC, NULL, 0,
7594 "MessageClass/applies-only-to", HFILL }},
7595 { &hf_x411_applies_only_to_item,
7596 { "Item", "x411.applies_only_to_item",
7597 FT_NONE, BASE_NONE, NULL, 0,
7598 "MessageClass/applies-only-to/_item", HFILL }},
7599 { &hf_x411_unacceptable_eits,
7600 { "unacceptable-eits", "x411.unacceptable_eits",
7601 FT_UINT32, BASE_DEC, NULL, 0,
7602 "EncodedInformationTypesConstraints/unacceptable-eits", HFILL }},
7603 { &hf_x411_acceptable_eits,
7604 { "acceptable-eits", "x411.acceptable_eits",
7605 FT_UINT32, BASE_DEC, NULL, 0,
7606 "EncodedInformationTypesConstraints/acceptable-eits", HFILL }},
7607 { &hf_x411_exclusively_acceptable_eits,
7608 { "exclusively-acceptable-eits", "x411.exclusively_acceptable_eits",
7609 FT_UINT32, BASE_DEC, NULL, 0,
7610 "EncodedInformationTypesConstraints/exclusively-acceptable-eits", HFILL }},
7611 { &hf_x411_RestrictedDelivery_item,
7612 { "Item", "x411.RestrictedDelivery_item",
7613 FT_NONE, BASE_NONE, NULL, 0,
7614 "RestrictedDelivery/_item", HFILL }},
7615 { &hf_x411_permitted,
7616 { "permitted", "x411.permitted",
7617 FT_BOOLEAN, 8, NULL, 0,
7618 "Restriction/permitted", HFILL }},
7619 { &hf_x411_source_type,
7620 { "source-type", "x411.source_type",
7621 FT_BYTES, BASE_HEX, NULL, 0,
7622 "Restriction/source-type", HFILL }},
7623 { &hf_x411_source_name,
7624 { "source-name", "x411.source_name",
7625 FT_UINT32, BASE_DEC, VALS(x411_ExactOrPattern_vals), 0,
7626 "Restriction/source-name", HFILL }},
7627 { &hf_x411_exact_match,
7628 { "exact-match", "x411.exact_match",
7629 FT_NONE, BASE_NONE, NULL, 0,
7630 "ExactOrPattern/exact-match", HFILL }},
7631 { &hf_x411_pattern_match,
7632 { "pattern-match", "x411.pattern_match",
7633 FT_NONE, BASE_NONE, NULL, 0,
7634 "ExactOrPattern/pattern-match", HFILL }},
7635 { &hf_x411_standard_parameters,
7636 { "standard-parameters", "x411.standard_parameters",
7637 FT_BYTES, BASE_HEX, NULL, 0,
7638 "RegistrationTypes/standard-parameters", HFILL }},
7639 { &hf_x411_type_extensions,
7640 { "extensions", "x411.extensions",
7641 FT_UINT32, BASE_DEC, NULL, 0,
7642 "RegistrationTypes/extensions", HFILL }},
7643 { &hf_x411_type_extensions_item,
7644 { "Item", "x411.extensions_item",
7645 FT_NONE, BASE_NONE, NULL, 0,
7646 "RegistrationTypes/extensions/_item", HFILL }},
7647 { &hf_x411_mts_originator_name,
7648 { "originator-name", "x411.originator_name",
7649 FT_NONE, BASE_NONE, NULL, 0,
7651 { &hf_x411_per_recipient_message_submission_fields,
7652 { "per-recipient-fields", "x411.per_recipient_fields",
7653 FT_UINT32, BASE_DEC, NULL, 0,
7654 "MessageSubmissionEnvelope/per-recipient-fields", HFILL }},
7655 { &hf_x411_per_recipient_message_submission_fields_item,
7656 { "Item", "x411.per_recipient_fields_item",
7657 FT_NONE, BASE_NONE, NULL, 0,
7658 "MessageSubmissionEnvelope/per-recipient-fields/_item", HFILL }},
7659 { &hf_x411_submission_recipient_name,
7660 { "recipient-name", "x411.recipient_name",
7661 FT_NONE, BASE_NONE, NULL, 0,
7662 "PerRecipientMessageSubmissionFields/recipient-name", HFILL }},
7663 { &hf_x411_originator_report_request,
7664 { "originator-report-request", "x411.originator_report_request",
7665 FT_BYTES, BASE_HEX, NULL, 0,
7667 { &hf_x411_per_recipient_probe_submission_fields,
7668 { "per-recipient-fields", "x411.per_recipient_fields",
7669 FT_UINT32, BASE_DEC, NULL, 0,
7670 "ProbeSubmissionEnvelope/per-recipient-fields", HFILL }},
7671 { &hf_x411_per_recipient_probe_submission_fields_item,
7672 { "Item", "x411.per_recipient_fields_item",
7673 FT_NONE, BASE_NONE, NULL, 0,
7674 "ProbeSubmissionEnvelope/per-recipient-fields/_item", HFILL }},
7675 { &hf_x411_probe_recipient_name,
7676 { "recipient-name", "x411.recipient_name",
7677 FT_NONE, BASE_NONE, NULL, 0,
7678 "PerRecipientProbeSubmissionFields/recipient-name", HFILL }},
7679 { &hf_x411_delivered_content_type,
7680 { "content-type", "x411.content_type",
7681 FT_UINT32, BASE_DEC, VALS(x411_DeliveredContentType_vals), 0,
7682 "OtherMessageDeliveryFields/content-type", HFILL }},
7683 { &hf_x411_originator_name,
7684 { "originator-name", "x411.originator_name",
7685 FT_NONE, BASE_NONE, NULL, 0,
7686 "OtherMessageDeliveryFields/originator-name", HFILL }},
7687 { &hf_x411_delivery_flags,
7688 { "delivery-flags", "x411.delivery_flags",
7689 FT_BYTES, BASE_HEX, NULL, 0,
7690 "OtherMessageDeliveryFields/delivery-flags", HFILL }},
7691 { &hf_x411_other_recipient_names,
7692 { "other-recipient-names", "x411.other_recipient_names",
7693 FT_UINT32, BASE_DEC, NULL, 0,
7694 "OtherMessageDeliveryFields/other-recipient-names", HFILL }},
7695 { &hf_x411_this_recipient_name,
7696 { "this-recipient-name", "x411.this_recipient_name",
7697 FT_NONE, BASE_NONE, NULL, 0,
7698 "OtherMessageDeliveryFields/this-recipient-name", HFILL }},
7699 { &hf_x411_originally_intended_recipient_name,
7700 { "originally-intended-recipient-name", "x411.originally_intended_recipient_name",
7701 FT_NONE, BASE_NONE, NULL, 0,
7703 { &hf_x411_actual_recipient_name,
7704 { "actual-recipient-name", "x411.actual_recipient_name",
7705 FT_NONE, BASE_NONE, NULL, 0,
7707 { &hf_x411_delivery_report_type,
7708 { "report-type", "x411.report_type",
7709 FT_UINT32, BASE_DEC, VALS(x411_ReportType_vals), 0,
7710 "PerRecipientReportDeliveryFields/report-type", HFILL }},
7711 { &hf_x411_delivery,
7712 { "delivery", "x411.delivery",
7713 FT_NONE, BASE_NONE, NULL, 0,
7714 "ReportType/delivery", HFILL }},
7715 { &hf_x411_non_delivery,
7716 { "non-delivery", "x411.non_delivery",
7717 FT_NONE, BASE_NONE, NULL, 0,
7718 "ReportType/non-delivery", HFILL }},
7719 { &hf_x411_type_of_MTS_user,
7720 { "type-of-MTS-user", "x411.type_of_MTS_user",
7721 FT_UINT32, BASE_DEC, VALS(x411_TypeOfMTSUser_vals), 0,
7723 { &hf_x411_non_delivery_reason_code,
7724 { "non-delivery-reason-code", "x411.non_delivery_reason_code",
7725 FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryReasonCode_vals), 0,
7727 { &hf_x411_non_delivery_diagnostic_code,
7728 { "non-delivery-diagnostic-code", "x411.non_delivery_diagnostic_code",
7729 FT_UINT32, BASE_DEC, VALS(x411_NonDeliveryDiagnosticCode_vals), 0,
7731 { &hf_x411_ContentTypes_item,
7732 { "Item", "x411.ContentTypes_item",
7733 FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
7734 "ContentTypes/_item", HFILL }},
7735 { &hf_x411_built_in,
7736 { "built-in", "x411.built_in",
7737 FT_INT32, BASE_DEC, VALS(x411_BuiltInContentType_vals), 0,
7739 { &hf_x411_extended,
7740 { "extended", "x411.extended",
7741 FT_STRING, BASE_NONE, NULL, 0,
7743 { &hf_x411_OtherRecipientNames_item,
7744 { "Item", "x411.OtherRecipientNames_item",
7745 FT_NONE, BASE_NONE, NULL, 0,
7746 "OtherRecipientNames/_item", HFILL }},
7747 { &hf_x411_standard_extension,
7748 { "standard-extension", "x411.standard_extension",
7749 FT_INT32, BASE_DEC, NULL, 0,
7750 "ExtensionType/standard-extension", HFILL }},
7751 { &hf_x411_private_extension,
7752 { "private-extension", "x411.private_extension",
7753 FT_STRING, BASE_NONE, NULL, 0,
7754 "ExtensionType/private-extension", HFILL }},
7755 { &hf_x411_extension_type,
7756 { "type", "x411.type",
7757 FT_UINT32, BASE_DEC, VALS(x411_ExtensionType_vals), 0,
7758 "ExtensionField/type", HFILL }},
7759 { &hf_x411_criticality,
7760 { "criticality", "x411.criticality",
7761 FT_BYTES, BASE_HEX, NULL, 0,
7762 "ExtensionField/criticality", HFILL }},
7763 { &hf_x411_extension_value,
7764 { "value", "x411.value",
7765 FT_NONE, BASE_NONE, NULL, 0,
7766 "ExtensionField/value", HFILL }},
7767 { &hf_x411_RequestedDeliveryMethod_item,
7768 { "Item", "x411.RequestedDeliveryMethod_item",
7769 FT_UINT32, BASE_DEC, VALS(x411_RequestedDeliveryMethod_item_vals), 0,
7770 "RequestedDeliveryMethod/_item", HFILL }},
7772 { "ia5text", "x411.ia5text",
7773 FT_STRING, BASE_NONE, NULL, 0,
7774 "ContentCorrelator/ia5text", HFILL }},
7776 { "octets", "x411.octets",
7777 FT_BYTES, BASE_HEX, NULL, 0,
7778 "ContentCorrelator/octets", HFILL }},
7779 { &hf_x411_RedirectionHistory_item,
7780 { "Item", "x411.RedirectionHistory_item",
7781 FT_NONE, BASE_NONE, NULL, 0,
7782 "RedirectionHistory/_item", HFILL }},
7783 { &hf_x411_intended_recipient_name,
7784 { "intended-recipient-name", "x411.intended_recipient_name",
7785 FT_NONE, BASE_NONE, NULL, 0,
7786 "Redirection/intended-recipient-name", HFILL }},
7787 { &hf_x411_redirection_reason,
7788 { "redirection-reason", "x411.redirection_reason",
7789 FT_UINT32, BASE_DEC, VALS(x411_RedirectionReason_vals), 0,
7790 "Redirection/redirection-reason", HFILL }},
7791 { &hf_x411_intended_recipient,
7792 { "intended-recipient", "x411.intended_recipient",
7793 FT_NONE, BASE_NONE, NULL, 0,
7794 "IntendedRecipientName/intended-recipient", HFILL }},
7795 { &hf_x411_redirection_time,
7796 { "redirection-time", "x411.redirection_time",
7797 FT_STRING, BASE_NONE, NULL, 0,
7798 "IntendedRecipientName/redirection-time", HFILL }},
7799 { &hf_x411_DLExpansionHistory_item,
7800 { "Item", "x411.DLExpansionHistory_item",
7801 FT_NONE, BASE_NONE, NULL, 0,
7802 "DLExpansionHistory/_item", HFILL }},
7805 FT_NONE, BASE_NONE, NULL, 0,
7806 "DLExpansion/dl", HFILL }},
7807 { &hf_x411_dl_expansion_time,
7808 { "dl-expansion-time", "x411.dl_expansion_time",
7809 FT_STRING, BASE_NONE, NULL, 0,
7810 "DLExpansion/dl-expansion-time", HFILL }},
7811 { &hf_x411_OriginatorAndDLExpansionHistory_item,
7812 { "Item", "x411.OriginatorAndDLExpansionHistory_item",
7813 FT_NONE, BASE_NONE, NULL, 0,
7814 "OriginatorAndDLExpansionHistory/_item", HFILL }},
7815 { &hf_x411_originator_or_dl_name,
7816 { "originator-or-dl-name", "x411.originator_or_dl_name",
7817 FT_NONE, BASE_NONE, NULL, 0,
7818 "OriginatorAndDLExpansion/originator-or-dl-name", HFILL }},
7819 { &hf_x411_origination_or_expansion_time,
7820 { "origination-or-expansion-time", "x411.origination_or_expansion_time",
7821 FT_STRING, BASE_NONE, NULL, 0,
7822 "OriginatorAndDLExpansion/origination-or-expansion-time", HFILL }},
7823 { &hf_x411_report_type,
7824 { "report-type", "x411.report_type",
7825 FT_UINT32, BASE_DEC, VALS(x411_T_report_type_vals), 0,
7826 "PerRecipientReportFields/report-type", HFILL }},
7827 { &hf_x411_report_type_delivery,
7828 { "delivery", "x411.delivery",
7829 FT_NONE, BASE_NONE, NULL, 0,
7830 "PerRecipientReportFields/report-type/delivery", HFILL }},
7831 { &hf_x411_non_delivery_report,
7832 { "non-delivery", "x411.non_delivery",
7833 FT_NONE, BASE_NONE, NULL, 0,
7834 "PerRecipientReportFields/report-type/non-delivery", HFILL }},
7835 { &hf_x411_mta_directory_name,
7836 { "mta-directory-name", "x411.mta_directory_name",
7837 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
7838 "ReportingMTAName/mta-directory-name", HFILL }},
7839 { &hf_x411_ExtendedCertificates_item,
7840 { "Item", "x411.ExtendedCertificates_item",
7841 FT_UINT32, BASE_DEC, VALS(x411_ExtendedCertificate_vals), 0,
7842 "ExtendedCertificates/_item", HFILL }},
7843 { &hf_x411_directory_entry,
7844 { "directory-entry", "x411.directory_entry",
7845 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
7846 "ExtendedCertificate/directory-entry", HFILL }},
7847 { &hf_x411_certificate,
7848 { "certificate", "x411.certificate",
7849 FT_NONE, BASE_NONE, NULL, 0,
7850 "ExtendedCertificate/certificate", HFILL }},
7851 { &hf_x411_DLExemptedRecipients_item,
7852 { "Item", "x411.DLExemptedRecipients_item",
7853 FT_NONE, BASE_NONE, NULL, 0,
7854 "DLExemptedRecipients/_item", HFILL }},
7855 { &hf_x411_encryption_recipient,
7856 { "encryption-recipient", "x411.encryption_recipient",
7857 FT_NONE, BASE_NONE, NULL, 0,
7858 "CertificateSelectors/encryption-recipient", HFILL }},
7859 { &hf_x411_encryption_originator,
7860 { "encryption-originator", "x411.encryption_originator",
7861 FT_NONE, BASE_NONE, NULL, 0,
7862 "CertificateSelectors/encryption-originator", HFILL }},
7863 { &hf_x411_content_integrity_check,
7864 { "content-integrity-check", "x411.content_integrity_check",
7865 FT_NONE, BASE_NONE, NULL, 0,
7866 "CertificateSelectors/content-integrity-check", HFILL }},
7867 { &hf_x411_token_signature,
7868 { "token-signature", "x411.token_signature",
7869 FT_NONE, BASE_NONE, NULL, 0,
7870 "CertificateSelectors/token-signature", HFILL }},
7871 { &hf_x411_message_origin_authentication,
7872 { "message-origin-authentication", "x411.message_origin_authentication",
7873 FT_NONE, BASE_NONE, NULL, 0,
7874 "CertificateSelectors/message-origin-authentication", HFILL }},
7875 { &hf_x411_local_identifier,
7876 { "local-identifier", "x411.local_identifier",
7877 FT_STRING, BASE_NONE, NULL, 0,
7878 "MTSIdentifier/local-identifier", HFILL }},
7880 { "numeric", "x411.numeric",
7881 FT_STRING, BASE_NONE, NULL, 0,
7883 { &hf_x411_printable,
7884 { "printable", "x411.printable",
7885 FT_STRING, BASE_NONE, NULL, 0,
7887 { &hf_x411_built_in_standard_attributes,
7888 { "built-in-standard-attributes", "x411.built_in_standard_attributes",
7889 FT_NONE, BASE_NONE, NULL, 0,
7891 { &hf_x411_built_in_domain_defined_attributes,
7892 { "built-in-domain-defined-attributes", "x411.built_in_domain_defined_attributes",
7893 FT_UINT32, BASE_DEC, NULL, 0,
7895 { &hf_x411_extension_attributes,
7896 { "extension-attributes", "x411.extension_attributes",
7897 FT_UINT32, BASE_DEC, NULL, 0,
7899 { &hf_x411_directory_name,
7900 { "directory-name", "x411.directory_name",
7901 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
7902 "ORName/directory-name", HFILL }},
7903 { &hf_x411_network_address,
7904 { "network-address", "x411.network_address",
7905 FT_STRING, BASE_NONE, NULL, 0,
7906 "BuiltInStandardAttributes/network-address", HFILL }},
7907 { &hf_x411_terminal_identifier,
7908 { "terminal-identifier", "x411.terminal_identifier",
7909 FT_STRING, BASE_NONE, NULL, 0,
7910 "BuiltInStandardAttributes/terminal-identifier", HFILL }},
7911 { &hf_x411_private_domain_name,
7912 { "private-domain-name", "x411.private_domain_name",
7913 FT_UINT32, BASE_DEC, VALS(x411_PrivateDomainName_vals), 0,
7914 "BuiltInStandardAttributes/private-domain-name", HFILL }},
7915 { &hf_x411_organization_name,
7916 { "organization-name", "x411.organization_name",
7917 FT_STRING, BASE_NONE, NULL, 0,
7918 "BuiltInStandardAttributes/organization-name", HFILL }},
7919 { &hf_x411_numeric_user_identifier,
7920 { "numeric-user-identifier", "x411.numeric_user_identifier",
7921 FT_STRING, BASE_NONE, NULL, 0,
7922 "BuiltInStandardAttributes/numeric-user-identifier", HFILL }},
7923 { &hf_x411_personal_name,
7924 { "personal-name", "x411.personal_name",
7925 FT_NONE, BASE_NONE, NULL, 0,
7926 "BuiltInStandardAttributes/personal-name", HFILL }},
7927 { &hf_x411_organizational_unit_names,
7928 { "organizational-unit-names", "x411.organizational_unit_names",
7929 FT_UINT32, BASE_DEC, NULL, 0,
7930 "BuiltInStandardAttributes/organizational-unit-names", HFILL }},
7931 { &hf_x411_x121_dcc_code,
7932 { "x121-dcc-code", "x411.x121_dcc_code",
7933 FT_STRING, BASE_NONE, NULL, 0,
7935 { &hf_x411_iso_3166_alpha2_code,
7936 { "iso-3166-alpha2-code", "x411.iso_3166_alpha2_code",
7937 FT_STRING, BASE_NONE, NULL, 0,
7939 { &hf_x411_printable_surname,
7940 { "surname", "x411.surname",
7941 FT_STRING, BASE_NONE, NULL, 0,
7942 "PersonalName/surname", HFILL }},
7943 { &hf_x411_printable_given_name,
7944 { "given-name", "x411.given_name",
7945 FT_STRING, BASE_NONE, NULL, 0,
7946 "PersonalName/given-name", HFILL }},
7947 { &hf_x411_printable_initials,
7948 { "initials", "x411.initials",
7949 FT_STRING, BASE_NONE, NULL, 0,
7950 "PersonalName/initials", HFILL }},
7951 { &hf_x411_printable_generation_qualifier,
7952 { "generation-qualifier", "x411.generation_qualifier",
7953 FT_STRING, BASE_NONE, NULL, 0,
7954 "PersonalName/generation-qualifier", HFILL }},
7955 { &hf_x411_OrganizationalUnitNames_item,
7956 { "Item", "x411.OrganizationalUnitNames_item",
7957 FT_STRING, BASE_NONE, NULL, 0,
7958 "OrganizationalUnitNames/_item", HFILL }},
7959 { &hf_x411_BuiltInDomainDefinedAttributes_item,
7960 { "Item", "x411.BuiltInDomainDefinedAttributes_item",
7961 FT_NONE, BASE_NONE, NULL, 0,
7962 "BuiltInDomainDefinedAttributes/_item", HFILL }},
7963 { &hf_x411_printable_type,
7964 { "type", "x411.type",
7965 FT_STRING, BASE_NONE, NULL, 0,
7966 "BuiltInDomainDefinedAttribute/type", HFILL }},
7967 { &hf_x411_printable_value,
7968 { "value", "x411.value",
7969 FT_STRING, BASE_NONE, NULL, 0,
7970 "BuiltInDomainDefinedAttribute/value", HFILL }},
7971 { &hf_x411_ExtensionAttributes_item,
7972 { "Item", "x411.ExtensionAttributes_item",
7973 FT_NONE, BASE_NONE, NULL, 0,
7974 "ExtensionAttributes/_item", HFILL }},
7975 { &hf_x411_extension_attribute_type,
7976 { "extension-attribute-type", "x411.extension_attribute_type",
7977 FT_INT32, BASE_DEC, NULL, 0,
7978 "ExtensionAttribute/extension-attribute-type", HFILL }},
7979 { &hf_x411_extension_attribute_value,
7980 { "extension-attribute-value", "x411.extension_attribute_value",
7981 FT_NONE, BASE_NONE, NULL, 0,
7982 "ExtensionAttribute/extension-attribute-value", HFILL }},
7983 { &hf_x411_teletex_surname,
7984 { "surname", "x411.surname",
7985 FT_STRING, BASE_NONE, NULL, 0,
7986 "TeletexPersonalName/surname", HFILL }},
7987 { &hf_x411_teletex_given_name,
7988 { "given-name", "x411.given_name",
7989 FT_STRING, BASE_NONE, NULL, 0,
7990 "TeletexPersonalName/given-name", HFILL }},
7991 { &hf_x411_teletex_initials,
7992 { "initials", "x411.initials",
7993 FT_STRING, BASE_NONE, NULL, 0,
7994 "TeletexPersonalName/initials", HFILL }},
7995 { &hf_x411_teletex_generation_qualifier,
7996 { "generation-qualifier", "x411.generation_qualifier",
7997 FT_STRING, BASE_NONE, NULL, 0,
7998 "TeletexPersonalName/generation-qualifier", HFILL }},
7999 { &hf_x411_universal_surname,
8000 { "surname", "x411.surname",
8001 FT_NONE, BASE_NONE, NULL, 0,
8002 "UniversalPersonalName/surname", HFILL }},
8003 { &hf_x411_universal_given_name,
8004 { "given-name", "x411.given_name",
8005 FT_NONE, BASE_NONE, NULL, 0,
8006 "UniversalPersonalName/given-name", HFILL }},
8007 { &hf_x411_universal_initials,
8008 { "initials", "x411.initials",
8009 FT_NONE, BASE_NONE, NULL, 0,
8010 "UniversalPersonalName/initials", HFILL }},
8011 { &hf_x411_universal_generation_qualifier,
8012 { "generation-qualifier", "x411.generation_qualifier",
8013 FT_NONE, BASE_NONE, NULL, 0,
8014 "UniversalPersonalName/generation-qualifier", HFILL }},
8015 { &hf_x411_TeletexOrganizationalUnitNames_item,
8016 { "Item", "x411.TeletexOrganizationalUnitNames_item",
8017 FT_STRING, BASE_NONE, NULL, 0,
8018 "TeletexOrganizationalUnitNames/_item", HFILL }},
8019 { &hf_x411_UniversalOrganizationalUnitNames_item,
8020 { "Item", "x411.UniversalOrganizationalUnitNames_item",
8021 FT_NONE, BASE_NONE, NULL, 0,
8022 "UniversalOrganizationalUnitNames/_item", HFILL }},
8023 { &hf_x411_character_encoding,
8024 { "character-encoding", "x411.character_encoding",
8025 FT_UINT32, BASE_DEC, VALS(x411_T_character_encoding_vals), 0,
8026 "UniversalOrBMPString/character-encoding", HFILL }},
8027 { &hf_x411_two_octets,
8028 { "two-octets", "x411.two_octets",
8029 FT_STRING, BASE_NONE, NULL, 0,
8030 "UniversalOrBMPString/character-encoding/two-octets", HFILL }},
8031 { &hf_x411_four_octets,
8032 { "four-octets", "x411.four_octets",
8033 FT_STRING, BASE_NONE, NULL, 0,
8034 "UniversalOrBMPString/character-encoding/four-octets", HFILL }},
8035 { &hf_x411_iso_639_language_code,
8036 { "iso-639-language-code", "x411.iso_639_language_code",
8037 FT_STRING, BASE_NONE, NULL, 0,
8038 "UniversalOrBMPString/iso-639-language-code", HFILL }},
8039 { &hf_x411_numeric_code,
8040 { "numeric-code", "x411.numeric_code",
8041 FT_STRING, BASE_NONE, NULL, 0,
8042 "PostalCode/numeric-code", HFILL }},
8043 { &hf_x411_printable_code,
8044 { "printable-code", "x411.printable_code",
8045 FT_STRING, BASE_NONE, NULL, 0,
8046 "PostalCode/printable-code", HFILL }},
8047 { &hf_x411_printable_address,
8048 { "printable-address", "x411.printable_address",
8049 FT_UINT32, BASE_DEC, NULL, 0,
8050 "UnformattedPostalAddress/printable-address", HFILL }},
8051 { &hf_x411_printable_address_item,
8052 { "Item", "x411.printable_address_item",
8053 FT_STRING, BASE_NONE, NULL, 0,
8054 "UnformattedPostalAddress/printable-address/_item", HFILL }},
8055 { &hf_x411_teletex_string,
8056 { "teletex-string", "x411.teletex_string",
8057 FT_STRING, BASE_NONE, NULL, 0,
8059 { &hf_x411_printable_string,
8060 { "printable-string", "x411.printable_string",
8061 FT_STRING, BASE_NONE, NULL, 0,
8062 "PDSParameter/printable-string", HFILL }},
8063 { &hf_x411_e163_4_address,
8064 { "e163-4-address", "x411.e163_4_address",
8065 FT_NONE, BASE_NONE, NULL, 0,
8066 "ExtendedNetworkAddress/e163-4-address", HFILL }},
8068 { "number", "x411.number",
8069 FT_STRING, BASE_NONE, NULL, 0,
8070 "ExtendedNetworkAddress/e163-4-address/number", HFILL }},
8071 { &hf_x411_sub_address,
8072 { "sub-address", "x411.sub_address",
8073 FT_STRING, BASE_NONE, NULL, 0,
8074 "ExtendedNetworkAddress/e163-4-address/sub-address", HFILL }},
8075 { &hf_x411_psap_address,
8076 { "psap-address", "x411.psap_address",
8077 FT_NONE, BASE_NONE, NULL, 0,
8078 "ExtendedNetworkAddress/psap-address", HFILL }},
8079 { &hf_x411_TeletexDomainDefinedAttributes_item,
8080 { "Item", "x411.TeletexDomainDefinedAttributes_item",
8081 FT_NONE, BASE_NONE, NULL, 0,
8082 "TeletexDomainDefinedAttributes/_item", HFILL }},
8084 { "type", "x411.type",
8085 FT_STRING, BASE_NONE, NULL, 0,
8086 "TeletexDomainDefinedAttribute/type", HFILL }},
8087 { &hf_x411_teletex_value,
8088 { "value", "x411.value",
8089 FT_STRING, BASE_NONE, NULL, 0,
8090 "TeletexDomainDefinedAttribute/value", HFILL }},
8091 { &hf_x411_UniversalDomainDefinedAttributes_item,
8092 { "Item", "x411.UniversalDomainDefinedAttributes_item",
8093 FT_NONE, BASE_NONE, NULL, 0,
8094 "UniversalDomainDefinedAttributes/_item", HFILL }},
8095 { &hf_x411_universal_type,
8096 { "type", "x411.type",
8097 FT_NONE, BASE_NONE, NULL, 0,
8098 "UniversalDomainDefinedAttribute/type", HFILL }},
8099 { &hf_x411_universal_value,
8100 { "value", "x411.value",
8101 FT_NONE, BASE_NONE, NULL, 0,
8102 "UniversalDomainDefinedAttribute/value", HFILL }},
8103 { &hf_x411_built_in_encoded_information_types,
8104 { "built-in-encoded-information-types", "x411.built_in_encoded_information_types",
8105 FT_BYTES, BASE_HEX, NULL, 0,
8106 "EncodedInformationTypes/built-in-encoded-information-types", HFILL }},
8107 { &hf_x411_g3_facsimile,
8108 { "g3-facsimile", "x411.g3_facsimile",
8109 FT_BYTES, BASE_HEX, NULL, 0,
8112 { "teletex", "x411.teletex",
8113 FT_NONE, BASE_NONE, NULL, 0,
8115 { &hf_x411_extended_encoded_information_types,
8116 { "extended-encoded-information-types", "x411.extended_encoded_information_types",
8117 FT_UINT32, BASE_DEC, NULL, 0,
8118 "EncodedInformationTypes/extended-encoded-information-types", HFILL }},
8119 { &hf_x411_ExtendedEncodedInformationTypes_item,
8120 { "Item", "x411.ExtendedEncodedInformationTypes_item",
8121 FT_STRING, BASE_NONE, NULL, 0,
8122 "ExtendedEncodedInformationTypes/_item", HFILL }},
8123 { &hf_x411_graphic_character_sets,
8124 { "graphic-character-sets", "x411.graphic_character_sets",
8125 FT_STRING, BASE_NONE, NULL, 0,
8126 "TeletexNonBasicParameters/graphic-character-sets", HFILL }},
8127 { &hf_x411_control_character_sets,
8128 { "control-character-sets", "x411.control_character_sets",
8129 FT_STRING, BASE_NONE, NULL, 0,
8130 "TeletexNonBasicParameters/control-character-sets", HFILL }},
8131 { &hf_x411_page_formats,
8132 { "page-formats", "x411.page_formats",
8133 FT_BYTES, BASE_HEX, NULL, 0,
8134 "TeletexNonBasicParameters/page-formats", HFILL }},
8135 { &hf_x411_miscellaneous_terminal_capabilities,
8136 { "miscellaneous-terminal-capabilities", "x411.miscellaneous_terminal_capabilities",
8137 FT_STRING, BASE_NONE, NULL, 0,
8138 "TeletexNonBasicParameters/miscellaneous-terminal-capabilities", HFILL }},
8139 { &hf_x411_private_use,
8140 { "private-use", "x411.private_use",
8141 FT_BYTES, BASE_HEX, NULL, 0,
8142 "TeletexNonBasicParameters/private-use", HFILL }},
8143 { &hf_x411_security_policy_identifier,
8144 { "security-policy-identifier", "x411.security_policy_identifier",
8145 FT_STRING, BASE_NONE, NULL, 0,
8146 "SecurityLabel/security-policy-identifier", HFILL }},
8147 { &hf_x411_security_classification,
8148 { "security-classification", "x411.security_classification",
8149 FT_UINT32, BASE_DEC, VALS(x411_SecurityClassification_vals), 0,
8150 "SecurityLabel/security-classification", HFILL }},
8151 { &hf_x411_privacy_mark,
8152 { "privacy-mark", "x411.privacy_mark",
8153 FT_STRING, BASE_NONE, NULL, 0,
8154 "SecurityLabel/privacy-mark", HFILL }},
8155 { &hf_x411_security_categories,
8156 { "security-categories", "x411.security_categories",
8157 FT_UINT32, BASE_DEC, NULL, 0,
8158 "SecurityLabel/security-categories", HFILL }},
8159 { &hf_x411_SecurityCategories_item,
8160 { "Item", "x411.SecurityCategories_item",
8161 FT_NONE, BASE_NONE, NULL, 0,
8162 "SecurityCategories/_item", HFILL }},
8163 { &hf_x411_category_type,
8164 { "type", "x411.type",
8165 FT_STRING, BASE_NONE, NULL, 0,
8166 "SecurityCategory/type", HFILL }},
8167 { &hf_x411_category_value,
8168 { "value", "x411.value",
8169 FT_NONE, BASE_NONE, NULL, 0,
8170 "SecurityCategory/value", HFILL }},
8171 { &hf_x411_PerRecipientIndicators_responsibility,
8172 { "responsibility", "x411.responsibility",
8173 FT_BOOLEAN, 8, NULL, 0x80,
8175 { &hf_x411_PerRecipientIndicators_originating_MTA_report,
8176 { "originating-MTA-report", "x411.originating-MTA-report",
8177 FT_BOOLEAN, 8, NULL, 0x40,
8179 { &hf_x411_PerRecipientIndicators_originating_MTA_non_delivery_report,
8180 { "originating-MTA-non-delivery-report", "x411.originating-MTA-non-delivery-report",
8181 FT_BOOLEAN, 8, NULL, 0x20,
8183 { &hf_x411_PerRecipientIndicators_originator_report,
8184 { "originator-report", "x411.originator-report",
8185 FT_BOOLEAN, 8, NULL, 0x10,
8187 { &hf_x411_PerRecipientIndicators_originator_non_delivery_report,
8188 { "originator-non-delivery-report", "x411.originator-non-delivery-report",
8189 FT_BOOLEAN, 8, NULL, 0x08,
8191 { &hf_x411_PerRecipientIndicators_reserved_5,
8192 { "reserved-5", "x411.reserved-5",
8193 FT_BOOLEAN, 8, NULL, 0x04,
8195 { &hf_x411_PerRecipientIndicators_reserved_6,
8196 { "reserved-6", "x411.reserved-6",
8197 FT_BOOLEAN, 8, NULL, 0x02,
8199 { &hf_x411_PerRecipientIndicators_reserved_7,
8200 { "reserved-7", "x411.reserved-7",
8201 FT_BOOLEAN, 8, NULL, 0x01,
8203 { &hf_x411_OtherActions_redirected,
8204 { "redirected", "x411.redirected",
8205 FT_BOOLEAN, 8, NULL, 0x80,
8207 { &hf_x411_OtherActions_dl_operation,
8208 { "dl-operation", "x411.dl-operation",
8209 FT_BOOLEAN, 8, NULL, 0x40,
8211 { &hf_x411_Operations_probe_submission_or_report_delivery,
8212 { "probe-submission-or-report-delivery", "x411.probe-submission-or-report-delivery",
8213 FT_BOOLEAN, 8, NULL, 0x80,
8215 { &hf_x411_Operations_message_submission_or_message_delivery,
8216 { "message-submission-or-message-delivery", "x411.message-submission-or-message-delivery",
8217 FT_BOOLEAN, 8, NULL, 0x40,
8219 { &hf_x411_WaitingMessages_long_content,
8220 { "long-content", "x411.long-content",
8221 FT_BOOLEAN, 8, NULL, 0x80,
8223 { &hf_x411_WaitingMessages_low_priority,
8224 { "low-priority", "x411.low-priority",
8225 FT_BOOLEAN, 8, NULL, 0x40,
8227 { &hf_x411_WaitingMessages_other_security_labels,
8228 { "other-security-labels", "x411.other-security-labels",
8229 FT_BOOLEAN, 8, NULL, 0x20,
8231 { &hf_x411_T_source_type_originated_by,
8232 { "originated-by", "x411.originated-by",
8233 FT_BOOLEAN, 8, NULL, 0x80,
8235 { &hf_x411_T_source_type_redirected_by,
8236 { "redirected-by", "x411.redirected-by",
8237 FT_BOOLEAN, 8, NULL, 0x40,
8239 { &hf_x411_T_source_type_dl_expanded_by,
8240 { "dl-expanded-by", "x411.dl-expanded-by",
8241 FT_BOOLEAN, 8, NULL, 0x20,
8243 { &hf_x411_T_standard_parameters_user_name,
8244 { "user-name", "x411.user-name",
8245 FT_BOOLEAN, 8, NULL, 0x80,
8247 { &hf_x411_T_standard_parameters_user_address,
8248 { "user-address", "x411.user-address",
8249 FT_BOOLEAN, 8, NULL, 0x40,
8251 { &hf_x411_T_standard_parameters_deliverable_class,
8252 { "deliverable-class", "x411.deliverable-class",
8253 FT_BOOLEAN, 8, NULL, 0x20,
8255 { &hf_x411_T_standard_parameters_default_delivery_controls,
8256 { "default-delivery-controls", "x411.default-delivery-controls",
8257 FT_BOOLEAN, 8, NULL, 0x10,
8259 { &hf_x411_T_standard_parameters_redirections,
8260 { "redirections", "x411.redirections",
8261 FT_BOOLEAN, 8, NULL, 0x08,
8263 { &hf_x411_T_standard_parameters_restricted_delivery,
8264 { "restricted-delivery", "x411.restricted-delivery",
8265 FT_BOOLEAN, 8, NULL, 0x04,
8267 { &hf_x411_PerMessageIndicators_disclosure_of_other_recipients,
8268 { "disclosure-of-other-recipients", "x411.disclosure-of-other-recipients",
8269 FT_BOOLEAN, 8, NULL, 0x80,
8271 { &hf_x411_PerMessageIndicators_implicit_conversion_prohibited,
8272 { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
8273 FT_BOOLEAN, 8, NULL, 0x40,
8275 { &hf_x411_PerMessageIndicators_alternate_recipient_allowed,
8276 { "alternate-recipient-allowed", "x411.alternate-recipient-allowed",
8277 FT_BOOLEAN, 8, NULL, 0x20,
8279 { &hf_x411_PerMessageIndicators_content_return_request,
8280 { "content-return-request", "x411.content-return-request",
8281 FT_BOOLEAN, 8, NULL, 0x10,
8283 { &hf_x411_PerMessageIndicators_reserved,
8284 { "reserved", "x411.reserved",
8285 FT_BOOLEAN, 8, NULL, 0x08,
8287 { &hf_x411_PerMessageIndicators_bit_5,
8288 { "bit-5", "x411.bit-5",
8289 FT_BOOLEAN, 8, NULL, 0x04,
8291 { &hf_x411_PerMessageIndicators_bit_6,
8292 { "bit-6", "x411.bit-6",
8293 FT_BOOLEAN, 8, NULL, 0x02,
8295 { &hf_x411_PerMessageIndicators_service_message,
8296 { "service-message", "x411.service-message",
8297 FT_BOOLEAN, 8, NULL, 0x01,
8299 { &hf_x411_OriginatorReportRequest_report,
8300 { "report", "x411.report",
8301 FT_BOOLEAN, 8, NULL, 0x10,
8303 { &hf_x411_OriginatorReportRequest_non_delivery_report,
8304 { "non-delivery-report", "x411.non-delivery-report",
8305 FT_BOOLEAN, 8, NULL, 0x08,
8307 { &hf_x411_DeliveryFlags_implicit_conversion_prohibited,
8308 { "implicit-conversion-prohibited", "x411.implicit-conversion-prohibited",
8309 FT_BOOLEAN, 8, NULL, 0x40,
8311 { &hf_x411_Criticality_for_submission,
8312 { "for-submission", "x411.for-submission",
8313 FT_BOOLEAN, 8, NULL, 0x80,
8315 { &hf_x411_Criticality_for_transfer,
8316 { "for-transfer", "x411.for-transfer",
8317 FT_BOOLEAN, 8, NULL, 0x40,
8319 { &hf_x411_Criticality_for_delivery,
8320 { "for-delivery", "x411.for-delivery",
8321 FT_BOOLEAN, 8, NULL, 0x20,
8323 { &hf_x411_PhysicalDeliveryModes_ordinary_mail,
8324 { "ordinary-mail", "x411.ordinary-mail",
8325 FT_BOOLEAN, 8, NULL, 0x80,
8327 { &hf_x411_PhysicalDeliveryModes_special_delivery,
8328 { "special-delivery", "x411.special-delivery",
8329 FT_BOOLEAN, 8, NULL, 0x40,
8331 { &hf_x411_PhysicalDeliveryModes_express_mail,
8332 { "express-mail", "x411.express-mail",
8333 FT_BOOLEAN, 8, NULL, 0x20,
8335 { &hf_x411_PhysicalDeliveryModes_counter_collection,
8336 { "counter-collection", "x411.counter-collection",
8337 FT_BOOLEAN, 8, NULL, 0x10,
8339 { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telephone_advice,
8340 { "counter-collection-with-telephone-advice", "x411.counter-collection-with-telephone-advice",
8341 FT_BOOLEAN, 8, NULL, 0x08,
8343 { &hf_x411_PhysicalDeliveryModes_counter_collection_with_telex_advice,
8344 { "counter-collection-with-telex-advice", "x411.counter-collection-with-telex-advice",
8345 FT_BOOLEAN, 8, NULL, 0x04,
8347 { &hf_x411_PhysicalDeliveryModes_counter_collection_with_teletex_advice,
8348 { "counter-collection-with-teletex-advice", "x411.counter-collection-with-teletex-advice",
8349 FT_BOOLEAN, 8, NULL, 0x02,
8351 { &hf_x411_PhysicalDeliveryModes_bureau_fax_delivery,
8352 { "bureau-fax-delivery", "x411.bureau-fax-delivery",
8353 FT_BOOLEAN, 8, NULL, 0x01,
8355 { &hf_x411_BuiltInEncodedInformationTypes_unknown,
8356 { "unknown", "x411.unknown",
8357 FT_BOOLEAN, 8, NULL, 0x80,
8359 { &hf_x411_BuiltInEncodedInformationTypes_ia5_text,
8360 { "ia5-text", "x411.ia5-text",
8361 FT_BOOLEAN, 8, NULL, 0x20,
8363 { &hf_x411_BuiltInEncodedInformationTypes_g3_facsimile,
8364 { "g3-facsimile", "x411.g3-facsimile",
8365 FT_BOOLEAN, 8, NULL, 0x10,
8367 { &hf_x411_BuiltInEncodedInformationTypes_g4_class_1,
8368 { "g4-class-1", "x411.g4-class-1",
8369 FT_BOOLEAN, 8, NULL, 0x08,
8371 { &hf_x411_BuiltInEncodedInformationTypes_teletex,
8372 { "teletex", "x411.teletex",
8373 FT_BOOLEAN, 8, NULL, 0x04,
8375 { &hf_x411_BuiltInEncodedInformationTypes_videotex,
8376 { "videotex", "x411.videotex",
8377 FT_BOOLEAN, 8, NULL, 0x02,
8379 { &hf_x411_BuiltInEncodedInformationTypes_voice,
8380 { "voice", "x411.voice",
8381 FT_BOOLEAN, 8, NULL, 0x01,
8383 { &hf_x411_BuiltInEncodedInformationTypes_sfd,
8384 { "sfd", "x411.sfd",
8385 FT_BOOLEAN, 8, NULL, 0x80,
8387 { &hf_x411_BuiltInEncodedInformationTypes_mixed_mode,
8388 { "mixed-mode", "x411.mixed-mode",
8389 FT_BOOLEAN, 8, NULL, 0x40,
8391 { &hf_x411_G3FacsimileNonBasicParameters_two_dimensional,
8392 { "two-dimensional", "x411.two-dimensional",
8393 FT_BOOLEAN, 8, NULL, 0x80,
8395 { &hf_x411_G3FacsimileNonBasicParameters_fine_resolution,
8396 { "fine-resolution", "x411.fine-resolution",
8397 FT_BOOLEAN, 8, NULL, 0x40,
8399 { &hf_x411_G3FacsimileNonBasicParameters_unlimited_length,
8400 { "unlimited-length", "x411.unlimited-length",
8401 FT_BOOLEAN, 8, NULL, 0x08,
8403 { &hf_x411_G3FacsimileNonBasicParameters_b4_length,
8404 { "b4-length", "x411.b4-length",
8405 FT_BOOLEAN, 8, NULL, 0x04,
8407 { &hf_x411_G3FacsimileNonBasicParameters_a3_width,
8408 { "a3-width", "x411.a3-width",
8409 FT_BOOLEAN, 8, NULL, 0x02,
8411 { &hf_x411_G3FacsimileNonBasicParameters_b4_width,
8412 { "b4-width", "x411.b4-width",
8413 FT_BOOLEAN, 8, NULL, 0x01,
8415 { &hf_x411_G3FacsimileNonBasicParameters_t6_coding,
8416 { "t6-coding", "x411.t6-coding",
8417 FT_BOOLEAN, 8, NULL, 0x40,
8419 { &hf_x411_G3FacsimileNonBasicParameters_uncompressed,
8420 { "uncompressed", "x411.uncompressed",
8421 FT_BOOLEAN, 8, NULL, 0x02,
8423 { &hf_x411_G3FacsimileNonBasicParameters_width_middle_864_of_1728,
8424 { "width-middle-864-of-1728", "x411.width-middle-864-of-1728",
8425 FT_BOOLEAN, 8, NULL, 0x04,
8427 { &hf_x411_G3FacsimileNonBasicParameters_width_middle_1216_of_1728,
8428 { "width-middle-1216-of-1728", "x411.width-middle-1216-of-1728",
8429 FT_BOOLEAN, 8, NULL, 0x02,
8431 { &hf_x411_G3FacsimileNonBasicParameters_resolution_type,
8432 { "resolution-type", "x411.resolution-type",
8433 FT_BOOLEAN, 8, NULL, 0x08,
8435 { &hf_x411_G3FacsimileNonBasicParameters_resolution_400x400,
8436 { "resolution-400x400", "x411.resolution-400x400",
8437 FT_BOOLEAN, 8, NULL, 0x04,
8439 { &hf_x411_G3FacsimileNonBasicParameters_resolution_300x300,
8440 { "resolution-300x300", "x411.resolution-300x300",
8441 FT_BOOLEAN, 8, NULL, 0x02,
8443 { &hf_x411_G3FacsimileNonBasicParameters_resolution_8x15,
8444 { "resolution-8x15", "x411.resolution-8x15",
8445 FT_BOOLEAN, 8, NULL, 0x01,
8447 { &hf_x411_G3FacsimileNonBasicParameters_edi,
8448 { "edi", "x411.edi",
8449 FT_BOOLEAN, 8, NULL, 0x40,
8451 { &hf_x411_G3FacsimileNonBasicParameters_dtm,
8452 { "dtm", "x411.dtm",
8453 FT_BOOLEAN, 8, NULL, 0x20,
8455 { &hf_x411_G3FacsimileNonBasicParameters_bft,
8456 { "bft", "x411.bft",
8457 FT_BOOLEAN, 8, NULL, 0x10,
8459 { &hf_x411_G3FacsimileNonBasicParameters_mixed_mode,
8460 { "mixed-mode", "x411.mixed-mode",
8461 FT_BOOLEAN, 8, NULL, 0x20,
8463 { &hf_x411_G3FacsimileNonBasicParameters_character_mode,
8464 { "character-mode", "x411.character-mode",
8465 FT_BOOLEAN, 8, NULL, 0x08,
8467 { &hf_x411_G3FacsimileNonBasicParameters_twelve_bits,
8468 { "twelve-bits", "x411.twelve-bits",
8469 FT_BOOLEAN, 8, NULL, 0x40,
8471 { &hf_x411_G3FacsimileNonBasicParameters_preferred_huffmann,
8472 { "preferred-huffmann", "x411.preferred-huffmann",
8473 FT_BOOLEAN, 8, NULL, 0x20,
8475 { &hf_x411_G3FacsimileNonBasicParameters_full_colour,
8476 { "full-colour", "x411.full-colour",
8477 FT_BOOLEAN, 8, NULL, 0x10,
8479 { &hf_x411_G3FacsimileNonBasicParameters_jpeg,
8480 { "jpeg", "x411.jpeg",
8481 FT_BOOLEAN, 8, NULL, 0x08,
8483 { &hf_x411_G3FacsimileNonBasicParameters_processable_mode_26,
8484 { "processable-mode-26", "x411.processable-mode-26",
8485 FT_BOOLEAN, 8, NULL, 0x01,
8488 /*--- End of included file: packet-x411-hfarr.c ---*/
8492 /* List of subtrees */
8493 static gint *ett[] = {
8496 /*--- Included file: packet-x411-ettarr.c ---*/
8498 &ett_x411_MTABindArgument,
8499 &ett_x411_AuthenticatedArgument,
8500 &ett_x411_MTABindResult,
8501 &ett_x411_AuthenticatedResult,
8505 &ett_x411_MessageTransferEnvelope,
8506 &ett_x411_SEQUENCE_OF_PerDomainBilateralInformation,
8507 &ett_x411_SET_OF_ExtensionField,
8508 &ett_x411_SEQUENCE_OF_PerRecipientMessageTransferFields,
8509 &ett_x411_PerRecipientMessageTransferFields,
8510 &ett_x411_ProbeTransferEnvelope,
8511 &ett_x411_SEQUENCE_OF_PerRecipientProbeTransferFields,
8512 &ett_x411_PerRecipientProbeTransferFields,
8513 &ett_x411_ReportTransferEnvelope,
8514 &ett_x411_ReportTransferContent,
8515 &ett_x411_SEQUENCE_OF_PerRecipientReportTransferFields,
8516 &ett_x411_PerRecipientReportTransferFields,
8517 &ett_x411_PerDomainBilateralInformation,
8519 &ett_x411_T_private_domain,
8520 &ett_x411_PerRecipientIndicators,
8521 &ett_x411_LastTraceInformation,
8522 &ett_x411_InternalTraceInformation,
8523 &ett_x411_InternalTraceInformationElement,
8524 &ett_x411_MTASuppliedInformation,
8525 &ett_x411_T_attempted,
8526 &ett_x411_TraceInformation,
8527 &ett_x411_TraceInformationElement,
8528 &ett_x411_DomainSuppliedInformation,
8529 &ett_x411_OtherActions,
8530 &ett_x411_MTSBindArgument,
8531 &ett_x411_MTSBindResult,
8532 &ett_x411_ObjectName,
8533 &ett_x411_MessagesWaiting,
8534 &ett_x411_DeliveryQueue,
8535 &ett_x411_Credentials,
8537 &ett_x411_SecurityContext,
8538 &ett_x411_MessageSubmissionArgument,
8539 &ett_x411_MessageSubmissionResult,
8540 &ett_x411_ProbeSubmissionResult,
8541 &ett_x411_ImproperlySpecifiedRecipients,
8543 &ett_x411_SET_OF_ContentType,
8544 &ett_x411_Operations,
8545 &ett_x411_WaitingMessages,
8546 &ett_x411_MessageDeliveryArgument,
8547 &ett_x411_MessageDeliveryResult,
8548 &ett_x411_ReportDeliveryArgument,
8549 &ett_x411_SEQUENCE_OF_PerRecipientReportDeliveryFields,
8550 &ett_x411_ReportDeliveryResult,
8551 &ett_x411_DeliveryControlArgument,
8552 &ett_x411_DeliveryControlResult,
8553 &ett_x411_RefusedOperation,
8554 &ett_x411_T_refused_argument,
8556 &ett_x411_RegisterArgument,
8557 &ett_x411_SET_OF_DeliverableClass,
8558 &ett_x411_RegisterResult,
8559 &ett_x411_T_non_empty_result,
8560 &ett_x411_ChangeCredentialsArgument,
8561 &ett_x411_UserAddress,
8563 &ett_x411_Redirections,
8564 &ett_x411_RecipientRedirection,
8565 &ett_x411_SET_OF_RedirectionClass,
8566 &ett_x411_MessageClass,
8567 &ett_x411_SET_OF_Priority,
8568 &ett_x411_SEQUENCE_OF_Restriction,
8569 &ett_x411_EncodedInformationTypesConstraints,
8570 &ett_x411_RestrictedDelivery,
8571 &ett_x411_Restriction,
8572 &ett_x411_T_source_type,
8573 &ett_x411_ExactOrPattern,
8574 &ett_x411_RegistrationTypes,
8575 &ett_x411_T_standard_parameters,
8576 &ett_x411_T_extensions,
8577 &ett_x411_MessageSubmissionEnvelope,
8578 &ett_x411_SEQUENCE_OF_PerRecipientMessageSubmissionFields,
8579 &ett_x411_PerRecipientMessageSubmissionFields,
8580 &ett_x411_ProbeSubmissionEnvelope,
8581 &ett_x411_SEQUENCE_OF_PerRecipientProbeSubmissionFields,
8582 &ett_x411_PerRecipientProbeSubmissionFields,
8583 &ett_x411_MessageDeliveryEnvelope,
8584 &ett_x411_OtherMessageDeliveryFields,
8585 &ett_x411_ReportDeliveryEnvelope,
8586 &ett_x411_PerRecipientReportDeliveryFields,
8587 &ett_x411_ReportType,
8588 &ett_x411_DeliveryReport,
8589 &ett_x411_NonDeliveryReport,
8590 &ett_x411_ContentTypes,
8591 &ett_x411_ContentType,
8592 &ett_x411_DeliveredContentType,
8593 &ett_x411_PerMessageIndicators,
8594 &ett_x411_OriginatorReportRequest,
8595 &ett_x411_DeliveryFlags,
8596 &ett_x411_OtherRecipientNames,
8597 &ett_x411_ExtensionType,
8598 &ett_x411_Criticality,
8599 &ett_x411_ExtensionField,
8600 &ett_x411_RequestedDeliveryMethod,
8601 &ett_x411_PhysicalDeliveryModes,
8602 &ett_x411_ContentCorrelator,
8603 &ett_x411_RedirectionHistory,
8604 &ett_x411_Redirection,
8605 &ett_x411_IntendedRecipientName,
8606 &ett_x411_DLExpansionHistory,
8607 &ett_x411_DLExpansion,
8608 &ett_x411_OriginatorAndDLExpansionHistory,
8609 &ett_x411_OriginatorAndDLExpansion,
8610 &ett_x411_PerRecipientReportFields,
8611 &ett_x411_T_report_type,
8612 &ett_x411_PerRecipientDeliveryReportFields,
8613 &ett_x411_PerRecipientNonDeliveryReportFields,
8614 &ett_x411_ReportingMTAName,
8615 &ett_x411_ExtendedCertificates,
8616 &ett_x411_ExtendedCertificate,
8617 &ett_x411_DLExemptedRecipients,
8618 &ett_x411_CertificateSelectors,
8619 &ett_x411_MTSIdentifier,
8620 &ett_x411_GlobalDomainIdentifier,
8621 &ett_x411_PrivateDomainIdentifier,
8623 &ett_x411_ORAddress,
8624 &ett_x411_BuiltInStandardAttributes,
8625 &ett_x411_CountryName,
8626 &ett_x411_AdministrationDomainName,
8627 &ett_x411_PrivateDomainName,
8628 &ett_x411_PersonalName,
8629 &ett_x411_OrganizationalUnitNames,
8630 &ett_x411_BuiltInDomainDefinedAttributes,
8631 &ett_x411_BuiltInDomainDefinedAttribute,
8632 &ett_x411_ExtensionAttributes,
8633 &ett_x411_ExtensionAttribute,
8634 &ett_x411_TeletexPersonalName,
8635 &ett_x411_UniversalPersonalName,
8636 &ett_x411_TeletexOrganizationalUnitNames,
8637 &ett_x411_UniversalOrganizationalUnitNames,
8638 &ett_x411_UniversalOrBMPString,
8639 &ett_x411_T_character_encoding,
8640 &ett_x411_PhysicalDeliveryCountryName,
8641 &ett_x411_PostalCode,
8642 &ett_x411_UnformattedPostalAddress,
8643 &ett_x411_T_printable_address,
8644 &ett_x411_PDSParameter,
8645 &ett_x411_ExtendedNetworkAddress,
8646 &ett_x411_T_e163_4_address,
8647 &ett_x411_TeletexDomainDefinedAttributes,
8648 &ett_x411_TeletexDomainDefinedAttribute,
8649 &ett_x411_UniversalDomainDefinedAttributes,
8650 &ett_x411_UniversalDomainDefinedAttribute,
8651 &ett_x411_EncodedInformationTypes,
8652 &ett_x411_BuiltInEncodedInformationTypes,
8653 &ett_x411_ExtendedEncodedInformationTypes,
8654 &ett_x411_NonBasicParameters,
8655 &ett_x411_G3FacsimileNonBasicParameters,
8656 &ett_x411_TeletexNonBasicParameters,
8657 &ett_x411_SecurityLabel,
8658 &ett_x411_SecurityCategories,
8659 &ett_x411_SecurityCategory,
8661 /*--- End of included file: packet-x411-ettarr.c ---*/
8665 /* Register protocol */
8666 proto_x411 = proto_register_protocol(PNAME, PSNAME, PFNAME);
8667 register_dissector("x411", dissect_x411, proto_x411);
8668 /* Register fields and subtrees */
8669 proto_register_field_array(proto_x411, hf, array_length(hf));
8670 proto_register_subtree_array(ett, array_length(ett));
8675 /*--- proto_reg_handoff_x411 --- */
8676 void proto_reg_handoff_x411(void) {
8677 dissector_handle_t handle = NULL;
8680 /*--- Included file: packet-x411-dis-tab.c ---*/
8682 register_ber_oid_dissector("x411.extension.1", dissect_RecipientReassignmentProhibited_PDU, proto_x411, "recipient-reassignment-prohibited");
8683 register_ber_oid_dissector("x411.extension.2", dissect_MTSOriginatorRequestedAlternateRecipient_PDU, proto_x411, "originator-requested-alternate-recipient");
8684 register_ber_oid_dissector("x411.extension.3", dissect_DLExpansionProhibited_PDU, proto_x411, "dl-expansion-prohibited");
8685 register_ber_oid_dissector("x411.extension.4", dissect_ConversionWithLossProhibited_PDU, proto_x411, "conversion-with-loss-prohibited");
8686 register_ber_oid_dissector("x411.extension.5", dissect_LatestDeliveryTime_PDU, proto_x411, "latest-delivery-time");
8687 register_ber_oid_dissector("x411.extension.6", dissect_RequestedDeliveryMethod_PDU, proto_x411, "requested-delivery-method");
8688 register_ber_oid_dissector("x411.extension.7", dissect_PhysicalForwardingProhibited_PDU, proto_x411, "physical-forwarding-prohibited");
8689 register_ber_oid_dissector("x411.extension.8", dissect_PhysicalForwardingAddressRequest_PDU, proto_x411, "physical-forwarding-address-request");
8690 register_ber_oid_dissector("x411.extension.9", dissect_PhysicalDeliveryModes_PDU, proto_x411, "physical-delivery-modes");
8691 register_ber_oid_dissector("x411.extension.10", dissect_RegisteredMailType_PDU, proto_x411, "registered-mail-type");
8692 register_ber_oid_dissector("x411.extension.11", dissect_RecipientNumberForAdvice_PDU, proto_x411, "recipient-number-for-advice");
8693 register_ber_oid_dissector("x411.extension.12", dissect_PhysicalRenditionAttributes_PDU, proto_x411, "physical-rendition-attributes");
8694 register_ber_oid_dissector("x411.extension.13", dissect_OriginatorReturnAddress_PDU, proto_x411, "originator-return-address");
8695 register_ber_oid_dissector("x411.extension.14", dissect_PhysicalDeliveryReportRequest_PDU, proto_x411, "physical-delivery-report-request");
8696 register_ber_oid_dissector("x411.extension.15", dissect_OriginatorCertificate_PDU, proto_x411, "originator-certificate");
8697 register_ber_oid_dissector("x411.extension.17", dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_x411, "content-confidentiality-algorithm-identifier");
8698 register_ber_oid_dissector("x411.extension.20", dissect_MessageSecurityLabel_PDU, proto_x411, "message-security-label");
8699 register_ber_oid_dissector("x411.extension.21", dissect_ProofOfSubmissionRequest_PDU, proto_x411, "proof-of-submission-request");
8700 register_ber_oid_dissector("x411.extension.22", dissect_ProofOfDeliveryRequest_PDU, proto_x411, "proof-of-delivery-request");
8701 register_ber_oid_dissector("x411.extension.23", dissect_ContentCorrelator_PDU, proto_x411, "content-correlator");
8702 register_ber_oid_dissector("x411.extension.25", dissect_RedirectionHistory_PDU, proto_x411, "redirection-history");
8703 register_ber_oid_dissector("x411.extension.26", dissect_DLExpansionHistory_PDU, proto_x411, "dl-expansion-history");
8704 register_ber_oid_dissector("x411.extension.27", dissect_PhysicalForwardingAddress_PDU, proto_x411, "physical-forwarding-address");
8705 register_ber_oid_dissector("x411.extension.30", dissect_OriginatorAndDLExpansionHistory_PDU, proto_x411, "originator-and-DL-expansion-history");
8706 register_ber_oid_dissector("x411.extension.31", dissect_ReportingDLName_PDU, proto_x411, "reporting-DL-name");
8707 register_ber_oid_dissector("x411.extension.32", dissect_ReportingMTACertificate_PDU, proto_x411, "reporting-MTA-certificate");
8708 register_ber_oid_dissector("x411.extension.37", dissect_TraceInformation_PDU, proto_x411, "trace-information");
8709 register_ber_oid_dissector("x411.extension.38", dissect_InternalTraceInformation_PDU, proto_x411, "internal-trace-information");
8710 register_ber_oid_dissector("x411.extension.39", dissect_ReportingMTAName_PDU, proto_x411, "reporting-MTA-name");
8711 register_ber_oid_dissector("x411.extension.40", dissect_ExtendedCertificates_PDU, proto_x411, "multiple-originator-certificates");
8712 register_ber_oid_dissector("x411.extension.42", dissect_DLExemptedRecipients_PDU, proto_x411, "dl-exempted-recipients");
8713 register_ber_oid_dissector("x411.extension.45", dissect_CertificateSelectors_PDU, proto_x411, "certificate-selectors");
8714 register_ber_oid_dissector("x411.extension-attribute.1", dissect_CommonName_PDU, proto_x411, "common-name");
8715 register_ber_oid_dissector("x411.extension-attribute.2", dissect_TeletexCommonName_PDU, proto_x411, "teletex-common-name");
8716 register_ber_oid_dissector("x411.extension-attribute.3", dissect_TeletexOrganizationName_PDU, proto_x411, "teletex-organization-name");
8717 register_ber_oid_dissector("x411.extension-attribute.4", dissect_TeletexPersonalName_PDU, proto_x411, "teletex-personal-name");
8718 register_ber_oid_dissector("x411.extension-attribute.5", dissect_TeletexOrganizationalUnitNames_PDU, proto_x411, "teletex-organizational-unit-names");
8719 register_ber_oid_dissector("x411.extension-attribute.7", dissect_PDSName_PDU, proto_x411, "pds-name");
8720 register_ber_oid_dissector("x411.extension-attribute.8", dissect_PhysicalDeliveryCountryName_PDU, proto_x411, "physical-delivery-country-name");
8721 register_ber_oid_dissector("x411.extension-attribute.9", dissect_PostalCode_PDU, proto_x411, "postal-code");
8722 register_ber_oid_dissector("x411.extension-attribute.10", dissect_PhysicalDeliveryOfficeName_PDU, proto_x411, "physical-delivery-office-name");
8723 register_ber_oid_dissector("x411.extension-attribute.24", dissect_UniversalCommonName_PDU, proto_x411, "universal-common-name");
8724 register_ber_oid_dissector("x411.extension-attribute.25", dissect_UniversalOrganizationName_PDU, proto_x411, "universal-organization-name");
8725 register_ber_oid_dissector("x411.extension-attribute.26", dissect_UniversalPersonalName_PDU, proto_x411, "universal-personal-name");
8726 register_ber_oid_dissector("x411.extension-attribute.27", dissect_UniversalOrganizationalUnitNames_PDU, proto_x411, "universal-organizational-unit-names");
8729 /*--- End of included file: packet-x411-dis-tab.c ---*/
8732 /* APPLICATION CONTEXT */
8734 register_ber_oid_name("2.6.0.1.6", "id-ac-mts-transfer");
8736 /* ABSTRACT SYNTAXES */
8738 if((handle = find_dissector("x411")) != NULL) {
8739 register_rtse_oid_dissector_handle("2.6.0.2.12", handle, 0, "id-as-mta-rtse", TRUE);
8740 register_rtse_oid_dissector_handle("2.6.0.2.7", handle, 0, "id-as-mtse", FALSE);
8742 register_rtse_oid_dissector_handle("applicationProtocol.1", handle, 0, "mts-transfer-protocol-1984", FALSE);
8743 register_rtse_oid_dissector_handle("applicationProtocol.12", handle, 0, "mta-transfer-protocol", FALSE);