aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/p1/p1.cnf
diff options
context:
space:
mode:
Diffstat (limited to 'asn1/p1/p1.cnf')
-rw-r--r--asn1/p1/p1.cnf1294
1 files changed, 1294 insertions, 0 deletions
diff --git a/asn1/p1/p1.cnf b/asn1/p1/p1.cnf
new file mode 100644
index 0000000000..9d5502f500
--- /dev/null
+++ b/asn1/p1/p1.cnf
@@ -0,0 +1,1294 @@
+# p1.cnf
+# X.411 (MTA Access and Transfer) conformance file
+# $Id$
+
+#.TYPE_ATTR
+CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(p1_CountryName_U_vals) BITMASK = 0
+Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
+
+#.IMPORT ../x509ce/x509ce-exp.cnf
+#.IMPORT ../x509if/x509if-exp.cnf
+#.IMPORT ../x509sat/x509sat-exp.cnf
+#.IMPORT ../x509af/x509af-exp.cnf
+#.IMPORT ../ros/ros-exp.cnf
+#.IMPORT ../rtse/rtse-exp.cnf
+
+#.OMIT_ASSIGNMENT
+# These gives unused code warnings
+MTAOriginatorRequestedAlternateRecipient
+
+#The following are only referenced through the SIGNATURE MACRO
+#and so have no representation on the wire.
+ProofOfDeliveryAlgorithmIdentifier
+ContentIntegrityAlgorithmIdentifier
+MessageOriginAuthenticationAlgorithmIdentifier
+ProbeOriginAuthenticationAlgorithmIdentifier
+ReportOriginAuthenticationAlgorithmIdentifier
+ProofOfSubmissionAlgorithmIdentifier
+
+BilateralDomain
+DeliveryControls
+RTSE-apdus
+MTSInvokeIds
+ID
+RTTPapdu
+RTTRapdu
+RTABapdu
+AbortReason
+#.END
+
+#.NO_EMIT
+# These fields are only used through COMPONENTS OF,
+# and consequently generate unused code warnings
+PerMessageTransferFields
+PerProbeTransferFields
+PerReportTransferFields
+PerMessageSubmissionFields
+PerProbeSubmissionFields
+PerReportDeliveryFields
+PerRecipientReportFields
+#PerRecipientReportFields/report-type
+InternalAdditionalActions
+AdditionalActions
+NonBasicParameters
+#.END
+
+#.EXPORTS
+EXTENSION
+Content
+ContentIdentifier
+ContentIntegrityCheck
+ContentLength
+ContentType
+Credentials
+EncodedInformationTypes
+EncodedInformationTypesConstraints
+ExtendedCertificates
+ExtendedContentType
+ExtensionField
+G3FacsimileNonBasicParameters
+ImproperlySpecifiedRecipients
+InitiatorCredentials
+MessageDeliveryIdentifier
+MessageDeliveryTime
+MessageOriginAuthenticationCheck
+MessageSecurityLabel
+MessageSubmissionEnvelope
+MessageSubmissionIdentifier
+MessageSubmissionTime
+MessageToken
+ORAddress
+ORAddressAndOrDirectoryName
+OriginatorName
+ORName
+OriginalEncodedInformationTypes
+OriginatingMTACertificate
+OtherMessageDeliveryFields
+PerMessageIndicators
+PerRecipientProbeSubmissionFields
+ProbeSubmissionEnvelope
+ProbeSubmissionIdentifier
+ProbeSubmissionTime
+ProofOfSubmission
+RequestedDeliveryMethod
+ResponderCredentials
+SecurityContext
+SecurityLabel
+SecurityProblem
+SupplementaryInformation
+TeletexNonBasicParameters
+UniversalOrBMPString
+NonDeliveryReasonCode
+NonDeliveryDiagnosticCode
+
+# Forward declaration of Classes
+# CONNECTION-PACKAGE CONTRACT from ROS
+#.CLASS CONNECTION-PACKAGE
+&bind ClassReference OPERATION
+&unbind ClassReference OPERATION
+&responderCanUnbind BooleanType
+&unbindCanFail BooleanType
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&associationContract ClassReference CONTRACT
+&associationRealization
+&transferRealization
+&AbstractSyntaxes ClassReference ABSTRACT-SYNTAX
+&applicationContextName ObjectIdentifierType
+#.END
+
+
+#.CLASS CONTRACT
+&connection ClassReference CONNECTION-PACKAGE
+&OperationsOf ClassReference OPERATION-PACKAGE
+&InitiatorConsumerOf ClassReference OPERATION-PACKAGE
+&InitiatorSupplierOf ClassReference OPERATION-PACKAGE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MHS-OBJECT
+&Is ClassReference MHS-OBJECT
+&Initiates ClassReference CONTRACT
+&Responds ClassReference CONTRACT
+&InitiatesAndResponds ClassReference CONTRACT
+&id ObjectIdentifierType
+#.END
+
+# Ros OPERATION
+#.CLASS ABSTRACT-OPERATION
+&ArgumentType
+&argumentTypeOptional BooleanType
+&returnResult BooleanType
+&ResultType
+&resultTypeOptional BooleanType
+&Errors ClassReference ERROR
+&Linked ClassReference OPERATION
+&synchronous BooleanType
+&alwaysReturns BooleanType
+&InvokePriority _FixedTypeValueSetFieldSpec
+&ResultPriority _FixedTypeValueSetFieldSpec
+&operationCode TypeReference Code
+#.END
+
+# ros ERROR
+#.CLASS ABSTRACT-ERROR
+&ParameterType
+&parameterTypeOptional BooleanType
+&ErrorPriority _FixedTypeValueSetFieldSpec
+&errorCode TypeReference Code
+#.END
+
+#.CLASS EXTENSION
+&id TypeReference ExtensionType
+&Type
+&absent _VariableTypeValueSetFieldSpec
+&recommended TypeReference Criticality
+#.END
+
+#.CLASS EXTENSION-ATTRIBUTE
+&id IntegerType
+&Type
+#.END
+
+#.CLASS TOKEN-DATA
+&id IntegerType
+&Type
+#.END
+
+
+#.TYPE_RENAME
+MTABindArgument/authenticated AuthenticatedArgument
+MTABindResult/authenticated AuthenticatedResult
+
+ExtensionField/value ExtensionValue
+SecurityCategory/value CategoryValue
+
+#.FIELD_RENAME
+PrivateDomainName/printable printable-private-domain-name
+PrivateDomainName/numeric numeric-private-domain-name
+PrivateDomainIdentifier/printable printable-private-domain-identifier
+PrivateDomainIdentifier/numeric numeric-private-domain-identifier
+
+TeletexPersonalName/surname teletex-surname
+PersonalName/surname printable-surname
+UniversalPersonalName/surname universal-surname
+
+TeletexPersonalName/given-name teletex-given-name
+PersonalName/given-name printable-given-name
+UniversalPersonalName/given-name universal-given-name
+
+TeletexPersonalName/initials teletex-initials
+PersonalName/initials printable-initials
+UniversalPersonalName/initials universal-initials
+
+TeletexPersonalName/generation-qualifier teletex-generation-qualifier
+PersonalName/generation-qualifier printable-generation-qualifier
+UniversalPersonalName/generation-qualifier universal-generation-qualifier
+
+BuiltInDomainDefinedAttribute/type printable-type
+UniversalDomainDefinedAttribute/type universal-type
+SecurityCategory/type category-type
+ExtensionField/type extension-type
+
+TeletexDomainDefinedAttribute/value teletex-value
+BuiltInDomainDefinedAttribute/value printable-value
+UniversalDomainDefinedAttribute/value universal-value
+SecurityCategory/value category-value
+ExtensionField/value extension-value
+
+LastTraceInformation/report-type trace-report-type
+PerRecipientReportDeliveryFields/report-type delivery-report-type
+PerRecipientReportFields/report-type/delivery report-type-delivery
+
+PerRecipientMessageSubmissionFields/recipient-name submission-recipient-name
+PerRecipientProbeSubmissionFields/recipient-name probe-recipient-name
+
+PerRecipientReportTransferFields/actual-recipient-name mta-actual-recipient-name
+
+MessageClass/priority class-priority
+DeliveryQueue/octets delivery-queue-octets
+PerRecipientReportFields/report-type/non-delivery non-delivery-report
+
+MTABindResult/authenticated authenticated-result
+MTABindArgument/authenticated authenticated-argument
+
+MTABindResult/authenticated/responder-name authenticated-responder-name
+MTABindArgument/authenticated/initiator-name authenticated-initiator-name
+
+RegistrationTypes/extensions type-extensions
+RegistrationTypes/extensions/_item type-extensions-item
+
+MessageSubmissionArgument/envelope message-submission-envelope
+
+OtherMessageDeliveryFields/content-type delivered-content-type
+Report/content report-content
+
+ReportDeliveryResult/extensions max-extensions
+
+OtherMessageDeliveryFields/originator-name delivered-originator-name
+
+PDSParameter/teletex-string pds-teletex-string
+
+PerDomainBilateralInformation/domain bilateral-domain
+
+Report/envelope report-envelope
+Message/envelope message-envelope
+
+PerRecipientReportTransferFields/originally-intended-recipient-name report-originally-intended-recipient-name
+
+MessageSubmissionEnvelope/originator-name mts-originator-name
+ProbeSubmissionEnvelope/originator-name mts-originator-name
+
+MessageTransferEnvelope/originator-name mta-originator-name
+ProbeTransferEnvelope/originator-name mta-originator-name
+
+MessageSubmissionEnvelope/per-recipient-fields per-recipient-message-submission-fields
+ProbeTransferEnvelope/per-recipient-fields per-recipient-probe-transfer-fields
+ProbeSubmissionEnvelope/per-recipient-fields per-recipient-probe-submission-fields
+ReportDeliveryArgument/per-recipient-fields per-recipient-report-delivery-fields
+ReportDeliveryEnvelope/per-recipient-fields per-recipient-report-delivery-fields
+
+MessageSubmissionEnvelope/per-recipient-fields/_item per-recipient-message-submission-fields-item
+ProbeTransferEnvelope/per-recipient-fields/_item per-recipient-probe-transfer-fields-item
+ProbeSubmissionEnvelope/per-recipient-fields/_item per-recipient-probe-submission-fields-item
+ReportDeliveryArgument/per-recipient-fields/_item per-recipient-report-delivery-fields-item
+ReportDeliveryEnvelope/per-recipient-fields/_item per-recipient-report-delivery-fields-item
+
+MessageTransferEnvelope/per-recipient-fields/_item per-recipient-message-fields-item
+
+MessageTransferEnvelope/per-recipient-fields per-recipient-message-fields
+ReportTransferContent/per-recipient-fields per-recipient-report-fields
+
+AsymmetricTokenData/name/mta token-mta
+AsymmetricTokenData/name/recipient-name token-recipient-name
+
+TokenData/type token-data-type
+CertificateSelectors/content-integrity-check selectors-content-integrity-check
+
+#.PDU
+
+# This table creates the value_sting to name P3 operation codes and errors
+# in file packet-p3-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* P3 ABSTRACT-OPERATIONS */
+const value_string p3_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* P3 ERRORS */
+static const value_string p3_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+static const ros_opr_t p3_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (new_dissector_t)(-1), (new_dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t p3_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (new_dissector_t)(-1) },
+};
+#.END
+
+#.PDU_NEW
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+
+#.REGISTER
+RecipientReassignmentProhibited N p1.extension 1
+OriginatorRequestedAlternateRecipient N p1.extension 2
+DLExpansionProhibited N p1.extension 3
+ConversionWithLossProhibited N p1.extension 4
+LatestDeliveryTime N p1.extension 5
+RequestedDeliveryMethod N p1.extension 6
+PhysicalForwardingProhibited N p1.extension 7
+PhysicalForwardingAddressRequest N p1.extension 8
+PhysicalDeliveryModes N p1.extension 9
+RegisteredMailType N p1.extension 10
+RecipientNumberForAdvice N p1.extension 11
+PhysicalRenditionAttributes N p1.extension 12
+OriginatorReturnAddress N p1.extension 13
+PhysicalDeliveryReportRequest N p1.extension 14
+OriginatorCertificate N p1.extension 15
+MessageToken N p1.extension 16
+ContentConfidentialityAlgorithmIdentifier N p1.extension 17
+ContentIntegrityCheck N p1.extension 18
+MessageOriginAuthenticationCheck N p1.extension 19
+MessageSecurityLabel N p1.extension 20
+ProofOfSubmissionRequest N p1.extension 21
+ProofOfDeliveryRequest N p1.extension 22
+ContentCorrelator N p1.extension 23
+ProbeOriginAuthenticationCheck N p1.extension 24
+RedirectionHistory N p1.extension 25
+DLExpansionHistory N p1.extension 26
+PhysicalForwardingAddress N p1.extension 27
+RecipientCertificate N p1.extension 28
+ProofOfDelivery N p1.extension 29
+OriginatorAndDLExpansionHistory N p1.extension 30
+ReportingDLName N p1.extension 31
+ReportingMTACertificate N p1.extension 32
+ReportOriginAuthenticationCheck N p1.extension 33
+ProofOfSubmission N p1.extension 35
+
+TraceInformation N p1.extension 37
+InternalTraceInformation N p1.extension 38
+ReportingMTAName N p1.extension 39
+ExtendedCertificates N p1.extension 40
+
+DLExemptedRecipients N p1.extension 42
+
+CertificateSelectors N p1.extension 45
+
+CommonName N p1.extension-attribute 1
+TeletexCommonName N p1.extension-attribute 2
+TeletexOrganizationName N p1.extension-attribute 3
+TeletexPersonalName N p1.extension-attribute 4
+TeletexOrganizationalUnitNames N p1.extension-attribute 5
+TeletexDomainDefinedAttributes N p1.extension-attribute 6
+PDSName N p1.extension-attribute 7
+PhysicalDeliveryCountryName N p1.extension-attribute 8
+PostalCode N p1.extension-attribute 9
+PhysicalDeliveryOfficeName N p1.extension-attribute 10
+PhysicalDeliveryOfficeNumber N p1.extension-attribute 11
+ExtensionORAddressComponents N p1.extension-attribute 12
+PhysicalDeliveryPersonalName N p1.extension-attribute 13
+PhysicalDeliveryOrganizationName N p1.extension-attribute 14
+ExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 15
+UnformattedPostalAddress N p1.extension-attribute 16
+StreetAddress N p1.extension-attribute 17
+PostOfficeBoxAddress N p1.extension-attribute 18
+PosteRestanteAddress N p1.extension-attribute 19
+UniquePostalName N p1.extension-attribute 20
+LocalPostalAttributes N p1.extension-attribute 21
+ExtendedNetworkAddress N p1.extension-attribute 22
+TerminalType N p1.extension-attribute 23
+UniversalCommonName N p1.extension-attribute 24
+UniversalOrganizationName N p1.extension-attribute 25
+UniversalPersonalName N p1.extension-attribute 26
+UniversalOrganizationalUnitNames N p1.extension-attribute 27
+UniversalDomainDefinedAttributes N p1.extension-attribute 28
+UniversalPhysicalDeliveryOfficeName N p1.extension-attribute 29
+UniversalPhysicalDeliveryOfficeNumber N p1.extension-attribute 30
+UniversalExtensionORAddressComponents N p1.extension-attribute 31
+UniversalPhysicalDeliveryPersonalName N p1.extension-attribute 32
+UniversalPhysicalDeliveryOrganizationName N p1.extension-attribute 33
+UniversalExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 34
+UniversalUnformattedPostalAddress N p1.extension-attribute 35
+UniversalStreetAddress N p1.extension-attribute 36
+UniversalPostOfficeBoxAddress N p1.extension-attribute 37
+UniversalPosteRestanteAddress N p1.extension-attribute 38
+UniversalUniquePostalName N p1.extension-attribute 39
+UniversalLocalPostalAttributes N p1.extension-attribute 40
+
+#ReportDeliveryArgument B "2.6.1.4.14" "id-et-report"
+
+AsymmetricToken B "2.6.3.6.0" "id-tok-asymmetricToken"
+MTANameAndOptionalGDI B "2.6.5.6.0" "id-on-mtaName"
+
+BindTokenSignedData N p1.tokendata 1
+MessageTokenSignedData N p1.tokendata 2
+# the next two are unlikely to ever be seen (unless in a bad encoding)
+MessageTokenEncryptedData N p1.tokendata 3
+BindTokenEncryptedData N p1.tokendata 4
+
+# X402 - see master list in acp133.cnf
+
+ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length"
+ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types"
+ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits"
+ORName B "2.6.5.2.3" "id-at-mhs-dl-members"
+ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses"
+ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types"
+ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service"
+ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service"
+ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits"
+ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits"
+
+
+# ACP133 - see master list in acp133.cnf
+ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor"
+ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
+
+# MSGeneralAttributeTypes - see master list in p7.cnf
+CertificateSelectors B "2.6.4.3.80" "id-att-certificate-selectors"
+Content B "2.6.4.3.1" "id-att-content"
+ContentCorrelator B "2.6.4.3.3" "id-att-content-correlator"
+ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier"
+ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check"
+ContentLength B "2.6.4.3.6" "id-att-content-length"
+ExtendedContentType B "2.6.4.3.8" "id-att-content-type"
+ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited"
+DeferredDeliveryTime B "2.6.4.3.51" "id-att-deferred-delivery-time"
+DeliveryFlags B "2.6.4.3.13" "id-att-delivery-flags"
+ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients"
+DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history"
+DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited"
+InternalTraceInformationElement B "2.6.4.3.54" "id-att-internal-trace-information"
+LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time"
+MessageDeliveryEnvelope B "2.6.4.3.18" "id-att-message-delivery-envelope"
+MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time"
+MTSIdentifier B "2.6.4.3.19" "id-att-message-identifier"
+MessageOriginAuthenticationCheck B "2.6.4.3.21" "id-at-message-orgin-authentication-check"
+MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label"
+MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope"
+MessageSubmissionTime B "2.6.4.3.23" "id-att-message-submission-time"
+MessageToken B "2.6.4.3.24" "id-att-message-token"
+ExtendedCertificates B "2.6.4.3.81" "id-att-multiple-originator-certificates"
+ORName B "2.6.4.3.17" "id-att-originally-intended-recipient-name"
+OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate"
+OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate"
+ORName B "2.6.4.3.27" "id-att-originator-name"
+OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request"
+OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address"
+ORName B "2.6.4.3.28" "id-att-other-recipient-names"
+PerMessageIndicators B "2.6.4.3.65" "id-att-per-message-indicators"
+PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields"
+PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields"
+PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields"
+Priority B "2.6.4.3.31" "id-att-priority"
+ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check"
+ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope"
+ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request"
+ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission"
+ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate"
+ORName B "2.6.4.3.71" "id-att-recipient-names"
+RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited"
+Redirection B "2.6.4.3.33" "id-at-redirection-history"
+ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope"
+ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name"
+ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate"
+ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check"
+SecurityClassification B "2.6.4.3.38" "id-att-security-classification"
+SubjectSubmissionIdentifier B "2.6.4.3.40" "id-att-subject-submission-identifier"
+ORName B "2.6.4.3.41" "id-att-this-recipient-name"
+TraceInformationElement B "2.6.4.3.75" "id-att-trace-information"
+
+# IPMSMessageStoreAttributes - see master list in p22.cnf
+MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
+
+#.FN_BODY AdditionalInformation
+ proto_item *item = NULL;
+ int loffset = 0;
+ guint32 len = 0;
+
+ /* work out the length */
+ loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+ (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+ item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
+ tree = proto_item_add_subtree(item, ett_p1_additional_information);
+ proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)");
+
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.FN_BODY RegistrationTypes/extensions/_item
+/*XXX not implemented yet */
+
+#.FN_BODY ExtensionField/value
+ const char *name;
+
+ if(extension_id != -1) {
+ proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_StandardExtension_vals, "standard-extension %%d"));
+ if (dissector_try_uint(p1_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+ offset = tvb_length(tvb);
+ } else {
+ proto_item *item = NULL;
+ proto_tree *next_tree = NULL;
+
+ item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
+ "Dissector for standard-extension %%d not implemented. Contact Wireshark developers if you want this supported", extension_id);
+ next_tree = proto_item_add_subtree(item, ett_p1_unknown_standard_extension);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown standard-extension");
+ }
+ } else if (object_identifier_id) {
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+ name = oid_resolved_from_string(object_identifier_id);
+ proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id);
+ }
+
+
+#.FN_PARS SecurityCategoryIdentifier
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY SecurityCategoryValue
+ const char *name;
+
+ if (object_identifier_id) {
+ offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+ name = oid_resolved_from_string(object_identifier_id);
+ proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id);
+ } else {
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+ }
+
+#.FN_PARS ExtensionAttributeType
+ VAL_PTR = &extension_id
+
+#.FN_BODY ExtensionAttribute/extension-attribute-value
+
+ proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d"));
+ if (dissector_try_uint(p1_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+ offset =tvb_length(tvb);
+ } else {
+ proto_item *item = NULL;
+ proto_tree *next_tree = NULL;
+
+ item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
+ "Dissector for extension-attribute-type %%d not implemented. Contact Wireshark developers if you want this supported", extension_id);
+ next_tree = proto_item_add_subtree(item, ett_p1_unknown_extension_attribute_type);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type");
+ }
+
+
+#.FN_BODY RefusedOperation/refused-argument/refused-extension
+/*XXX not implemented yet */
+
+#.FN_BODY CountryName
+ if(doing_address)
+ g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
+
+ %(DEFAULT_BODY)s
+
+
+#.FN_BODY AdministrationDomainName
+ if(doing_address)
+ g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
+
+ %(DEFAULT_BODY)s
+
+
+#.FN_PARS StandardExtension
+ VAL_PTR = &extension_id
+
+#.FN_BODY ExtensionType/private-extension FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+ %(DEFAULT_BODY)s
+ extension_id = -1;
+
+#.FN_PARS ExtendedContentType
+ FN_VARIANT = _str VAL_PTR = &content_type_id
+
+#.FN_BODY ExtendedContentType
+ const char *name = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(content_type_id) {
+ name = oid_resolved_from_string(content_type_id);
+
+ if(!name) name = content_type_id;
+
+ proto_item_append_text(tree, " (%%s)", name);
+ }
+
+#.FN_PARS BuiltInContentType/_untag VAL_PTR = &ict
+
+#.FN_BODY BuiltInContentType/_untag
+ static guint32 ict = -1;
+
+ %(DEFAULT_BODY)s
+
+ /* convert integer content type to oid for dispatch when the content is found */
+ switch(ict) {
+ case 2:
+ content_type_id = ep_strdup("2.6.1.10.0");
+ break;
+ case 22:
+ content_type_id = ep_strdup("2.6.1.10.1");
+ break;
+ default:
+ content_type_id = NULL;
+ break;
+ }
+
+#.FN_BODY Content
+ tvbuff_t *next_tvb;
+
+ /* we can do this now constructed octet strings are supported */
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+ proto_item_set_text(actx->created_item, "content (%%u bytes)", tvb_length (next_tvb));
+
+ if (next_tvb) {
+ if (content_type_id) {
+ (void) call_ber_oid_callback(content_type_id, next_tvb, 0, actx->pinfo, top_tree ? top_tree : tree);
+ } else {
+ proto_item *item = NULL;
+ proto_tree *next_tree = NULL;
+
+ item = proto_tree_add_text(top_tree ? top_tree : tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "P1 Unknown Content (unknown built-in content-type)");
+ expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown built-in content-type");
+ if (item) {
+ next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
+ }
+ dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
+ }
+ }
+
+#.FN_PARS MTAName
+ VAL_PTR = &mtaname
+
+#.FN_BODY MTAName
+ tvbuff_t *mtaname = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address) {
+
+ proto_item_append_text(address_item, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
+
+ } else {
+
+ if (check_col(actx->pinfo->cinfo, COL_INFO) && mtaname) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
+ }
+
+ }
+
+#.FN_PARS X121Address
+ VAL_PTR=&string
+
+#.FN_BODY X121Address
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+
+#.FN_PARS TerminalIdentifier
+ VAL_PTR=&string
+
+#.FN_BODY TerminalIdentifier
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY PrivateDomainName
+
+ if(doing_address)
+ g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY PrivateDomainIdentifier
+
+ if(doing_address)
+ g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS OrganizationName
+ VAL_PTR=&string
+
+#.FN_BODY OrganizationName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_PARS TeletexOrganizationName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexOrganizationName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_PARS OrganizationalUnitName
+ VAL_PTR=&string
+
+#.FN_BODY OrganizationalUnitName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_PARS TeletexOrganizationalUnitName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexOrganizationalUnitName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_PARS CommonName
+ VAL_PTR=&string
+
+#.FN_BODY CommonName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_PARS TeletexCommonName
+ VAL_PTR=&string
+
+#.FN_BODY TeletexCommonName
+ tvbuff_t *string = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && string) {
+ g_strlcat(oraddress, "/CN=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY CountryName/_untag/iso-3166-alpha2-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY AdministrationDomainName/_untag/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PrivateDomainName/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PrivateDomainIdentifier/printable VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PhysicalDeliveryCountryName/iso-3166-alpha2-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY UserAddress/x121/x121-address VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY CountryName/_untag/x121-dcc-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY AdministrationDomainName/_untag/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PrivateDomainName/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PrivateDomainIdentifier/numeric VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PhysicalDeliveryCountryName/x121-dcc-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+#.FN_BODY PostalCode/numeric-code VAL_PTR=&nstring
+ tvbuff_t *nstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && nstring)
+ g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+#.FN_BODY TeletexDomainDefinedAttribute/type VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ g_strlcat(ddatype, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ }
+
+
+#.FN_BODY TeletexDomainDefinedAttribute/value VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ if (*ddatype) {
+ proto_item_append_text (tree, " (%%s=%%s)", ddatype, tvb_format_text(tstring, 0, tvb_length(tstring)));
+ }
+ }
+
+
+#.FN_BODY TeletexDomainDefinedAttribute
+ ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY PersonalName/surname VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY PersonalName/given-name VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY PersonalName/initials VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY PersonalName/generation-qualifier VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "/Q=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY TeletexPersonalName/surname VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY TeletexPersonalName/given-name VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY TeletexPersonalName/initials VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY TeletexPersonalName/generation-qualifier VAL_PTR=&tstring
+ tvbuff_t *tstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && tstring) {
+ g_strlcat(oraddress, "/Q=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY BuiltInDomainDefinedAttribute/type VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ g_strlcat(ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ }
+
+#.FN_BODY BuiltInDomainDefinedAttribute/value VAL_PTR=&pstring
+ tvbuff_t *pstring = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(doing_address && pstring) {
+ g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
+ g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+ if (*ddatype) {
+ proto_item_append_text (tree, " (%%s=%%s)", ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)));
+ }
+ }
+
+#.FN_BODY BuiltInDomainDefinedAttribute
+ ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ORAddress
+
+ oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
+ doing_address = TRUE;
+ address_item = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(*oraddress && address_item)
+ proto_item_append_text(address_item, " %%s/", oraddress);
+
+ doing_address = FALSE;
+
+#.FN_BODY ORName
+
+ oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
+ address_item = NULL;
+ doing_address = TRUE;
+
+ %(DEFAULT_BODY)s
+
+ if(*oraddress && address_item)
+ proto_item_append_text(address_item, " (%%s/)", oraddress);
+
+ doing_address = FALSE;
+
+#.FN_BODY MessageIdentifier
+
+ address_item = NULL;
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY GlobalDomainIdentifier
+
+ oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
+ address_item = tree;
+
+ %(DEFAULT_BODY)s
+
+ if(*oraddress) {
+ proto_item_append_text(address_item, " (%%s/", oraddress);
+
+ if(doing_subjectid && check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s/", oraddress);
+ }
+ }
+
+
+#.FN_PARS LocalIdentifier
+ VAL_PTR=&id
+
+#.FN_BODY LocalIdentifier
+ tvbuff_t *id = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(id) {
+ if(doing_address)
+ proto_item_append_text(address_item, " $ %%s)", tvb_format_text(id, 0, tvb_length(id)));
+
+ if(doing_subjectid && check_col(actx->pinfo->cinfo, COL_INFO))
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %%s)", tvb_format_text(id, 0, tvb_length(id)));
+ }
+
+#.FN_BODY MTSIdentifier
+
+ doing_address = TRUE;
+
+ if(hf_index == hf_p1_subject_identifier)
+ doing_subjectid = TRUE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = FALSE;
+
+ if(hf_index == hf_p1_subject_identifier)
+ doing_subjectid = FALSE;
+
+
+#.FN_BODY MTANameAndOptionalGDI
+
+ doing_address = TRUE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = FALSE;
+ proto_item_append_text(tree, ")");
+
+#.FN_BODY BuiltInStandardAttributes
+
+ address_item = tree;
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY TraceInformationElement
+
+ doing_address = TRUE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = FALSE;
+
+#.FN_BODY InternalTraceInformationElement
+
+ doing_address = TRUE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = FALSE;
+
+#.FN_BODY DomainSuppliedInformation
+
+ doing_address = FALSE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = TRUE;
+ proto_item_append_text(tree, ")");
+
+#.FN_BODY MTASuppliedInformation
+
+ doing_address = FALSE;
+
+ %(DEFAULT_BODY)s
+
+ doing_address = TRUE;
+ proto_item_append_text(tree, ")");
+
+#.FN_PARS Time
+ VAL_PTR = &arrival
+
+#.FN_BODY Time
+ tvbuff_t *arrival = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(arrival && doing_address)
+ proto_item_append_text(address_item, " %%s", tvb_format_text(arrival, 0, tvb_length(arrival)));
+
+#.FN_PARS RoutingAction
+ VAL_PTR = &action
+
+#.FN_BODY RoutingAction
+ int action = 0;
+
+ %(DEFAULT_BODY)s
+
+ proto_item_append_text(address_item, " %%s", val_to_str(action, p1_RoutingAction_vals, "action(%%d)"));
+
+#.FN_PARS MTABindError
+ VAL_PTR=&error
+
+#.FN_BODY MTABindError
+ int error = -1;
+ %(DEFAULT_BODY)s
+ if((error != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, p1_MTABindError_vals, "error(%%d)"));
+
+#.FN_PARS TokenTypeIdentifier
+ FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY TokenTypeData
+
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS Credentials
+ VAL_PTR = &credentials
+
+#.FN_BODY Credentials
+ gint credentials = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_Credentials_vals[credentials].strptr);
+ }
+ }
+
+#.FN_PARS TokenDataType
+ VAL_PTR = &extension_id
+
+#.FN_BODY TokenData/value
+
+ proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_TokenDataType_vals, "tokendata-type %%d"));
+ if (dissector_try_uint(p1_tokendata_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+ offset = tvb_length(tvb);
+ } else {
+ proto_item *item = NULL;
+ proto_tree *next_tree = NULL;
+
+ item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset),
+ "Dissector for tokendata-type %%d not implemented. Contact Wireshark developers if you want this supported", extension_id);
+ next_tree = proto_item_add_subtree(item, ett_p1_unknown_tokendata_type);
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+ expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown tokendata-type");
+ }
+
+#.FN_BODY PerDomainBilateralInformation/bilateral-information
+ proto_item *item = NULL;
+ int loffset = 0;
+ guint32 len = 0;
+
+ /* work out the length */
+ loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+ (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+ /* create some structure so we can tell what this unknown ASN.1 represents */
+ item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
+ tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
+
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.FN_PARS MTS-APDU
+ VAL_PTR = &apdu
+
+#.FN_BODY MTS-APDU
+ gint apdu = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
+ if(check_col(actx->pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_MTS_APDU_vals[apdu].strptr);
+ }
+ }
+
+#.FN_PARS ReportType
+ VAL_PTR = &report
+
+#.FN_BODY ReportType
+ gint report = -1;
+
+ %(DEFAULT_BODY)s
+
+ if( (report!=-1) && p1_ReportType_vals[report].strptr ){
+ if(check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_ReportType_vals[report].strptr);
+ }
+ }
+
+#.END
+