820 lines
26 KiB
INI
820 lines
26 KiB
INI
#.TYPE_ATTR
|
|
CountryName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(x411_CountryName_vals) BITMASK = 0
|
|
Time TYPE = FT_STRING DISPLAY = BASE_NONE STRING = NULL BITMASK = 0
|
|
|
|
#.INCLUDE ../acse/acse-exp.cnf
|
|
#.INCLUDE ../x509ce/x509ce-exp.cnf
|
|
#.INCLUDE ../x509if/x509if-exp.cnf
|
|
#.INCLUDE ../x509sat/x509sat-exp.cnf
|
|
#.INCLUDE ../x509af/x509af-exp.cnf
|
|
|
|
#.EXPORTS
|
|
ContentLength
|
|
EncodedInformationTypes
|
|
EncodedInformationTypesConstraints
|
|
ExtendedCertificates
|
|
ExtendedContentType
|
|
G3FacsimileNonBasicParameters
|
|
MessageDeliveryIdentifier
|
|
MessageDeliveryTime
|
|
MessageSubmissionEnvelope
|
|
ORAddress
|
|
ORName
|
|
OriginatingMTACertificate
|
|
OtherMessageDeliveryFields
|
|
ProofOfSubmission
|
|
RequestedDeliveryMethod
|
|
SecurityContext
|
|
SecurityLabel
|
|
SupplementaryInformation
|
|
TeletexNonBasicParameters
|
|
UniversalOrBMPString
|
|
NonDeliveryReasonCode
|
|
NonDeliveryDiagnosticCode
|
|
|
|
#.TYPE_RENAME
|
|
MTABindArgument/authenticated AuthenticatedArgument
|
|
MTABindResult/authenticated AuthenticatedResult
|
|
|
|
ExtensionField/value ExtensionValue
|
|
SecurityCategory/value CategoryValue
|
|
|
|
#.FIELD_RENAME
|
|
CountryName/iso-3166-alpha2-code printable-country-name
|
|
CountryName/x121-dcc-code numeric-country-name
|
|
AdministrationDomainName/printable printable-administration-domain-name
|
|
AdministrationDomainName/numeric numeric-administration-domain-name
|
|
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
|
|
MTABindArgument
|
|
MTABindResult
|
|
MTABindError
|
|
MTS-APDU
|
|
|
|
#.REGISTER
|
|
RecipientReassignmentProhibited B "x411.extension.1" "recipient-reassignment-prohibited"
|
|
MTSOriginatorRequestedAlternateRecipient B "x411.extension.2" "originator-requested-alternate-recipient"
|
|
DLExpansionProhibited B "x411.extension.3" "dl-expansion-prohibited"
|
|
ConversionWithLossProhibited B "x411.extension.4" "conversion-with-loss-prohibited"
|
|
LatestDeliveryTime B "x411.extension.5" "latest-delivery-time"
|
|
RequestedDeliveryMethod B "x411.extension.6" "requested-delivery-method"
|
|
PhysicalForwardingProhibited B "x411.extension.7" "physical-forwarding-prohibited"
|
|
PhysicalForwardingAddressRequest B "x411.extension.8" "physical-forwarding-address-request"
|
|
PhysicalDeliveryModes B "x411.extension.9" "physical-delivery-modes"
|
|
RegisteredMailType B "x411.extension.10" "registered-mail-type"
|
|
RecipientNumberForAdvice B "x411.extension.11" "recipient-number-for-advice"
|
|
PhysicalRenditionAttributes B "x411.extension.12" "physical-rendition-attributes"
|
|
OriginatorReturnAddress B "x411.extension.13" "originator-return-address"
|
|
PhysicalDeliveryReportRequest B "x411.extension.14" "physical-delivery-report-request"
|
|
OriginatorCertificate B "x411.extension.15" "originator-certificate"
|
|
MessageToken B "x411.extension.16" "message-token"
|
|
ContentConfidentialityAlgorithmIdentifier B "x411.extension.17" "content-confidentiality-algorithm-identifier"
|
|
ContentIntegrityCheck B "x411.extension.18" "content-integrity-check"
|
|
MessageOriginAuthenticationCheck B "x411.extension.19" "message-origin-authentication-check"
|
|
MessageSecurityLabel B "x411.extension.20" "message-security-label"
|
|
ProofOfSubmissionRequest B "x411.extension.21" "proof-of-submission-request"
|
|
ProofOfDeliveryRequest B "x411.extension.22" "proof-of-delivery-request"
|
|
ContentCorrelator B "x411.extension.23" "content-correlator"
|
|
ProbeOriginAuthenticationCheck B "x411.extension.24" "probe-origin-authentication-check"
|
|
RedirectionHistory B "x411.extension.25" "redirection-history"
|
|
DLExpansionHistory B "x411.extension.26" "dl-expansion-history"
|
|
PhysicalForwardingAddress B "x411.extension.27" "physical-forwarding-address"
|
|
RecipientCertificate B "x411.extension.28" "recipient-certificate"
|
|
ProofOfDelivery B "x411.extension.29" "proof-of-delivery"
|
|
OriginatorAndDLExpansionHistory B "x411.extension.30" "originator-and-DL-expansion-history"
|
|
ReportingDLName B "x411.extension.31" "reporting-DL-name"
|
|
ReportingMTACertificate B "x411.extension.32" "reporting-MTA-certificate"
|
|
ReportOriginAuthenticationCheck B "x411.extension.33" "report-origin-authentication-check"
|
|
ProofOfSubmission B "x411.extension.35" "proof-of-submission"
|
|
|
|
TraceInformation B "x411.extension.37" "trace-information"
|
|
InternalTraceInformation B "x411.extension.38" "internal-trace-information"
|
|
ReportingMTAName B "x411.extension.39" "reporting-MTA-name"
|
|
ExtendedCertificates B "x411.extension.40" "multiple-originator-certificates"
|
|
|
|
DLExemptedRecipients B "x411.extension.42" "dl-exempted-recipients"
|
|
|
|
CertificateSelectors B "x411.extension.45" "certificate-selectors"
|
|
|
|
CommonName B "x411.extension-attribute.1" "common-name"
|
|
TeletexCommonName B "x411.extension-attribute.2" "teletex-common-name"
|
|
TeletexOrganizationName B "x411.extension-attribute.3" "teletex-organization-name"
|
|
TeletexPersonalName B "x411.extension-attribute.4" "teletex-personal-name"
|
|
TeletexOrganizationalUnitNames B "x411.extension-attribute.5" "teletex-organizational-unit-names"
|
|
|
|
PDSName B "x411.extension-attribute.7" "pds-name"
|
|
PhysicalDeliveryCountryName B "x411.extension-attribute.8" "physical-delivery-country-name"
|
|
PostalCode B "x411.extension-attribute.9" "postal-code"
|
|
PhysicalDeliveryOfficeName B "x411.extension-attribute.10" "physical-delivery-office-name"
|
|
|
|
UniversalCommonName B "x411.extension-attribute.24" "universal-common-name"
|
|
UniversalOrganizationName B "x411.extension-attribute.25" "universal-organization-name"
|
|
UniversalPersonalName B "x411.extension-attribute.26" "universal-personal-name"
|
|
UniversalOrganizationalUnitNames B "x411.extension-attribute.27" "universal-organizational-unit-names"
|
|
|
|
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 B "x411.tokendata.1" "bind-token-signed-data"
|
|
MessageTokenSignedData B "x411.tokendata.2" "message-token-signed-data"
|
|
# the next two are unlikely to ever be seen (unless in a bad encoding)
|
|
MessageTokenEncryptedData B "x411.tokendata.3" "message-token-encrypted-data"
|
|
BindTokenEncryptedData B "x411.tokendata.4" "bind-token-encrypted-data"
|
|
|
|
# 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"
|
|
|
|
#.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)
|
|
offset=call_x411_oid_callback("x411.extension", tvb, offset, actx->pinfo, tree);
|
|
else if(object_identifier_id) {
|
|
call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
|
|
name = get_oid_str_name(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 ExtensionAttribute/extension-attribute-type
|
|
VAL_PTR = &extension_id
|
|
|
|
#.FN_BODY ExtensionAttribute/extension-attribute-value
|
|
|
|
offset=call_x411_oid_callback("x411.extension-attribute", tvb, offset, actx->pinfo, tree);
|
|
|
|
#.FN_BODY RefusedOperation/refused-argument/refused-extension
|
|
/*XXX not implemented yet */
|
|
|
|
#.FN_BODY CountryName
|
|
gint8 class;
|
|
gboolean pc, ind_field;
|
|
gint32 tag;
|
|
guint32 len1;
|
|
|
|
if(!implicit_tag){
|
|
/* XXX asn2wrs can not yet handle tagged assignment yes so this
|
|
* XXX is some conformance file magic to work around that bug
|
|
*/
|
|
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
|
|
offset = get_ber_length(tvb, offset, &len1, &ind_field);
|
|
}
|
|
|
|
if(doing_address)
|
|
g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
|
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
CountryName_choice, hf_index, ett_x411_CountryName, NULL);
|
|
|
|
|
|
|
|
#.FN_BODY AdministrationDomainName
|
|
gint8 class;
|
|
gboolean pc, ind_field;
|
|
gint32 tag;
|
|
guint32 len1;
|
|
|
|
if(!implicit_tag){
|
|
/* XXX asn2wrs can not yet handle tagged assignment yes so this
|
|
* XXX is some conformance file magic to work around that bug
|
|
*/
|
|
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
|
|
offset = get_ber_length(tvb, offset, &len1, &ind_field);
|
|
}
|
|
|
|
if(doing_address)
|
|
g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
|
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
AdministrationDomainName_choice, hf_index, ett_x411_AdministrationDomainName, NULL);
|
|
|
|
#.FN_BODY ContentIdentifier
|
|
gint8 class;
|
|
gboolean pc, ind_field;
|
|
gint32 tag;
|
|
guint32 len1;
|
|
|
|
if(!implicit_tag){
|
|
/* XXX asn2wrs can not yet handle tagged assignment yes so this
|
|
* XXX is some conformance file magic to work around that bug
|
|
*/
|
|
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
|
|
offset = get_ber_length(tvb, offset, &len1, &ind_field);
|
|
}
|
|
|
|
/* this is magic I haven't seen used before - I've stripped the tag - but now I'm going to say it is IMPLICIT! */
|
|
offset = dissect_ber_restricted_string(TRUE, BER_UNI_TAG_PrintableString,
|
|
actx, tree, tvb, offset, hf_index,
|
|
NULL);
|
|
|
|
|
|
#.FN_PARS ExtensionType/standard-extension
|
|
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 = get_oid_str_name(content_type_id);
|
|
|
|
if(!name) name = content_type_id;
|
|
|
|
proto_item_append_text(tree, " (%%s)", name);
|
|
}
|
|
|
|
#.FN_PARS BuiltInContentType
|
|
VAL_PTR = &ict
|
|
|
|
#.FN_BODY BuiltInContentType
|
|
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)");
|
|
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/iso-3166-alpha2-code AdministrationDomainName/printable PrivateDomainName/printable PrivateDomainIdentifier/printable
|
|
|
|
#.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/x121-dcc-code AdministrationDomainName/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);
|
|
}
|
|
#.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);
|
|
}
|
|
|
|
#.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 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
|
|
guint32 credentials;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (check_col(actx->pinfo->cinfo, COL_INFO)) {
|
|
if(credentials == -1) credentials = 0;
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(credentials, x411_Credentials_vals, "Credentials(%%d)"));
|
|
}
|
|
|
|
#.FN_BODY TokenData/value
|
|
|
|
offset=call_x411_oid_callback("x411.tokendata", tvb, offset, actx->pinfo, tree);
|
|
|
|
#.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
|
|
int apdu = -1;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
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", val_to_str(apdu, x411_MTS_APDU_vals, "MTS-APDU(%%d)"));
|
|
}
|
|
|
|
#.FN_PARS ReportType
|
|
VAL_PTR = &report
|
|
|
|
#.FN_BODY ReportType
|
|
int report = -1;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if(check_col(actx->pinfo->cinfo, COL_INFO)) {
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(report, x411_ReportType_vals, "report-type(%%d)"));
|
|
}
|
|
|
|
#.END
|