2 # X.411 (MTA Access and Transfer) conformance file
6 CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(p1_CountryName_U_vals) BITMASK = 0
7 Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
9 #.IMPORT ../x509ce/x509ce-exp.cnf
10 #.IMPORT ../x509if/x509if-exp.cnf
11 #.IMPORT ../x509sat/x509sat-exp.cnf
12 #.IMPORT ../x509af/x509af-exp.cnf
13 #.IMPORT ../ros/ros-exp.cnf
14 #.IMPORT ../rtse/rtse-exp.cnf
17 # These gives unused code warnings
18 MTAOriginatorRequestedAlternateRecipient
20 #The following are only referenced through the SIGNATURE MACRO
21 #and so have no representation on the wire.
22 ProofOfDeliveryAlgorithmIdentifier
23 ContentIntegrityAlgorithmIdentifier
24 MessageOriginAuthenticationAlgorithmIdentifier
25 ProbeOriginAuthenticationAlgorithmIdentifier
26 ReportOriginAuthenticationAlgorithmIdentifier
27 ProofOfSubmissionAlgorithmIdentifier
41 # These fields are only used through COMPONENTS OF,
42 # and consequently generate unused code warnings
43 PerMessageTransferFields
44 PerProbeTransferFields
45 PerReportTransferFields
46 PerMessageSubmissionFields
47 PerProbeSubmissionFields
48 PerReportDeliveryFields
49 PerRecipientReportFields
50 #PerRecipientReportFields/report-type
51 InternalAdditionalActions
64 EncodedInformationTypes
65 EncodedInformationTypesConstraints
69 G3FacsimileNonBasicParameters
70 ImproperlySpecifiedRecipients
72 MessageDeliveryIdentifier
74 MessageOriginAuthenticationCheck
76 MessageSecurityLabel_PDU
77 MessageSubmissionEnvelope
78 MessageSubmissionIdentifier
82 ORAddressAndOrDirectoryName
85 OriginalEncodedInformationTypes
86 OriginatingMTACertificate
87 OtherMessageDeliveryFields
89 PerRecipientProbeSubmissionFields
90 ProbeSubmissionEnvelope
91 ProbeSubmissionIdentifier
94 RequestedDeliveryMethod
99 SupplementaryInformation
100 TeletexNonBasicParameters
102 NonDeliveryReasonCode
103 NonDeliveryDiagnosticCode
105 # Forward declaration of Classes
106 # CONNECTION-PACKAGE CONTRACT from ROS
107 #.CLASS CONNECTION-PACKAGE
108 &bind ClassReference OPERATION
109 &unbind ClassReference OPERATION
110 &responderCanUnbind BooleanType
111 &unbindCanFail BooleanType
112 &id ObjectIdentifierType
115 #.CLASS APPLICATION-CONTEXT
116 &associationContract ClassReference CONTRACT
117 &associationRealization
119 &AbstractSyntaxes ClassReference ABSTRACT-SYNTAX
120 &applicationContextName ObjectIdentifierType
125 &connection ClassReference CONNECTION-PACKAGE
126 &OperationsOf ClassReference OPERATION-PACKAGE
127 &InitiatorConsumerOf ClassReference OPERATION-PACKAGE
128 &InitiatorSupplierOf ClassReference OPERATION-PACKAGE
129 &id ObjectIdentifierType
133 &Is ClassReference MHS-OBJECT
134 &Initiates ClassReference CONTRACT
135 &Responds ClassReference CONTRACT
136 &InitiatesAndResponds ClassReference CONTRACT
137 &id ObjectIdentifierType
141 #.CLASS ABSTRACT-OPERATION
143 &argumentTypeOptional BooleanType
144 &returnResult BooleanType
146 &resultTypeOptional BooleanType
147 &Errors ClassReference ERROR
148 &Linked ClassReference OPERATION
149 &synchronous BooleanType
150 &alwaysReturns BooleanType
151 &InvokePriority _FixedTypeValueSetFieldSpec
152 &ResultPriority _FixedTypeValueSetFieldSpec
153 &operationCode TypeReference Code
157 #.CLASS ABSTRACT-ERROR
159 ¶meterTypeOptional BooleanType
160 &ErrorPriority _FixedTypeValueSetFieldSpec
161 &errorCode TypeReference Code
165 &id TypeReference ExtensionType
167 &absent _VariableTypeValueSetFieldSpec
168 &recommended TypeReference Criticality
171 #.CLASS EXTENSION-ATTRIBUTE
183 MTABindArgument/authenticated AuthenticatedArgument
184 MTABindResult/authenticated AuthenticatedResult
186 ExtensionField/value ExtensionValue
187 SecurityCategory/value CategoryValue
190 PrivateDomainName/printable printable-private-domain-name
191 PrivateDomainName/numeric numeric-private-domain-name
192 PrivateDomainIdentifier/printable printable-private-domain-identifier
193 PrivateDomainIdentifier/numeric numeric-private-domain-identifier
195 TeletexPersonalName/surname teletex-surname
196 PersonalName/surname printable-surname
197 UniversalPersonalName/surname universal-surname
199 TeletexPersonalName/given-name teletex-given-name
200 PersonalName/given-name printable-given-name
201 UniversalPersonalName/given-name universal-given-name
203 TeletexPersonalName/initials teletex-initials
204 PersonalName/initials printable-initials
205 UniversalPersonalName/initials universal-initials
207 TeletexPersonalName/generation-qualifier teletex-generation-qualifier
208 PersonalName/generation-qualifier printable-generation-qualifier
209 UniversalPersonalName/generation-qualifier universal-generation-qualifier
211 BuiltInDomainDefinedAttribute/type printable-type
212 UniversalDomainDefinedAttribute/type universal-type
213 SecurityCategory/type category-type
214 ExtensionField/type extension-type
216 TeletexDomainDefinedAttribute/value teletex-value
217 BuiltInDomainDefinedAttribute/value printable-value
218 UniversalDomainDefinedAttribute/value universal-value
219 SecurityCategory/value category-value
220 ExtensionField/value extension-value
222 LastTraceInformation/report-type trace-report-type
223 PerRecipientReportDeliveryFields/report-type delivery-report-type
224 PerRecipientReportFields/report-type/delivery report-type-delivery
226 PerRecipientMessageSubmissionFields/recipient-name submission-recipient-name
227 PerRecipientProbeSubmissionFields/recipient-name probe-recipient-name
229 PerRecipientReportTransferFields/actual-recipient-name mta-actual-recipient-name
231 MessageClass/priority class-priority
232 DeliveryQueue/octets delivery-queue-octets
233 PerRecipientReportFields/report-type/non-delivery non-delivery-report
235 MTABindResult/authenticated authenticated-result
236 MTABindArgument/authenticated authenticated-argument
238 MTABindResult/authenticated/responder-name authenticated-responder-name
239 MTABindArgument/authenticated/initiator-name authenticated-initiator-name
241 RegistrationTypes/extensions type-extensions
242 RegistrationTypes/extensions/_item type-extensions-item
244 MessageSubmissionArgument/envelope message-submission-envelope
246 OtherMessageDeliveryFields/content-type delivered-content-type
247 Report/content report-content
249 ReportDeliveryResult/extensions max-extensions
251 OtherMessageDeliveryFields/originator-name delivered-originator-name
253 PDSParameter/teletex-string pds-teletex-string
255 PerDomainBilateralInformation/domain bilateral-domain
257 Report/envelope report-envelope
258 Message/envelope message-envelope
260 PerRecipientReportTransferFields/originally-intended-recipient-name report-originally-intended-recipient-name
262 MessageSubmissionEnvelope/originator-name mts-originator-name
263 ProbeSubmissionEnvelope/originator-name mts-originator-name
265 MessageTransferEnvelope/originator-name mta-originator-name
266 ProbeTransferEnvelope/originator-name mta-originator-name
268 MessageSubmissionEnvelope/per-recipient-fields per-recipient-message-submission-fields
269 ProbeTransferEnvelope/per-recipient-fields per-recipient-probe-transfer-fields
270 ProbeSubmissionEnvelope/per-recipient-fields per-recipient-probe-submission-fields
271 ReportDeliveryArgument/per-recipient-fields per-recipient-report-delivery-fields
272 ReportDeliveryEnvelope/per-recipient-fields per-recipient-report-delivery-fields
274 MessageSubmissionEnvelope/per-recipient-fields/_item per-recipient-message-submission-fields-item
275 ProbeTransferEnvelope/per-recipient-fields/_item per-recipient-probe-transfer-fields-item
276 ProbeSubmissionEnvelope/per-recipient-fields/_item per-recipient-probe-submission-fields-item
277 ReportDeliveryArgument/per-recipient-fields/_item per-recipient-report-delivery-fields-item
278 ReportDeliveryEnvelope/per-recipient-fields/_item per-recipient-report-delivery-fields-item
280 MessageTransferEnvelope/per-recipient-fields/_item per-recipient-message-fields-item
282 MessageTransferEnvelope/per-recipient-fields per-recipient-message-fields
283 ReportTransferContent/per-recipient-fields per-recipient-report-fields
285 AsymmetricTokenData/name/mta token-mta
286 AsymmetricTokenData/name/recipient-name token-recipient-name
288 TokenData/type token-data-type
289 CertificateSelectors/content-integrity-check selectors-content-integrity-check
293 # This table creates the value_sting to name P3 operation codes and errors
294 # in file packet-p3-table.c which is included in the template file
297 /* P3 ABSTRACT-OPERATIONS */
298 const value_string p3_opr_code_string_vals[] = {
299 #.TABLE_BODY OPERATION
300 { %(&operationCode)s, "%(_ident)s" },
308 static const value_string p3_err_code_string_vals[] = {
310 { %(&errorCode)s, "%(_ident)s" },
316 # Create a table of opcode and corresponding args and res
318 static const ros_opr_t p3_opr_tab[] = {
319 #.TABLE11_BODY OPERATION
321 { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
323 { 0, (new_dissector_t)(-1), (new_dissector_t)(-1) },
328 static const ros_err_t p3_err_tab[] = {
331 { %(&errorCode)s, %(_parameter_pdu)s },
333 { 0, (new_dissector_t)(-1) },
339 OPERATION.&ArgumentType
340 OPERATION.&ResultType
345 RecipientReassignmentProhibited N p1.extension 1
346 OriginatorRequestedAlternateRecipient N p1.extension 2
347 DLExpansionProhibited N p1.extension 3
348 ConversionWithLossProhibited N p1.extension 4
349 LatestDeliveryTime N p1.extension 5
350 RequestedDeliveryMethod N p1.extension 6
351 PhysicalForwardingProhibited N p1.extension 7
352 PhysicalForwardingAddressRequest N p1.extension 8
353 PhysicalDeliveryModes N p1.extension 9
354 RegisteredMailType N p1.extension 10
355 RecipientNumberForAdvice N p1.extension 11
356 PhysicalRenditionAttributes N p1.extension 12
357 OriginatorReturnAddress N p1.extension 13
358 PhysicalDeliveryReportRequest N p1.extension 14
359 OriginatorCertificate N p1.extension 15
360 MessageToken N p1.extension 16
361 ContentConfidentialityAlgorithmIdentifier N p1.extension 17
362 ContentIntegrityCheck N p1.extension 18
363 MessageOriginAuthenticationCheck N p1.extension 19
364 MessageSecurityLabel N p1.extension 20
365 ProofOfSubmissionRequest N p1.extension 21
366 ProofOfDeliveryRequest N p1.extension 22
367 ContentCorrelator N p1.extension 23
368 ProbeOriginAuthenticationCheck N p1.extension 24
369 RedirectionHistory N p1.extension 25
370 DLExpansionHistory N p1.extension 26
371 PhysicalForwardingAddress N p1.extension 27
372 RecipientCertificate N p1.extension 28
373 ProofOfDelivery N p1.extension 29
374 OriginatorAndDLExpansionHistory N p1.extension 30
375 ReportingDLName N p1.extension 31
376 ReportingMTACertificate N p1.extension 32
377 ReportOriginAuthenticationCheck N p1.extension 33
378 ProofOfSubmission N p1.extension 35
380 TraceInformation N p1.extension 37
381 InternalTraceInformation N p1.extension 38
382 ReportingMTAName N p1.extension 39
383 ExtendedCertificates N p1.extension 40
385 DLExemptedRecipients N p1.extension 42
387 CertificateSelectors N p1.extension 45
389 CommonName N p1.extension-attribute 1
390 TeletexCommonName N p1.extension-attribute 2
391 TeletexOrganizationName N p1.extension-attribute 3
392 TeletexPersonalName N p1.extension-attribute 4
393 TeletexOrganizationalUnitNames N p1.extension-attribute 5
394 TeletexDomainDefinedAttributes N p1.extension-attribute 6
395 PDSName N p1.extension-attribute 7
396 PhysicalDeliveryCountryName N p1.extension-attribute 8
397 PostalCode N p1.extension-attribute 9
398 PhysicalDeliveryOfficeName N p1.extension-attribute 10
399 PhysicalDeliveryOfficeNumber N p1.extension-attribute 11
400 ExtensionORAddressComponents N p1.extension-attribute 12
401 PhysicalDeliveryPersonalName N p1.extension-attribute 13
402 PhysicalDeliveryOrganizationName N p1.extension-attribute 14
403 ExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 15
404 UnformattedPostalAddress N p1.extension-attribute 16
405 StreetAddress N p1.extension-attribute 17
406 PostOfficeBoxAddress N p1.extension-attribute 18
407 PosteRestanteAddress N p1.extension-attribute 19
408 UniquePostalName N p1.extension-attribute 20
409 LocalPostalAttributes N p1.extension-attribute 21
410 ExtendedNetworkAddress N p1.extension-attribute 22
411 TerminalType N p1.extension-attribute 23
412 UniversalCommonName N p1.extension-attribute 24
413 UniversalOrganizationName N p1.extension-attribute 25
414 UniversalPersonalName N p1.extension-attribute 26
415 UniversalOrganizationalUnitNames N p1.extension-attribute 27
416 UniversalDomainDefinedAttributes N p1.extension-attribute 28
417 UniversalPhysicalDeliveryOfficeName N p1.extension-attribute 29
418 UniversalPhysicalDeliveryOfficeNumber N p1.extension-attribute 30
419 UniversalExtensionORAddressComponents N p1.extension-attribute 31
420 UniversalPhysicalDeliveryPersonalName N p1.extension-attribute 32
421 UniversalPhysicalDeliveryOrganizationName N p1.extension-attribute 33
422 UniversalExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 34
423 UniversalUnformattedPostalAddress N p1.extension-attribute 35
424 UniversalStreetAddress N p1.extension-attribute 36
425 UniversalPostOfficeBoxAddress N p1.extension-attribute 37
426 UniversalPosteRestanteAddress N p1.extension-attribute 38
427 UniversalUniquePostalName N p1.extension-attribute 39
428 UniversalLocalPostalAttributes N p1.extension-attribute 40
430 #ReportDeliveryArgument B "2.6.1.4.14" "id-et-report"
432 AsymmetricToken B "2.6.3.6.0" "id-tok-asymmetricToken"
433 MTANameAndOptionalGDI B "2.6.5.6.0" "id-on-mtaName"
435 BindTokenSignedData N p1.tokendata 1
436 MessageTokenSignedData N p1.tokendata 2
437 # the next two are unlikely to ever be seen (unless in a bad encoding)
438 MessageTokenEncryptedData N p1.tokendata 3
439 BindTokenEncryptedData N p1.tokendata 4
441 # X402 - see master list in acp133.cnf
443 ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length"
444 ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types"
445 ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits"
446 ORName B "2.6.5.2.3" "id-at-mhs-dl-members"
447 ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses"
448 ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types"
449 ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service"
450 ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service"
451 ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits"
452 ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits"
455 # ACP133 - see master list in acp133.cnf
456 ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor"
457 ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
459 # MSGeneralAttributeTypes - see master list in p7.cnf
460 CertificateSelectors B "2.6.4.3.80" "id-att-certificate-selectors"
461 Content B "2.6.4.3.1" "id-att-content"
462 ContentCorrelator B "2.6.4.3.3" "id-att-content-correlator"
463 ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier"
464 ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check"
465 ContentLength B "2.6.4.3.6" "id-att-content-length"
466 ExtendedContentType B "2.6.4.3.8" "id-att-content-type"
467 ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited"
468 DeferredDeliveryTime B "2.6.4.3.51" "id-att-deferred-delivery-time"
469 DeliveryFlags B "2.6.4.3.13" "id-att-delivery-flags"
470 ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients"
471 DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history"
472 DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited"
473 InternalTraceInformationElement B "2.6.4.3.54" "id-att-internal-trace-information"
474 LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time"
475 MessageDeliveryEnvelope B "2.6.4.3.18" "id-att-message-delivery-envelope"
476 MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time"
477 MTSIdentifier B "2.6.4.3.19" "id-att-message-identifier"
478 MessageOriginAuthenticationCheck B "2.6.4.3.21" "id-at-message-orgin-authentication-check"
479 MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label"
480 MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope"
481 MessageSubmissionTime B "2.6.4.3.23" "id-att-message-submission-time"
482 MessageToken B "2.6.4.3.24" "id-att-message-token"
483 ExtendedCertificates B "2.6.4.3.81" "id-att-multiple-originator-certificates"
484 ORName B "2.6.4.3.17" "id-att-originally-intended-recipient-name"
485 OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate"
486 OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate"
487 ORName B "2.6.4.3.27" "id-att-originator-name"
488 OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request"
489 OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address"
490 ORName B "2.6.4.3.28" "id-att-other-recipient-names"
491 PerMessageIndicators B "2.6.4.3.65" "id-att-per-message-indicators"
492 PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields"
493 PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields"
494 PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields"
495 Priority B "2.6.4.3.31" "id-att-priority"
496 ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check"
497 ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope"
498 ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request"
499 ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission"
500 ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate"
501 ORName B "2.6.4.3.71" "id-att-recipient-names"
502 RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited"
503 Redirection B "2.6.4.3.33" "id-at-redirection-history"
504 ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope"
505 ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name"
506 ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate"
507 ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check"
508 SecurityClassification B "2.6.4.3.38" "id-att-security-classification"
509 SubjectSubmissionIdentifier B "2.6.4.3.40" "id-att-subject-submission-identifier"
510 ORName B "2.6.4.3.41" "id-att-this-recipient-name"
511 TraceInformationElement B "2.6.4.3.75" "id-att-trace-information"
513 # IPMSMessageStoreAttributes - see master list in p22.cnf
514 MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
516 #.FN_BODY AdditionalInformation
517 proto_item *item = NULL;
521 /* work out the length */
522 loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
523 (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
525 item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
526 tree = proto_item_add_subtree(item, ett_p1_additional_information);
527 proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
529 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
531 #.FN_BODY RegistrationTypes/extensions/_item
532 /*XXX not implemented yet */
534 #.FN_BODY ExtensionField/value
537 if(actx->external.indirect_ref_present) {
538 proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_StandardExtension_vals, "standard-extension %%d"));
539 if (dissector_try_uint(p1_extension_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
540 offset = tvb_length(tvb);
542 proto_item *item = NULL;
543 proto_tree *next_tree = NULL;
545 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
546 "Dissector for standard-extension %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
547 next_tree = proto_item_add_subtree(item, ett_p1_unknown_standard_extension);
548 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
549 expert_add_info(actx->pinfo, item, &ei_p1_unknown_standard_extension);
551 } else if (actx->external.direct_ref_present) {
552 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
553 name = oid_resolved_from_string(actx->external.direct_reference);
554 proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
558 #.FN_PARS SecurityCategoryIdentifier
559 FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
561 #.FN_BODY SecurityCategoryValue
564 if (actx->external.direct_reference) {
565 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
566 name = oid_resolved_from_string(actx->external.direct_reference);
567 proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
569 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
572 #.FN_PARS ExtensionAttributeType
573 VAL_PTR = &actx->external.indirect_reference
575 #.FN_BODY ExtensionAttribute/extension-attribute-value
577 proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d"));
578 if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
579 offset =tvb_length(tvb);
581 proto_item *item = NULL;
582 proto_tree *next_tree = NULL;
584 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
585 "Dissector for extension-attribute-type %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
586 next_tree = proto_item_add_subtree(item, ett_p1_unknown_extension_attribute_type);
587 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
588 expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type);
592 #.FN_BODY RefusedOperation/refused-argument/refused-extension
593 /*XXX not implemented yet */
595 #.FN_BODY CountryName
596 do_address("/C=", NULL, actx);
600 #.FN_BODY AdministrationDomainName
601 do_address("/A=", NULL, actx);
605 #.FN_PARS StandardExtension VAL_PTR = &actx->external.indirect_reference
607 #.FN_BODY StandardExtension
608 actx->external.indirect_ref_present = TRUE;
609 actx->external.direct_ref_present = FALSE;
612 #.FN_BODY ExtensionType/private-extension FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
613 actx->external.indirect_ref_present = FALSE;
614 actx->external.direct_reference = NULL;
616 actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
618 #.FN_PARS ExtendedContentType
619 FN_VARIANT = _str VAL_PTR = &ctx->content_type_id
621 #.FN_BODY ExtendedContentType
622 const char *name = NULL;
623 p1_address_ctx_t* ctx;
625 if (actx->subtree.tree_ctx == NULL)
626 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
628 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
632 if(ctx->content_type_id) {
633 name = oid_resolved_from_string(ctx->content_type_id);
635 if(!name) name = ctx->content_type_id;
637 proto_item_append_text(tree, " (%%s)", name);
640 #.FN_PARS BuiltInContentType/_untag VAL_PTR = &ict
642 #.FN_BODY BuiltInContentType/_untag
643 static guint32 ict = -1;
644 p1_address_ctx_t* ctx;
646 if (actx->subtree.tree_ctx == NULL)
647 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
649 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
653 /* convert integer content type to oid for dispatch when the content is found */
656 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.0");
659 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.1");
662 ctx->content_type_id = NULL;
668 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
670 /* we can do this now constructed octet strings are supported */
671 offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
672 proto_item_set_text(actx->created_item, "content (%%u bytes)", tvb_length (next_tvb));
675 if (ctx && ctx->content_type_id) {
676 (void) call_ber_oid_callback(ctx->content_type_id, next_tvb, 0, actx->pinfo, actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->private_data);
677 } else if (ctx && ctx->report_unknown_content_type) {
678 proto_item *item = NULL;
679 proto_tree *next_tree = NULL;
681 proto_tree_add_expert(actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->pinfo, &ei_p1_unknown_built_in_content_type,
682 next_tvb, 0, tvb_length_remaining(tvb, offset));
684 next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
686 dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
688 proto_item_append_text (actx->created_item, " (unknown content-type)");
696 tvbuff_t *mtaname = NULL;
697 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
701 if (ctx && ctx->do_address) {
702 proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
705 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
709 #.FN_PARS X121Address
712 #.FN_BODY X121Address
713 tvbuff_t *string = NULL;
717 do_address("/PX121=", string, actx);
719 #.FN_PARS TerminalIdentifier
722 #.FN_BODY TerminalIdentifier
723 tvbuff_t *string = NULL;
727 do_address("/UA-ID=", string, actx);
729 #.FN_BODY PrivateDomainName
731 do_address("/P=", NULL, actx);
735 #.FN_BODY PrivateDomainIdentifier
737 do_address("/P=", NULL, actx);
741 #.FN_PARS OrganizationName
744 #.FN_BODY OrganizationName
745 tvbuff_t *string = NULL;
749 do_address("/O=", string, actx);
751 #.FN_PARS TeletexOrganizationName
754 #.FN_BODY TeletexOrganizationName
755 tvbuff_t *string = NULL;
759 do_address("/O=", string, actx);
761 #.FN_PARS OrganizationalUnitName
764 #.FN_BODY OrganizationalUnitName
765 tvbuff_t *string = NULL;
767 do_address("/OU=", string, actx);
769 #.FN_PARS TeletexOrganizationalUnitName
772 #.FN_BODY TeletexOrganizationalUnitName
773 tvbuff_t *string = NULL;
777 do_address("/OU=", string, actx);
783 tvbuff_t *string = NULL;
787 do_address("/CN=", string, actx);
789 #.FN_PARS TeletexCommonName
792 #.FN_BODY TeletexCommonName
793 tvbuff_t *string = NULL;
797 do_address("/CN=", string, actx);
799 #.FN_BODY CountryName/_untag/iso-3166-alpha2-code VAL_PTR=&nstring
800 tvbuff_t *nstring = NULL;
804 do_address(NULL, nstring, actx);
806 #.FN_BODY AdministrationDomainName/_untag/printable VAL_PTR=&nstring
807 tvbuff_t *nstring = NULL;
811 do_address(NULL, nstring, actx);
813 #.FN_BODY PrivateDomainName/printable VAL_PTR=&nstring
814 tvbuff_t *nstring = NULL;
818 do_address(NULL, nstring, actx);
820 #.FN_BODY PrivateDomainIdentifier/printable VAL_PTR=&nstring
821 tvbuff_t *nstring = NULL;
825 do_address(NULL, nstring, actx);
827 #.FN_BODY PhysicalDeliveryCountryName/iso-3166-alpha2-code VAL_PTR=&nstring
828 tvbuff_t *nstring = NULL;
832 do_address(NULL, nstring, actx);
834 #.FN_BODY UserAddress/x121/x121-address VAL_PTR=&nstring
835 tvbuff_t *nstring = NULL;
839 do_address(NULL, nstring, actx);
841 #.FN_BODY CountryName/_untag/x121-dcc-code VAL_PTR=&nstring
842 tvbuff_t *nstring = NULL;
846 do_address(NULL, nstring, actx);
848 #.FN_BODY AdministrationDomainName/_untag/numeric VAL_PTR=&nstring
849 tvbuff_t *nstring = NULL;
853 do_address(NULL, nstring, actx);
855 #.FN_BODY PrivateDomainName/numeric VAL_PTR=&nstring
856 tvbuff_t *nstring = NULL;
860 do_address(NULL, nstring, actx);
862 #.FN_BODY PrivateDomainIdentifier/numeric VAL_PTR=&nstring
863 tvbuff_t *nstring = NULL;
867 do_address(NULL, nstring, actx);
869 #.FN_BODY PhysicalDeliveryCountryName/x121-dcc-code VAL_PTR=&nstring
870 tvbuff_t *nstring = NULL;
874 do_address(NULL, nstring, actx);
876 #.FN_BODY PostalCode/numeric-code VAL_PTR=&nstring
877 tvbuff_t *nstring = NULL;
881 do_address(NULL, nstring, actx);
884 #.FN_BODY TeletexDomainDefinedAttribute/type VAL_PTR=&tstring
885 tvbuff_t *tstring = NULL;
889 do_address_str("/DD.", tstring, actx);
891 #.FN_BODY TeletexDomainDefinedAttribute/value VAL_PTR=&tstring
892 tvbuff_t *tstring = NULL;
896 do_address_str_tree("=", tstring, actx, tree);
898 #.FN_BODY TeletexDomainDefinedAttribute
899 actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
903 #.FN_BODY PersonalName/surname VAL_PTR=&pstring
904 tvbuff_t *pstring = NULL;
908 do_address("/S=", pstring, actx);
910 #.FN_BODY PersonalName/given-name VAL_PTR=&pstring
911 tvbuff_t *pstring = NULL;
915 do_address("/G=", pstring, actx);
917 #.FN_BODY PersonalName/initials VAL_PTR=&pstring
918 tvbuff_t *pstring = NULL;
922 do_address("/I=", pstring, actx);
924 #.FN_BODY PersonalName/generation-qualifier VAL_PTR=&pstring
925 tvbuff_t *pstring = NULL;
929 do_address("/Q=", pstring, actx);
931 #.FN_BODY TeletexPersonalName/surname VAL_PTR=&tstring
932 tvbuff_t *tstring = NULL;
936 do_address("/S=", tstring, actx);
938 #.FN_BODY TeletexPersonalName/given-name VAL_PTR=&tstring
939 tvbuff_t *tstring = NULL;
943 do_address("/G=", tstring, actx);
945 #.FN_BODY TeletexPersonalName/initials VAL_PTR=&tstring
946 tvbuff_t *tstring = NULL;
950 do_address("/I=", tstring, actx);
952 #.FN_BODY TeletexPersonalName/generation-qualifier VAL_PTR=&tstring
953 tvbuff_t *tstring = NULL;
957 do_address("/Q=", tstring, actx);
959 #.FN_BODY BuiltInDomainDefinedAttribute/type VAL_PTR=&pstring
960 tvbuff_t *pstring = NULL;
964 do_address_str("/DD.", pstring, actx);
966 #.FN_BODY BuiltInDomainDefinedAttribute/value VAL_PTR=&pstring
967 tvbuff_t *pstring = NULL;
971 do_address_str_tree("=", pstring, actx, tree);
973 #.FN_BODY BuiltInDomainDefinedAttribute
974 actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
979 p1_address_ctx_t* ctx;
981 if (actx->subtree.tree_ctx == NULL) {
982 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
985 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
986 ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
988 actx->subtree.tree = NULL;
989 set_do_address(actx, TRUE);
994 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
995 proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
997 set_do_address(actx, FALSE);
1000 p1_address_ctx_t* ctx;
1002 if (actx->subtree.tree_ctx == NULL) {
1003 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
1006 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1007 ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
1009 actx->subtree.tree = NULL;
1010 set_do_address(actx, TRUE);
1014 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
1015 proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
1017 set_do_address(actx, FALSE);
1018 #.FN_BODY MessageIdentifier
1019 actx->subtree.tree = NULL;
1023 #.FN_BODY GlobalDomainIdentifier
1024 p1_address_ctx_t* ctx;
1026 if (actx->subtree.tree_ctx == NULL) {
1027 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
1030 ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1031 ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
1033 actx->subtree.tree = tree;
1037 if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0)) {
1038 proto_item_append_text(actx->subtree.tree, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
1040 if (hf_index == hf_p1_subject_identifier) {
1041 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
1046 #.FN_PARS LocalIdentifier
1049 #.FN_BODY LocalIdentifier
1050 tvbuff_t *id = NULL;
1051 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1056 if (ctx && ctx->do_address)
1057 proto_item_append_text(actx->subtree.tree, " $ %%s)", tvb_format_text(id, 0, tvb_length(id)));
1059 if (hf_index == hf_p1_subject_identifier)
1060 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %%s)", tvb_format_text(id, 0, tvb_length(id)));
1063 #.FN_BODY MTSIdentifier
1065 set_do_address(actx, TRUE);
1069 set_do_address(actx, FALSE);
1071 #.FN_BODY MTANameAndOptionalGDI
1073 set_do_address(actx, TRUE);
1077 set_do_address(actx, FALSE);
1078 proto_item_append_text(tree, ")");
1080 #.FN_BODY BuiltInStandardAttributes
1081 actx->subtree.tree = tree;
1085 #.FN_BODY TraceInformationElement
1087 set_do_address(actx, TRUE);
1091 set_do_address(actx, FALSE);
1093 #.FN_BODY InternalTraceInformationElement
1095 set_do_address(actx, TRUE);
1099 set_do_address(actx, FALSE);
1101 #.FN_BODY DomainSuppliedInformation
1103 set_do_address(actx, FALSE);
1107 set_do_address(actx, TRUE);
1108 proto_item_append_text(tree, ")");
1110 #.FN_BODY MTASuppliedInformation
1112 set_do_address(actx, FALSE);
1116 set_do_address(actx, TRUE);
1117 proto_item_append_text(tree, ")");
1123 tvbuff_t *arrival = NULL;
1124 p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1128 if(arrival && ctx && ctx->do_address)
1129 proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(arrival, 0, tvb_length(arrival)));
1131 #.FN_PARS RoutingAction
1134 #.FN_BODY RoutingAction
1139 proto_item_append_text(actx->subtree.tree, " %%s", val_to_str(action, p1_RoutingAction_vals, "action(%%d)"));
1141 #.FN_PARS MTABindError
1144 #.FN_BODY MTABindError
1148 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, p1_MTABindError_vals, "error(%%d)"));
1150 #.FN_PARS TokenTypeIdentifier
1151 FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
1153 #.FN_BODY TokenTypeData
1155 if(actx->external.direct_reference)
1156 call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1158 #.FN_PARS Credentials
1159 VAL_PTR = &credentials
1161 #.FN_BODY Credentials
1162 gint credentials = -1;
1166 if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
1167 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_Credentials_vals[credentials].strptr);
1170 #.FN_PARS TokenDataType
1171 VAL_PTR = &actx->external.indirect_reference
1173 #.FN_BODY TokenData/value
1175 proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %%d"));
1176 if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
1177 offset = tvb_length(tvb);
1179 proto_item *item = NULL;
1180 proto_tree *next_tree = NULL;
1182 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
1183 "Dissector for tokendata-type %%d not implemented. Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
1184 next_tree = proto_item_add_subtree(item, ett_p1_unknown_tokendata_type);
1185 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
1186 expert_add_info(actx->pinfo, item, &ei_p1_unknown_tokendata_type);
1189 #.FN_BODY PerDomainBilateralInformation/bilateral-information
1190 proto_item *item = NULL;
1194 /* work out the length */
1195 loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
1196 (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
1198 /* create some structure so we can tell what this unknown ASN.1 represents */
1199 item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
1200 tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
1202 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1212 if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
1213 if(apdu != 0) { /* we don't show "message" - sub-dissectors have better idea */
1214 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_MTS_APDU_vals[apdu].strptr);
1218 #.FN_PARS ReportType
1221 #.FN_BODY ReportType
1226 if( (report!=-1) && p1_ReportType_vals[report].strptr ){
1227 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_ReportType_vals[report].strptr);
1230 #.FN_BODY MessageSubmissionArgument
1231 p1_initialize_content_globals(actx, tree, TRUE);
1233 p1_initialize_content_globals(actx, NULL, FALSE);
1235 #.FN_BODY MessageDeliveryArgument
1236 p1_initialize_content_globals(actx, tree, TRUE);
1238 p1_initialize_content_globals(actx, NULL, FALSE);
1240 #.FN_BODY ReportDeliveryArgument
1241 p1_initialize_content_globals(actx, tree, TRUE);
1243 p1_initialize_content_globals(actx, NULL, FALSE);
1245 #.FN_HDR MTSBindResult
1246 /* TODO: there may be other entry points where this global should be initialized... */
1247 actx->subtree.tree = NULL;