wireshark/asn1/x411/x411.cnf

811 lines
24 KiB
INI

#.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 ../acse/acse-exp.cnf
#.IMPORT ../x509ce/x509ce-exp.cnf
#.IMPORT ../x509if/x509if-exp.cnf
#.IMPORT ../x509sat/x509sat-exp.cnf
#.IMPORT ../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
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 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
PDSName N x411.extension-attribute 7
PhysicalDeliveryCountryName N x411.extension-attribute 8
PostalCode N x411.extension-attribute 9
PhysicalDeliveryOfficeName N x411.extension-attribute 10
UniversalCommonName N x411.extension-attribute 24
UniversalOrganizationName N x411.extension-attribute 25
UniversalPersonalName N x411.extension-attribute 26
UniversalOrganizationalUnitNames N x411.extension-attribute 27
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"
#.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 = 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 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 = get_oid_str_name(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);
}
#.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 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
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_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
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