1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -e -p x420 -c x420.cnf -s packet-x420-template x420.asn */
6 /* Input file: packet-x420-template.c */
8 #line 1 "packet-x420-template.c"
10 * Routines for X.420 (X.400 Message Transfer) packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/conversation.h>
41 #include <epan/oid_resolv.h>
46 #include "packet-ber.h"
47 #include "packet-acse.h"
48 #include "packet-ros.h"
50 #include "packet-x509af.h"
51 #include "packet-x509ce.h"
52 #include "packet-x411.h"
54 #include "packet-x420.h"
56 #define PNAME "X.420 Information Object"
60 /* Initialize the protocol and registered fields */
63 static const char *object_identifier_id; /* content type identifier */
65 static const value_string charsetreg_vals [] = {
66 { 1, "C0: (ISO/IEC 6429)"},
67 { 6, "G0: ASCII (ISO/IEC 646)"},
68 { 77, "C1: (ISO/IEC 6429)"},
69 { 100, "Gn: Latin Alphabet No.1, Western European Supplementary Set (GR area of ISO-8859-1)"},
70 { 101, "Gn: Latin Alphabet No.2, Central EuropeanSupplementary Set (GR area of ISO-8859-2)"},
71 { 104, "C0: (ISO/IEC 4873)"},
72 { 105, "C1: (ISO/IEC 4873)"},
73 { 106, "C0: Teletex (CCITT T.61)"},
74 { 107, "C1: Teletex (CCITT T.61)"},
75 { 109, "Gn: Latin Alphabet No.3, Southern European Supplementary Set (GR area of ISO-8859-3)"},
76 { 110, "Gn: Latin Alphabet No.4, Baltic Supplementary Set (GR area of ISO-8859-4)"},
77 { 126, "Gn: Greek Supplementary Set (GR area of ISO-8859-7)"},
78 { 127, "Gn: Arabic Supplementary Set (GR area of ISO-8859-6)"},
79 { 138, "Gn: Hebrew Supplementary Set (GR area of ISO-8859-8)"},
80 { 144, "Gn: Cyrillic Supplementary Set (GR area of ISO-8859-5)"},
81 { 148, "Gn: Latin Alphabet No.5, Cyrillic Supplementary Set (GR area of ISO-8859-9)"},
82 { 154, "Gn: Supplementary Set for Latin Alphabets No.1 or No.5, and No.2"},
83 { 157, "Gn: Latin Alphabet No.6, Arabic Supplementary Set (GR area of ISO-8859-10)"},
84 { 158, "Gn: Supplementary Set for Sami (Lappish) to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"},
85 { 166, "Gn: Thai Supplementary Set (GR area of ISO-8859-11)"},
86 { 179, "Gn: Latin Alphabet No.7, Baltic Rim Supplementary Set (GR area of ISO-8859-13)"},
87 { 182, "Gn: Welsh Variant of Latin Alphabet No.1, Supplementary Set (GR area of ISO-8859-1)"},
88 { 197, "Gn: Supplementary Set for Sami to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"},
89 { 199, "Gn: Latin Alphabet No.8, Celtic Supplementary Set (GR area of ISO-8859-14)"},
90 { 203, "Gn: Latin Alphabet No.9, European Rim Supplementary Set (GR area of ISO-8859-15)"},
95 /*--- Included file: packet-x420-hf.c ---*/
96 #line 1 "packet-x420-hf.c"
97 static int hf_x420_InformationObject_PDU = -1; /* InformationObject */
98 static int hf_x420_IA5TextParameters_PDU = -1; /* IA5TextParameters */
99 static int hf_x420_IA5TextData_PDU = -1; /* IA5TextData */
100 static int hf_x420_G3FacsimileParameters_PDU = -1; /* G3FacsimileParameters */
101 static int hf_x420_G3FacsimileData_PDU = -1; /* G3FacsimileData */
102 static int hf_x420_G4Class1Data_PDU = -1; /* G4Class1Data */
103 static int hf_x420_MixedModeData_PDU = -1; /* MixedModeData */
104 static int hf_x420_TeletexParameters_PDU = -1; /* TeletexParameters */
105 static int hf_x420_TeletexData_PDU = -1; /* TeletexData */
106 static int hf_x420_VideotexParameters_PDU = -1; /* VideotexParameters */
107 static int hf_x420_VideotexData_PDU = -1; /* VideotexData */
108 static int hf_x420_EncryptedParameters_PDU = -1; /* EncryptedParameters */
109 static int hf_x420_EncryptedData_PDU = -1; /* EncryptedData */
110 static int hf_x420_MessageParameters_PDU = -1; /* MessageParameters */
111 static int hf_x420_MessageData_PDU = -1; /* MessageData */
112 static int hf_x420_BilaterallyDefinedBodyPart_PDU = -1; /* BilaterallyDefinedBodyPart */
113 static int hf_x420_IPN_PDU = -1; /* IPN */
114 static int hf_x420_AbsenceAdvice_PDU = -1; /* AbsenceAdvice */
115 static int hf_x420_ChangeOfAddressAdvice_PDU = -1; /* ChangeOfAddressAdvice */
116 static int hf_x420_IPMAssemblyInstructions_PDU = -1; /* IPMAssemblyInstructions */
117 static int hf_x420_OriginatingUA_PDU = -1; /* OriginatingUA */
118 static int hf_x420_IncompleteCopy_PDU = -1; /* IncompleteCopy */
119 static int hf_x420_Languages_PDU = -1; /* Languages */
120 static int hf_x420_AutoSubmitted_PDU = -1; /* AutoSubmitted */
121 static int hf_x420_BodyPartSignatures_PDU = -1; /* BodyPartSignatures */
122 static int hf_x420_IPMSecurityLabel_PDU = -1; /* IPMSecurityLabel */
123 static int hf_x420_AuthorizationTime_PDU = -1; /* AuthorizationTime */
124 static int hf_x420_CirculationList_PDU = -1; /* CirculationList */
125 static int hf_x420_CirculationListIndicator_PDU = -1; /* CirculationListIndicator */
126 static int hf_x420_DistributionCodes_PDU = -1; /* DistributionCodes */
127 static int hf_x420_ExtendedSubject_PDU = -1; /* ExtendedSubject */
128 static int hf_x420_InformationCategories_PDU = -1; /* InformationCategories */
129 static int hf_x420_ManualHandlingInstructions_PDU = -1; /* ManualHandlingInstructions */
130 static int hf_x420_OriginatorsReference_PDU = -1; /* OriginatorsReference */
131 static int hf_x420_PrecedencePolicyIdentifier_PDU = -1; /* PrecedencePolicyIdentifier */
132 static int hf_x420_Precedence_PDU = -1; /* Precedence */
133 static int hf_x420_GeneralTextParameters_PDU = -1; /* GeneralTextParameters */
134 static int hf_x420_GeneralTextData_PDU = -1; /* GeneralTextData */
135 static int hf_x420_VoiceParameters_PDU = -1; /* VoiceParameters */
136 static int hf_x420_VoiceData_PDU = -1; /* VoiceData */
137 static int hf_x420_ForwardedContentParameters_PDU = -1; /* ForwardedContentParameters */
138 static int hf_x420_ipm = -1; /* IPM */
139 static int hf_x420_ipn = -1; /* IPN */
140 static int hf_x420_heading = -1; /* Heading */
141 static int hf_x420_body = -1; /* Body */
142 static int hf_x420_type = -1; /* T_type */
143 static int hf_x420_value = -1; /* T_value */
144 static int hf_x420_this_IPM = -1; /* ThisIPMField */
145 static int hf_x420_originator = -1; /* OriginatorField */
146 static int hf_x420_authorizing_users = -1; /* AuthorizingUsersField */
147 static int hf_x420_primary_recipients = -1; /* PrimaryRecipientsField */
148 static int hf_x420_copy_recipients = -1; /* CopyRecipientsField */
149 static int hf_x420_blind_copy_recipients = -1; /* BlindCopyRecipientsField */
150 static int hf_x420_replied_to_IPM = -1; /* RepliedToIPMField */
151 static int hf_x420_obsoleted_IPMs = -1; /* ObsoletedIPMsField */
152 static int hf_x420_related_IPMs = -1; /* RelatedIPMsField */
153 static int hf_x420_subject = -1; /* SubjectField */
154 static int hf_x420_expiry_time = -1; /* ExpiryTimeField */
155 static int hf_x420_reply_time = -1; /* ReplyTimeField */
156 static int hf_x420_reply_recipients = -1; /* ReplyRecipientsField */
157 static int hf_x420_importance = -1; /* ImportanceField */
158 static int hf_x420_sensitivity = -1; /* SensitivityField */
159 static int hf_x420_auto_forwarded = -1; /* AutoForwardedField */
160 static int hf_x420_extensions = -1; /* ExtensionsField */
161 static int hf_x420_user = -1; /* ORName */
162 static int hf_x420_user_relative_identifier = -1; /* LocalIPMIdentifier */
163 static int hf_x420_recipient = -1; /* ORDescriptor */
164 static int hf_x420_notification_requests = -1; /* NotificationRequests */
165 static int hf_x420_reply_requested = -1; /* BOOLEAN */
166 static int hf_x420_recipient_extensions = -1; /* RecipientExtensionsField */
167 static int hf_x420_formal_name = -1; /* ORName */
168 static int hf_x420_free_form_name = -1; /* FreeFormName */
169 static int hf_x420_telephone_number = -1; /* TelephoneNumber */
170 static int hf_x420_RecipientExtensionsField_item = -1; /* IPMSExtension */
171 static int hf_x420_AuthorizingUsersField_item = -1; /* AuthorizingUsersSubfield */
172 static int hf_x420_PrimaryRecipientsField_item = -1; /* PrimaryRecipientsSubfield */
173 static int hf_x420_CopyRecipientsField_item = -1; /* CopyRecipientsSubfield */
174 static int hf_x420_BlindCopyRecipientsField_item = -1; /* BlindCopyRecipientsSubfield */
175 static int hf_x420_ObsoletedIPMsField_item = -1; /* ObsoletedIPMsSubfield */
176 static int hf_x420_RelatedIPMsField_item = -1; /* RelatedIPMsSubfield */
177 static int hf_x420_ReplyRecipientsField_item = -1; /* ReplyRecipientsSubfield */
178 static int hf_x420_ExtensionsField_item = -1; /* IPMSExtension */
179 static int hf_x420_Body_item = -1; /* BodyPart */
180 static int hf_x420_ia5_text = -1; /* IA5TextBodyPart */
181 static int hf_x420_g3_facsimile = -1; /* G3FacsimileBodyPart */
182 static int hf_x420_g4_class1 = -1; /* G4Class1BodyPart */
183 static int hf_x420_teletex = -1; /* TeletexBodyPart */
184 static int hf_x420_videotex = -1; /* VideotexBodyPart */
185 static int hf_x420_encrypted_bp = -1; /* EncryptedBodyPart */
186 static int hf_x420_message = -1; /* MessageBodyPart */
187 static int hf_x420_mixed_mode = -1; /* MixedModeBodyPart */
188 static int hf_x420_bilaterally_defined = -1; /* BilaterallyDefinedBodyPart */
189 static int hf_x420_nationally_defined = -1; /* NationallyDefinedBodyPart */
190 static int hf_x420_extended = -1; /* ExtendedBodyPart */
191 static int hf_x420_extended_parameters = -1; /* EXTERNAL */
192 static int hf_x420_extended_data = -1; /* EXTERNAL */
193 static int hf_x420_ia5text_parameters = -1; /* IA5TextParameters */
194 static int hf_x420_ia5text_data = -1; /* IA5TextData */
195 static int hf_x420_repertoire = -1; /* Repertoire */
196 static int hf_x420_g3facsimile_parameters = -1; /* G3FacsimileParameters */
197 static int hf_x420_g3facsimile_data = -1; /* G3FacsimileData */
198 static int hf_x420_number_of_pages = -1; /* INTEGER */
199 static int hf_x420_g3facsimile_non_basic_parameters = -1; /* G3FacsimileNonBasicParameters */
200 static int hf_x420_G3FacsimileData_item = -1; /* BIT_STRING */
201 static int hf_x420_G4Class1Data_item = -1; /* Interchange_Data_Element */
202 static int hf_x420_MixedModeData_item = -1; /* Interchange_Data_Element */
203 static int hf_x420_teletex_parameters = -1; /* TeletexParameters */
204 static int hf_x420_teletex_data = -1; /* TeletexData */
205 static int hf_x420_telex_compatible = -1; /* BOOLEAN */
206 static int hf_x420_teletex_non_basic_parameters = -1; /* TeletexNonBasicParameters */
207 static int hf_x420_TeletexData_item = -1; /* TeletexString */
208 static int hf_x420_videotex_parameters = -1; /* VideotexParameters */
209 static int hf_x420_videotex_data = -1; /* VideotexData */
210 static int hf_x420_syntax = -1; /* VideotexSyntax */
211 static int hf_x420_encrypted_parameters = -1; /* EncryptedParameters */
212 static int hf_x420_encrypted_data = -1; /* EncryptedData */
213 static int hf_x420_algorithm_identifier = -1; /* AlgorithmIdentifier */
214 static int hf_x420_originator_certificates = -1; /* ExtendedCertificates */
215 static int hf_x420_message_parameters = -1; /* MessageParameters */
216 static int hf_x420_message_data = -1; /* MessageData */
217 static int hf_x420_delivery_time = -1; /* MessageDeliveryTime */
218 static int hf_x420_delivery_envelope = -1; /* OtherMessageDeliveryFields */
219 static int hf_x420_subject_ipm = -1; /* SubjectIPMField */
220 static int hf_x420_ipn_originator = -1; /* IPNOriginatorField */
221 static int hf_x420_ipm_intended_recipient = -1; /* IPMIntendedRecipientField */
222 static int hf_x420_conversion_eits = -1; /* ConversionEITsField */
223 static int hf_x420_notification_extensions = -1; /* NotificationExtensionsField */
224 static int hf_x420_choice = -1; /* T_choice */
225 static int hf_x420_non_receipt_fields = -1; /* NonReceiptFields */
226 static int hf_x420_receipt_fields = -1; /* ReceiptFields */
227 static int hf_x420_other_notification_type_fields = -1; /* OtherNotificationTypeFields */
228 static int hf_x420_non_receipt_reason = -1; /* NonReceiptReasonField */
229 static int hf_x420_discard_reason = -1; /* DiscardReasonField */
230 static int hf_x420_auto_forward_comment = -1; /* AutoForwardCommentField */
231 static int hf_x420_returned_ipm = -1; /* ReturnedIPMField */
232 static int hf_x420_nrn_extensions = -1; /* NRNExtensionsField */
233 static int hf_x420_receipt_time = -1; /* ReceiptTimeField */
234 static int hf_x420_acknowledgment_mode = -1; /* AcknowledgmentModeField */
235 static int hf_x420_suppl_receipt_info = -1; /* SupplReceiptInfoField */
236 static int hf_x420_rn_extensions = -1; /* RNExtensionsField */
237 static int hf_x420_NotificationExtensionsField_item = -1; /* IPMSExtension */
238 static int hf_x420_NRNExtensionsField_item = -1; /* IPMSExtension */
239 static int hf_x420_RNExtensionsField_item = -1; /* IPMSExtension */
240 static int hf_x420_OtherNotificationTypeFields_item = -1; /* IPMSExtension */
241 static int hf_x420_advice = -1; /* BodyPart */
242 static int hf_x420_next_available = -1; /* Time */
243 static int hf_x420_new_address = -1; /* ORDescriptor */
244 static int hf_x420_effective_from = -1; /* Time */
245 static int hf_x420_assembly_instructions = -1; /* BodyPartReferences */
246 static int hf_x420_BodyPartReferences_item = -1; /* BodyPartReference */
247 static int hf_x420_stored_entry = -1; /* SequenceNumber */
248 static int hf_x420_stored_content = -1; /* SequenceNumber */
249 static int hf_x420_submitted_body_part = -1; /* INTEGER */
250 static int hf_x420_stored_body_part = -1; /* T_stored_body_part */
251 static int hf_x420_message_entry = -1; /* SequenceNumber */
252 static int hf_x420_body_part_number = -1; /* BodyPartNumber */
253 static int hf_x420_Languages_item = -1; /* Language */
254 static int hf_x420_algorithmIdentifier = -1; /* AlgorithmIdentifier */
255 static int hf_x420_encrypted = -1; /* BIT_STRING */
256 static int hf_x420_BodyPartSignatures_item = -1; /* BodyPartSignatures_item */
257 static int hf_x420_body_part_signature = -1; /* BodyPartSignature */
258 static int hf_x420_originator_certificate_selector = -1; /* CertificateAssertion */
259 static int hf_x420_content_security_label = -1; /* SecurityLabel */
260 static int hf_x420_heading_security_label = -1; /* SecurityLabel */
261 static int hf_x420_body_part_security_labels = -1; /* SEQUENCE_OF_BodyPartSecurityLabel */
262 static int hf_x420_body_part_security_labels_item = -1; /* BodyPartSecurityLabel */
263 static int hf_x420_body_part_unlabelled = -1; /* NULL */
264 static int hf_x420_body_part_security_label = -1; /* SecurityLabel */
265 static int hf_x420_CirculationList_item = -1; /* CirculationMember */
266 static int hf_x420_circulation_recipient = -1; /* RecipientSpecifier */
267 static int hf_x420_checked = -1; /* Checkmark */
268 static int hf_x420_simple = -1; /* NULL */
269 static int hf_x420_timestamped = -1; /* CirculationTime */
270 static int hf_x420_signed = -1; /* CirculationSignature */
271 static int hf_x420_circulation_signature_algorithm_identifier = -1; /* CirculationSignatureAlgorithmIdentifier */
272 static int hf_x420_timestamp = -1; /* CirculationTime */
273 static int hf_x420_circulation_signature_data = -1; /* CirculationSignatureData */
274 static int hf_x420_DistributionCodes_item = -1; /* DistributionCode */
275 static int hf_x420_oid_code = -1; /* OBJECT_IDENTIFIER */
276 static int hf_x420_alphanumeric_code = -1; /* AlphaCode */
277 static int hf_x420_or_descriptor = -1; /* ORDescriptor */
278 static int hf_x420_InformationCategories_item = -1; /* InformationCategory */
279 static int hf_x420_reference = -1; /* OBJECT_IDENTIFIER */
280 static int hf_x420_description = -1; /* DescriptionString */
281 static int hf_x420_ManualHandlingInstructions_item = -1; /* ManualHandlingInstruction */
282 static int hf_x420_GeneralTextParameters_item = -1; /* CharacterSetRegistration */
283 static int hf_x420_voice_message_duration = -1; /* INTEGER */
284 static int hf_x420_voice_encoding_type = -1; /* OBJECT_IDENTIFIER */
285 static int hf_x420_supplementary_information = -1; /* IA5String */
286 static int hf_x420_mts_identifier = -1; /* MessageDeliveryIdentifier */
287 static int hf_x420_submission_proof = -1; /* SubmissionProof */
288 static int hf_x420_proof_of_submission = -1; /* ProofOfSubmission */
289 static int hf_x420_originating_MTA_certificate = -1; /* OriginatingMTACertificate */
290 static int hf_x420_message_submission_envelope = -1; /* MessageSubmissionEnvelope */
292 static int hf_x420_NotificationRequests_rn = -1;
293 static int hf_x420_NotificationRequests_nrn = -1;
294 static int hf_x420_NotificationRequests_ipm_return = -1;
295 static int hf_x420_NotificationRequests_an_supported = -1;
296 static int hf_x420_NotificationRequests_suppress_an = -1;
298 /*--- End of included file: packet-x420-hf.c ---*/
299 #line 87 "packet-x420-template.c"
301 /* Initialize the subtree pointers */
302 static gint ett_x420 = -1;
304 /*--- Included file: packet-x420-ett.c ---*/
305 #line 1 "packet-x420-ett.c"
306 static gint ett_x420_InformationObject = -1;
307 static gint ett_x420_IPM = -1;
308 static gint ett_x420_IPMSExtension = -1;
309 static gint ett_x420_Heading = -1;
310 static gint ett_x420_IPMIdentifier = -1;
311 static gint ett_x420_RecipientSpecifier = -1;
312 static gint ett_x420_ORDescriptor = -1;
313 static gint ett_x420_NotificationRequests = -1;
314 static gint ett_x420_RecipientExtensionsField = -1;
315 static gint ett_x420_AuthorizingUsersField = -1;
316 static gint ett_x420_PrimaryRecipientsField = -1;
317 static gint ett_x420_CopyRecipientsField = -1;
318 static gint ett_x420_BlindCopyRecipientsField = -1;
319 static gint ett_x420_ObsoletedIPMsField = -1;
320 static gint ett_x420_RelatedIPMsField = -1;
321 static gint ett_x420_ReplyRecipientsField = -1;
322 static gint ett_x420_ExtensionsField = -1;
323 static gint ett_x420_Body = -1;
324 static gint ett_x420_BodyPart = -1;
325 static gint ett_x420_ExtendedBodyPart = -1;
326 static gint ett_x420_IA5TextBodyPart = -1;
327 static gint ett_x420_IA5TextParameters = -1;
328 static gint ett_x420_G3FacsimileBodyPart = -1;
329 static gint ett_x420_G3FacsimileParameters = -1;
330 static gint ett_x420_G3FacsimileData = -1;
331 static gint ett_x420_G4Class1Data = -1;
332 static gint ett_x420_MixedModeData = -1;
333 static gint ett_x420_TeletexBodyPart = -1;
334 static gint ett_x420_TeletexParameters = -1;
335 static gint ett_x420_TeletexData = -1;
336 static gint ett_x420_VideotexBodyPart = -1;
337 static gint ett_x420_VideotexParameters = -1;
338 static gint ett_x420_EncryptedBodyPart = -1;
339 static gint ett_x420_EncryptedParameters = -1;
340 static gint ett_x420_MessageBodyPart = -1;
341 static gint ett_x420_MessageParameters = -1;
342 static gint ett_x420_IPN = -1;
343 static gint ett_x420_T_choice = -1;
344 static gint ett_x420_NonReceiptFields = -1;
345 static gint ett_x420_ReceiptFields = -1;
346 static gint ett_x420_NotificationExtensionsField = -1;
347 static gint ett_x420_NRNExtensionsField = -1;
348 static gint ett_x420_RNExtensionsField = -1;
349 static gint ett_x420_OtherNotificationTypeFields = -1;
350 static gint ett_x420_AbsenceAdvice = -1;
351 static gint ett_x420_ChangeOfAddressAdvice = -1;
352 static gint ett_x420_IPMAssemblyInstructions = -1;
353 static gint ett_x420_BodyPartReferences = -1;
354 static gint ett_x420_BodyPartReference = -1;
355 static gint ett_x420_T_stored_body_part = -1;
356 static gint ett_x420_Languages = -1;
357 static gint ett_x420_Signature = -1;
358 static gint ett_x420_BodyPartSignatures = -1;
359 static gint ett_x420_BodyPartSignatures_item = -1;
360 static gint ett_x420_IPMSecurityLabel = -1;
361 static gint ett_x420_SEQUENCE_OF_BodyPartSecurityLabel = -1;
362 static gint ett_x420_BodyPartSecurityLabel = -1;
363 static gint ett_x420_CirculationList = -1;
364 static gint ett_x420_CirculationMember = -1;
365 static gint ett_x420_Checkmark = -1;
366 static gint ett_x420_CirculationSignatureData = -1;
367 static gint ett_x420_CirculationSignature = -1;
368 static gint ett_x420_DistributionCodes = -1;
369 static gint ett_x420_DistributionCode = -1;
370 static gint ett_x420_InformationCategories = -1;
371 static gint ett_x420_InformationCategory = -1;
372 static gint ett_x420_ManualHandlingInstructions = -1;
373 static gint ett_x420_GeneralTextParameters = -1;
374 static gint ett_x420_VoiceParameters = -1;
375 static gint ett_x420_ForwardedContentParameters = -1;
376 static gint ett_x420_SubmissionProof = -1;
378 /*--- End of included file: packet-x420-ett.c ---*/
379 #line 91 "packet-x420-template.c"
382 /*--- Included file: packet-x420-fn.c ---*/
383 #line 1 "packet-x420-fn.c"
384 /*--- Cyclic dependencies ---*/
386 /* IPM -> Body -> BodyPart -> MessageBodyPart -> MessageData -> IPM */
387 int dissect_x420_IPM(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
389 static int dissect_ipm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
390 return dissect_x420_IPM(TRUE, tvb, offset, pinfo, tree, hf_x420_ipm);
394 /*--- Fields for imported types ---*/
396 static int dissect_user(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
397 return dissect_x411_ORName(FALSE, tvb, offset, pinfo, tree, hf_x420_user);
399 static int dissect_formal_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
400 return dissect_x411_ORName(FALSE, tvb, offset, pinfo, tree, hf_x420_formal_name);
402 static int dissect_extended_parameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
403 return dissect_acse_EXTERNAL(TRUE, tvb, offset, pinfo, tree, hf_x420_extended_parameters);
405 static int dissect_extended_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
406 return dissect_acse_EXTERNAL(FALSE, tvb, offset, pinfo, tree, hf_x420_extended_data);
408 static int dissect_g3facsimile_non_basic_parameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
409 return dissect_x411_G3FacsimileNonBasicParameters(TRUE, tvb, offset, pinfo, tree, hf_x420_g3facsimile_non_basic_parameters);
411 static int dissect_teletex_non_basic_parameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
412 return dissect_x411_TeletexNonBasicParameters(TRUE, tvb, offset, pinfo, tree, hf_x420_teletex_non_basic_parameters);
414 static int dissect_algorithm_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
415 return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_algorithm_identifier);
417 static int dissect_originator_certificates(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
418 return dissect_x411_ExtendedCertificates(FALSE, tvb, offset, pinfo, tree, hf_x420_originator_certificates);
420 static int dissect_originator_certificates_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
421 return dissect_x411_ExtendedCertificates(TRUE, tvb, offset, pinfo, tree, hf_x420_originator_certificates);
423 static int dissect_delivery_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
424 return dissect_x411_MessageDeliveryTime(TRUE, tvb, offset, pinfo, tree, hf_x420_delivery_time);
426 static int dissect_delivery_envelope_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
427 return dissect_x411_OtherMessageDeliveryFields(TRUE, tvb, offset, pinfo, tree, hf_x420_delivery_envelope);
429 static int dissect_algorithmIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
430 return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_algorithmIdentifier);
432 static int dissect_originator_certificate_selector_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
433 return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x420_originator_certificate_selector);
435 static int dissect_content_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
436 return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_content_security_label);
438 static int dissect_heading_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
439 return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_heading_security_label);
441 static int dissect_body_part_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
442 return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_security_label);
444 static int dissect_mts_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
445 return dissect_x411_MessageDeliveryIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x420_mts_identifier);
447 static int dissect_proof_of_submission_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
448 return dissect_x411_ProofOfSubmission(TRUE, tvb, offset, pinfo, tree, hf_x420_proof_of_submission);
450 static int dissect_originating_MTA_certificate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
451 return dissect_x411_OriginatingMTACertificate(TRUE, tvb, offset, pinfo, tree, hf_x420_originating_MTA_certificate);
453 static int dissect_message_submission_envelope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
454 return dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, offset, pinfo, tree, hf_x420_message_submission_envelope);
460 dissect_x420_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
461 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
462 pinfo, tree, tvb, offset, hf_index,
467 static int dissect_next_available(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
468 return dissect_x420_Time(FALSE, tvb, offset, pinfo, tree, hf_x420_next_available);
470 static int dissect_effective_from_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
471 return dissect_x420_Time(TRUE, tvb, offset, pinfo, tree, hf_x420_effective_from);
477 dissect_x420_LocalIPMIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
478 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
479 pinfo, tree, tvb, offset, hf_index,
484 static int dissect_user_relative_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
485 return dissect_x420_LocalIPMIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_user_relative_identifier);
489 static const ber_sequence_t IPMIdentifier_set[] = {
490 { BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_user },
491 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_user_relative_identifier },
496 dissect_x420_IPMIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
497 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
498 IPMIdentifier_set, hf_index, ett_x420_IPMIdentifier);
506 dissect_x420_ThisIPMField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
507 offset = dissect_x420_IPMIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
511 static int dissect_this_IPM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
512 return dissect_x420_ThisIPMField(FALSE, tvb, offset, pinfo, tree, hf_x420_this_IPM);
518 dissect_x420_FreeFormName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
519 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
520 pinfo, tree, tvb, offset, hf_index,
525 static int dissect_free_form_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
526 return dissect_x420_FreeFormName(TRUE, tvb, offset, pinfo, tree, hf_x420_free_form_name);
532 dissect_x420_TelephoneNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
533 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
534 pinfo, tree, tvb, offset, hf_index,
539 static int dissect_telephone_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
540 return dissect_x420_TelephoneNumber(TRUE, tvb, offset, pinfo, tree, hf_x420_telephone_number);
544 static const ber_sequence_t ORDescriptor_set[] = {
545 { BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_formal_name },
546 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_free_form_name_impl },
547 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_telephone_number_impl },
552 dissect_x420_ORDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
553 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
554 ORDescriptor_set, hf_index, ett_x420_ORDescriptor);
558 static int dissect_recipient_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
559 return dissect_x420_ORDescriptor(TRUE, tvb, offset, pinfo, tree, hf_x420_recipient);
561 static int dissect_new_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
562 return dissect_x420_ORDescriptor(TRUE, tvb, offset, pinfo, tree, hf_x420_new_address);
564 static int dissect_or_descriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
565 return dissect_x420_ORDescriptor(TRUE, tvb, offset, pinfo, tree, hf_x420_or_descriptor);
571 dissect_x420_OriginatorField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
572 offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, pinfo, tree, hf_index);
576 static int dissect_originator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
577 return dissect_x420_OriginatorField(TRUE, tvb, offset, pinfo, tree, hf_x420_originator);
583 dissect_x420_AuthorizingUsersSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
584 offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, pinfo, tree, hf_index);
588 static int dissect_AuthorizingUsersField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
589 return dissect_x420_AuthorizingUsersSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_AuthorizingUsersField_item);
593 static const ber_sequence_t AuthorizingUsersField_sequence_of[1] = {
594 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_AuthorizingUsersField_item },
598 dissect_x420_AuthorizingUsersField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
599 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
600 AuthorizingUsersField_sequence_of, hf_index, ett_x420_AuthorizingUsersField);
604 static int dissect_authorizing_users_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
605 return dissect_x420_AuthorizingUsersField(TRUE, tvb, offset, pinfo, tree, hf_x420_authorizing_users);
609 static const asn_namedbit NotificationRequests_bits[] = {
610 { 0, &hf_x420_NotificationRequests_rn, -1, -1, "rn", NULL },
611 { 1, &hf_x420_NotificationRequests_nrn, -1, -1, "nrn", NULL },
612 { 2, &hf_x420_NotificationRequests_ipm_return, -1, -1, "ipm-return", NULL },
613 { 3, &hf_x420_NotificationRequests_an_supported, -1, -1, "an-supported", NULL },
614 { 4, &hf_x420_NotificationRequests_suppress_an, -1, -1, "suppress-an", NULL },
615 { 0, NULL, 0, 0, NULL, NULL }
619 dissect_x420_NotificationRequests(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
620 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
621 NotificationRequests_bits, hf_index, ett_x420_NotificationRequests,
626 static int dissect_notification_requests_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
627 return dissect_x420_NotificationRequests(TRUE, tvb, offset, pinfo, tree, hf_x420_notification_requests);
633 dissect_x420_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
634 offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
638 static int dissect_reply_requested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639 return dissect_x420_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_x420_reply_requested);
641 static int dissect_telex_compatible_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
642 return dissect_x420_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_x420_telex_compatible);
648 dissect_x420_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
650 const char *name = NULL;
652 offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &object_identifier_id);
655 name = get_oid_str_name(object_identifier_id);
656 proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id);
662 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
663 return dissect_x420_T_type(FALSE, tvb, offset, pinfo, tree, hf_x420_type);
669 dissect_x420_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
672 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
678 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
679 return dissect_x420_T_value(FALSE, tvb, offset, pinfo, tree, hf_x420_value);
683 static const ber_sequence_t IPMSExtension_sequence[] = {
684 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
685 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
690 dissect_x420_IPMSExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
691 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
692 IPMSExtension_sequence, hf_index, ett_x420_IPMSExtension);
696 static int dissect_RecipientExtensionsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
697 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_RecipientExtensionsField_item);
699 static int dissect_ExtensionsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
700 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_ExtensionsField_item);
702 static int dissect_NotificationExtensionsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
703 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_NotificationExtensionsField_item);
705 static int dissect_NRNExtensionsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
706 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_NRNExtensionsField_item);
708 static int dissect_RNExtensionsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
709 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_RNExtensionsField_item);
711 static int dissect_OtherNotificationTypeFields_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
712 return dissect_x420_IPMSExtension(FALSE, tvb, offset, pinfo, tree, hf_x420_OtherNotificationTypeFields_item);
716 static const ber_sequence_t RecipientExtensionsField_set_of[1] = {
717 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RecipientExtensionsField_item },
721 dissect_x420_RecipientExtensionsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
722 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
723 RecipientExtensionsField_set_of, hf_index, ett_x420_RecipientExtensionsField);
727 static int dissect_recipient_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
728 return dissect_x420_RecipientExtensionsField(TRUE, tvb, offset, pinfo, tree, hf_x420_recipient_extensions);
732 static const ber_sequence_t RecipientSpecifier_set[] = {
733 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_recipient_impl },
734 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notification_requests_impl },
735 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reply_requested_impl },
736 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_recipient_extensions_impl },
741 dissect_x420_RecipientSpecifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
742 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
743 RecipientSpecifier_set, hf_index, ett_x420_RecipientSpecifier);
747 static int dissect_circulation_recipient(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
748 return dissect_x420_RecipientSpecifier(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_recipient);
754 dissect_x420_PrimaryRecipientsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
755 offset = dissect_x420_RecipientSpecifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
759 static int dissect_PrimaryRecipientsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
760 return dissect_x420_PrimaryRecipientsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_PrimaryRecipientsField_item);
764 static const ber_sequence_t PrimaryRecipientsField_sequence_of[1] = {
765 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_PrimaryRecipientsField_item },
769 dissect_x420_PrimaryRecipientsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
770 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
771 PrimaryRecipientsField_sequence_of, hf_index, ett_x420_PrimaryRecipientsField);
775 static int dissect_primary_recipients_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
776 return dissect_x420_PrimaryRecipientsField(TRUE, tvb, offset, pinfo, tree, hf_x420_primary_recipients);
782 dissect_x420_CopyRecipientsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
783 offset = dissect_x420_RecipientSpecifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
787 static int dissect_CopyRecipientsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
788 return dissect_x420_CopyRecipientsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_CopyRecipientsField_item);
792 static const ber_sequence_t CopyRecipientsField_sequence_of[1] = {
793 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_CopyRecipientsField_item },
797 dissect_x420_CopyRecipientsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
798 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
799 CopyRecipientsField_sequence_of, hf_index, ett_x420_CopyRecipientsField);
803 static int dissect_copy_recipients_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
804 return dissect_x420_CopyRecipientsField(TRUE, tvb, offset, pinfo, tree, hf_x420_copy_recipients);
810 dissect_x420_BlindCopyRecipientsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
811 offset = dissect_x420_RecipientSpecifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
815 static int dissect_BlindCopyRecipientsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
816 return dissect_x420_BlindCopyRecipientsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_BlindCopyRecipientsField_item);
820 static const ber_sequence_t BlindCopyRecipientsField_sequence_of[1] = {
821 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_BlindCopyRecipientsField_item },
825 dissect_x420_BlindCopyRecipientsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
826 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
827 BlindCopyRecipientsField_sequence_of, hf_index, ett_x420_BlindCopyRecipientsField);
831 static int dissect_blind_copy_recipients_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
832 return dissect_x420_BlindCopyRecipientsField(TRUE, tvb, offset, pinfo, tree, hf_x420_blind_copy_recipients);
838 dissect_x420_RepliedToIPMField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
839 offset = dissect_x420_IPMIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
843 static int dissect_replied_to_IPM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
844 return dissect_x420_RepliedToIPMField(TRUE, tvb, offset, pinfo, tree, hf_x420_replied_to_IPM);
850 dissect_x420_ObsoletedIPMsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
851 offset = dissect_x420_IPMIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
855 static int dissect_ObsoletedIPMsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
856 return dissect_x420_ObsoletedIPMsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_ObsoletedIPMsField_item);
860 static const ber_sequence_t ObsoletedIPMsField_sequence_of[1] = {
861 { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_ObsoletedIPMsField_item },
865 dissect_x420_ObsoletedIPMsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
866 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
867 ObsoletedIPMsField_sequence_of, hf_index, ett_x420_ObsoletedIPMsField);
871 static int dissect_obsoleted_IPMs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
872 return dissect_x420_ObsoletedIPMsField(TRUE, tvb, offset, pinfo, tree, hf_x420_obsoleted_IPMs);
878 dissect_x420_RelatedIPMsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
879 offset = dissect_x420_IPMIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
883 static int dissect_RelatedIPMsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
884 return dissect_x420_RelatedIPMsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_RelatedIPMsField_item);
888 static const ber_sequence_t RelatedIPMsField_sequence_of[1] = {
889 { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_RelatedIPMsField_item },
893 dissect_x420_RelatedIPMsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
894 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
895 RelatedIPMsField_sequence_of, hf_index, ett_x420_RelatedIPMsField);
899 static int dissect_related_IPMs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
900 return dissect_x420_RelatedIPMsField(TRUE, tvb, offset, pinfo, tree, hf_x420_related_IPMs);
906 dissect_x420_SubjectField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
908 tvbuff_t *subject=NULL;
910 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
911 pinfo, tree, tvb, offset, hf_index,
915 if(subject && check_col(pinfo->cinfo, COL_INFO))
916 col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", tvb_format_text(subject, 0, tvb_length(subject)));
922 static int dissect_subject(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
923 return dissect_x420_SubjectField(FALSE, tvb, offset, pinfo, tree, hf_x420_subject);
929 dissect_x420_ExpiryTimeField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
930 offset = dissect_x420_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
934 static int dissect_expiry_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
935 return dissect_x420_ExpiryTimeField(TRUE, tvb, offset, pinfo, tree, hf_x420_expiry_time);
941 dissect_x420_ReplyTimeField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
942 offset = dissect_x420_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
946 static int dissect_reply_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
947 return dissect_x420_ReplyTimeField(TRUE, tvb, offset, pinfo, tree, hf_x420_reply_time);
953 dissect_x420_ReplyRecipientsSubfield(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
954 offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, pinfo, tree, hf_index);
958 static int dissect_ReplyRecipientsField_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
959 return dissect_x420_ReplyRecipientsSubfield(FALSE, tvb, offset, pinfo, tree, hf_x420_ReplyRecipientsField_item);
963 static const ber_sequence_t ReplyRecipientsField_sequence_of[1] = {
964 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_ReplyRecipientsField_item },
968 dissect_x420_ReplyRecipientsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
969 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
970 ReplyRecipientsField_sequence_of, hf_index, ett_x420_ReplyRecipientsField);
974 static int dissect_reply_recipients_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
975 return dissect_x420_ReplyRecipientsField(TRUE, tvb, offset, pinfo, tree, hf_x420_reply_recipients);
979 static const value_string x420_ImportanceField_vals[] = {
988 dissect_x420_ImportanceField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
989 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
994 static int dissect_importance_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
995 return dissect_x420_ImportanceField(TRUE, tvb, offset, pinfo, tree, hf_x420_importance);
999 static const value_string x420_SensitivityField_vals[] = {
1002 { 3, "company-confidential" },
1008 dissect_x420_SensitivityField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1009 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1014 static int dissect_sensitivity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1015 return dissect_x420_SensitivityField(TRUE, tvb, offset, pinfo, tree, hf_x420_sensitivity);
1021 dissect_x420_AutoForwardedField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1022 offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1026 static int dissect_auto_forwarded_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1027 return dissect_x420_AutoForwardedField(TRUE, tvb, offset, pinfo, tree, hf_x420_auto_forwarded);
1031 static const ber_sequence_t ExtensionsField_set_of[1] = {
1032 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExtensionsField_item },
1036 dissect_x420_ExtensionsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1037 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1038 ExtensionsField_set_of, hf_index, ett_x420_ExtensionsField);
1042 static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1043 return dissect_x420_ExtensionsField(TRUE, tvb, offset, pinfo, tree, hf_x420_extensions);
1047 static const ber_sequence_t Heading_set[] = {
1048 { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_this_IPM },
1049 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originator_impl },
1050 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_authorizing_users_impl },
1051 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_primary_recipients_impl },
1052 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_copy_recipients_impl },
1053 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_blind_copy_recipients_impl },
1054 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replied_to_IPM_impl },
1055 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_obsoleted_IPMs_impl },
1056 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_related_IPMs_impl },
1057 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_subject },
1058 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_expiry_time_impl },
1059 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reply_time_impl },
1060 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reply_recipients_impl },
1061 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_importance_impl },
1062 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sensitivity_impl },
1063 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_auto_forwarded_impl },
1064 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1069 dissect_x420_Heading(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1070 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1071 Heading_set, hf_index, ett_x420_Heading);
1075 static int dissect_heading(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1076 return dissect_x420_Heading(FALSE, tvb, offset, pinfo, tree, hf_x420_heading);
1080 static const value_string x420_Repertoire_vals[] = {
1088 dissect_x420_Repertoire(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1089 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1094 static int dissect_repertoire_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1095 return dissect_x420_Repertoire(TRUE, tvb, offset, pinfo, tree, hf_x420_repertoire);
1099 static const ber_sequence_t IA5TextParameters_set[] = {
1100 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_repertoire_impl },
1105 dissect_x420_IA5TextParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1106 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1107 IA5TextParameters_set, hf_index, ett_x420_IA5TextParameters);
1111 static int dissect_ia5text_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1112 return dissect_x420_IA5TextParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_ia5text_parameters);
1118 dissect_x420_IA5TextData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1119 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1120 pinfo, tree, tvb, offset, hf_index,
1125 static int dissect_ia5text_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1126 return dissect_x420_IA5TextData(FALSE, tvb, offset, pinfo, tree, hf_x420_ia5text_data);
1130 static const ber_sequence_t IA5TextBodyPart_sequence[] = {
1131 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_ia5text_parameters },
1132 { BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_ia5text_data },
1137 dissect_x420_IA5TextBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1138 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1139 IA5TextBodyPart_sequence, hf_index, ett_x420_IA5TextBodyPart);
1143 static int dissect_ia5_text_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1144 return dissect_x420_IA5TextBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_ia5_text);
1150 dissect_x420_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1151 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1156 static int dissect_number_of_pages_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1157 return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_number_of_pages);
1159 static int dissect_submitted_body_part_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1160 return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_submitted_body_part);
1162 static int dissect_voice_message_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1163 return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_voice_message_duration);
1167 static const ber_sequence_t G3FacsimileParameters_set[] = {
1168 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_number_of_pages_impl },
1169 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_g3facsimile_non_basic_parameters_impl },
1174 dissect_x420_G3FacsimileParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1175 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1176 G3FacsimileParameters_set, hf_index, ett_x420_G3FacsimileParameters);
1180 static int dissect_g3facsimile_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1181 return dissect_x420_G3FacsimileParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_g3facsimile_parameters);
1187 dissect_x420_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1188 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1194 static int dissect_G3FacsimileData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1195 return dissect_x420_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_x420_G3FacsimileData_item);
1197 static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1198 return dissect_x420_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_x420_encrypted);
1202 static const ber_sequence_t G3FacsimileData_sequence_of[1] = {
1203 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_G3FacsimileData_item },
1207 dissect_x420_G3FacsimileData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1208 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1209 G3FacsimileData_sequence_of, hf_index, ett_x420_G3FacsimileData);
1213 static int dissect_g3facsimile_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1214 return dissect_x420_G3FacsimileData(FALSE, tvb, offset, pinfo, tree, hf_x420_g3facsimile_data);
1218 static const ber_sequence_t G3FacsimileBodyPart_sequence[] = {
1219 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_g3facsimile_parameters },
1220 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_g3facsimile_data },
1225 dissect_x420_G3FacsimileBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1226 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1227 G3FacsimileBodyPart_sequence, hf_index, ett_x420_G3FacsimileBodyPart);
1231 static int dissect_g3_facsimile_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1232 return dissect_x420_G3FacsimileBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_g3_facsimile);
1238 dissect_x420_Interchange_Data_Element(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1239 #line 164 "x420.cnf"
1240 /* XXX Not implemented yet */
1246 static int dissect_G4Class1Data_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1247 return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_G4Class1Data_item);
1249 static int dissect_MixedModeData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1250 return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_MixedModeData_item);
1254 static const ber_sequence_t G4Class1Data_sequence_of[1] = {
1255 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_G4Class1Data_item },
1259 dissect_x420_G4Class1Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1260 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1261 G4Class1Data_sequence_of, hf_index, ett_x420_G4Class1Data);
1269 dissect_x420_G4Class1BodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1270 offset = dissect_x420_G4Class1Data(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1274 static int dissect_g4_class1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1275 return dissect_x420_G4Class1BodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_g4_class1);
1279 static const ber_sequence_t TeletexParameters_set[] = {
1280 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_number_of_pages_impl },
1281 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_telex_compatible_impl },
1282 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teletex_non_basic_parameters_impl },
1287 dissect_x420_TeletexParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1288 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1289 TeletexParameters_set, hf_index, ett_x420_TeletexParameters);
1293 static int dissect_teletex_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1294 return dissect_x420_TeletexParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_teletex_parameters);
1300 dissect_x420_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1301 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
1302 pinfo, tree, tvb, offset, hf_index,
1307 static int dissect_TeletexData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1308 return dissect_x420_TeletexString(FALSE, tvb, offset, pinfo, tree, hf_x420_TeletexData_item);
1312 static const ber_sequence_t TeletexData_sequence_of[1] = {
1313 { BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_TeletexData_item },
1317 dissect_x420_TeletexData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1318 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1319 TeletexData_sequence_of, hf_index, ett_x420_TeletexData);
1323 static int dissect_teletex_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1324 return dissect_x420_TeletexData(FALSE, tvb, offset, pinfo, tree, hf_x420_teletex_data);
1328 static const ber_sequence_t TeletexBodyPart_sequence[] = {
1329 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_teletex_parameters },
1330 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_teletex_data },
1335 dissect_x420_TeletexBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1336 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1337 TeletexBodyPart_sequence, hf_index, ett_x420_TeletexBodyPart);
1341 static int dissect_teletex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1342 return dissect_x420_TeletexBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_teletex);
1346 static const value_string x420_VideotexSyntax_vals[] = {
1348 { 1, "data-syntax1" },
1349 { 2, "data-syntax2" },
1350 { 3, "data-syntax3" },
1356 dissect_x420_VideotexSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1357 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1362 static int dissect_syntax_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1363 return dissect_x420_VideotexSyntax(TRUE, tvb, offset, pinfo, tree, hf_x420_syntax);
1367 static const ber_sequence_t VideotexParameters_set[] = {
1368 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_syntax_impl },
1373 dissect_x420_VideotexParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1374 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1375 VideotexParameters_set, hf_index, ett_x420_VideotexParameters);
1379 static int dissect_videotex_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1380 return dissect_x420_VideotexParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_videotex_parameters);
1386 dissect_x420_VideotexData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1387 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VideotexString,
1388 pinfo, tree, tvb, offset, hf_index,
1393 static int dissect_videotex_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1394 return dissect_x420_VideotexData(FALSE, tvb, offset, pinfo, tree, hf_x420_videotex_data);
1398 static const ber_sequence_t VideotexBodyPart_sequence[] = {
1399 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_videotex_parameters },
1400 { BER_CLASS_UNI, BER_UNI_TAG_VideotexString, BER_FLAGS_NOOWNTAG, dissect_videotex_data },
1405 dissect_x420_VideotexBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1406 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1407 VideotexBodyPart_sequence, hf_index, ett_x420_VideotexBodyPart);
1411 static int dissect_videotex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1412 return dissect_x420_VideotexBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_videotex);
1416 static const ber_sequence_t EncryptedParameters_set[] = {
1417 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithm_identifier },
1418 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_originator_certificates },
1423 dissect_x420_EncryptedParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1424 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1425 EncryptedParameters_set, hf_index, ett_x420_EncryptedParameters);
1429 static int dissect_encrypted_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1430 return dissect_x420_EncryptedParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_encrypted_parameters);
1436 dissect_x420_EncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1437 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1443 static int dissect_encrypted_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1444 return dissect_x420_EncryptedData(FALSE, tvb, offset, pinfo, tree, hf_x420_encrypted_data);
1448 static const ber_sequence_t EncryptedBodyPart_sequence[] = {
1449 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_encrypted_parameters },
1450 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted_data },
1455 dissect_x420_EncryptedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1456 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1457 EncryptedBodyPart_sequence, hf_index, ett_x420_EncryptedBodyPart);
1461 static int dissect_encrypted_bp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1462 return dissect_x420_EncryptedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_encrypted_bp);
1466 static const ber_sequence_t MessageParameters_set[] = {
1467 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_time_impl },
1468 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_envelope_impl },
1473 dissect_x420_MessageParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1474 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1475 MessageParameters_set, hf_index, ett_x420_MessageParameters);
1479 static int dissect_message_parameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1480 return dissect_x420_MessageParameters(FALSE, tvb, offset, pinfo, tree, hf_x420_message_parameters);
1486 dissect_x420_MessageData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1487 offset = dissect_x420_IPM(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1491 static int dissect_message_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1492 return dissect_x420_MessageData(FALSE, tvb, offset, pinfo, tree, hf_x420_message_data);
1496 static const ber_sequence_t MessageBodyPart_sequence[] = {
1497 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_message_parameters },
1498 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_message_data },
1503 dissect_x420_MessageBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1504 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1505 MessageBodyPart_sequence, hf_index, ett_x420_MessageBodyPart);
1509 static int dissect_message_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1510 return dissect_x420_MessageBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_message);
1514 static const ber_sequence_t MixedModeData_sequence_of[1] = {
1515 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_MixedModeData_item },
1519 dissect_x420_MixedModeData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1520 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1521 MixedModeData_sequence_of, hf_index, ett_x420_MixedModeData);
1529 dissect_x420_MixedModeBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1530 offset = dissect_x420_MixedModeData(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1534 static int dissect_mixed_mode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1535 return dissect_x420_MixedModeBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_mixed_mode);
1541 dissect_x420_BilaterallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1542 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1547 static int dissect_bilaterally_defined_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1548 return dissect_x420_BilaterallyDefinedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_bilaterally_defined);
1554 dissect_x420_NationallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1555 #line 167 "x420.cnf"
1556 /* XXX Not implemented yet */
1563 static int dissect_nationally_defined_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1564 return dissect_x420_NationallyDefinedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_nationally_defined);
1568 static const ber_sequence_t ExtendedBodyPart_sequence[] = {
1569 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_extended_parameters_impl },
1570 { BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_extended_data },
1575 dissect_x420_ExtendedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1576 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1577 ExtendedBodyPart_sequence, hf_index, ett_x420_ExtendedBodyPart);
1581 static int dissect_extended_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1582 return dissect_x420_ExtendedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_extended);
1586 static const value_string x420_BodyPart_vals[] = {
1588 { 3, "g3-facsimile" },
1594 { 11, "mixed-mode" },
1595 { 14, "bilaterally-defined" },
1596 { 7, "nationally-defined" },
1601 static const ber_choice_t BodyPart_choice[] = {
1602 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ia5_text_impl },
1603 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_g3_facsimile_impl },
1604 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_g4_class1_impl },
1605 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_teletex_impl },
1606 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_videotex_impl },
1607 { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_encrypted_bp_impl },
1608 { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_message_impl },
1609 { 11, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mixed_mode_impl },
1610 { 14, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_bilaterally_defined_impl },
1611 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nationally_defined_impl },
1612 { 15, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_extended_impl },
1613 { 0, 0, 0, 0, NULL }
1617 dissect_x420_BodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1618 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1619 BodyPart_choice, hf_index, ett_x420_BodyPart,
1624 static int dissect_Body_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1625 return dissect_x420_BodyPart(FALSE, tvb, offset, pinfo, tree, hf_x420_Body_item);
1627 static int dissect_advice(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1628 return dissect_x420_BodyPart(FALSE, tvb, offset, pinfo, tree, hf_x420_advice);
1632 static const ber_sequence_t Body_sequence_of[1] = {
1633 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Body_item },
1637 dissect_x420_Body(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1638 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1639 Body_sequence_of, hf_index, ett_x420_Body);
1643 static int dissect_body(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1644 return dissect_x420_Body(FALSE, tvb, offset, pinfo, tree, hf_x420_body);
1648 static const ber_sequence_t IPM_sequence[] = {
1649 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_heading },
1650 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_body },
1655 dissect_x420_IPM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1656 #line 127 "x420.cnf"
1658 if((hf_index == hf_x420_ipm) && check_col(pinfo->cinfo, COL_INFO))
1659 col_append_fstr(pinfo->cinfo, COL_INFO, " Message");
1661 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1662 IPM_sequence, hf_index, ett_x420_IPM);
1674 dissect_x420_SubjectIPMField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1675 offset = dissect_x420_IPMIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1679 static int dissect_subject_ipm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1680 return dissect_x420_SubjectIPMField(FALSE, tvb, offset, pinfo, tree, hf_x420_subject_ipm);
1686 dissect_x420_IPNOriginatorField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1687 offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1691 static int dissect_ipn_originator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1692 return dissect_x420_IPNOriginatorField(TRUE, tvb, offset, pinfo, tree, hf_x420_ipn_originator);
1698 dissect_x420_IPMIntendedRecipientField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1699 offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1703 static int dissect_ipm_intended_recipient_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1704 return dissect_x420_IPMIntendedRecipientField(TRUE, tvb, offset, pinfo, tree, hf_x420_ipm_intended_recipient);
1710 dissect_x420_ConversionEITsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1711 offset = dissect_x411_EncodedInformationTypes(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1715 static int dissect_conversion_eits(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1716 return dissect_x420_ConversionEITsField(FALSE, tvb, offset, pinfo, tree, hf_x420_conversion_eits);
1720 static const ber_sequence_t NotificationExtensionsField_set_of[1] = {
1721 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NotificationExtensionsField_item },
1725 dissect_x420_NotificationExtensionsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1726 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1727 NotificationExtensionsField_set_of, hf_index, ett_x420_NotificationExtensionsField);
1731 static int dissect_notification_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1732 return dissect_x420_NotificationExtensionsField(TRUE, tvb, offset, pinfo, tree, hf_x420_notification_extensions);
1736 const value_string x420_NonReceiptReasonField_vals[] = {
1737 { 0, "ipm-discarded" },
1738 { 1, "ipm-auto-forwarded" },
1744 dissect_x420_NonReceiptReasonField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1745 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1750 static int dissect_non_receipt_reason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1751 return dissect_x420_NonReceiptReasonField(TRUE, tvb, offset, pinfo, tree, hf_x420_non_receipt_reason);
1755 const value_string x420_DiscardReasonField_vals[] = {
1756 { 0, "ipm-expired" },
1757 { 1, "ipm-obsoleted" },
1758 { 2, "user-subscription-terminated" },
1765 dissect_x420_DiscardReasonField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1766 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1771 static int dissect_discard_reason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1772 return dissect_x420_DiscardReasonField(TRUE, tvb, offset, pinfo, tree, hf_x420_discard_reason);
1778 dissect_x420_AutoForwardComment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1779 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1780 pinfo, tree, tvb, offset, hf_index,
1789 dissect_x420_AutoForwardCommentField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1790 offset = dissect_x420_AutoForwardComment(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1794 static int dissect_auto_forward_comment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1795 return dissect_x420_AutoForwardCommentField(TRUE, tvb, offset, pinfo, tree, hf_x420_auto_forward_comment);
1801 dissect_x420_ReturnedIPMField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1802 offset = dissect_x420_IPM(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1806 static int dissect_returned_ipm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1807 return dissect_x420_ReturnedIPMField(TRUE, tvb, offset, pinfo, tree, hf_x420_returned_ipm);
1811 static const ber_sequence_t NRNExtensionsField_set_of[1] = {
1812 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NRNExtensionsField_item },
1816 dissect_x420_NRNExtensionsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1817 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1818 NRNExtensionsField_set_of, hf_index, ett_x420_NRNExtensionsField);
1822 static int dissect_nrn_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1823 return dissect_x420_NRNExtensionsField(TRUE, tvb, offset, pinfo, tree, hf_x420_nrn_extensions);
1827 static const ber_sequence_t NonReceiptFields_set[] = {
1828 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_non_receipt_reason_impl },
1829 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_discard_reason_impl },
1830 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_auto_forward_comment_impl },
1831 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_returned_ipm_impl },
1832 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nrn_extensions_impl },
1837 dissect_x420_NonReceiptFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1838 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1839 NonReceiptFields_set, hf_index, ett_x420_NonReceiptFields);
1843 static int dissect_non_receipt_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1844 return dissect_x420_NonReceiptFields(TRUE, tvb, offset, pinfo, tree, hf_x420_non_receipt_fields);
1850 dissect_x420_ReceiptTimeField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1851 offset = dissect_x420_Time(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1855 static int dissect_receipt_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1856 return dissect_x420_ReceiptTimeField(TRUE, tvb, offset, pinfo, tree, hf_x420_receipt_time);
1860 static const value_string x420_AcknowledgmentModeField_vals[] = {
1868 dissect_x420_AcknowledgmentModeField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1869 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1874 static int dissect_acknowledgment_mode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1875 return dissect_x420_AcknowledgmentModeField(TRUE, tvb, offset, pinfo, tree, hf_x420_acknowledgment_mode);
1881 dissect_x420_SupplReceiptInfoField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1882 offset = dissect_x411_SupplementaryInformation(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1886 static int dissect_suppl_receipt_info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1887 return dissect_x420_SupplReceiptInfoField(TRUE, tvb, offset, pinfo, tree, hf_x420_suppl_receipt_info);
1891 static const ber_sequence_t RNExtensionsField_set_of[1] = {
1892 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RNExtensionsField_item },
1896 dissect_x420_RNExtensionsField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1897 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1898 RNExtensionsField_set_of, hf_index, ett_x420_RNExtensionsField);
1902 static int dissect_rn_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1903 return dissect_x420_RNExtensionsField(TRUE, tvb, offset, pinfo, tree, hf_x420_rn_extensions);
1907 static const ber_sequence_t ReceiptFields_set[] = {
1908 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_receipt_time_impl },
1909 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acknowledgment_mode_impl },
1910 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppl_receipt_info_impl },
1911 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rn_extensions_impl },
1916 dissect_x420_ReceiptFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1917 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1918 ReceiptFields_set, hf_index, ett_x420_ReceiptFields);
1922 static int dissect_receipt_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1923 return dissect_x420_ReceiptFields(TRUE, tvb, offset, pinfo, tree, hf_x420_receipt_fields);
1927 static const ber_sequence_t OtherNotificationTypeFields_set_of[1] = {
1928 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_OtherNotificationTypeFields_item },
1932 dissect_x420_OtherNotificationTypeFields(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1933 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1934 OtherNotificationTypeFields_set_of, hf_index, ett_x420_OtherNotificationTypeFields);
1938 static int dissect_other_notification_type_fields_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1939 return dissect_x420_OtherNotificationTypeFields(TRUE, tvb, offset, pinfo, tree, hf_x420_other_notification_type_fields);
1943 static const value_string x420_T_choice_vals[] = {
1944 { 0, "non-receipt-fields" },
1945 { 1, "receipt-fields" },
1946 { 2, "other-notification-type-fields" },
1950 static const ber_choice_t T_choice_choice[] = {
1951 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_non_receipt_fields_impl },
1952 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receipt_fields_impl },
1953 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_other_notification_type_fields_impl },
1954 { 0, 0, 0, 0, NULL }
1958 dissect_x420_T_choice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1959 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1960 T_choice_choice, hf_index, ett_x420_T_choice,
1965 static int dissect_choice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1966 return dissect_x420_T_choice(TRUE, tvb, offset, pinfo, tree, hf_x420_choice);
1970 static const ber_sequence_t IPN_set[] = {
1971 { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_subject_ipm },
1972 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ipn_originator_impl },
1973 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ipm_intended_recipient_impl },
1974 { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_conversion_eits },
1975 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notification_extensions_impl },
1976 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_choice_impl },
1981 dissect_x420_IPN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1982 #line 135 "x420.cnf"
1984 if((hf_index == hf_x420_ipn) && check_col(pinfo->cinfo, COL_INFO))
1985 col_append_fstr(pinfo->cinfo, COL_INFO, " Notification");
1987 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1988 IPN_set, hf_index, ett_x420_IPN);
1995 static int dissect_ipn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1996 return dissect_x420_IPN(TRUE, tvb, offset, pinfo, tree, hf_x420_ipn);
2000 const value_string x420_InformationObject_vals[] = {
2006 static const ber_choice_t InformationObject_choice[] = {
2007 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipm_impl },
2008 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ipn_impl },
2009 { 0, 0, 0, 0, NULL }
2013 dissect_x420_InformationObject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2014 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2015 InformationObject_choice, hf_index, ett_x420_InformationObject,
2022 static const ber_sequence_t AbsenceAdvice_sequence[] = {
2023 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_advice },
2024 { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_next_available },
2029 dissect_x420_AbsenceAdvice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2030 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2031 AbsenceAdvice_sequence, hf_index, ett_x420_AbsenceAdvice);
2037 static const ber_sequence_t ChangeOfAddressAdvice_sequence[] = {
2038 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_new_address_impl },
2039 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_effective_from_impl },
2044 dissect_x420_ChangeOfAddressAdvice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2045 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2046 ChangeOfAddressAdvice_sequence, hf_index, ett_x420_ChangeOfAddressAdvice);
2054 dissect_x420_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2055 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2060 static int dissect_stored_entry_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2061 return dissect_x420_SequenceNumber(TRUE, tvb, offset, pinfo, tree, hf_x420_stored_entry);
2063 static int dissect_stored_content_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2064 return dissect_x420_SequenceNumber(TRUE, tvb, offset, pinfo, tree, hf_x420_stored_content);
2066 static int dissect_message_entry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2067 return dissect_x420_SequenceNumber(FALSE, tvb, offset, pinfo, tree, hf_x420_message_entry);
2073 dissect_x420_BodyPartNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2074 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2079 static int dissect_body_part_number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2080 return dissect_x420_BodyPartNumber(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_number);
2084 static const ber_sequence_t T_stored_body_part_sequence[] = {
2085 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_message_entry },
2086 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_body_part_number },
2091 dissect_x420_T_stored_body_part(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2092 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2093 T_stored_body_part_sequence, hf_index, ett_x420_T_stored_body_part);
2097 static int dissect_stored_body_part_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2098 return dissect_x420_T_stored_body_part(TRUE, tvb, offset, pinfo, tree, hf_x420_stored_body_part);
2102 static const value_string x420_BodyPartReference_vals[] = {
2103 { 0, "stored-entry" },
2104 { 1, "stored-content" },
2105 { 2, "submitted-body-part" },
2106 { 3, "stored-body-part" },
2110 static const ber_choice_t BodyPartReference_choice[] = {
2111 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_stored_entry_impl },
2112 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_stored_content_impl },
2113 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_submitted_body_part_impl },
2114 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_stored_body_part_impl },
2115 { 0, 0, 0, 0, NULL }
2119 dissect_x420_BodyPartReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2120 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2121 BodyPartReference_choice, hf_index, ett_x420_BodyPartReference,
2126 static int dissect_BodyPartReferences_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2127 return dissect_x420_BodyPartReference(FALSE, tvb, offset, pinfo, tree, hf_x420_BodyPartReferences_item);
2131 static const ber_sequence_t BodyPartReferences_sequence_of[1] = {
2132 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BodyPartReferences_item },
2136 dissect_x420_BodyPartReferences(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2137 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2138 BodyPartReferences_sequence_of, hf_index, ett_x420_BodyPartReferences);
2142 static int dissect_assembly_instructions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2143 return dissect_x420_BodyPartReferences(TRUE, tvb, offset, pinfo, tree, hf_x420_assembly_instructions);
2147 static const ber_sequence_t IPMAssemblyInstructions_set[] = {
2148 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assembly_instructions_impl },
2153 dissect_x420_IPMAssemblyInstructions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2154 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2155 IPMAssemblyInstructions_set, hf_index, ett_x420_IPMAssemblyInstructions);
2163 dissect_x420_OriginatingUA(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2164 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2165 pinfo, tree, tvb, offset, hf_index,
2174 dissect_x420_IncompleteCopy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2175 offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2183 dissect_x420_Language(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2184 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
2185 pinfo, tree, tvb, offset, hf_index,
2190 static int dissect_Languages_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2191 return dissect_x420_Language(FALSE, tvb, offset, pinfo, tree, hf_x420_Languages_item);
2195 static const ber_sequence_t Languages_set_of[1] = {
2196 { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_Languages_item },
2200 dissect_x420_Languages(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2201 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2202 Languages_set_of, hf_index, ett_x420_Languages);
2208 static const value_string x420_AutoSubmitted_vals[] = {
2209 { 0, "not-auto-submitted" },
2210 { 1, "auto-generated" },
2211 { 2, "auto-replied" },
2217 dissect_x420_AutoSubmitted(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2218 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2225 static const ber_sequence_t Signature_sequence[] = {
2226 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2227 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2232 dissect_x420_Signature(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2233 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2234 Signature_sequence, hf_index, ett_x420_Signature);
2242 dissect_x420_BodyPartSignature(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2243 offset = dissect_x420_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2247 static int dissect_body_part_signature(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2248 return dissect_x420_BodyPartSignature(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_signature);
2252 static const ber_sequence_t BodyPartSignatures_item_set[] = {
2253 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_body_part_number },
2254 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_body_part_signature },
2255 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originator_certificate_selector_impl },
2256 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originator_certificates_impl },
2261 dissect_x420_BodyPartSignatures_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2262 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2263 BodyPartSignatures_item_set, hf_index, ett_x420_BodyPartSignatures_item);
2267 static int dissect_BodyPartSignatures_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2268 return dissect_x420_BodyPartSignatures_item(FALSE, tvb, offset, pinfo, tree, hf_x420_BodyPartSignatures_item);
2272 static const ber_sequence_t BodyPartSignatures_set_of[1] = {
2273 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_BodyPartSignatures_item },
2277 dissect_x420_BodyPartSignatures(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2278 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2279 BodyPartSignatures_set_of, hf_index, ett_x420_BodyPartSignatures);
2287 dissect_x420_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2288 offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2292 static int dissect_body_part_unlabelled_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2293 return dissect_x420_NULL(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_unlabelled);
2295 static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2296 return dissect_x420_NULL(FALSE, tvb, offset, pinfo, tree, hf_x420_simple);
2300 static const value_string x420_BodyPartSecurityLabel_vals[] = {
2301 { 0, "body-part-unlabelled" },
2302 { 1, "body-part-security-label" },
2306 static const ber_choice_t BodyPartSecurityLabel_choice[] = {
2307 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_body_part_unlabelled_impl },
2308 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_body_part_security_label_impl },
2309 { 0, 0, 0, 0, NULL }
2313 dissect_x420_BodyPartSecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2314 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2315 BodyPartSecurityLabel_choice, hf_index, ett_x420_BodyPartSecurityLabel,
2320 static int dissect_body_part_security_labels_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2321 return dissect_x420_BodyPartSecurityLabel(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_security_labels_item);
2325 static const ber_sequence_t SEQUENCE_OF_BodyPartSecurityLabel_sequence_of[1] = {
2326 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_body_part_security_labels_item },
2330 dissect_x420_SEQUENCE_OF_BodyPartSecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2331 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2332 SEQUENCE_OF_BodyPartSecurityLabel_sequence_of, hf_index, ett_x420_SEQUENCE_OF_BodyPartSecurityLabel);
2336 static int dissect_body_part_security_labels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2337 return dissect_x420_SEQUENCE_OF_BodyPartSecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_security_labels);
2341 static const ber_sequence_t IPMSecurityLabel_sequence[] = {
2342 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_content_security_label_impl },
2343 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_heading_security_label_impl },
2344 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_body_part_security_labels_impl },
2349 dissect_x420_IPMSecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2350 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2351 IPMSecurityLabel_sequence, hf_index, ett_x420_IPMSecurityLabel);
2359 dissect_x420_AuthorizationTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2360 offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2368 dissect_x420_CirculationTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2369 offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2373 static int dissect_timestamped(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2374 return dissect_x420_CirculationTime(FALSE, tvb, offset, pinfo, tree, hf_x420_timestamped);
2376 static int dissect_timestamp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2377 return dissect_x420_CirculationTime(FALSE, tvb, offset, pinfo, tree, hf_x420_timestamp);
2383 dissect_x420_CirculationSignatureAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2384 offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2388 static int dissect_circulation_signature_algorithm_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2389 return dissect_x420_CirculationSignatureAlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_signature_algorithm_identifier);
2393 static const ber_sequence_t CirculationSignatureData_sequence[] = {
2394 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_circulation_signature_algorithm_identifier },
2395 { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_this_IPM },
2396 { BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_timestamp },
2401 dissect_x420_CirculationSignatureData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2402 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2403 CirculationSignatureData_sequence, hf_index, ett_x420_CirculationSignatureData);
2407 static int dissect_circulation_signature_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2408 return dissect_x420_CirculationSignatureData(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_signature_data);
2412 static const ber_sequence_t CirculationSignature_sequence[] = {
2413 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_circulation_signature_data },
2414 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithm_identifier },
2415 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2420 dissect_x420_CirculationSignature(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2421 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2422 CirculationSignature_sequence, hf_index, ett_x420_CirculationSignature);
2426 static int dissect_signed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2427 return dissect_x420_CirculationSignature(FALSE, tvb, offset, pinfo, tree, hf_x420_signed);
2431 static const value_string x420_Checkmark_vals[] = {
2433 { 1, "timestamped" },
2438 static const ber_choice_t Checkmark_choice[] = {
2439 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_simple },
2440 { 1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_timestamped },
2441 { 2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signed },
2442 { 0, 0, 0, 0, NULL }
2446 dissect_x420_Checkmark(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2447 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2448 Checkmark_choice, hf_index, ett_x420_Checkmark,
2453 static int dissect_checked(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2454 return dissect_x420_Checkmark(FALSE, tvb, offset, pinfo, tree, hf_x420_checked);
2458 static const ber_sequence_t CirculationMember_set[] = {
2459 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_circulation_recipient },
2460 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_checked },
2465 dissect_x420_CirculationMember(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2466 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2467 CirculationMember_set, hf_index, ett_x420_CirculationMember);
2471 static int dissect_CirculationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2472 return dissect_x420_CirculationMember(FALSE, tvb, offset, pinfo, tree, hf_x420_CirculationList_item);
2476 static const ber_sequence_t CirculationList_sequence_of[1] = {
2477 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_CirculationList_item },
2481 dissect_x420_CirculationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2482 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2483 CirculationList_sequence_of, hf_index, ett_x420_CirculationList);
2491 dissect_x420_CirculationListIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2492 offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2500 dissect_x420_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2501 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2505 static int dissect_oid_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2506 return dissect_x420_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x420_oid_code);
2508 static int dissect_reference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2509 return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x420_reference);
2511 static int dissect_voice_encoding_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2512 return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x420_voice_encoding_type);
2518 dissect_x420_AlphaCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2519 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2523 static int dissect_alphanumeric_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2524 return dissect_x420_AlphaCode(FALSE, tvb, offset, pinfo, tree, hf_x420_alphanumeric_code);
2528 static const ber_sequence_t DistributionCode_sequence[] = {
2529 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_oid_code },
2530 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alphanumeric_code },
2531 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_descriptor_impl },
2536 dissect_x420_DistributionCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2537 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2538 DistributionCode_sequence, hf_index, ett_x420_DistributionCode);
2542 static int dissect_DistributionCodes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2543 return dissect_x420_DistributionCode(FALSE, tvb, offset, pinfo, tree, hf_x420_DistributionCodes_item);
2547 static const ber_sequence_t DistributionCodes_sequence_of[1] = {
2548 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DistributionCodes_item },
2552 dissect_x420_DistributionCodes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2553 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2554 DistributionCodes_sequence_of, hf_index, ett_x420_DistributionCodes);
2562 dissect_x420_ExtendedSubject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2563 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2571 dissect_x420_DescriptionString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2572 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2576 static int dissect_description_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2577 return dissect_x420_DescriptionString(TRUE, tvb, offset, pinfo, tree, hf_x420_description);
2581 static const ber_sequence_t InformationCategory_sequence[] = {
2582 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reference_impl },
2583 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_description_impl },
2588 dissect_x420_InformationCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2589 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2590 InformationCategory_sequence, hf_index, ett_x420_InformationCategory);
2594 static int dissect_InformationCategories_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2595 return dissect_x420_InformationCategory(FALSE, tvb, offset, pinfo, tree, hf_x420_InformationCategories_item);
2599 static const ber_sequence_t InformationCategories_sequence_of[1] = {
2600 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_InformationCategories_item },
2604 dissect_x420_InformationCategories(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2605 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2606 InformationCategories_sequence_of, hf_index, ett_x420_InformationCategories);
2614 dissect_x420_ManualHandlingInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2615 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2619 static int dissect_ManualHandlingInstructions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2620 return dissect_x420_ManualHandlingInstruction(FALSE, tvb, offset, pinfo, tree, hf_x420_ManualHandlingInstructions_item);
2624 static const ber_sequence_t ManualHandlingInstructions_sequence_of[1] = {
2625 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_ManualHandlingInstructions_item },
2629 dissect_x420_ManualHandlingInstructions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2630 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2631 ManualHandlingInstructions_sequence_of, hf_index, ett_x420_ManualHandlingInstructions);
2639 dissect_x420_OriginatorsReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2640 offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2648 dissect_x420_PrecedencePolicyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2649 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2657 dissect_x420_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2658 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2667 dissect_x420_CharacterSetRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2668 #line 156 "x420.cnf"
2671 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2675 if((pi = get_ber_last_created_item()))
2676 proto_item_append_text(pi, " (%s)", val_to_str(crs, charsetreg_vals, "unknown"));
2682 static int dissect_GeneralTextParameters_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2683 return dissect_x420_CharacterSetRegistration(FALSE, tvb, offset, pinfo, tree, hf_x420_GeneralTextParameters_item);
2687 static const ber_sequence_t GeneralTextParameters_set_of[1] = {
2688 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_GeneralTextParameters_item },
2692 dissect_x420_GeneralTextParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2693 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2694 GeneralTextParameters_set_of, hf_index, ett_x420_GeneralTextParameters);
2702 dissect_x420_GeneralTextData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2703 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
2704 pinfo, tree, tvb, offset, hf_index,
2713 dissect_x420_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2714 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2715 pinfo, tree, tvb, offset, hf_index,
2720 static int dissect_supplementary_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2721 return dissect_x420_IA5String(TRUE, tvb, offset, pinfo, tree, hf_x420_supplementary_information);
2725 static const ber_sequence_t VoiceParameters_sequence[] = {
2726 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voice_message_duration_impl },
2727 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_voice_encoding_type_impl },
2728 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supplementary_information_impl },
2733 dissect_x420_VoiceParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2734 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2735 VoiceParameters_sequence, hf_index, ett_x420_VoiceParameters);
2743 dissect_x420_VoiceData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2744 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2751 static const ber_sequence_t SubmissionProof_set[] = {
2752 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_proof_of_submission_impl },
2753 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_originating_MTA_certificate_impl },
2754 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_message_submission_envelope },
2759 dissect_x420_SubmissionProof(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2760 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2761 SubmissionProof_set, hf_index, ett_x420_SubmissionProof);
2765 static int dissect_submission_proof_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2766 return dissect_x420_SubmissionProof(TRUE, tvb, offset, pinfo, tree, hf_x420_submission_proof);
2770 static const ber_sequence_t ForwardedContentParameters_set[] = {
2771 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_time_impl },
2772 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_envelope_impl },
2773 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mts_identifier_impl },
2774 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_submission_proof_impl },
2779 dissect_x420_ForwardedContentParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2780 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2781 ForwardedContentParameters_set, hf_index, ett_x420_ForwardedContentParameters);
2788 static void dissect_InformationObject_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2789 dissect_x420_InformationObject(FALSE, tvb, 0, pinfo, tree, hf_x420_InformationObject_PDU);
2791 static void dissect_IA5TextParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2792 dissect_x420_IA5TextParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_IA5TextParameters_PDU);
2794 static void dissect_IA5TextData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2795 dissect_x420_IA5TextData(FALSE, tvb, 0, pinfo, tree, hf_x420_IA5TextData_PDU);
2797 static void dissect_G3FacsimileParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2798 dissect_x420_G3FacsimileParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_G3FacsimileParameters_PDU);
2800 static void dissect_G3FacsimileData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2801 dissect_x420_G3FacsimileData(FALSE, tvb, 0, pinfo, tree, hf_x420_G3FacsimileData_PDU);
2803 static void dissect_G4Class1Data_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2804 dissect_x420_G4Class1Data(FALSE, tvb, 0, pinfo, tree, hf_x420_G4Class1Data_PDU);
2806 static void dissect_MixedModeData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2807 dissect_x420_MixedModeData(FALSE, tvb, 0, pinfo, tree, hf_x420_MixedModeData_PDU);
2809 static void dissect_TeletexParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2810 dissect_x420_TeletexParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_TeletexParameters_PDU);
2812 static void dissect_TeletexData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2813 dissect_x420_TeletexData(FALSE, tvb, 0, pinfo, tree, hf_x420_TeletexData_PDU);
2815 static void dissect_VideotexParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2816 dissect_x420_VideotexParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_VideotexParameters_PDU);
2818 static void dissect_VideotexData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2819 dissect_x420_VideotexData(FALSE, tvb, 0, pinfo, tree, hf_x420_VideotexData_PDU);
2821 static void dissect_EncryptedParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2822 dissect_x420_EncryptedParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_EncryptedParameters_PDU);
2824 static void dissect_EncryptedData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2825 dissect_x420_EncryptedData(FALSE, tvb, 0, pinfo, tree, hf_x420_EncryptedData_PDU);
2827 static void dissect_MessageParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2828 dissect_x420_MessageParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_MessageParameters_PDU);
2830 static void dissect_MessageData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2831 dissect_x420_MessageData(FALSE, tvb, 0, pinfo, tree, hf_x420_MessageData_PDU);
2833 static void dissect_BilaterallyDefinedBodyPart_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2834 dissect_x420_BilaterallyDefinedBodyPart(FALSE, tvb, 0, pinfo, tree, hf_x420_BilaterallyDefinedBodyPart_PDU);
2836 static void dissect_IPN_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2837 dissect_x420_IPN(FALSE, tvb, 0, pinfo, tree, hf_x420_IPN_PDU);
2839 static void dissect_AbsenceAdvice_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2840 dissect_x420_AbsenceAdvice(FALSE, tvb, 0, pinfo, tree, hf_x420_AbsenceAdvice_PDU);
2842 static void dissect_ChangeOfAddressAdvice_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2843 dissect_x420_ChangeOfAddressAdvice(FALSE, tvb, 0, pinfo, tree, hf_x420_ChangeOfAddressAdvice_PDU);
2845 static void dissect_IPMAssemblyInstructions_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2846 dissect_x420_IPMAssemblyInstructions(FALSE, tvb, 0, pinfo, tree, hf_x420_IPMAssemblyInstructions_PDU);
2848 static void dissect_OriginatingUA_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2849 dissect_x420_OriginatingUA(FALSE, tvb, 0, pinfo, tree, hf_x420_OriginatingUA_PDU);
2851 static void dissect_IncompleteCopy_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2852 dissect_x420_IncompleteCopy(FALSE, tvb, 0, pinfo, tree, hf_x420_IncompleteCopy_PDU);
2854 static void dissect_Languages_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2855 dissect_x420_Languages(FALSE, tvb, 0, pinfo, tree, hf_x420_Languages_PDU);
2857 static void dissect_AutoSubmitted_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2858 dissect_x420_AutoSubmitted(FALSE, tvb, 0, pinfo, tree, hf_x420_AutoSubmitted_PDU);
2860 static void dissect_BodyPartSignatures_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2861 dissect_x420_BodyPartSignatures(FALSE, tvb, 0, pinfo, tree, hf_x420_BodyPartSignatures_PDU);
2863 static void dissect_IPMSecurityLabel_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2864 dissect_x420_IPMSecurityLabel(FALSE, tvb, 0, pinfo, tree, hf_x420_IPMSecurityLabel_PDU);
2866 static void dissect_AuthorizationTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2867 dissect_x420_AuthorizationTime(FALSE, tvb, 0, pinfo, tree, hf_x420_AuthorizationTime_PDU);
2869 static void dissect_CirculationList_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2870 dissect_x420_CirculationList(FALSE, tvb, 0, pinfo, tree, hf_x420_CirculationList_PDU);
2872 static void dissect_CirculationListIndicator_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2873 dissect_x420_CirculationListIndicator(FALSE, tvb, 0, pinfo, tree, hf_x420_CirculationListIndicator_PDU);
2875 static void dissect_DistributionCodes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2876 dissect_x420_DistributionCodes(FALSE, tvb, 0, pinfo, tree, hf_x420_DistributionCodes_PDU);
2878 static void dissect_ExtendedSubject_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2879 dissect_x420_ExtendedSubject(FALSE, tvb, 0, pinfo, tree, hf_x420_ExtendedSubject_PDU);
2881 static void dissect_InformationCategories_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2882 dissect_x420_InformationCategories(FALSE, tvb, 0, pinfo, tree, hf_x420_InformationCategories_PDU);
2884 static void dissect_ManualHandlingInstructions_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2885 dissect_x420_ManualHandlingInstructions(FALSE, tvb, 0, pinfo, tree, hf_x420_ManualHandlingInstructions_PDU);
2887 static void dissect_OriginatorsReference_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2888 dissect_x420_OriginatorsReference(FALSE, tvb, 0, pinfo, tree, hf_x420_OriginatorsReference_PDU);
2890 static void dissect_PrecedencePolicyIdentifier_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2891 dissect_x420_PrecedencePolicyIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x420_PrecedencePolicyIdentifier_PDU);
2893 static void dissect_Precedence_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2894 dissect_x420_Precedence(FALSE, tvb, 0, pinfo, tree, hf_x420_Precedence_PDU);
2896 static void dissect_GeneralTextParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2897 dissect_x420_GeneralTextParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_GeneralTextParameters_PDU);
2899 static void dissect_GeneralTextData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2900 dissect_x420_GeneralTextData(FALSE, tvb, 0, pinfo, tree, hf_x420_GeneralTextData_PDU);
2902 static void dissect_VoiceParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2903 dissect_x420_VoiceParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_VoiceParameters_PDU);
2905 static void dissect_VoiceData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2906 dissect_x420_VoiceData(FALSE, tvb, 0, pinfo, tree, hf_x420_VoiceData_PDU);
2908 static void dissect_ForwardedContentParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2909 dissect_x420_ForwardedContentParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_ForwardedContentParameters_PDU);
2913 /*--- End of included file: packet-x420-fn.c ---*/
2914 #line 93 "packet-x420-template.c"
2917 * Dissect X420 PDUs inside a PPDU.
2920 dissect_x420(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2923 proto_item *item=NULL;
2924 proto_tree *tree=NULL;
2927 item = proto_tree_add_item(parent_tree, proto_x420, tvb, 0, -1, FALSE);
2928 tree = proto_item_add_subtree(item, ett_x420);
2931 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2932 col_set_str(pinfo->cinfo, COL_PROTOCOL, "P22");
2933 if (check_col(pinfo->cinfo, COL_INFO))
2934 col_add_str(pinfo->cinfo, COL_INFO, "InterPersonal");
2936 dissect_x420_InformationObject(TRUE, tvb, offset, pinfo , tree, -1);
2940 /*--- proto_register_x420 -------------------------------------------*/
2941 void proto_register_x420(void) {
2943 /* List of fields */
2944 static hf_register_info hf[] =
2947 /*--- Included file: packet-x420-hfarr.c ---*/
2948 #line 1 "packet-x420-hfarr.c"
2949 { &hf_x420_InformationObject_PDU,
2950 { "InformationObject", "x420.InformationObject",
2951 FT_UINT32, BASE_DEC, VALS(x420_InformationObject_vals), 0,
2952 "x420.InformationObject", HFILL }},
2953 { &hf_x420_IA5TextParameters_PDU,
2954 { "IA5TextParameters", "x420.IA5TextParameters",
2955 FT_NONE, BASE_NONE, NULL, 0,
2956 "x420.IA5TextParameters", HFILL }},
2957 { &hf_x420_IA5TextData_PDU,
2958 { "IA5TextData", "x420.IA5TextData",
2959 FT_STRING, BASE_NONE, NULL, 0,
2960 "x420.IA5TextData", HFILL }},
2961 { &hf_x420_G3FacsimileParameters_PDU,
2962 { "G3FacsimileParameters", "x420.G3FacsimileParameters",
2963 FT_NONE, BASE_NONE, NULL, 0,
2964 "x420.G3FacsimileParameters", HFILL }},
2965 { &hf_x420_G3FacsimileData_PDU,
2966 { "G3FacsimileData", "x420.G3FacsimileData",
2967 FT_UINT32, BASE_DEC, NULL, 0,
2968 "x420.G3FacsimileData", HFILL }},
2969 { &hf_x420_G4Class1Data_PDU,
2970 { "G4Class1Data", "x420.G4Class1Data",
2971 FT_UINT32, BASE_DEC, NULL, 0,
2972 "x420.G4Class1Data", HFILL }},
2973 { &hf_x420_MixedModeData_PDU,
2974 { "MixedModeData", "x420.MixedModeData",
2975 FT_UINT32, BASE_DEC, NULL, 0,
2976 "x420.MixedModeData", HFILL }},
2977 { &hf_x420_TeletexParameters_PDU,
2978 { "TeletexParameters", "x420.TeletexParameters",
2979 FT_NONE, BASE_NONE, NULL, 0,
2980 "x420.TeletexParameters", HFILL }},
2981 { &hf_x420_TeletexData_PDU,
2982 { "TeletexData", "x420.TeletexData",
2983 FT_UINT32, BASE_DEC, NULL, 0,
2984 "x420.TeletexData", HFILL }},
2985 { &hf_x420_VideotexParameters_PDU,
2986 { "VideotexParameters", "x420.VideotexParameters",
2987 FT_NONE, BASE_NONE, NULL, 0,
2988 "x420.VideotexParameters", HFILL }},
2989 { &hf_x420_VideotexData_PDU,
2990 { "VideotexData", "x420.VideotexData",
2991 FT_STRING, BASE_NONE, NULL, 0,
2992 "x420.VideotexData", HFILL }},
2993 { &hf_x420_EncryptedParameters_PDU,
2994 { "EncryptedParameters", "x420.EncryptedParameters",
2995 FT_NONE, BASE_NONE, NULL, 0,
2996 "x420.EncryptedParameters", HFILL }},
2997 { &hf_x420_EncryptedData_PDU,
2998 { "EncryptedData", "x420.EncryptedData",
2999 FT_BYTES, BASE_HEX, NULL, 0,
3000 "x420.EncryptedData", HFILL }},
3001 { &hf_x420_MessageParameters_PDU,
3002 { "MessageParameters", "x420.MessageParameters",
3003 FT_NONE, BASE_NONE, NULL, 0,
3004 "x420.MessageParameters", HFILL }},
3005 { &hf_x420_MessageData_PDU,
3006 { "MessageData", "x420.MessageData",
3007 FT_NONE, BASE_NONE, NULL, 0,
3008 "x420.MessageData", HFILL }},
3009 { &hf_x420_BilaterallyDefinedBodyPart_PDU,
3010 { "BilaterallyDefinedBodyPart", "x420.BilaterallyDefinedBodyPart",
3011 FT_BYTES, BASE_HEX, NULL, 0,
3012 "x420.BilaterallyDefinedBodyPart", HFILL }},
3014 { "IPN", "x420.IPN",
3015 FT_NONE, BASE_NONE, NULL, 0,
3016 "x420.IPN", HFILL }},
3017 { &hf_x420_AbsenceAdvice_PDU,
3018 { "AbsenceAdvice", "x420.AbsenceAdvice",
3019 FT_NONE, BASE_NONE, NULL, 0,
3020 "x420.AbsenceAdvice", HFILL }},
3021 { &hf_x420_ChangeOfAddressAdvice_PDU,
3022 { "ChangeOfAddressAdvice", "x420.ChangeOfAddressAdvice",
3023 FT_NONE, BASE_NONE, NULL, 0,
3024 "x420.ChangeOfAddressAdvice", HFILL }},
3025 { &hf_x420_IPMAssemblyInstructions_PDU,
3026 { "IPMAssemblyInstructions", "x420.IPMAssemblyInstructions",
3027 FT_NONE, BASE_NONE, NULL, 0,
3028 "x420.IPMAssemblyInstructions", HFILL }},
3029 { &hf_x420_OriginatingUA_PDU,
3030 { "OriginatingUA", "x420.OriginatingUA",
3031 FT_STRING, BASE_NONE, NULL, 0,
3032 "x420.OriginatingUA", HFILL }},
3033 { &hf_x420_IncompleteCopy_PDU,
3034 { "IncompleteCopy", "x420.IncompleteCopy",
3035 FT_NONE, BASE_NONE, NULL, 0,
3036 "x420.IncompleteCopy", HFILL }},
3037 { &hf_x420_Languages_PDU,
3038 { "Languages", "x420.Languages",
3039 FT_UINT32, BASE_DEC, NULL, 0,
3040 "x420.Languages", HFILL }},
3041 { &hf_x420_AutoSubmitted_PDU,
3042 { "AutoSubmitted", "x420.AutoSubmitted",
3043 FT_UINT32, BASE_DEC, VALS(x420_AutoSubmitted_vals), 0,
3044 "x420.AutoSubmitted", HFILL }},
3045 { &hf_x420_BodyPartSignatures_PDU,
3046 { "BodyPartSignatures", "x420.BodyPartSignatures",
3047 FT_UINT32, BASE_DEC, NULL, 0,
3048 "x420.BodyPartSignatures", HFILL }},
3049 { &hf_x420_IPMSecurityLabel_PDU,
3050 { "IPMSecurityLabel", "x420.IPMSecurityLabel",
3051 FT_NONE, BASE_NONE, NULL, 0,
3052 "x420.IPMSecurityLabel", HFILL }},
3053 { &hf_x420_AuthorizationTime_PDU,
3054 { "AuthorizationTime", "x420.AuthorizationTime",
3055 FT_STRING, BASE_NONE, NULL, 0,
3056 "x420.AuthorizationTime", HFILL }},
3057 { &hf_x420_CirculationList_PDU,
3058 { "CirculationList", "x420.CirculationList",
3059 FT_UINT32, BASE_DEC, NULL, 0,
3060 "x420.CirculationList", HFILL }},
3061 { &hf_x420_CirculationListIndicator_PDU,
3062 { "CirculationListIndicator", "x420.CirculationListIndicator",
3063 FT_NONE, BASE_NONE, NULL, 0,
3064 "x420.CirculationListIndicator", HFILL }},
3065 { &hf_x420_DistributionCodes_PDU,
3066 { "DistributionCodes", "x420.DistributionCodes",
3067 FT_UINT32, BASE_DEC, NULL, 0,
3068 "x420.DistributionCodes", HFILL }},
3069 { &hf_x420_ExtendedSubject_PDU,
3070 { "ExtendedSubject", "x420.ExtendedSubject",
3071 FT_NONE, BASE_NONE, NULL, 0,
3072 "x420.ExtendedSubject", HFILL }},
3073 { &hf_x420_InformationCategories_PDU,
3074 { "InformationCategories", "x420.InformationCategories",
3075 FT_UINT32, BASE_DEC, NULL, 0,
3076 "x420.InformationCategories", HFILL }},
3077 { &hf_x420_ManualHandlingInstructions_PDU,
3078 { "ManualHandlingInstructions", "x420.ManualHandlingInstructions",
3079 FT_UINT32, BASE_DEC, NULL, 0,
3080 "x420.ManualHandlingInstructions", HFILL }},
3081 { &hf_x420_OriginatorsReference_PDU,
3082 { "OriginatorsReference", "x420.OriginatorsReference",
3083 FT_NONE, BASE_NONE, NULL, 0,
3084 "x420.OriginatorsReference", HFILL }},
3085 { &hf_x420_PrecedencePolicyIdentifier_PDU,
3086 { "PrecedencePolicyIdentifier", "x420.PrecedencePolicyIdentifier",
3087 FT_OID, BASE_NONE, NULL, 0,
3088 "x420.PrecedencePolicyIdentifier", HFILL }},
3089 { &hf_x420_Precedence_PDU,
3090 { "Precedence", "x420.Precedence",
3091 FT_UINT32, BASE_DEC, NULL, 0,
3092 "x420.Precedence", HFILL }},
3093 { &hf_x420_GeneralTextParameters_PDU,
3094 { "GeneralTextParameters", "x420.GeneralTextParameters",
3095 FT_UINT32, BASE_DEC, NULL, 0,
3096 "x420.GeneralTextParameters", HFILL }},
3097 { &hf_x420_GeneralTextData_PDU,
3098 { "GeneralTextData", "x420.GeneralTextData",
3099 FT_STRING, BASE_NONE, NULL, 0,
3100 "x420.GeneralTextData", HFILL }},
3101 { &hf_x420_VoiceParameters_PDU,
3102 { "VoiceParameters", "x420.VoiceParameters",
3103 FT_NONE, BASE_NONE, NULL, 0,
3104 "x420.VoiceParameters", HFILL }},
3105 { &hf_x420_VoiceData_PDU,
3106 { "VoiceData", "x420.VoiceData",
3107 FT_BYTES, BASE_HEX, NULL, 0,
3108 "x420.VoiceData", HFILL }},
3109 { &hf_x420_ForwardedContentParameters_PDU,
3110 { "ForwardedContentParameters", "x420.ForwardedContentParameters",
3111 FT_NONE, BASE_NONE, NULL, 0,
3112 "x420.ForwardedContentParameters", HFILL }},
3114 { "ipm", "x420.ipm",
3115 FT_NONE, BASE_NONE, NULL, 0,
3116 "x420.IPM", HFILL }},
3118 { "ipn", "x420.ipn",
3119 FT_NONE, BASE_NONE, NULL, 0,
3120 "x420.IPN", HFILL }},
3122 { "heading", "x420.heading",
3123 FT_NONE, BASE_NONE, NULL, 0,
3124 "x420.Heading", HFILL }},
3126 { "body", "x420.body",
3127 FT_UINT32, BASE_DEC, NULL, 0,
3128 "x420.Body", HFILL }},
3130 { "type", "x420.type",
3131 FT_OID, BASE_NONE, NULL, 0,
3132 "x420.T_type", HFILL }},
3134 { "value", "x420.value",
3135 FT_NONE, BASE_NONE, NULL, 0,
3136 "x420.T_value", HFILL }},
3137 { &hf_x420_this_IPM,
3138 { "this-IPM", "x420.this_IPM",
3139 FT_NONE, BASE_NONE, NULL, 0,
3140 "x420.ThisIPMField", HFILL }},
3141 { &hf_x420_originator,
3142 { "originator", "x420.originator",
3143 FT_NONE, BASE_NONE, NULL, 0,
3144 "x420.OriginatorField", HFILL }},
3145 { &hf_x420_authorizing_users,
3146 { "authorizing-users", "x420.authorizing_users",
3147 FT_UINT32, BASE_DEC, NULL, 0,
3148 "x420.AuthorizingUsersField", HFILL }},
3149 { &hf_x420_primary_recipients,
3150 { "primary-recipients", "x420.primary_recipients",
3151 FT_UINT32, BASE_DEC, NULL, 0,
3152 "x420.PrimaryRecipientsField", HFILL }},
3153 { &hf_x420_copy_recipients,
3154 { "copy-recipients", "x420.copy_recipients",
3155 FT_UINT32, BASE_DEC, NULL, 0,
3156 "x420.CopyRecipientsField", HFILL }},
3157 { &hf_x420_blind_copy_recipients,
3158 { "blind-copy-recipients", "x420.blind_copy_recipients",
3159 FT_UINT32, BASE_DEC, NULL, 0,
3160 "x420.BlindCopyRecipientsField", HFILL }},
3161 { &hf_x420_replied_to_IPM,
3162 { "replied-to-IPM", "x420.replied_to_IPM",
3163 FT_NONE, BASE_NONE, NULL, 0,
3164 "x420.RepliedToIPMField", HFILL }},
3165 { &hf_x420_obsoleted_IPMs,
3166 { "obsoleted-IPMs", "x420.obsoleted_IPMs",
3167 FT_UINT32, BASE_DEC, NULL, 0,
3168 "x420.ObsoletedIPMsField", HFILL }},
3169 { &hf_x420_related_IPMs,
3170 { "related-IPMs", "x420.related_IPMs",
3171 FT_UINT32, BASE_DEC, NULL, 0,
3172 "x420.RelatedIPMsField", HFILL }},
3174 { "subject", "x420.subject",
3175 FT_STRING, BASE_NONE, NULL, 0,
3176 "x420.SubjectField", HFILL }},
3177 { &hf_x420_expiry_time,
3178 { "expiry-time", "x420.expiry_time",
3179 FT_STRING, BASE_NONE, NULL, 0,
3180 "x420.ExpiryTimeField", HFILL }},
3181 { &hf_x420_reply_time,
3182 { "reply-time", "x420.reply_time",
3183 FT_STRING, BASE_NONE, NULL, 0,
3184 "x420.ReplyTimeField", HFILL }},
3185 { &hf_x420_reply_recipients,
3186 { "reply-recipients", "x420.reply_recipients",
3187 FT_UINT32, BASE_DEC, NULL, 0,
3188 "x420.ReplyRecipientsField", HFILL }},
3189 { &hf_x420_importance,
3190 { "importance", "x420.importance",
3191 FT_UINT32, BASE_DEC, VALS(x420_ImportanceField_vals), 0,
3192 "x420.ImportanceField", HFILL }},
3193 { &hf_x420_sensitivity,
3194 { "sensitivity", "x420.sensitivity",
3195 FT_UINT32, BASE_DEC, VALS(x420_SensitivityField_vals), 0,
3196 "x420.SensitivityField", HFILL }},
3197 { &hf_x420_auto_forwarded,
3198 { "auto-forwarded", "x420.auto_forwarded",
3199 FT_BOOLEAN, 8, NULL, 0,
3200 "x420.AutoForwardedField", HFILL }},
3201 { &hf_x420_extensions,
3202 { "extensions", "x420.extensions",
3203 FT_UINT32, BASE_DEC, NULL, 0,
3204 "x420.ExtensionsField", HFILL }},
3206 { "user", "x420.user",
3207 FT_NONE, BASE_NONE, NULL, 0,
3208 "x411.ORName", HFILL }},
3209 { &hf_x420_user_relative_identifier,
3210 { "user-relative-identifier", "x420.user_relative_identifier",
3211 FT_STRING, BASE_NONE, NULL, 0,
3212 "x420.LocalIPMIdentifier", HFILL }},
3213 { &hf_x420_recipient,
3214 { "recipient", "x420.recipient",
3215 FT_NONE, BASE_NONE, NULL, 0,
3216 "x420.ORDescriptor", HFILL }},
3217 { &hf_x420_notification_requests,
3218 { "notification-requests", "x420.notification_requests",
3219 FT_BYTES, BASE_HEX, NULL, 0,
3220 "x420.NotificationRequests", HFILL }},
3221 { &hf_x420_reply_requested,
3222 { "reply-requested", "x420.reply_requested",
3223 FT_BOOLEAN, 8, NULL, 0,
3224 "x420.BOOLEAN", HFILL }},
3225 { &hf_x420_recipient_extensions,
3226 { "recipient-extensions", "x420.recipient_extensions",
3227 FT_UINT32, BASE_DEC, NULL, 0,
3228 "x420.RecipientExtensionsField", HFILL }},
3229 { &hf_x420_formal_name,
3230 { "formal-name", "x420.formal_name",
3231 FT_NONE, BASE_NONE, NULL, 0,
3232 "x411.ORName", HFILL }},
3233 { &hf_x420_free_form_name,
3234 { "free-form-name", "x420.free_form_name",
3235 FT_STRING, BASE_NONE, NULL, 0,
3236 "x420.FreeFormName", HFILL }},
3237 { &hf_x420_telephone_number,
3238 { "telephone-number", "x420.telephone_number",
3239 FT_STRING, BASE_NONE, NULL, 0,
3240 "x420.TelephoneNumber", HFILL }},
3241 { &hf_x420_RecipientExtensionsField_item,
3242 { "Item", "x420.RecipientExtensionsField_item",
3243 FT_NONE, BASE_NONE, NULL, 0,
3244 "x420.IPMSExtension", HFILL }},
3245 { &hf_x420_AuthorizingUsersField_item,
3246 { "Item", "x420.AuthorizingUsersField_item",
3247 FT_NONE, BASE_NONE, NULL, 0,
3248 "x420.AuthorizingUsersSubfield", HFILL }},
3249 { &hf_x420_PrimaryRecipientsField_item,
3250 { "Item", "x420.PrimaryRecipientsField_item",
3251 FT_NONE, BASE_NONE, NULL, 0,
3252 "x420.PrimaryRecipientsSubfield", HFILL }},
3253 { &hf_x420_CopyRecipientsField_item,
3254 { "Item", "x420.CopyRecipientsField_item",
3255 FT_NONE, BASE_NONE, NULL, 0,
3256 "x420.CopyRecipientsSubfield", HFILL }},
3257 { &hf_x420_BlindCopyRecipientsField_item,
3258 { "Item", "x420.BlindCopyRecipientsField_item",
3259 FT_NONE, BASE_NONE, NULL, 0,
3260 "x420.BlindCopyRecipientsSubfield", HFILL }},
3261 { &hf_x420_ObsoletedIPMsField_item,
3262 { "Item", "x420.ObsoletedIPMsField_item",
3263 FT_NONE, BASE_NONE, NULL, 0,
3264 "x420.ObsoletedIPMsSubfield", HFILL }},
3265 { &hf_x420_RelatedIPMsField_item,
3266 { "Item", "x420.RelatedIPMsField_item",
3267 FT_NONE, BASE_NONE, NULL, 0,
3268 "x420.RelatedIPMsSubfield", HFILL }},
3269 { &hf_x420_ReplyRecipientsField_item,
3270 { "Item", "x420.ReplyRecipientsField_item",
3271 FT_NONE, BASE_NONE, NULL, 0,
3272 "x420.ReplyRecipientsSubfield", HFILL }},
3273 { &hf_x420_ExtensionsField_item,
3274 { "Item", "x420.ExtensionsField_item",
3275 FT_NONE, BASE_NONE, NULL, 0,
3276 "x420.IPMSExtension", HFILL }},
3277 { &hf_x420_Body_item,
3278 { "Item", "x420.Body_item",
3279 FT_UINT32, BASE_DEC, VALS(x420_BodyPart_vals), 0,
3280 "x420.BodyPart", HFILL }},
3281 { &hf_x420_ia5_text,
3282 { "ia5-text", "x420.ia5_text",
3283 FT_NONE, BASE_NONE, NULL, 0,
3284 "x420.IA5TextBodyPart", HFILL }},
3285 { &hf_x420_g3_facsimile,
3286 { "g3-facsimile", "x420.g3_facsimile",
3287 FT_NONE, BASE_NONE, NULL, 0,
3288 "x420.G3FacsimileBodyPart", HFILL }},
3289 { &hf_x420_g4_class1,
3290 { "g4-class1", "x420.g4_class1",
3291 FT_UINT32, BASE_DEC, NULL, 0,
3292 "x420.G4Class1BodyPart", HFILL }},
3294 { "teletex", "x420.teletex",
3295 FT_NONE, BASE_NONE, NULL, 0,
3296 "x420.TeletexBodyPart", HFILL }},
3297 { &hf_x420_videotex,
3298 { "videotex", "x420.videotex",
3299 FT_NONE, BASE_NONE, NULL, 0,
3300 "x420.VideotexBodyPart", HFILL }},
3301 { &hf_x420_encrypted_bp,
3302 { "encrypted", "x420.encrypted",
3303 FT_NONE, BASE_NONE, NULL, 0,
3304 "x420.EncryptedBodyPart", HFILL }},
3306 { "message", "x420.message",
3307 FT_NONE, BASE_NONE, NULL, 0,
3308 "x420.MessageBodyPart", HFILL }},
3309 { &hf_x420_mixed_mode,
3310 { "mixed-mode", "x420.mixed_mode",
3311 FT_UINT32, BASE_DEC, NULL, 0,
3312 "x420.MixedModeBodyPart", HFILL }},
3313 { &hf_x420_bilaterally_defined,
3314 { "bilaterally-defined", "x420.bilaterally_defined",
3315 FT_BYTES, BASE_HEX, NULL, 0,
3316 "x420.BilaterallyDefinedBodyPart", HFILL }},
3317 { &hf_x420_nationally_defined,
3318 { "nationally-defined", "x420.nationally_defined",
3319 FT_NONE, BASE_NONE, NULL, 0,
3320 "x420.NationallyDefinedBodyPart", HFILL }},
3321 { &hf_x420_extended,
3322 { "extended", "x420.extended",
3323 FT_NONE, BASE_NONE, NULL, 0,
3324 "x420.ExtendedBodyPart", HFILL }},
3325 { &hf_x420_extended_parameters,
3326 { "parameters", "x420.parameters",
3327 FT_NONE, BASE_NONE, NULL, 0,
3328 "acse.EXTERNAL", HFILL }},
3329 { &hf_x420_extended_data,
3330 { "data", "x420.data",
3331 FT_NONE, BASE_NONE, NULL, 0,
3332 "acse.EXTERNAL", HFILL }},
3333 { &hf_x420_ia5text_parameters,
3334 { "parameters", "x420.parameters",
3335 FT_NONE, BASE_NONE, NULL, 0,
3336 "x420.IA5TextParameters", HFILL }},
3337 { &hf_x420_ia5text_data,
3338 { "data", "x420.data",
3339 FT_STRING, BASE_NONE, NULL, 0,
3340 "x420.IA5TextData", HFILL }},
3341 { &hf_x420_repertoire,
3342 { "repertoire", "x420.repertoire",
3343 FT_UINT32, BASE_DEC, VALS(x420_Repertoire_vals), 0,
3344 "x420.Repertoire", HFILL }},
3345 { &hf_x420_g3facsimile_parameters,
3346 { "parameters", "x420.parameters",
3347 FT_NONE, BASE_NONE, NULL, 0,
3348 "x420.G3FacsimileParameters", HFILL }},
3349 { &hf_x420_g3facsimile_data,
3350 { "data", "x420.data",
3351 FT_UINT32, BASE_DEC, NULL, 0,
3352 "x420.G3FacsimileData", HFILL }},
3353 { &hf_x420_number_of_pages,
3354 { "number-of-pages", "x420.number_of_pages",
3355 FT_INT32, BASE_DEC, NULL, 0,
3356 "x420.INTEGER", HFILL }},
3357 { &hf_x420_g3facsimile_non_basic_parameters,
3358 { "non-basic-parameters", "x420.non_basic_parameters",
3359 FT_BYTES, BASE_HEX, NULL, 0,
3360 "x411.G3FacsimileNonBasicParameters", HFILL }},
3361 { &hf_x420_G3FacsimileData_item,
3362 { "Item", "x420.G3FacsimileData_item",
3363 FT_BYTES, BASE_HEX, NULL, 0,
3364 "x420.BIT_STRING", HFILL }},
3365 { &hf_x420_G4Class1Data_item,
3366 { "Item", "x420.G4Class1Data_item",
3367 FT_NONE, BASE_NONE, NULL, 0,
3368 "x420.Interchange_Data_Element", HFILL }},
3369 { &hf_x420_MixedModeData_item,
3370 { "Item", "x420.MixedModeData_item",
3371 FT_NONE, BASE_NONE, NULL, 0,
3372 "x420.Interchange_Data_Element", HFILL }},
3373 { &hf_x420_teletex_parameters,
3374 { "parameters", "x420.parameters",
3375 FT_NONE, BASE_NONE, NULL, 0,
3376 "x420.TeletexParameters", HFILL }},
3377 { &hf_x420_teletex_data,
3378 { "data", "x420.data",
3379 FT_UINT32, BASE_DEC, NULL, 0,
3380 "x420.TeletexData", HFILL }},
3381 { &hf_x420_telex_compatible,
3382 { "telex-compatible", "x420.telex_compatible",
3383 FT_BOOLEAN, 8, NULL, 0,
3384 "x420.BOOLEAN", HFILL }},
3385 { &hf_x420_teletex_non_basic_parameters,
3386 { "non-basic-parameters", "x420.non_basic_parameters",
3387 FT_NONE, BASE_NONE, NULL, 0,
3388 "x411.TeletexNonBasicParameters", HFILL }},
3389 { &hf_x420_TeletexData_item,
3390 { "Item", "x420.TeletexData_item",
3391 FT_STRING, BASE_NONE, NULL, 0,
3392 "x420.TeletexString", HFILL }},
3393 { &hf_x420_videotex_parameters,
3394 { "parameters", "x420.parameters",
3395 FT_NONE, BASE_NONE, NULL, 0,
3396 "x420.VideotexParameters", HFILL }},
3397 { &hf_x420_videotex_data,
3398 { "data", "x420.data",
3399 FT_STRING, BASE_NONE, NULL, 0,
3400 "x420.VideotexData", HFILL }},
3402 { "syntax", "x420.syntax",
3403 FT_INT32, BASE_DEC, VALS(x420_VideotexSyntax_vals), 0,
3404 "x420.VideotexSyntax", HFILL }},
3405 { &hf_x420_encrypted_parameters,
3406 { "parameters", "x420.parameters",
3407 FT_NONE, BASE_NONE, NULL, 0,
3408 "x420.EncryptedParameters", HFILL }},
3409 { &hf_x420_encrypted_data,
3410 { "data", "x420.data",
3411 FT_BYTES, BASE_HEX, NULL, 0,
3412 "x420.EncryptedData", HFILL }},
3413 { &hf_x420_algorithm_identifier,
3414 { "algorithm-identifier", "x420.algorithm_identifier",
3415 FT_NONE, BASE_NONE, NULL, 0,
3416 "x509af.AlgorithmIdentifier", HFILL }},
3417 { &hf_x420_originator_certificates,
3418 { "originator-certificates", "x420.originator_certificates",
3419 FT_UINT32, BASE_DEC, NULL, 0,
3420 "x411.ExtendedCertificates", HFILL }},
3421 { &hf_x420_message_parameters,
3422 { "parameters", "x420.parameters",
3423 FT_NONE, BASE_NONE, NULL, 0,
3424 "x420.MessageParameters", HFILL }},
3425 { &hf_x420_message_data,
3426 { "data", "x420.data",
3427 FT_NONE, BASE_NONE, NULL, 0,
3428 "x420.MessageData", HFILL }},
3429 { &hf_x420_delivery_time,
3430 { "delivery-time", "x420.delivery_time",
3431 FT_STRING, BASE_NONE, NULL, 0,
3432 "x411.MessageDeliveryTime", HFILL }},
3433 { &hf_x420_delivery_envelope,
3434 { "delivery-envelope", "x420.delivery_envelope",
3435 FT_NONE, BASE_NONE, NULL, 0,
3436 "x411.OtherMessageDeliveryFields", HFILL }},
3437 { &hf_x420_subject_ipm,
3438 { "subject-ipm", "x420.subject_ipm",
3439 FT_NONE, BASE_NONE, NULL, 0,
3440 "x420.SubjectIPMField", HFILL }},
3441 { &hf_x420_ipn_originator,
3442 { "ipn-originator", "x420.ipn_originator",
3443 FT_NONE, BASE_NONE, NULL, 0,
3444 "x420.IPNOriginatorField", HFILL }},
3445 { &hf_x420_ipm_intended_recipient,
3446 { "ipm-intended-recipient", "x420.ipm_intended_recipient",
3447 FT_NONE, BASE_NONE, NULL, 0,
3448 "x420.IPMIntendedRecipientField", HFILL }},
3449 { &hf_x420_conversion_eits,
3450 { "conversion-eits", "x420.conversion_eits",
3451 FT_NONE, BASE_NONE, NULL, 0,
3452 "x420.ConversionEITsField", HFILL }},
3453 { &hf_x420_notification_extensions,
3454 { "notification-extensions", "x420.notification_extensions",
3455 FT_UINT32, BASE_DEC, NULL, 0,
3456 "x420.NotificationExtensionsField", HFILL }},
3458 { "choice", "x420.choice",
3459 FT_UINT32, BASE_DEC, VALS(x420_T_choice_vals), 0,
3460 "x420.T_choice", HFILL }},
3461 { &hf_x420_non_receipt_fields,
3462 { "non-receipt-fields", "x420.non_receipt_fields",
3463 FT_NONE, BASE_NONE, NULL, 0,
3464 "x420.NonReceiptFields", HFILL }},
3465 { &hf_x420_receipt_fields,
3466 { "receipt-fields", "x420.receipt_fields",
3467 FT_NONE, BASE_NONE, NULL, 0,
3468 "x420.ReceiptFields", HFILL }},
3469 { &hf_x420_other_notification_type_fields,
3470 { "other-notification-type-fields", "x420.other_notification_type_fields",
3471 FT_UINT32, BASE_DEC, NULL, 0,
3472 "x420.OtherNotificationTypeFields", HFILL }},
3473 { &hf_x420_non_receipt_reason,
3474 { "non-receipt-reason", "x420.non_receipt_reason",
3475 FT_UINT32, BASE_DEC, VALS(x420_NonReceiptReasonField_vals), 0,
3476 "x420.NonReceiptReasonField", HFILL }},
3477 { &hf_x420_discard_reason,
3478 { "discard-reason", "x420.discard_reason",
3479 FT_UINT32, BASE_DEC, VALS(x420_DiscardReasonField_vals), 0,
3480 "x420.DiscardReasonField", HFILL }},
3481 { &hf_x420_auto_forward_comment,
3482 { "auto-forward-comment", "x420.auto_forward_comment",
3483 FT_STRING, BASE_NONE, NULL, 0,
3484 "x420.AutoForwardCommentField", HFILL }},
3485 { &hf_x420_returned_ipm,
3486 { "returned-ipm", "x420.returned_ipm",
3487 FT_NONE, BASE_NONE, NULL, 0,
3488 "x420.ReturnedIPMField", HFILL }},
3489 { &hf_x420_nrn_extensions,
3490 { "nrn-extensions", "x420.nrn_extensions",
3491 FT_UINT32, BASE_DEC, NULL, 0,
3492 "x420.NRNExtensionsField", HFILL }},
3493 { &hf_x420_receipt_time,
3494 { "receipt-time", "x420.receipt_time",
3495 FT_STRING, BASE_NONE, NULL, 0,
3496 "x420.ReceiptTimeField", HFILL }},
3497 { &hf_x420_acknowledgment_mode,
3498 { "acknowledgment-mode", "x420.acknowledgment_mode",
3499 FT_UINT32, BASE_DEC, VALS(x420_AcknowledgmentModeField_vals), 0,
3500 "x420.AcknowledgmentModeField", HFILL }},
3501 { &hf_x420_suppl_receipt_info,
3502 { "suppl-receipt-info", "x420.suppl_receipt_info",
3503 FT_STRING, BASE_NONE, NULL, 0,
3504 "x420.SupplReceiptInfoField", HFILL }},
3505 { &hf_x420_rn_extensions,
3506 { "rn-extensions", "x420.rn_extensions",
3507 FT_UINT32, BASE_DEC, NULL, 0,
3508 "x420.RNExtensionsField", HFILL }},
3509 { &hf_x420_NotificationExtensionsField_item,
3510 { "Item", "x420.NotificationExtensionsField_item",
3511 FT_NONE, BASE_NONE, NULL, 0,
3512 "x420.IPMSExtension", HFILL }},
3513 { &hf_x420_NRNExtensionsField_item,
3514 { "Item", "x420.NRNExtensionsField_item",
3515 FT_NONE, BASE_NONE, NULL, 0,
3516 "x420.IPMSExtension", HFILL }},
3517 { &hf_x420_RNExtensionsField_item,
3518 { "Item", "x420.RNExtensionsField_item",
3519 FT_NONE, BASE_NONE, NULL, 0,
3520 "x420.IPMSExtension", HFILL }},
3521 { &hf_x420_OtherNotificationTypeFields_item,
3522 { "Item", "x420.OtherNotificationTypeFields_item",
3523 FT_NONE, BASE_NONE, NULL, 0,
3524 "x420.IPMSExtension", HFILL }},
3526 { "advice", "x420.advice",
3527 FT_UINT32, BASE_DEC, VALS(x420_BodyPart_vals), 0,
3528 "x420.BodyPart", HFILL }},
3529 { &hf_x420_next_available,
3530 { "next-available", "x420.next_available",
3531 FT_STRING, BASE_NONE, NULL, 0,
3532 "x420.Time", HFILL }},
3533 { &hf_x420_new_address,
3534 { "new-address", "x420.new_address",
3535 FT_NONE, BASE_NONE, NULL, 0,
3536 "x420.ORDescriptor", HFILL }},
3537 { &hf_x420_effective_from,
3538 { "effective-from", "x420.effective_from",
3539 FT_STRING, BASE_NONE, NULL, 0,
3540 "x420.Time", HFILL }},
3541 { &hf_x420_assembly_instructions,
3542 { "assembly-instructions", "x420.assembly_instructions",
3543 FT_UINT32, BASE_DEC, NULL, 0,
3544 "x420.BodyPartReferences", HFILL }},
3545 { &hf_x420_BodyPartReferences_item,
3546 { "Item", "x420.BodyPartReferences_item",
3547 FT_UINT32, BASE_DEC, VALS(x420_BodyPartReference_vals), 0,
3548 "x420.BodyPartReference", HFILL }},
3549 { &hf_x420_stored_entry,
3550 { "stored-entry", "x420.stored_entry",
3551 FT_INT32, BASE_DEC, NULL, 0,
3552 "x420.SequenceNumber", HFILL }},
3553 { &hf_x420_stored_content,
3554 { "stored-content", "x420.stored_content",
3555 FT_INT32, BASE_DEC, NULL, 0,
3556 "x420.SequenceNumber", HFILL }},
3557 { &hf_x420_submitted_body_part,
3558 { "submitted-body-part", "x420.submitted_body_part",
3559 FT_INT32, BASE_DEC, NULL, 0,
3560 "x420.INTEGER", HFILL }},
3561 { &hf_x420_stored_body_part,
3562 { "stored-body-part", "x420.stored_body_part",
3563 FT_NONE, BASE_NONE, NULL, 0,
3564 "x420.T_stored_body_part", HFILL }},
3565 { &hf_x420_message_entry,
3566 { "message-entry", "x420.message_entry",
3567 FT_INT32, BASE_DEC, NULL, 0,
3568 "x420.SequenceNumber", HFILL }},
3569 { &hf_x420_body_part_number,
3570 { "body-part-number", "x420.body_part_number",
3571 FT_INT32, BASE_DEC, NULL, 0,
3572 "x420.BodyPartNumber", HFILL }},
3573 { &hf_x420_Languages_item,
3574 { "Item", "x420.Languages_item",
3575 FT_STRING, BASE_NONE, NULL, 0,
3576 "x420.Language", HFILL }},
3577 { &hf_x420_algorithmIdentifier,
3578 { "algorithmIdentifier", "x420.algorithmIdentifier",
3579 FT_NONE, BASE_NONE, NULL, 0,
3580 "x509af.AlgorithmIdentifier", HFILL }},
3581 { &hf_x420_encrypted,
3582 { "encrypted", "x420.encrypted",
3583 FT_BYTES, BASE_HEX, NULL, 0,
3584 "x420.BIT_STRING", HFILL }},
3585 { &hf_x420_BodyPartSignatures_item,
3586 { "Item", "x420.BodyPartSignatures_item",
3587 FT_NONE, BASE_NONE, NULL, 0,
3588 "x420.BodyPartSignatures_item", HFILL }},
3589 { &hf_x420_body_part_signature,
3590 { "body-part-signature", "x420.body_part_signature",
3591 FT_NONE, BASE_NONE, NULL, 0,
3592 "x420.BodyPartSignature", HFILL }},
3593 { &hf_x420_originator_certificate_selector,
3594 { "originator-certificate-selector", "x420.originator_certificate_selector",
3595 FT_NONE, BASE_NONE, NULL, 0,
3596 "x509ce.CertificateAssertion", HFILL }},
3597 { &hf_x420_content_security_label,
3598 { "content-security-label", "x420.content_security_label",
3599 FT_NONE, BASE_NONE, NULL, 0,
3600 "x411.SecurityLabel", HFILL }},
3601 { &hf_x420_heading_security_label,
3602 { "heading-security-label", "x420.heading_security_label",
3603 FT_NONE, BASE_NONE, NULL, 0,
3604 "x411.SecurityLabel", HFILL }},
3605 { &hf_x420_body_part_security_labels,
3606 { "body-part-security-labels", "x420.body_part_security_labels",
3607 FT_UINT32, BASE_DEC, NULL, 0,
3608 "x420.SEQUENCE_OF_BodyPartSecurityLabel", HFILL }},
3609 { &hf_x420_body_part_security_labels_item,
3610 { "Item", "x420.body_part_security_labels_item",
3611 FT_UINT32, BASE_DEC, VALS(x420_BodyPartSecurityLabel_vals), 0,
3612 "x420.BodyPartSecurityLabel", HFILL }},
3613 { &hf_x420_body_part_unlabelled,
3614 { "body-part-unlabelled", "x420.body_part_unlabelled",
3615 FT_NONE, BASE_NONE, NULL, 0,
3616 "x420.NULL", HFILL }},
3617 { &hf_x420_body_part_security_label,
3618 { "body-part-security-label", "x420.body_part_security_label",
3619 FT_NONE, BASE_NONE, NULL, 0,
3620 "x411.SecurityLabel", HFILL }},
3621 { &hf_x420_CirculationList_item,
3622 { "Item", "x420.CirculationList_item",
3623 FT_NONE, BASE_NONE, NULL, 0,
3624 "x420.CirculationMember", HFILL }},
3625 { &hf_x420_circulation_recipient,
3626 { "circulation-recipient", "x420.circulation_recipient",
3627 FT_NONE, BASE_NONE, NULL, 0,
3628 "x420.RecipientSpecifier", HFILL }},
3630 { "checked", "x420.checked",
3631 FT_UINT32, BASE_DEC, VALS(x420_Checkmark_vals), 0,
3632 "x420.Checkmark", HFILL }},
3634 { "simple", "x420.simple",
3635 FT_NONE, BASE_NONE, NULL, 0,
3636 "x420.NULL", HFILL }},
3637 { &hf_x420_timestamped,
3638 { "timestamped", "x420.timestamped",
3639 FT_STRING, BASE_NONE, NULL, 0,
3640 "x420.CirculationTime", HFILL }},
3642 { "signed", "x420.signed",
3643 FT_NONE, BASE_NONE, NULL, 0,
3644 "x420.CirculationSignature", HFILL }},
3645 { &hf_x420_circulation_signature_algorithm_identifier,
3646 { "algorithm-identifier", "x420.algorithm_identifier",
3647 FT_NONE, BASE_NONE, NULL, 0,
3648 "x420.CirculationSignatureAlgorithmIdentifier", HFILL }},
3649 { &hf_x420_timestamp,
3650 { "timestamp", "x420.timestamp",
3651 FT_STRING, BASE_NONE, NULL, 0,
3652 "x420.CirculationTime", HFILL }},
3653 { &hf_x420_circulation_signature_data,
3654 { "circulation-signature-data", "x420.circulation_signature_data",
3655 FT_NONE, BASE_NONE, NULL, 0,
3656 "x420.CirculationSignatureData", HFILL }},
3657 { &hf_x420_DistributionCodes_item,
3658 { "Item", "x420.DistributionCodes_item",
3659 FT_NONE, BASE_NONE, NULL, 0,
3660 "x420.DistributionCode", HFILL }},
3661 { &hf_x420_oid_code,
3662 { "oid-code", "x420.oid_code",
3663 FT_OID, BASE_NONE, NULL, 0,
3664 "x420.OBJECT_IDENTIFIER", HFILL }},
3665 { &hf_x420_alphanumeric_code,
3666 { "alphanumeric-code", "x420.alphanumeric_code",
3667 FT_NONE, BASE_NONE, NULL, 0,
3668 "x420.AlphaCode", HFILL }},
3669 { &hf_x420_or_descriptor,
3670 { "or-descriptor", "x420.or_descriptor",
3671 FT_NONE, BASE_NONE, NULL, 0,
3672 "x420.ORDescriptor", HFILL }},
3673 { &hf_x420_InformationCategories_item,
3674 { "Item", "x420.InformationCategories_item",
3675 FT_NONE, BASE_NONE, NULL, 0,
3676 "x420.InformationCategory", HFILL }},
3677 { &hf_x420_reference,
3678 { "reference", "x420.reference",
3679 FT_OID, BASE_NONE, NULL, 0,
3680 "x420.OBJECT_IDENTIFIER", HFILL }},
3681 { &hf_x420_description,
3682 { "description", "x420.description",
3683 FT_NONE, BASE_NONE, NULL, 0,
3684 "x420.DescriptionString", HFILL }},
3685 { &hf_x420_ManualHandlingInstructions_item,
3686 { "Item", "x420.ManualHandlingInstructions_item",
3687 FT_NONE, BASE_NONE, NULL, 0,
3688 "x420.ManualHandlingInstruction", HFILL }},
3689 { &hf_x420_GeneralTextParameters_item,
3690 { "Item", "x420.GeneralTextParameters_item",
3691 FT_UINT32, BASE_DEC, NULL, 0,
3692 "x420.CharacterSetRegistration", HFILL }},
3693 { &hf_x420_voice_message_duration,
3694 { "voice-message-duration", "x420.voice_message_duration",
3695 FT_INT32, BASE_DEC, NULL, 0,
3696 "x420.INTEGER", HFILL }},
3697 { &hf_x420_voice_encoding_type,
3698 { "voice-encoding-type", "x420.voice_encoding_type",
3699 FT_OID, BASE_NONE, NULL, 0,
3700 "x420.OBJECT_IDENTIFIER", HFILL }},
3701 { &hf_x420_supplementary_information,
3702 { "supplementary-information", "x420.supplementary_information",
3703 FT_STRING, BASE_NONE, NULL, 0,
3704 "x420.IA5String", HFILL }},
3705 { &hf_x420_mts_identifier,
3706 { "mts-identifier", "x420.mts_identifier",
3707 FT_NONE, BASE_NONE, NULL, 0,
3708 "x411.MessageDeliveryIdentifier", HFILL }},
3709 { &hf_x420_submission_proof,
3710 { "submission-proof", "x420.submission_proof",
3711 FT_NONE, BASE_NONE, NULL, 0,
3712 "x420.SubmissionProof", HFILL }},
3713 { &hf_x420_proof_of_submission,
3714 { "proof-of-submission", "x420.proof_of_submission",
3715 FT_NONE, BASE_NONE, NULL, 0,
3716 "x411.ProofOfSubmission", HFILL }},
3717 { &hf_x420_originating_MTA_certificate,
3718 { "originating-MTA-certificate", "x420.originating_MTA_certificate",
3719 FT_NONE, BASE_NONE, NULL, 0,
3720 "x411.OriginatingMTACertificate", HFILL }},
3721 { &hf_x420_message_submission_envelope,
3722 { "message-submission-envelope", "x420.message_submission_envelope",
3723 FT_NONE, BASE_NONE, NULL, 0,
3724 "x411.MessageSubmissionEnvelope", HFILL }},
3725 { &hf_x420_NotificationRequests_rn,
3727 FT_BOOLEAN, 8, NULL, 0x80,
3729 { &hf_x420_NotificationRequests_nrn,
3730 { "nrn", "x420.nrn",
3731 FT_BOOLEAN, 8, NULL, 0x40,
3733 { &hf_x420_NotificationRequests_ipm_return,
3734 { "ipm-return", "x420.ipm-return",
3735 FT_BOOLEAN, 8, NULL, 0x20,
3737 { &hf_x420_NotificationRequests_an_supported,
3738 { "an-supported", "x420.an-supported",
3739 FT_BOOLEAN, 8, NULL, 0x10,
3741 { &hf_x420_NotificationRequests_suppress_an,
3742 { "suppress-an", "x420.suppress-an",
3743 FT_BOOLEAN, 8, NULL, 0x08,
3746 /*--- End of included file: packet-x420-hfarr.c ---*/
3747 #line 125 "packet-x420-template.c"
3750 /* List of subtrees */
3751 static gint *ett[] = {
3754 /*--- Included file: packet-x420-ettarr.c ---*/
3755 #line 1 "packet-x420-ettarr.c"
3756 &ett_x420_InformationObject,
3758 &ett_x420_IPMSExtension,
3760 &ett_x420_IPMIdentifier,
3761 &ett_x420_RecipientSpecifier,
3762 &ett_x420_ORDescriptor,
3763 &ett_x420_NotificationRequests,
3764 &ett_x420_RecipientExtensionsField,
3765 &ett_x420_AuthorizingUsersField,
3766 &ett_x420_PrimaryRecipientsField,
3767 &ett_x420_CopyRecipientsField,
3768 &ett_x420_BlindCopyRecipientsField,
3769 &ett_x420_ObsoletedIPMsField,
3770 &ett_x420_RelatedIPMsField,
3771 &ett_x420_ReplyRecipientsField,
3772 &ett_x420_ExtensionsField,
3775 &ett_x420_ExtendedBodyPart,
3776 &ett_x420_IA5TextBodyPart,
3777 &ett_x420_IA5TextParameters,
3778 &ett_x420_G3FacsimileBodyPart,
3779 &ett_x420_G3FacsimileParameters,
3780 &ett_x420_G3FacsimileData,
3781 &ett_x420_G4Class1Data,
3782 &ett_x420_MixedModeData,
3783 &ett_x420_TeletexBodyPart,
3784 &ett_x420_TeletexParameters,
3785 &ett_x420_TeletexData,
3786 &ett_x420_VideotexBodyPart,
3787 &ett_x420_VideotexParameters,
3788 &ett_x420_EncryptedBodyPart,
3789 &ett_x420_EncryptedParameters,
3790 &ett_x420_MessageBodyPart,
3791 &ett_x420_MessageParameters,
3794 &ett_x420_NonReceiptFields,
3795 &ett_x420_ReceiptFields,
3796 &ett_x420_NotificationExtensionsField,
3797 &ett_x420_NRNExtensionsField,
3798 &ett_x420_RNExtensionsField,
3799 &ett_x420_OtherNotificationTypeFields,
3800 &ett_x420_AbsenceAdvice,
3801 &ett_x420_ChangeOfAddressAdvice,
3802 &ett_x420_IPMAssemblyInstructions,
3803 &ett_x420_BodyPartReferences,
3804 &ett_x420_BodyPartReference,
3805 &ett_x420_T_stored_body_part,
3806 &ett_x420_Languages,
3807 &ett_x420_Signature,
3808 &ett_x420_BodyPartSignatures,
3809 &ett_x420_BodyPartSignatures_item,
3810 &ett_x420_IPMSecurityLabel,
3811 &ett_x420_SEQUENCE_OF_BodyPartSecurityLabel,
3812 &ett_x420_BodyPartSecurityLabel,
3813 &ett_x420_CirculationList,
3814 &ett_x420_CirculationMember,
3815 &ett_x420_Checkmark,
3816 &ett_x420_CirculationSignatureData,
3817 &ett_x420_CirculationSignature,
3818 &ett_x420_DistributionCodes,
3819 &ett_x420_DistributionCode,
3820 &ett_x420_InformationCategories,
3821 &ett_x420_InformationCategory,
3822 &ett_x420_ManualHandlingInstructions,
3823 &ett_x420_GeneralTextParameters,
3824 &ett_x420_VoiceParameters,
3825 &ett_x420_ForwardedContentParameters,
3826 &ett_x420_SubmissionProof,
3828 /*--- End of included file: packet-x420-ettarr.c ---*/
3829 #line 131 "packet-x420-template.c"
3832 /* Register protocol */
3833 proto_x420 = proto_register_protocol(PNAME, PSNAME, PFNAME);
3834 register_dissector("x420", dissect_x420, proto_x420);
3835 /* Register fields and subtrees */
3836 proto_register_field_array(proto_x420, hf, array_length(hf));
3837 proto_register_subtree_array(ett, array_length(ett));
3842 /*--- proto_reg_handoff_x420 --- */
3843 void proto_reg_handoff_x420(void) {
3846 /*--- Included file: packet-x420-dis-tab.c ---*/
3847 #line 1 "packet-x420-dis-tab.c"
3848 register_ber_oid_dissector("1.2.826.0.1004.10.1.1", dissect_OriginatingUA_PDU, proto_x420, "nexor-originating-ua");
3849 register_ber_oid_dissector("2.6.1.19.0", dissect_AbsenceAdvice_PDU, proto_x420, "id-on-absence-advice");
3850 register_ber_oid_dissector("2.6.1.19.1", dissect_ChangeOfAddressAdvice_PDU, proto_x420, "id-on-change-of-address-advice");
3851 register_ber_oid_dissector("2.6.1.17.2", dissect_IPMAssemblyInstructions_PDU, proto_x420, "id-mst-assembly-instructions");
3852 register_ber_oid_dissector("2.6.1.5.0", dissect_IncompleteCopy_PDU, proto_x420, "id-hex-incomplete-copy");
3853 register_ber_oid_dissector("2.6.1.5.1", dissect_Languages_PDU, proto_x420, "id-hex-languages");
3854 register_ber_oid_dissector("2.6.1.5.2", dissect_AutoSubmitted_PDU, proto_x420, "id-hex-auto-submitted");
3855 register_ber_oid_dissector("2.6.1.5.3", dissect_BodyPartSignatures_PDU, proto_x420, "id-hex-body-part-signatures");
3856 register_ber_oid_dissector("2.6.1.5.4", dissect_IPMSecurityLabel_PDU, proto_x420, "id-hex-ipm-security-label");
3857 register_ber_oid_dissector("2.6.1.5.5", dissect_AuthorizationTime_PDU, proto_x420, "id-hex-authorization-time");
3858 register_ber_oid_dissector("2.6.1.5.6", dissect_CirculationList_PDU, proto_x420, "id-hex-circulation-list-recipients");
3859 register_ber_oid_dissector("2.6.1.20.0", dissect_CirculationListIndicator_PDU, proto_x420, "id-rex-circulation-list-indicator");
3860 register_ber_oid_dissector("2.6.1.5.7", dissect_DistributionCodes_PDU, proto_x420, "id-hex-distribution-codes");
3861 register_ber_oid_dissector("2.6.1.5.8", dissect_ExtendedSubject_PDU, proto_x420, "id-hex-extended-subject");
3862 register_ber_oid_dissector("2.6.1.5.9", dissect_InformationCategories_PDU, proto_x420, "id-hex-information-categories");
3863 register_ber_oid_dissector("2.6.1.5.10", dissect_ManualHandlingInstructions_PDU, proto_x420, "id-hex-manual-handling-instructions");
3864 register_ber_oid_dissector("2.6.1.5.11", dissect_OriginatorsReference_PDU, proto_x420, "id-hex-originators-reference");
3865 register_ber_oid_dissector("2.6.1.5.12", dissect_PrecedencePolicyIdentifier_PDU, proto_x420, "id-hex-precedence-policy-id");
3866 register_ber_oid_dissector("2.6.1.20.1", dissect_Precedence_PDU, proto_x420, "id-rex-precedence");
3867 register_ber_oid_dissector("2.6.1.4.0", dissect_IA5TextData_PDU, proto_x420, "id-et-ia5-text");
3868 register_ber_oid_dissector("2.6.1.11.0", dissect_IA5TextParameters_PDU, proto_x420, "id-ep-ia5-text");
3869 register_ber_oid_dissector("2.6.1.4.2", dissect_G3FacsimileData_PDU, proto_x420, "id-et-g3-facsimile");
3870 register_ber_oid_dissector("2.6.1.11.2", dissect_G3FacsimileParameters_PDU, proto_x420, "id-ep-g3-facsimile");
3871 register_ber_oid_dissector("2.6.1.4.3", dissect_G4Class1Data_PDU, proto_x420, "id-et-g4-class1");
3872 register_ber_oid_dissector("2.6.1.4.4", dissect_TeletexData_PDU, proto_x420, "id-et-teletex");
3873 register_ber_oid_dissector("2.6.1.11.4", dissect_TeletexParameters_PDU, proto_x420, "id-ep-teletex");
3874 register_ber_oid_dissector("2.6.1.4.5", dissect_VideotexData_PDU, proto_x420, "id-et-videotex");
3875 register_ber_oid_dissector("2.6.1.11.5", dissect_VideotexParameters_PDU, proto_x420, "id-ep-videotex");
3876 register_ber_oid_dissector("2.6.1.4.6", dissect_EncryptedData_PDU, proto_x420, "id-et-encrypted");
3877 register_ber_oid_dissector("2.6.1.11.6", dissect_EncryptedParameters_PDU, proto_x420, "id-ep-encrypted");
3878 register_ber_oid_dissector("2.6.1.4.7", dissect_MessageData_PDU, proto_x420, "id-et-message");
3879 register_ber_oid_dissector("2.6.1.11.7", dissect_MessageParameters_PDU, proto_x420, "id-ep-message");
3880 register_ber_oid_dissector("2.6.1.4.8", dissect_MixedModeData_PDU, proto_x420, "id-et-mixed-mode");
3881 register_ber_oid_dissector("2.6.1.4.9", dissect_BilaterallyDefinedBodyPart_PDU, proto_x420, "id-et-bilaterally-defined");
3882 register_ber_oid_dissector("2.6.1.11.11", dissect_GeneralTextParameters_PDU, proto_x420, "id-ep-general-text");
3883 register_ber_oid_dissector("2.6.1.4.11", dissect_GeneralTextData_PDU, proto_x420, "id-et-general-text");
3884 register_ber_oid_dissector("2.6.1.11.15", dissect_MessageParameters_PDU, proto_x420, "id-ep-notification");
3885 register_ber_oid_dissector("2.6.1.4.15", dissect_IPN_PDU, proto_x420, "id-et-notification");
3886 register_ber_oid_dissector("2.6.1.11.16", dissect_VoiceParameters_PDU, proto_x420, "id-ep-voice");
3887 register_ber_oid_dissector("2.6.1.4.16", dissect_VoiceData_PDU, proto_x420, "id-et-voice");
3888 register_ber_oid_dissector("2.6.1.11.17.2.6.1.10.1", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p22");
3889 register_ber_oid_dissector("2.6.1.4.17.2.6.1.10.1", dissect_InformationObject_PDU, proto_x420, "id-et-content-p22");
3890 register_ber_oid_dissector("2.6.1.11.17.2.6.1.10.0", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p2");
3891 register_ber_oid_dissector("2.6.1.4.17.2.6.1.10.0", dissect_InformationObject_PDU, proto_x420, "id-et-content-p2");
3892 register_ber_oid_dissector("2.6.1.11.17.1.3.26.0.4406.0.4.1", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p772");
3895 /*--- End of included file: packet-x420-dis-tab.c ---*/
3896 #line 147 "packet-x420-template.c"
3898 register_ber_oid_dissector("2.6.1.10.0", dissect_x420, proto_x420, "InterPersonal Message (1984)");
3899 register_ber_oid_dissector("2.6.1.10.1", dissect_x420, proto_x420, "InterPersonal Message (1988)");