#.TYPE_ATTR CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(x411_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 #.OMIT_ASSIGNMENT # These gives unused code warnings MTAOriginatorRequestedAlternateRecipient ProofOfDeliveryAlgorithmIdentifier DeliveryControls ContentIntegrityAlgorithmIdentifier MessageOriginAuthenticationAlgorithmIdentifier ProbeOriginAuthenticationAlgorithmIdentifier ReportOriginAuthenticationAlgorithmIdentifier MessageSubmissionResult ProbeSubmissionArgument ProbeSubmissionResult CancelDeferredDeliveryArgument CancelDeferredDeliveryResult SubmissionControlArgument SubmissionControlResult MessageDeliveryArgument MessageDeliveryResult ReportDeliveryResult DeliveryControlArgument DeliveryControlResult ChangeCredentialsArgument # Currently not used MTSBindArgument MTSBindResult MTSBindError #.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 MTSOriginatorName ORAddress ORAddressAndOrDirectoryName ORName OriginalEncodedInformationTypes OriginatingMTACertificate OtherMessageDeliveryFields PerMessageIndicators PerRecipientProbeSubmissionFields ProbeSubmissionEnvelope ProbeSubmissionIdentifier ProbeSubmissionTime ProofOfSubmission RequestedDeliveryMethod ResponderCredentials SecurityContext SecurityLabel SecurityProblem SupplementaryInformation TeletexNonBasicParameters UniversalOrBMPString NonDeliveryReasonCode NonDeliveryDiagnosticCode # Forward declaration of Classes #.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 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 #.REGISTER RecipientReassignmentProhibited N x411.extension 1 MTSOriginatorRequestedAlternateRecipient N x411.extension 2 DLExpansionProhibited N x411.extension 3 ConversionWithLossProhibited N x411.extension 4 LatestDeliveryTime N x411.extension 5 RequestedDeliveryMethod N x411.extension 6 PhysicalForwardingProhibited N x411.extension 7 PhysicalForwardingAddressRequest N x411.extension 8 PhysicalDeliveryModes N x411.extension 9 RegisteredMailType N x411.extension 10 RecipientNumberForAdvice N x411.extension 11 PhysicalRenditionAttributes N x411.extension 12 OriginatorReturnAddress N x411.extension 13 PhysicalDeliveryReportRequest N x411.extension 14 OriginatorCertificate N x411.extension 15 MessageToken N x411.extension 16 ContentConfidentialityAlgorithmIdentifier N x411.extension 17 ContentIntegrityCheck N x411.extension 18 MessageOriginAuthenticationCheck N x411.extension 19 MessageSecurityLabel N x411.extension 20 ProofOfSubmissionRequest N x411.extension 21 ProofOfDeliveryRequest N x411.extension 22 ContentCorrelator N x411.extension 23 ProbeOriginAuthenticationCheck N x411.extension 24 RedirectionHistory N x411.extension 25 DLExpansionHistory N x411.extension 26 PhysicalForwardingAddress N x411.extension 27 RecipientCertificate N x411.extension 28 ProofOfDelivery N x411.extension 29 OriginatorAndDLExpansionHistory N x411.extension 30 ReportingDLName N x411.extension 31 ReportingMTACertificate N x411.extension 32 ReportOriginAuthenticationCheck N x411.extension 33 ProofOfSubmission N x411.extension 35 TraceInformation N x411.extension 37 InternalTraceInformation N x411.extension 38 ReportingMTAName N x411.extension 39 ExtendedCertificates N x411.extension 40 DLExemptedRecipients N x411.extension 42 CertificateSelectors N x411.extension 45 CommonName N x411.extension-attribute 1 TeletexCommonName N x411.extension-attribute 2 TeletexOrganizationName N x411.extension-attribute 3 TeletexPersonalName N x411.extension-attribute 4 TeletexOrganizationalUnitNames N x411.extension-attribute 5 TeletexDomainDefinedAttributes N x411.extension-attribute 6 PDSName N x411.extension-attribute 7 PhysicalDeliveryCountryName N x411.extension-attribute 8 PostalCode N x411.extension-attribute 9 PhysicalDeliveryOfficeName N x411.extension-attribute 10 PhysicalDeliveryOfficeNumber N x411.extension-attribute 11 ExtensionORAddressComponents N x411.extension-attribute 12 PhysicalDeliveryPersonalName N x411.extension-attribute 13 PhysicalDeliveryOrganizationName N x411.extension-attribute 14 ExtensionPhysicalDeliveryAddressComponents N x411.extension-attribute 15 UnformattedPostalAddress N x411.extension-attribute 16 StreetAddress N x411.extension-attribute 17 PostOfficeBoxAddress N x411.extension-attribute 18 PosteRestanteAddress N x411.extension-attribute 19 UniquePostalName N x411.extension-attribute 20 LocalPostalAttributes N x411.extension-attribute 21 ExtendedNetworkAddress N x411.extension-attribute 22 TerminalType N x411.extension-attribute 23 UniversalCommonName N x411.extension-attribute 24 UniversalOrganizationName N x411.extension-attribute 25 UniversalPersonalName N x411.extension-attribute 26 UniversalOrganizationalUnitNames N x411.extension-attribute 27 UniversalDomainDefinedAttributes N x411.extension-attribute 28 UniversalPhysicalDeliveryOfficeName N x411.extension-attribute 29 UniversalPhysicalDeliveryOfficeNumber N x411.extension-attribute 30 UniversalExtensionORAddressComponents N x411.extension-attribute 31 UniversalPhysicalDeliveryPersonalName N x411.extension-attribute 32 UniversalPhysicalDeliveryOrganizationName N x411.extension-attribute 33 UniversalExtensionPhysicalDeliveryAddressComponents N x411.extension-attribute 34 UniversalUnformattedPostalAddress N x411.extension-attribute 35 UniversalStreetAddress N x411.extension-attribute 36 UniversalPostOfficeBoxAddress N x411.extension-attribute 37 UniversalPosteRestanteAddress N x411.extension-attribute 38 UniversalUniquePostalName N x411.extension-attribute 39 UniversalLocalPostalAttributes N x411.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 x411.tokendata 1 MessageTokenSignedData N x411.tokendata 2 # the next two are unlikely to ever be seen (unless in a bad encoding) MessageTokenEncryptedData N x411.tokendata 3 BindTokenEncryptedData N x411.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 x420.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_x411_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, x411_StandardExtension_vals, "standard-extension %%d")); if (dissector_try_port(x411_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_x411_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) { 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_BODY SecurityCategory/value 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, x411_ExtensionAttributeType_vals, "extension-attribute-type %%d")); if (dissector_try_port(x411_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_x411_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, NULL, tvb, offset, hf_index, &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), "X.411 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_x411_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 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 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); } #.VIRTUAL_ASSGN AddrPrintableString CountryName/_untag/iso-3166-alpha2-code AdministrationDomainName/_untag/printable PrivateDomainName/printable PrivateDomainIdentifier/printable PhysicalDeliveryCountryName/iso-3166-alpha2-code #.FN_BODY AddrPrintableString 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); #.VIRTUAL_ASSGN AddrNumericString UserAddress/x121/x121-address CountryName/_untag/x121-dcc-code AdministrationDomainName/_untag/numeric PrivateDomainName/numeric PrivateDomainIdentifier/numeric PhysicalDeliveryCountryName/x121-dcc-code PostalCode/numeric-code #.FN_BODY AddrNumericString 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); #.VIRTUAL_ASSGN AddrTeletexString TeletexPersonalName/surname TeletexPersonalName/given-name TeletexPersonalName/initials TeletexPersonalName/generation-qualifier TeletexDomainDefinedAttribute/type TeletexDomainDefinedAttribute/value #.FN_BODY AddrTeletexString VAL_PTR=&tstring tvbuff_t *tstring = NULL; %(DEFAULT_BODY)s if(doing_address && tstring) g_strlcat(oraddress, tvb_format_text(tstring, 0, tvb_length(tstring)), MAX_ORA_STR_LEN); #.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, "/GQ=", MAX_ORA_STR_LEN); g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), 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_x411_subject_identifier) doing_subjectid = TRUE; %(DEFAULT_BODY)s doing_address = FALSE; if(hf_index == hf_x411_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, x411_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, x411_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) && x411_Credentials_vals[credentials].strptr ){ if (check_col(actx->pinfo->cinfo, COL_INFO)) { col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x411_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, x411_TokenDataType_vals, "tokendata-type %%d")); if (dissector_try_port(x411_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_x411_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_x411_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) && x411_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", x411_MTS_APDU_vals[apdu].strptr); } } #.FN_PARS ReportType VAL_PTR = &report #.FN_BODY ReportType gint report = -1; %(DEFAULT_BODY)s if( (report!=-1) && x411_ReportType_vals[report].strptr ){ if(check_col(actx->pinfo->cinfo, COL_INFO)) { col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x411_ReportType_vals[report].strptr); } } #.END