2 CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(x411_CountryName_vals) BITMASK = 0
3 Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
6 InformationFramework x509if
7 CertificateExtensions x509ce
8 SelectedAttributeTypes x509sat
9 AuthenticationFramework x509af
11 #.INCLUDE ../x509ce/x509ce-exp.cnf
12 #.INCLUDE ../x509if/x509if-exp.cnf
13 #.INCLUDE ../x509sat/x509sat-exp.cnf
14 #.INCLUDE ../x509af/x509af-exp.cnf
17 EncodedInformationTypes
19 G3FacsimileNonBasicParameters
22 OtherMessageDeliveryFields
23 SupplementaryInformation
24 TeletexNonBasicParameters
27 MessageDeliveryIdentifier
29 OriginatingMTACertificate
30 MessageSubmissionEnvelope
33 MTABindArgument/authenticated AuthenticatedArgument
34 MTABindResult/authenticated AuthenticatedResult
36 ExtensionField/value ExtensionValue
37 SecurityCategory/value CategoryValue
40 TeletexPersonalName/surname teletex-surname
41 PersonalName/surname printable-surname
42 UniversalPersonalName/surname universal-surname
44 TeletexPersonalName/given-name teletex-given-name
45 PersonalName/given-name printable-given-name
46 UniversalPersonalName/given-name universal-given-name
48 TeletexPersonalName/initials teletex-initials
49 PersonalName/initials printable-initials
50 UniversalPersonalName/initials universal-initials
52 TeletexPersonalName/generation-qualifier teletex-generation-qualifier
53 PersonalName/generation-qualifier printable-generation-qualifier
54 UniversalPersonalName/generation-qualifier universal-generation-qualifier
56 BuiltInDomainDefinedAttribute/type printable-type
57 UniversalDomainDefinedAttribute/type universal-type
58 SecurityCategory/type category-type
59 ExtensionField/type extension-type
61 TeletexDomainDefinedAttribute/value teletex-value
62 BuiltInDomainDefinedAttribute/value printable-value
63 UniversalDomainDefinedAttribute/value universal-value
64 SecurityCategory/value category-value
65 ExtensionField/value extension-value
67 LastTraceInformation/report-type trace-report-type
68 PerRecipientReportDeliveryFields/report-type delivery-report-type
69 PerRecipientReportFields/report-type/delivery report-type-delivery
71 PerRecipientMessageSubmissionFields/recipient-name submission-recipient-name
72 PerRecipientProbeSubmissionFields/recipient-name probe-recipient-name
74 PerRecipientReportTransferFields/actual-recipient-name mta-actual-recipient-name
76 MessageClass/priority class-priority
77 DeliveryQueue/octets delivery-queue-octets
78 PerRecipientReportFields/report-type/non-delivery non-delivery-report
80 MTABindResult/authenticated authenticated-result
81 MTABindArgument/authenticated authenticated-argument
83 MTABindResult/authenticated/responder-name authenticated-responder-name
84 MTABindArgument/authenticated/initiator-name authenticated-initiator-name
86 RegistrationTypes/extensions type-extensions
87 RegistrationTypes/extensions/_item type-extensions-item
89 MessageSubmissionArgument/envelope message-submission-envelope
91 OtherMessageDeliveryFields/content-type delivered-content-type
92 Report/content report-content
94 PerDomainBilateralInformation/domain bilateral-domain
96 Report/envelope report-envelope
97 Message/envelope message-envelope
99 PerRecipientReportTransferFields/originally-intended-recipient-name report-originally-intended-recipient-name
101 MessageSubmissionEnvelope/originator-name mts-originator-name
102 ProbeSubmissionEnvelope/originator-name mts-originator-name
104 MessageTransferEnvelope/originator-name mta-originator-name
105 ProbeTransferEnvelope/originator-name mta-originator-name
107 MessageSubmissionEnvelope/per-recipient-fields per-recipient-message-submission-fields
108 ProbeTransferEnvelope/per-recipient-fields per-recipient-probe-transfer-fields
109 ProbeSubmissionEnvelope/per-recipient-fields per-recipient-probe-submission-fields
110 ReportDeliveryArgument/per-recipient-fields per-recipient-report-delivery-fields
111 ReportDeliveryEnvelope/per-recipient-fields per-recipient-report-delivery-fields
113 MessageSubmissionEnvelope/per-recipient-fields/_item per-recipient-message-submission-fields-item
114 ProbeTransferEnvelope/per-recipient-fields/_item per-recipient-probe-transfer-fields-item
115 ProbeSubmissionEnvelope/per-recipient-fields/_item per-recipient-probe-submission-fields-item
116 ReportDeliveryArgument/per-recipient-fields/_item per-recipient-report-delivery-fields-item
117 ReportDeliveryEnvelope/per-recipient-fields/_item per-recipient-report-delivery-fields-item
119 MessageTransferEnvelope/per-recipient-fields/_item per-recipient-message-fields-item
123 MessageTransferEnvelope/per-recipient-fields per-recipient-message-fields
124 ReportTransferContent/per-recipient-fields per-recipient-report-fields
133 RecipientReassignmentProhibited B "x411.extension.1" "recipient-reassignment-prohibited"
134 MTSOriginatorRequestedAlternateRecipient B "x411.extension.2" "originator-requested-alternate-recipient"
135 DLExpansionProhibited B "x411.extension.3" "dl-expansion-prohibited"
136 ConversionWithLossProhibited B "x411.extension.4" "conversion-with-loss-prohibited"
137 LatestDeliveryTime B "x411.extension.5" "latest-delivery-time"
138 RequestedDeliveryMethod B "x411.extension.6" "requested-delivery-method"
139 PhysicalForwardingProhibited B "x411.extension.7" "physical-forwarding-prohibited"
140 PhysicalForwardingAddressRequest B "x411.extension.8" "physical-forwarding-address-request"
141 PhysicalDeliveryModes B "x411.extension.9" "physical-delivery-modes"
142 RegisteredMailType B "x411.extension.10" "registered-mail-type"
143 RecipientNumberForAdvice B "x411.extension.11" "recipient-number-for-advice"
144 PhysicalRenditionAttributes B "x411.extension.12" "physical-rendition-attributes"
145 OriginatorReturnAddress B "x411.extension.13" "originator-return-address"
146 PhysicalDeliveryReportRequest B "x411.extension.14" "physical-delivery-report-request"
147 OriginatorCertificate B "x411.extension.15" "originator-certificate"
149 ContentConfidentialityAlgorithmIdentifier B "x411.extension.17" "content-confidentiality-algorithm-identifier"
150 ContentIntegrityCheck B "x411.extension.18" "content-integrity-check"
151 MessageOriginAuthenticationCheck B "x411.extension.19" "message-origin-authentication-check"
152 MessageSecurityLabel B "x411.extension.20" "message-security-label"
153 ProofOfSubmissionRequest B "x411.extension.21" "proof-of-submission-request"
154 ProofOfDeliveryRequest B "x411.extension.22" "proof-of-delivery-request"
155 ContentCorrelator B "x411.extension.23" "content-correlator"
156 ProbeOriginAuthenticationCheck B "x411.extension.24" "probe-origin-authentication-check"
157 RedirectionHistory B "x411.extension.25" "redirection-history"
158 DLExpansionHistory B "x411.extension.26" "dl-expansion-history"
159 PhysicalForwardingAddress B "x411.extension.27" "physical-forwarding-address"
162 OriginatorAndDLExpansionHistory B "x411.extension.30" "originator-and-DL-expansion-history"
163 ReportingDLName B "x411.extension.31" "reporting-DL-name"
164 ReportingMTACertificate B "x411.extension.32" "reporting-MTA-certificate"
165 ReportOriginAuthenticationCheck B "x411.extension.33" "report-origin-authentication-check"
166 ProofOfSubmission B "x411.extension.35" "proof-of-submission"
168 TraceInformation B "x411.extension.37" "trace-information"
169 InternalTraceInformation B "x411.extension.38" "internal-trace-information"
170 ReportingMTAName B "x411.extension.39" "reporting-MTA-name"
171 ExtendedCertificates B "x411.extension.40" "multiple-originator-certificates"
173 DLExemptedRecipients B "x411.extension.42" "dl-exempted-recipients"
176 CertificateSelectors B "x411.extension.45" "certificate-selectors"
178 CommonName B "x411.extension-attribute.1" "common-name"
179 TeletexCommonName B "x411.extension-attribute.2" "teletex-common-name"
180 TeletexOrganizationName B "x411.extension-attribute.3" "teletex-organization-name"
181 TeletexPersonalName B "x411.extension-attribute.4" "teletex-personal-name"
182 TeletexOrganizationalUnitNames B "x411.extension-attribute.5" "teletex-organizational-unit-names"
184 PDSName B "x411.extension-attribute.7" "pds-name"
185 PhysicalDeliveryCountryName B "x411.extension-attribute.8" "physical-delivery-country-name"
186 PostalCode B "x411.extension-attribute.9" "postal-code"
187 PhysicalDeliveryOfficeName B "x411.extension-attribute.10" "physical-delivery-office-name"
189 UniversalCommonName B "x411.extension-attribute.24" "universal-common-name"
190 UniversalOrganizationName B "x411.extension-attribute.25" "universal-organization-name"
191 UniversalPersonalName B "x411.extension-attribute.26" "universal-personal-name"
192 UniversalOrganizationalUnitNames B "x411.extension-attribute.27" "universal-organizational-unit-names"
194 ReportDeliveryArgument B "2.6.1.4.14" "id-et-report"
196 #.FN_BODY AdditionalInformation
197 /*XXX not implemented yet */
199 #.FN_BODY T_extensions_item
200 /*XXX not implemented yet */
202 #.FN_BODY ExtensionValue
205 if(extension_id != -1)
206 offset=call_x411_oid_callback("x411.extension", tvb, offset, pinfo, tree);
207 else if(object_identifier_id) {
208 call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
209 name = get_ber_oid_name(object_identifier_id);
210 proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id);
214 #.FN_BODY CategoryValue
216 offset = dissect_unknown_ber(pinfo, tvb, offset, tree);
218 #.FN_BODY T_extension_attribute_value
220 offset=call_x411_oid_callback("x411.extension-attribute", tvb, offset, pinfo, tree);
222 #.FN_BODY T_refused_extension
223 /*XXX not implemented yet */
225 #.FN_BODY CountryName
227 gboolean pc, ind_field;
232 /* XXX asn2eth can not yet handle tagged assignment yes so this
233 * XXX is some conformance file magic to work around that bug
235 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
236 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
240 g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
242 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
243 CountryName_choice, hf_index, ett_x411_CountryName, NULL);
247 #.FN_BODY AdministrationDomainName
249 gboolean pc, ind_field;
254 /* XXX asn2eth can not yet handle tagged assignment yes so this
255 * XXX is some conformance file magic to work around that bug
257 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
258 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
262 g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
264 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
265 AdministrationDomainName_choice, hf_index, ett_x411_AdministrationDomainName, NULL);
267 #.FN_BODY ContentIdentifier
269 gboolean pc, ind_field;
274 /* XXX asn2eth can not yet handle tagged assignment yes so this
275 * XXX is some conformance file magic to work around that bug
277 offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
278 offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
281 /* this is magic I haven't seen used before - I've stripped the tag - but now I'm going to say it is IMPLICIT! */
282 offset = dissect_ber_restricted_string(TRUE, BER_UNI_TAG_PrintableString,
283 pinfo, tree, tvb, offset, hf_index,
288 VAL_PTR = &extension_id
290 #.FN_PARS OBJECT_IDENTIFIER
291 FN_VARIANT = _str VAL_PTR = &object_identifier_id
293 #.FN_BODY OBJECT_IDENTIFIER
298 #.FN_PARS ExtendedContentType
299 FN_VARIANT = _str VAL_PTR = &content_type_id
301 #.FN_BODY ExtendedContentType
302 const char *name = NULL;
306 if(content_type_id) {
307 name = get_ber_oid_name(content_type_id);
309 if(!name) name = content_type_id;
311 proto_item_append_text(tree, " (%%s)", name);
314 #.FN_PARS BuiltInContentType
317 #.FN_BODY BuiltInContentType
322 /* convert integer content type to oid for dispatch when the content is found */
325 content_type_id = ep_strdup("2.6.1.10.0");
328 content_type_id = ep_strdup("2.6.1.10.1");
337 /* we can do this now constructed octet strings are supported */
338 offset = dissect_ber_octet_string(FALSE, pinfo, NULL, tvb, offset, hf_index, &next_tvb);
340 if (next_tvb && content_type_id)
341 (void) call_ber_oid_callback(content_type_id, next_tvb, 0, pinfo, top_tree ? top_tree : tree);
347 tvbuff_t *mtaname = NULL;
353 proto_item_append_text(address_item, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
357 if (check_col(pinfo->cinfo, COL_INFO) && mtaname) {
358 col_append_fstr(pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
363 #.FN_PARS X121Address
366 #.FN_BODY X121Address
367 tvbuff_t *string = NULL;
371 if(doing_address && string) {
372 g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
373 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
377 #.FN_PARS TerminalIdentifier
380 #.FN_BODY TerminalIdentifier
381 tvbuff_t *string = NULL;
385 if(doing_address && string) {
386 g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
387 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
390 #.FN_BODY PrivateDomainName
393 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
397 #.FN_BODY PrivateDomainIdentifier
400 g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
404 #.FN_PARS OrganizationName
407 #.FN_BODY OrganizationName
408 tvbuff_t *string = NULL;
412 if(doing_address && string) {
413 g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
414 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
421 tvbuff_t *string = NULL;
425 if(doing_address && string) {
426 g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
427 g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
432 #.FN_PARS NumericString
435 #.FN_BODY NumericString
436 tvbuff_t *nstring = NULL;
440 if(doing_address && nstring)
441 g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
443 #.FN_PARS TeletexString
445 #.FN_BODY TeletexString
446 tvbuff_t *tstring = NULL;
450 if(doing_address && tstring)
451 g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
454 #.FN_PARS PrintableString
457 #.FN_BODY PrintableString
458 tvbuff_t *pstring = NULL;
463 if(doing_address && pstring) {
464 if(hf_index == hf_x411_printable_surname) fmt = "/S=";
465 else if(hf_index == hf_x411_printable_given_name) fmt = "/G=";
466 else if(hf_index == hf_x411_printable_initials) fmt = "/I=";
467 else if(hf_index == hf_x411_printable_generation_qualifier) fmt = "/GQ=";
468 else if(hf_index == hf_x411_printable_type) fmt = "/DD.";
469 else if(hf_index == hf_x411_printable_value) fmt = "=";
472 g_strlcat(oraddress, fmt, MAX_ORA_STR_LEN);
474 g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
480 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
481 doing_address = TRUE;
486 if(*oraddress && address_item)
487 proto_item_append_text(address_item, " %%s/", oraddress);
489 doing_address = FALSE;
493 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
495 doing_address = TRUE;
499 if(*oraddress && address_item)
500 proto_item_append_text(address_item, " (%%s/)", oraddress);
502 doing_address = FALSE;
504 #.FN_BODY GlobalDomainIdentifier
506 oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
512 proto_item_append_text(address_item, " (%%s/", oraddress);
515 #.FN_PARS LocalIdentifier
518 #.FN_BODY LocalIdentifier
523 if(doing_address && id)
524 proto_item_append_text(address_item, " $ %%s)", tvb_format_text(id, 0, tvb_length(id)));
526 #.FN_BODY MTSIdentifier
528 doing_address = TRUE;
532 doing_address = FALSE;
534 #.FN_BODY BuiltInStandardAttributes
540 #.FN_BODY TraceInformationElement
542 doing_address = TRUE;
546 doing_address = FALSE;
548 #.FN_BODY InternalTraceInformationElement
550 doing_address = TRUE;
554 doing_address = FALSE;
557 #.FN_BODY DomainSuppliedInformation
559 doing_address = FALSE;
563 doing_address = TRUE;
564 proto_item_append_text(tree, ")");
566 #.FN_BODY MTASuppliedInformation
568 doing_address = FALSE;
572 doing_address = TRUE;
573 proto_item_append_text(tree, ")");
579 tvbuff_t *arrival = NULL;
584 proto_item_append_text(address_item, " %%s", tvb_format_text(arrival, 0, tvb_length(arrival)));
586 #.FN_PARS RoutingAction
589 #.FN_BODY RoutingAction
594 proto_item_append_text(address_item, " %%s", val_to_str(action, x411_RoutingAction_vals, "action(%%d)"));
596 #.FN_PARS MTABindError
599 #.FN_BODY MTABindError
602 if((error != -1) && check_col(pinfo->cinfo, COL_INFO))
603 col_append_fstr(pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, x411_MTABindError_vals, "error(%%d)"));