Replace deprecated API tvb_length -> tvb_reported_length
[metze/wireshark/wip.git] / asn1 / p1 / p1.cnf
1 # p1.cnf
2 # X.411 (MTA Access and Transfer) conformance file
3
4 #.TYPE_ATTR
5 CountryName     TYPE = FT_UINT32  DISPLAY = BASE_DEC   STRINGS = VALS(p1_CountryName_U_vals)  BITMASK = 0
6 Time            TYPE = FT_STRING  DISPLAY = BASE_NONE  STRING = NULL BITMASK = 0
7
8 #.IMPORT ../x509ce/x509ce-exp.cnf
9 #.IMPORT ../x509if/x509if-exp.cnf
10 #.IMPORT ../x509sat/x509sat-exp.cnf
11 #.IMPORT ../x509af/x509af-exp.cnf
12 #.IMPORT ../ros/ros-exp.cnf
13 #.IMPORT ../rtse/rtse-exp.cnf
14
15 #.OMIT_ASSIGNMENT
16 # These gives unused code warnings
17 MTAOriginatorRequestedAlternateRecipient
18
19 #The following are only referenced through the SIGNATURE MACRO
20 #and so have no representation on the wire.
21 ProofOfDeliveryAlgorithmIdentifier
22 ContentIntegrityAlgorithmIdentifier
23 MessageOriginAuthenticationAlgorithmIdentifier
24 ProbeOriginAuthenticationAlgorithmIdentifier
25 ReportOriginAuthenticationAlgorithmIdentifier
26 ProofOfSubmissionAlgorithmIdentifier
27
28 BilateralDomain
29 DeliveryControls
30 RTSE-apdus
31 MTSInvokeIds
32 ID
33 RTTPapdu
34 RTTRapdu
35 RTABapdu
36 AbortReason
37 #.END
38
39 #.NO_EMIT
40 # These fields are only used through COMPONENTS OF,
41 # and consequently generate unused code warnings
42 PerMessageTransferFields
43 PerProbeTransferFields
44 PerReportTransferFields
45 PerMessageSubmissionFields
46 PerProbeSubmissionFields
47 PerReportDeliveryFields
48 PerRecipientReportFields
49 #PerRecipientReportFields/report-type
50 InternalAdditionalActions
51 AdditionalActions
52 NonBasicParameters
53 #.END
54
55 #.EXPORTS
56 EXTENSION
57 Content
58 ContentIdentifier
59 ContentIntegrityCheck
60 ContentLength
61 ContentType
62 Credentials
63 EncodedInformationTypes
64 EncodedInformationTypesConstraints
65 ExtendedCertificates
66 ExtendedContentType
67 ExtensionField
68 G3FacsimileNonBasicParameters
69 ImproperlySpecifiedRecipients
70 InitiatorCredentials
71 MessageDeliveryIdentifier
72 MessageDeliveryTime
73 MessageOriginAuthenticationCheck
74 MessageSecurityLabel
75 MessageSecurityLabel_PDU
76 MessageSubmissionEnvelope
77 MessageSubmissionIdentifier
78 MessageSubmissionTime
79 MessageToken
80 ORAddress
81 ORAddressAndOrDirectoryName
82 OriginatorName
83 ORName
84 OriginalEncodedInformationTypes
85 OriginatingMTACertificate
86 OtherMessageDeliveryFields
87 PerMessageIndicators
88 PerRecipientProbeSubmissionFields
89 ProbeSubmissionEnvelope
90 ProbeSubmissionIdentifier
91 ProbeSubmissionTime
92 ProofOfSubmission
93 RequestedDeliveryMethod
94 ResponderCredentials
95 SecurityContext
96 SecurityLabel
97 SecurityProblem
98 SupplementaryInformation
99 TeletexNonBasicParameters
100 UniversalOrBMPString
101 NonDeliveryReasonCode
102 NonDeliveryDiagnosticCode
103
104 #.SYNTAX_NEW
105 ORAddress
106 ORName
107
108 # Forward declaration of Classes
109 # CONNECTION-PACKAGE CONTRACT from ROS
110 #.CLASS CONNECTION-PACKAGE
111 &bind                ClassReference OPERATION
112 &unbind              ClassReference OPERATION
113 &responderCanUnbind  BooleanType
114 &unbindCanFail       BooleanType
115 &id                  ObjectIdentifierType
116 #.END
117
118 #.CLASS APPLICATION-CONTEXT
119 &associationContract    ClassReference CONTRACT
120 &associationRealization
121 &transferRealization
122 &AbstractSyntaxes       ClassReference ABSTRACT-SYNTAX
123 &applicationContextName ObjectIdentifierType
124 #.END
125
126
127 #.CLASS CONTRACT
128 &connection           ClassReference CONNECTION-PACKAGE
129 &OperationsOf         ClassReference OPERATION-PACKAGE
130 &InitiatorConsumerOf  ClassReference OPERATION-PACKAGE
131 &InitiatorSupplierOf  ClassReference OPERATION-PACKAGE
132 &id                   ObjectIdentifierType
133 #.END
134
135 #.CLASS MHS-OBJECT
136 &Is                    ClassReference MHS-OBJECT
137 &Initiates             ClassReference CONTRACT
138 &Responds              ClassReference CONTRACT
139 &InitiatesAndResponds  ClassReference CONTRACT
140 &id                    ObjectIdentifierType
141 #.END
142
143 # Ros OPERATION
144 #.CLASS ABSTRACT-OPERATION
145 &ArgumentType
146 &argumentTypeOptional  BooleanType
147 &returnResult          BooleanType
148 &ResultType
149 &resultTypeOptional    BooleanType
150 &Errors                ClassReference ERROR
151 &Linked                ClassReference OPERATION
152 &synchronous           BooleanType
153 &alwaysReturns         BooleanType
154 &InvokePriority        _FixedTypeValueSetFieldSpec
155 &ResultPriority        _FixedTypeValueSetFieldSpec
156 &operationCode         TypeReference Code
157 #.END
158
159 # ros ERROR
160 #.CLASS ABSTRACT-ERROR
161 &ParameterType
162 &parameterTypeOptional  BooleanType
163 &ErrorPriority          _FixedTypeValueSetFieldSpec
164 &errorCode              TypeReference Code
165 #.END
166
167 #.CLASS EXTENSION
168 &id                     TypeReference ExtensionType
169 &Type
170 &absent                 _VariableTypeValueSetFieldSpec
171 &recommended            TypeReference Criticality
172 #.END
173
174 #.CLASS EXTENSION-ATTRIBUTE
175 &id                     IntegerType
176 &Type
177 #.END
178
179 #.CLASS TOKEN-DATA
180 &id                     IntegerType
181 &Type
182 #.END
183
184
185 #.TYPE_RENAME
186 MTABindArgument/authenticated   AuthenticatedArgument
187 MTABindResult/authenticated     AuthenticatedResult
188
189 ExtensionField/value            ExtensionValue
190 SecurityCategory/value          CategoryValue
191
192 #.FIELD_RENAME
193 PrivateDomainName/printable             printable-private-domain-name
194 PrivateDomainName/numeric               numeric-private-domain-name
195 PrivateDomainIdentifier/printable       printable-private-domain-identifier
196 PrivateDomainIdentifier/numeric         numeric-private-domain-identifier
197
198 TeletexPersonalName/surname     teletex-surname
199 PersonalName/surname            printable-surname
200 UniversalPersonalName/surname   universal-surname
201
202 TeletexPersonalName/given-name  teletex-given-name
203 PersonalName/given-name         printable-given-name
204 UniversalPersonalName/given-name        universal-given-name
205
206 TeletexPersonalName/initials    teletex-initials
207 PersonalName/initials           printable-initials
208 UniversalPersonalName/initials  universal-initials
209
210 TeletexPersonalName/generation-qualifier        teletex-generation-qualifier
211 PersonalName/generation-qualifier               printable-generation-qualifier
212 UniversalPersonalName/generation-qualifier      universal-generation-qualifier
213
214 BuiltInDomainDefinedAttribute/type      printable-type
215 UniversalDomainDefinedAttribute/type    universal-type
216 SecurityCategory/type                   category-type
217 ExtensionField/type                     extension-type
218
219 TeletexDomainDefinedAttribute/value     teletex-value
220 BuiltInDomainDefinedAttribute/value     printable-value
221 UniversalDomainDefinedAttribute/value   universal-value
222 SecurityCategory/value                  category-value
223 ExtensionField/value                    extension-value
224
225 LastTraceInformation/report-type        trace-report-type
226 PerRecipientReportDeliveryFields/report-type    delivery-report-type
227 PerRecipientReportFields/report-type/delivery           report-type-delivery
228
229 PerRecipientMessageSubmissionFields/recipient-name      submission-recipient-name
230 PerRecipientProbeSubmissionFields/recipient-name        probe-recipient-name
231
232 PerRecipientReportTransferFields/actual-recipient-name  mta-actual-recipient-name
233
234 MessageClass/priority                   class-priority
235 DeliveryQueue/octets                    delivery-queue-octets
236 PerRecipientReportFields/report-type/non-delivery       non-delivery-report
237
238 MTABindResult/authenticated     authenticated-result
239 MTABindArgument/authenticated   authenticated-argument
240
241 MTABindResult/authenticated/responder-name      authenticated-responder-name
242 MTABindArgument/authenticated/initiator-name    authenticated-initiator-name
243
244 RegistrationTypes/extensions            type-extensions
245 RegistrationTypes/extensions/_item      type-extensions-item
246
247 MessageSubmissionArgument/envelope      message-submission-envelope
248
249 OtherMessageDeliveryFields/content-type delivered-content-type
250 Report/content                          report-content
251
252 ReportDeliveryResult/extensions         max-extensions
253
254 OtherMessageDeliveryFields/originator-name      delivered-originator-name
255
256 PDSParameter/teletex-string             pds-teletex-string
257
258 PerDomainBilateralInformation/domain    bilateral-domain
259
260 Report/envelope                         report-envelope
261 Message/envelope                        message-envelope
262
263 PerRecipientReportTransferFields/originally-intended-recipient-name     report-originally-intended-recipient-name
264
265 MessageSubmissionEnvelope/originator-name       mts-originator-name
266 ProbeSubmissionEnvelope/originator-name         mts-originator-name
267
268 MessageTransferEnvelope/originator-name         mta-originator-name
269 ProbeTransferEnvelope/originator-name           mta-originator-name
270
271 MessageSubmissionEnvelope/per-recipient-fields  per-recipient-message-submission-fields
272 ProbeTransferEnvelope/per-recipient-fields      per-recipient-probe-transfer-fields
273 ProbeSubmissionEnvelope/per-recipient-fields    per-recipient-probe-submission-fields
274 ReportDeliveryArgument/per-recipient-fields     per-recipient-report-delivery-fields
275 ReportDeliveryEnvelope/per-recipient-fields     per-recipient-report-delivery-fields
276
277 MessageSubmissionEnvelope/per-recipient-fields/_item    per-recipient-message-submission-fields-item
278 ProbeTransferEnvelope/per-recipient-fields/_item        per-recipient-probe-transfer-fields-item
279 ProbeSubmissionEnvelope/per-recipient-fields/_item      per-recipient-probe-submission-fields-item
280 ReportDeliveryArgument/per-recipient-fields/_item       per-recipient-report-delivery-fields-item
281 ReportDeliveryEnvelope/per-recipient-fields/_item       per-recipient-report-delivery-fields-item
282
283 MessageTransferEnvelope/per-recipient-fields/_item      per-recipient-message-fields-item
284
285 MessageTransferEnvelope/per-recipient-fields            per-recipient-message-fields
286 ReportTransferContent/per-recipient-fields              per-recipient-report-fields
287
288 AsymmetricTokenData/name/mta                            token-mta
289 AsymmetricTokenData/name/recipient-name                 token-recipient-name
290
291 TokenData/type                                          token-data-type
292 CertificateSelectors/content-integrity-check            selectors-content-integrity-check
293
294 # This table creates the value_sting to name P3 operation codes and errors
295 # in file packet-p3-table.c which is included in the template file
296 #
297 #.TABLE_HDR
298 /* P3 ABSTRACT-OPERATIONS */
299 const value_string p3_opr_code_string_vals[] = {
300 #.TABLE_BODY OPERATION
301         { %(&operationCode)s, "%(_ident)s" },
302 #.TABLE_FTR
303         { 0, NULL }
304 };
305 #.END
306
307 #.TABLE_HDR
308 /* P3 ERRORS */
309 static const value_string p3_err_code_string_vals[] = {
310 #.TABLE_BODY ERROR
311         { %(&errorCode)s, "%(_ident)s" },
312 #.TABLE_FTR
313           { 0, NULL }
314 };
315 #.END
316
317 # Create a table of opcode and corresponding args and res
318 #.TABLE11_HDR
319 static const ros_opr_t p3_opr_tab[] = {
320 #.TABLE11_BODY OPERATION
321   /* %(_name)s */
322   { %(&operationCode)-25s,      %(_argument_pdu)s,      %(_result_pdu)s },
323 #.TABLE11_FTR
324   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
325 };
326 #.END
327
328 #.TABLE21_HDR
329 static const ros_err_t p3_err_tab[] = {
330 #.TABLE21_BODY ERROR
331   /* %(_name)s*/
332   { %(&errorCode)s,     %(_parameter_pdu)s },
333 #.TABLE21_FTR
334   { 0,  (new_dissector_t)(-1) },
335 };
336 #.END
337
338 #.PDU_NEW
339 ERROR.&ParameterType
340 OPERATION.&ArgumentType
341 OPERATION.&ResultType
342 #.END
343
344
345 #.REGISTER_NEW
346 RecipientReassignmentProhibited                         N p1.extension 1
347 OriginatorRequestedAlternateRecipient   N p1.extension 2
348 DLExpansionProhibited                                           N p1.extension 3
349 ConversionWithLossProhibited                            N p1.extension 4
350 LatestDeliveryTime                                                      N p1.extension 5
351 RequestedDeliveryMethod                                         N p1.extension 6
352 PhysicalForwardingProhibited                            N p1.extension 7
353 PhysicalForwardingAddressRequest                        N p1.extension 8
354 PhysicalDeliveryModes                                           N p1.extension 9
355 RegisteredMailType                                                      N p1.extension 10
356 RecipientNumberForAdvice                                        N p1.extension 11
357 PhysicalRenditionAttributes                                     N p1.extension 12
358 OriginatorReturnAddress                                         N p1.extension 13
359 PhysicalDeliveryReportRequest                           N p1.extension 14
360 OriginatorCertificate                                           N p1.extension 15
361 MessageToken                                                            N p1.extension 16
362 ContentConfidentialityAlgorithmIdentifier       N p1.extension 17
363 ContentIntegrityCheck                                           N p1.extension 18
364 MessageOriginAuthenticationCheck                        N p1.extension 19
365 MessageSecurityLabel                                            N p1.extension 20
366 ProofOfSubmissionRequest                                        N p1.extension 21
367 ProofOfDeliveryRequest                                          N p1.extension 22
368 ContentCorrelator                                                       N p1.extension 23
369 ProbeOriginAuthenticationCheck                          N p1.extension 24
370 RedirectionHistory                                                      N p1.extension 25
371 DLExpansionHistory                                                      N p1.extension 26
372 PhysicalForwardingAddress                                       N p1.extension 27
373 RecipientCertificate                                            N p1.extension 28
374 ProofOfDelivery                                                         N p1.extension 29
375 OriginatorAndDLExpansionHistory                         N p1.extension 30
376 ReportingDLName                                                         N p1.extension 31
377 ReportingMTACertificate                                         N p1.extension 32
378 ReportOriginAuthenticationCheck                         N p1.extension 33
379 OriginatingMTACertificate                                               N p1.extension 34
380 ProofOfSubmission                                                       N p1.extension 35
381
382 TraceInformation                                                        N p1.extension 37
383 InternalTraceInformation                                        N p1.extension 38
384 ReportingMTAName                                                        N p1.extension 39
385 ExtendedCertificates                                            N p1.extension 40
386
387 DLExemptedRecipients                                            N p1.extension 42
388
389 CertificateSelectors                                            N p1.extension 45
390
391 CommonName                                                                      N p1.extension-attribute 1
392 TeletexCommonName                                                       N p1.extension-attribute 2
393 TeletexOrganizationName                                         N p1.extension-attribute 3
394 TeletexPersonalName                                                     N p1.extension-attribute 4
395 TeletexOrganizationalUnitNames                          N p1.extension-attribute 5
396 TeletexDomainDefinedAttributes                          N p1.extension-attribute 6
397 PDSName                                                                         N p1.extension-attribute 7
398 PhysicalDeliveryCountryName                                     N p1.extension-attribute 8
399 PostalCode                                                                      N p1.extension-attribute 9
400 PhysicalDeliveryOfficeName                                      N p1.extension-attribute 10
401 PhysicalDeliveryOfficeNumber                            N p1.extension-attribute 11
402 ExtensionORAddressComponents                            N p1.extension-attribute 12
403 PhysicalDeliveryPersonalName                            N p1.extension-attribute 13
404 PhysicalDeliveryOrganizationName                        N p1.extension-attribute 14
405 ExtensionPhysicalDeliveryAddressComponents      N p1.extension-attribute 15
406 UnformattedPostalAddress                                        N p1.extension-attribute 16
407 StreetAddress                                                           N p1.extension-attribute 17
408 PostOfficeBoxAddress                                            N p1.extension-attribute 18
409 PosteRestanteAddress                                            N p1.extension-attribute 19
410 UniquePostalName                                                        N p1.extension-attribute 20
411 LocalPostalAttributes                                           N p1.extension-attribute 21
412 ExtendedNetworkAddress                                          N p1.extension-attribute 22
413 TerminalType                                                            N p1.extension-attribute 23
414 UniversalCommonName                                                     N p1.extension-attribute 24
415 UniversalOrganizationName                                       N p1.extension-attribute 25
416 UniversalPersonalName                                           N p1.extension-attribute 26
417 UniversalOrganizationalUnitNames                        N p1.extension-attribute 27
418 UniversalDomainDefinedAttributes                        N p1.extension-attribute 28
419 UniversalPhysicalDeliveryOfficeName                     N p1.extension-attribute 29
420 UniversalPhysicalDeliveryOfficeNumber           N p1.extension-attribute 30
421 UniversalExtensionORAddressComponents           N p1.extension-attribute 31
422 UniversalPhysicalDeliveryPersonalName           N p1.extension-attribute 32
423 UniversalPhysicalDeliveryOrganizationName       N p1.extension-attribute 33
424 UniversalExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 34
425 UniversalUnformattedPostalAddress                       N p1.extension-attribute 35
426 UniversalStreetAddress                                          N p1.extension-attribute 36
427 UniversalPostOfficeBoxAddress                           N p1.extension-attribute 37
428 UniversalPosteRestanteAddress                           N p1.extension-attribute 38
429 UniversalUniquePostalName                                       N p1.extension-attribute 39
430 UniversalLocalPostalAttributes                          N p1.extension-attribute 40
431
432 #ReportDeliveryArgument B       "2.6.1.4.14"    "id-et-report"
433
434 AsymmetricToken                 B       "2.6.3.6.0"     "id-tok-asymmetricToken"
435 MTANameAndOptionalGDI   B       "2.6.5.6.0"     "id-on-mtaName"
436
437 BindTokenSignedData                     N       p1.tokendata 1
438 MessageTokenSignedData          N       p1.tokendata 2
439 # the next two are unlikely to ever be seen (unless in a bad encoding)
440 MessageTokenEncryptedData       N       p1.tokendata 3
441 BindTokenEncryptedData          N       p1.tokendata 4
442
443 # X402 - see master list in acp133.cnf
444
445 ContentLength                                   B "2.6.5.2.0" "id-at-mhs-maximum-content-length"
446 ExtendedContentType                             B "2.6.5.2.1" "id-at-mhs-deliverable-content-types"
447 ExtendedEncodedInformationType  B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits"
448 ORName                                                  B "2.6.5.2.3" "id-at-mhs-dl-members"
449 ORAddress                                               B "2.6.5.2.6" "id-at-mhs-or-addresses"
450 ExtendedContentType                             B "2.6.5.2.9" "id-at-mhs-supported-content-types"
451 ORName                                                  B "2.6.5.2.12" "id-at-mhs-dl-archive-service"
452 ORName                                                  B "2.6.5.2.15" "id-at-mhs-dl-subscription-service"
453 ExtendedEncodedInformationType  B "2.6.5.2.17" "id-at-mhs-acceptable-eits"
454 ExtendedEncodedInformationType  B "2.6.5.2.18" "id-at-mhs-unacceptable-eits"
455
456
457 # ACP133 - see master list in acp133.cnf
458 ORName                                                          B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor"
459 ORAddress                                                       B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
460
461 # MSGeneralAttributeTypes - see master list in p7.cnf
462 CertificateSelectors                            B       "2.6.4.3.80"    "id-att-certificate-selectors"
463 Content                                                         B       "2.6.4.3.1"             "id-att-content"
464 ContentCorrelator                                       B       "2.6.4.3.3"             "id-att-content-correlator"
465 ContentIdentifier                                       B       "2.6.4.3.4"             "id-att-content-identifier"
466 ContentIntegrityCheck                           B       "2.6.4.3.5"             "id-att-content-inetgrity-check"
467 ContentLength                                           B       "2.6.4.3.6"             "id-att-content-length"
468 ExtendedContentType                                     B       "2.6.4.3.8"             "id-att-content-type"
469 ConversionWithLossProhibited            B       "2.6.4.3.9"             "id-att-conversion-with-loss-prohibited"
470 DeferredDeliveryTime                            B       "2.6.4.3.51"    "id-att-deferred-delivery-time"
471 DeliveryFlags                                           B       "2.6.4.3.13"    "id-att-delivery-flags"
472 ORName                                                          B       "2.6.4.3.78"    "id-att-dl-exempted-recipients"
473 DLExpansion                                                     B       "2.6.4.3.14"    "id-att-dl-expansion-history"
474 DLExpansionProhibited                           B       "2.6.4.3.53"    "id-att-dl-expansion-prohibited"
475 InternalTraceInformationElement         B       "2.6.4.3.54"    "id-att-internal-trace-information"
476 LatestDeliveryTime                                      B       "2.6.4.3.55"    "id-att-latest-delivery-time"
477 MessageDeliveryEnvelope                         B       "2.6.4.3.18"    "id-att-message-delivery-envelope"
478 MessageDeliveryTime                                     B       "2.6.4.3.20"    "id-att-message-delivery-time"
479 MTSIdentifier                                           B       "2.6.4.3.19"    "id-att-message-identifier"
480 MessageOriginAuthenticationCheck        B       "2.6.4.3.21"    "id-at-message-orgin-authentication-check"
481 MessageSecurityLabel                            B       "2.6.4.3.22"    "id-att-message-security-label"
482 MessageSubmissionEnvelope                       B       "2.6.4.3.59"    "id-att-message-submission-envelope"
483 MessageSubmissionTime                           B       "2.6.4.3.23"    "id-att-message-submission-time"
484 MessageToken                                            B       "2.6.4.3.24"    "id-att-message-token"
485 ExtendedCertificates                            B       "2.6.4.3.81"    "id-att-multiple-originator-certificates"
486 ORName                                                          B       "2.6.4.3.17"    "id-att-originally-intended-recipient-name"
487 OriginatingMTACertificate                       B       "2.6.4.3.62"    "id-att-originating-MTA-certificate"
488 OriginatorCertificate                           B       "2.6.4.3.26"    "id-att-originator-certificate"
489 ORName                                                          B       "2.6.4.3.27"    "id-att-originator-name"
490 OriginatorReportRequest                         B       "2.6.4.3.63"    "id-att-originator-report-request"
491 OriginatorReturnAddress                         B       "2.6.4.3.64"    "id-att-originator-return-address"
492 ORName                                                          B       "2.6.4.3.28"    "id-att-other-recipient-names"
493 PerMessageIndicators                            B       "2.6.4.3.65"    "id-att-per-message-indicators"
494 PerRecipientMessageSubmissionFields     B       "2.6.4.3.66"    "id-att-per-recipient-message-submission-fields"
495 PerRecipientProbeSubmissionFields       B       "2.6.4.3.67"    "id-att-per-recipient-probe-submission-fields"
496 PerRecipientReportDeliveryFields        B       "2.6.4.3.30"    "id-att-per-recipient-report-delivery-fields"
497 Priority                                                        B       "2.6.4.3.31"    "id-att-priority"
498 ProbeOriginAuthenticationCheck          B       "2.6.4.3.68"    "id-att-probe-origin-authentication-check"
499 ProbeSubmissionEnvelope                         B       "2.6.4.3.69"    "id-att-probe-submission-envelope"
500 ProofOfDeliveryRequest                          B       "2.6.4.3.32"    "id-att-proof-of-delivery-request"
501 ProofOfSubmission                                       B       "2.6.4.3.70"    "id-att-proof-of-submission"
502 ExtendedCertificates                            B       "2.6.4.3.82"    "id-att-recipient-certificate"
503 ORName                                                          B       "2.6.4.3.71"    "id-att-recipient-names"
504 RecipientReassignmentProhibited         B       "2.6.4.3.72"    "id-att-recipient-reassignment-prohibited"
505 Redirection                                                     B       "2.6.4.3.33"    "id-at-redirection-history"
506 ReportDeliveryEnvelope                          B       "2.6.4.3.34"    "id-att-report-delivery-envelope"
507 ReportingDLName                                         B       "2.6.4.3.35"    "id-att-reporting-DL-name"
508 ReportingMTACertificate                         B       "2.6.4.3.36"    "id-att-reporting-MTA-certificate"
509 ReportOriginAuthenticationCheck         B       "2.6.4.3.37"    "id-att-report-origin-authentication-check"
510 SecurityClassification                          B       "2.6.4.3.38"    "id-att-security-classification"
511 SubjectSubmissionIdentifier                     B       "2.6.4.3.40"    "id-att-subject-submission-identifier"
512 ORName                                                          B       "2.6.4.3.41"    "id-att-this-recipient-name"
513 TraceInformationElement                         B       "2.6.4.3.75"    "id-att-trace-information"
514
515 # IPMSMessageStoreAttributes - see master list in p22.cnf
516 MessageToken                                            B       "2.6.1.7.36"    "id-hat-forwarded-token"
517
518 #.FN_BODY AdditionalInformation
519    proto_item *item = NULL;
520    int         loffset = 0;
521    guint32     len = 0;
522
523    /* work out the length */
524    loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
525    (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
526
527    item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
528    tree = proto_item_add_subtree(item, ett_p1_additional_information);
529    proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
530
531    offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
532
533 #.FN_BODY RegistrationTypes/extensions/_item
534 /*XXX not implemented yet */
535
536 #.FN_BODY ExtensionField/value
537         const char *name;
538
539         if(actx->external.indirect_ref_present) {
540                 proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_StandardExtension_vals, "standard-extension %%d"));
541                 if (dissector_try_uint(p1_extension_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
542                         offset = tvb_reported_length(tvb);
543                 } else {
544                         proto_item *item;
545                         proto_tree *next_tree;
546
547                         next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_standard_extension, &item,
548                                 "Dissector for standard-extension %%d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
549                         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
550                         expert_add_info(actx->pinfo, item, &ei_p1_unknown_standard_extension);
551                 }
552         } else if (actx->external.direct_ref_present) {
553                 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
554                 name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
555                 proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
556         }
557
558
559 #.FN_PARS SecurityCategoryIdentifier
560         FN_VARIANT = _str  VAL_PTR = &actx->external.direct_reference
561
562 #.FN_BODY SecurityCategoryValue
563         const char *name;
564
565         if (actx->external.direct_reference) {
566                 offset = call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
567                 name = oid_resolved_from_string(wmem_packet_scope(), actx->external.direct_reference);
568                 proto_item_append_text(tree, " (%%s)", name ? name : actx->external.direct_reference);
569         } else {
570                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
571         }
572
573 #.FN_PARS ExtensionAttributeType
574         VAL_PTR = &actx->external.indirect_reference
575
576 #.FN_BODY ExtensionAttribute/extension-attribute-value
577
578         proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d"));
579         if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
580                 offset =tvb_reported_length(tvb);
581         } else {
582                 proto_item *item;
583                 proto_tree *next_tree;
584
585                 next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_extension_attribute_type, &item,
586                         "Dissector for extension-attribute-type %%d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
587                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
588                 expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type);
589         }
590
591
592 #.FN_BODY RefusedOperation/refused-argument/refused-extension
593 /*XXX not implemented yet */
594
595 #.FN_BODY CountryName
596         do_address("/C=", NULL, actx);
597
598         %(DEFAULT_BODY)s
599
600 #.FN_BODY AdministrationDomainName
601         do_address("/A=", NULL, actx);
602
603         %(DEFAULT_BODY)s
604
605 #.FN_PARS StandardExtension VAL_PTR = &actx->external.indirect_reference
606
607 #.FN_BODY StandardExtension
608         actx->external.indirect_ref_present = TRUE;
609         actx->external.direct_ref_present = FALSE;
610         %(DEFAULT_BODY)s
611
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;
615         %(DEFAULT_BODY)s
616         actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
617
618 #.FN_PARS ExtendedContentType
619         FN_VARIANT = _str  VAL_PTR = &ctx->content_type_id
620
621 #.FN_BODY ExtendedContentType
622         const char *name = NULL;
623         p1_address_ctx_t* ctx;
624
625         if (actx->subtree.tree_ctx == NULL)
626                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
627
628         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
629
630         %(DEFAULT_BODY)s
631
632         if(ctx->content_type_id) {
633                 name = oid_resolved_from_string(wmem_packet_scope(), ctx->content_type_id);
634
635                 if(!name) name = ctx->content_type_id;
636
637                 proto_item_append_text(tree, " (%%s)", name);
638         }
639
640 #.FN_PARS BuiltInContentType/_untag VAL_PTR = &ict
641
642 #.FN_BODY BuiltInContentType/_untag
643         static guint32  ict = -1;
644         p1_address_ctx_t* ctx;
645
646         if (actx->subtree.tree_ctx == NULL)
647                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
648
649         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
650
651   %(DEFAULT_BODY)s
652
653         /* convert integer content type to oid for dispatch when the content is found */
654         switch(ict) {
655         case 2:
656                 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.0");
657                 break;
658         case 22:
659                 ctx->content_type_id = wmem_strdup(wmem_packet_scope(), "2.6.1.10.1");
660                 break;
661         default:
662                 ctx->content_type_id = NULL;
663                 break;
664         }
665
666 #.FN_BODY Content
667         tvbuff_t *next_tvb;
668         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
669
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_reported_length (next_tvb));
673
674         if (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;
679                         proto_tree *next_tree;
680
681                         item = 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_reported_length_remaining(tvb, offset));
683                         next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
684
685                         dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
686                 } else {
687                         proto_item_append_text (actx->created_item, " (unknown content-type)");
688                 }
689         }
690
691 #.FN_PARS MTAName
692         VAL_PTR = &mtaname
693
694 #.FN_BODY MTAName
695         tvbuff_t        *mtaname = NULL;
696         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
697
698         %(DEFAULT_BODY)s
699
700         if (ctx && ctx->do_address) {
701                 proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(mtaname, 0, tvb_reported_length(mtaname)));
702         } else {
703                 if (mtaname) {
704                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(mtaname, 0, tvb_reported_length(mtaname)));
705                 }
706         }
707
708 #.FN_PARS X121Address
709         VAL_PTR=&string
710
711 #.FN_BODY X121Address
712         tvbuff_t        *string = NULL;
713
714         %(DEFAULT_BODY)s
715
716         do_address("/PX121=", string, actx);
717
718 #.FN_PARS TerminalIdentifier
719         VAL_PTR=&string
720
721 #.FN_BODY TerminalIdentifier
722         tvbuff_t        *string = NULL;
723
724         %(DEFAULT_BODY)s
725
726         do_address("/UA-ID=", string, actx);
727
728 #.FN_BODY PrivateDomainName
729
730         do_address("/P=", NULL, actx);
731
732         %(DEFAULT_BODY)s
733
734 #.FN_BODY PrivateDomainIdentifier
735
736         do_address("/P=", NULL, actx);
737
738         %(DEFAULT_BODY)s
739
740 #.FN_PARS OrganizationName
741         VAL_PTR=&string
742
743 #.FN_BODY OrganizationName
744         tvbuff_t        *string = NULL;
745
746         %(DEFAULT_BODY)s
747
748         do_address("/O=", string, actx);
749
750 #.FN_PARS TeletexOrganizationName
751         VAL_PTR=&string
752
753 #.FN_BODY TeletexOrganizationName
754         tvbuff_t        *string = NULL;
755
756         %(DEFAULT_BODY)s
757
758         do_address("/O=", string, actx);
759
760 #.FN_PARS OrganizationalUnitName
761         VAL_PTR=&string
762
763 #.FN_BODY OrganizationalUnitName
764         tvbuff_t        *string = NULL;
765
766         do_address("/OU=", string, actx);
767
768 #.FN_PARS TeletexOrganizationalUnitName
769         VAL_PTR=&string
770
771 #.FN_BODY TeletexOrganizationalUnitName
772         tvbuff_t        *string = NULL;
773
774         %(DEFAULT_BODY)s
775
776         do_address("/OU=", string, actx);
777
778 #.FN_PARS CommonName
779         VAL_PTR=&string
780
781 #.FN_BODY CommonName
782         tvbuff_t        *string = NULL;
783
784         %(DEFAULT_BODY)s
785
786         do_address("/CN=", string, actx);
787
788 #.FN_PARS TeletexCommonName
789         VAL_PTR=&string
790
791 #.FN_BODY TeletexCommonName
792         tvbuff_t        *string = NULL;
793
794         %(DEFAULT_BODY)s
795
796         do_address("/CN=", string, actx);
797
798 #.FN_BODY CountryName/_untag/iso-3166-alpha2-code  VAL_PTR=&nstring
799         tvbuff_t        *nstring = NULL;
800
801         %(DEFAULT_BODY)s
802
803         do_address(NULL, nstring, actx);
804
805 #.FN_BODY AdministrationDomainName/_untag/printable  VAL_PTR=&nstring
806         tvbuff_t        *nstring = NULL;
807
808         %(DEFAULT_BODY)s
809
810         do_address(NULL, nstring, actx);
811
812 #.FN_BODY PrivateDomainName/printable  VAL_PTR=&nstring
813         tvbuff_t        *nstring = NULL;
814
815         %(DEFAULT_BODY)s
816
817         do_address(NULL, nstring, actx);
818
819 #.FN_BODY PrivateDomainIdentifier/printable  VAL_PTR=&nstring
820         tvbuff_t        *nstring = NULL;
821
822         %(DEFAULT_BODY)s
823
824         do_address(NULL, nstring, actx);
825
826 #.FN_BODY PhysicalDeliveryCountryName/iso-3166-alpha2-code  VAL_PTR=&nstring
827         tvbuff_t        *nstring = NULL;
828
829         %(DEFAULT_BODY)s
830
831         do_address(NULL, nstring, actx);
832
833 #.FN_BODY UserAddress/x121/x121-address  VAL_PTR=&nstring
834         tvbuff_t        *nstring = NULL;
835
836         %(DEFAULT_BODY)s
837
838         do_address(NULL, nstring, actx);
839
840 #.FN_BODY CountryName/_untag/x121-dcc-code  VAL_PTR=&nstring
841         tvbuff_t        *nstring = NULL;
842
843         %(DEFAULT_BODY)s
844
845         do_address(NULL, nstring, actx);
846
847 #.FN_BODY AdministrationDomainName/_untag/numeric  VAL_PTR=&nstring
848         tvbuff_t        *nstring = NULL;
849
850         %(DEFAULT_BODY)s
851
852         do_address(NULL, nstring, actx);
853
854 #.FN_BODY PrivateDomainName/numeric  VAL_PTR=&nstring
855         tvbuff_t        *nstring = NULL;
856
857         %(DEFAULT_BODY)s
858
859         do_address(NULL, nstring, actx);
860
861 #.FN_BODY PrivateDomainIdentifier/numeric  VAL_PTR=&nstring
862         tvbuff_t        *nstring = NULL;
863
864         %(DEFAULT_BODY)s
865
866         do_address(NULL, nstring, actx);
867
868 #.FN_BODY PhysicalDeliveryCountryName/x121-dcc-code  VAL_PTR=&nstring
869         tvbuff_t        *nstring = NULL;
870
871         %(DEFAULT_BODY)s
872
873         do_address(NULL, nstring, actx);
874
875 #.FN_BODY PostalCode/numeric-code  VAL_PTR=&nstring
876         tvbuff_t        *nstring = NULL;
877
878         %(DEFAULT_BODY)s
879
880         do_address(NULL, nstring, actx);
881
882
883 #.FN_BODY TeletexDomainDefinedAttribute/type  VAL_PTR=&tstring
884         tvbuff_t        *tstring = NULL;
885
886         %(DEFAULT_BODY)s
887
888         do_address_str("/DD.", tstring, actx);
889
890 #.FN_BODY TeletexDomainDefinedAttribute/value  VAL_PTR=&tstring
891         tvbuff_t        *tstring = NULL;
892
893         %(DEFAULT_BODY)s
894
895         do_address_str_tree("=", tstring, actx, tree);
896
897 #.FN_BODY TeletexDomainDefinedAttribute
898         actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
899
900         %(DEFAULT_BODY)s
901
902 #.FN_BODY PersonalName/surname  VAL_PTR=&pstring
903         tvbuff_t        *pstring = NULL;
904
905         %(DEFAULT_BODY)s
906
907         do_address("/S=", pstring, actx);
908
909 #.FN_BODY PersonalName/given-name  VAL_PTR=&pstring
910         tvbuff_t        *pstring = NULL;
911
912         %(DEFAULT_BODY)s
913
914         do_address("/G=", pstring, actx);
915
916 #.FN_BODY PersonalName/initials  VAL_PTR=&pstring
917         tvbuff_t        *pstring = NULL;
918
919         %(DEFAULT_BODY)s
920
921         do_address("/I=", pstring, actx);
922
923 #.FN_BODY PersonalName/generation-qualifier  VAL_PTR=&pstring
924         tvbuff_t        *pstring = NULL;
925
926         %(DEFAULT_BODY)s
927
928         do_address("/Q=", pstring, actx);
929
930 #.FN_BODY TeletexPersonalName/surname  VAL_PTR=&tstring
931         tvbuff_t        *tstring = NULL;
932
933         %(DEFAULT_BODY)s
934
935         do_address("/S=", tstring, actx);
936
937 #.FN_BODY TeletexPersonalName/given-name  VAL_PTR=&tstring
938         tvbuff_t        *tstring = NULL;
939
940         %(DEFAULT_BODY)s
941
942         do_address("/G=", tstring, actx);
943
944 #.FN_BODY TeletexPersonalName/initials  VAL_PTR=&tstring
945         tvbuff_t        *tstring = NULL;
946
947         %(DEFAULT_BODY)s
948
949         do_address("/I=", tstring, actx);
950
951 #.FN_BODY TeletexPersonalName/generation-qualifier  VAL_PTR=&tstring
952         tvbuff_t        *tstring = NULL;
953
954         %(DEFAULT_BODY)s
955
956         do_address("/Q=", tstring, actx);
957
958 #.FN_BODY BuiltInDomainDefinedAttribute/type  VAL_PTR=&pstring
959         tvbuff_t        *pstring = NULL;
960
961         %(DEFAULT_BODY)s
962
963         do_address_str("/DD.", pstring, actx);
964
965 #.FN_BODY BuiltInDomainDefinedAttribute/value  VAL_PTR=&pstring
966         tvbuff_t        *pstring = NULL;
967
968         %(DEFAULT_BODY)s
969
970         do_address_str_tree("=", pstring, actx, tree);
971
972 #.FN_BODY BuiltInDomainDefinedAttribute
973         actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), "");
974
975         %(DEFAULT_BODY)s
976
977 #.FN_BODY ORAddress
978         p1_address_ctx_t* ctx;
979
980         if (actx->subtree.tree_ctx == NULL) {
981                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
982         }
983
984         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
985         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
986
987         actx->subtree.tree = NULL;
988         set_do_address(actx, TRUE);
989
990         %(DEFAULT_BODY)s
991
992
993         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
994                 proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
995
996         set_do_address(actx, FALSE);
997
998 #.FN_BODY ORName
999         p1_address_ctx_t* ctx;
1000
1001         if (actx->subtree.tree_ctx == NULL) {
1002                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
1003         }
1004
1005         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1006         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
1007
1008         actx->subtree.tree = NULL;
1009         set_do_address(actx, TRUE);
1010
1011         %(DEFAULT_BODY)s
1012
1013         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0) && actx->subtree.tree)
1014                 proto_item_append_text(actx->subtree.tree, " (%%s/)", wmem_strbuf_get_str(ctx->oraddress));
1015
1016         set_do_address(actx, FALSE);
1017 #.FN_BODY MessageIdentifier
1018         actx->subtree.tree = NULL;
1019
1020         %(DEFAULT_BODY)s
1021
1022 #.FN_BODY GlobalDomainIdentifier
1023         p1_address_ctx_t* ctx;
1024
1025         if (actx->subtree.tree_ctx == NULL) {
1026                 actx->subtree.tree_ctx = wmem_new0(wmem_packet_scope(), p1_address_ctx_t);
1027         }
1028
1029         ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1030         ctx->oraddress = wmem_strbuf_new(wmem_packet_scope(), "");
1031
1032         actx->subtree.tree = tree;
1033
1034         %(DEFAULT_BODY)s
1035
1036         if (ctx->oraddress && (wmem_strbuf_get_len(ctx->oraddress) > 0)) {
1037                 proto_item_append_text(actx->subtree.tree, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
1038
1039                 if (hf_index == hf_p1_subject_identifier) {
1040                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s/", wmem_strbuf_get_str(ctx->oraddress));
1041                 }
1042         }
1043
1044
1045 #.FN_PARS LocalIdentifier
1046         VAL_PTR=&id
1047
1048 #.FN_BODY LocalIdentifier
1049         tvbuff_t        *id = NULL;
1050         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1051
1052         %(DEFAULT_BODY)s
1053
1054         if(id) {
1055                 if (ctx && ctx->do_address)
1056                         proto_item_append_text(actx->subtree.tree, " $ %%s)", tvb_format_text(id, 0, tvb_reported_length(id)));
1057
1058                 if (hf_index == hf_p1_subject_identifier)
1059                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %%s)", tvb_format_text(id, 0, tvb_reported_length(id)));
1060         }
1061
1062 #.FN_BODY MTSIdentifier
1063
1064         set_do_address(actx, TRUE);
1065
1066         %(DEFAULT_BODY)s
1067
1068         set_do_address(actx, FALSE);
1069
1070 #.FN_BODY MTANameAndOptionalGDI
1071
1072         set_do_address(actx, TRUE);
1073
1074         %(DEFAULT_BODY)s
1075
1076         set_do_address(actx, FALSE);
1077         proto_item_append_text(tree, ")");
1078
1079 #.FN_BODY BuiltInStandardAttributes
1080         actx->subtree.tree = tree;
1081
1082         %(DEFAULT_BODY)s
1083
1084 #.FN_BODY TraceInformationElement
1085
1086         set_do_address(actx, TRUE);
1087
1088         %(DEFAULT_BODY)s
1089
1090         set_do_address(actx, FALSE);
1091
1092 #.FN_BODY InternalTraceInformationElement
1093
1094         set_do_address(actx, TRUE);
1095
1096         %(DEFAULT_BODY)s
1097
1098         set_do_address(actx, FALSE);
1099
1100 #.FN_BODY DomainSuppliedInformation
1101
1102         set_do_address(actx, FALSE);
1103
1104         %(DEFAULT_BODY)s
1105
1106         set_do_address(actx, TRUE);
1107         proto_item_append_text(tree, ")");
1108
1109 #.FN_BODY MTASuppliedInformation
1110
1111         set_do_address(actx, FALSE);
1112
1113         %(DEFAULT_BODY)s
1114
1115         set_do_address(actx, TRUE);
1116         proto_item_append_text(tree, ")");
1117
1118 #.FN_PARS Time
1119         VAL_PTR = &arrival
1120
1121 #.FN_BODY Time
1122         tvbuff_t *arrival = NULL;
1123         p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx;
1124
1125         %(DEFAULT_BODY)s
1126
1127         if(arrival && ctx && ctx->do_address)
1128                 proto_item_append_text(actx->subtree.tree, " %%s", tvb_format_text(arrival, 0, tvb_reported_length(arrival)));
1129
1130 #.FN_PARS RoutingAction
1131         VAL_PTR = &action
1132
1133 #.FN_BODY RoutingAction
1134         int action = 0;
1135
1136         %(DEFAULT_BODY)s
1137
1138         proto_item_append_text(actx->subtree.tree, " %%s", val_to_str(action, p1_RoutingAction_vals, "action(%%d)"));
1139
1140 #.FN_PARS MTABindError
1141   VAL_PTR=&error
1142
1143 #.FN_BODY MTABindError
1144   int error = -1;
1145   %(DEFAULT_BODY)s
1146   if((error != -1))
1147     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, p1_MTABindError_vals, "error(%%d)"));
1148
1149 #.FN_PARS TokenTypeIdentifier
1150         FN_VARIANT = _str  VAL_PTR = &actx->external.direct_reference
1151
1152 #.FN_BODY TokenTypeData
1153
1154         if(actx->external.direct_reference)
1155                 call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data);
1156
1157 #.FN_PARS Credentials
1158         VAL_PTR = &credentials
1159
1160 #.FN_BODY Credentials
1161   gint credentials = -1;
1162
1163   %(DEFAULT_BODY)s
1164
1165   if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
1166     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_Credentials_vals[credentials].strptr);
1167   }
1168
1169 #.FN_PARS TokenDataType
1170         VAL_PTR = &actx->external.indirect_reference
1171
1172 #.FN_BODY TokenData/value
1173
1174         proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %%d"));
1175         if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) {
1176                 offset = tvb_reported_length(tvb);
1177         } else {
1178                 proto_item *item;
1179                 proto_tree *next_tree;
1180
1181                 next_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_p1_unknown_tokendata_type, &item,
1182                         "Dissector for tokendata-type %%d not implemented.  Contact Wireshark developers if you want this supported", actx->external.indirect_reference);
1183                 offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
1184                 expert_add_info(actx->pinfo, item, &ei_p1_unknown_tokendata_type);
1185         }
1186
1187 #.FN_BODY PerDomainBilateralInformation/bilateral-information
1188         proto_item *item = NULL;
1189         int         loffset = 0;
1190         guint32     len = 0;
1191
1192         /* work out the length */
1193         loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
1194         (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
1195
1196         /* create some structure so we can tell what this unknown ASN.1 represents */
1197         item = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_BIG_ENDIAN);
1198         tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
1199
1200         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
1201
1202 #.FN_PARS MTS-APDU
1203         VAL_PTR = &apdu
1204
1205 #.FN_BODY MTS-APDU
1206         gint apdu = -1;
1207
1208         %(DEFAULT_BODY)s
1209
1210         if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
1211                 if(apdu != 0) { /* we don't show "message" - sub-dissectors have better idea */
1212                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_MTS_APDU_vals[apdu].strptr);
1213                 }
1214         }
1215
1216 #.FN_PARS ReportType
1217         VAL_PTR = &report
1218
1219 #.FN_BODY ReportType
1220         gint report = -1;
1221
1222         %(DEFAULT_BODY)s
1223
1224                 if( (report!=-1) && p1_ReportType_vals[report].strptr ){
1225                         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_ReportType_vals[report].strptr);
1226         }
1227
1228 #.FN_BODY MessageSubmissionArgument
1229         p1_initialize_content_globals(actx, tree, TRUE);
1230         %(DEFAULT_BODY)s
1231         p1_initialize_content_globals(actx, NULL, FALSE);
1232
1233 #.FN_BODY MessageDeliveryArgument
1234         p1_initialize_content_globals(actx, tree, TRUE);
1235         %(DEFAULT_BODY)s
1236         p1_initialize_content_globals(actx, NULL, FALSE);
1237
1238 #.FN_BODY ReportDeliveryArgument
1239         p1_initialize_content_globals(actx, tree, TRUE);
1240         %(DEFAULT_BODY)s
1241         p1_initialize_content_globals(actx, NULL, FALSE);
1242
1243 #.FN_HDR MTSBindResult
1244         /* TODO: there may be other entry points where this global should be initialized... */
1245         actx->subtree.tree = NULL;
1246 #.END
1247