summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/p7
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/p7
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/p7')
-rw-r--r--epan/dissectors/asn1/p7/CMakeLists.txt52
-rw-r--r--epan/dissectors/asn1/p7/MSAbstractService.asn1124
-rw-r--r--epan/dissectors/asn1/p7/MSAccessProtocol.asn257
-rw-r--r--epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn832
-rw-r--r--epan/dissectors/asn1/p7/MSUpperBounds.asn79
-rw-r--r--epan/dissectors/asn1/p7/p7.cnf422
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.c118
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.h17
8 files changed, 2901 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/p7/CMakeLists.txt b/epan/dissectors/asn1/p7/CMakeLists.txt
new file mode 100644
index 00000000..f95b06ae
--- /dev/null
+++ b/epan/dissectors/asn1/p7/CMakeLists.txt
@@ -0,0 +1,52 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+set( PROTOCOL_NAME p7 )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ MSAbstractService.asn
+ MSGeneralAttributeTypes.asn
+ MSAccessProtocol.asn
+ MSUpperBounds.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS -b -C )
+
+set( EXTRA_CNF
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../ros/ros-exp.cnf"
+ "${CMAKE_CURRENT_BINARY_DIR}/../rtse/rtse-exp.cnf"
+)
+
+set( EXPORT_DEPENDS
+ "${CMAKE_CURRENT_BINARY_DIR}/../p1/p1-exp.cnf"
+)
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/p7/MSAbstractService.asn b/epan/dissectors/asn1/p7/MSAbstractService.asn
new file mode 100644
index 00000000..5641f3c1
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSAbstractService.asn
@@ -0,0 +1,1124 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x413/1999/index.html
+-- Module MSAbstractService (X.413:06/1999)
+MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) abstract-service(1)
+ version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS information object classes
+ operationObject1, ABSTRACT-ERROR, ABSTRACT-OPERATION, EXTENSION, MHS-OBJECT,
+ PORT,
+ -- MTS objects and ports
+ administration, delivery, mts-user,
+ submission,
+ -- MTS abstract-operations and abstract-errors
+ cancel-deferred-delivery, element-of-service-not-subscribed,
+ inconsistent-request, new-credentials-unacceptable,
+ old-credentials-incorrectly-specified, originator-invalid,
+ recipient-improperly-specified, remote-bind-error, security-error,
+ submission-control, submission-control-violated,
+ unsupported-critical-function,
+ -- MTS abstract-service data-types
+ CertificateSelectors, Credentials, InitiatorCredentials,
+ MessageSubmissionArgument, MessageSubmissionResult, MessageToken,
+ ORAddressAndOrDirectoryName, ProbeSubmissionArgument,
+ ProbeSubmissionResult, ResponderCredentials, SecurityContext, SecurityLabel,
+-- WS added imports because of expansion of COMPONENTS OF
+ MessageSubmissionIdentifier, ExtensionField, OriginatorName,
+ OriginalEncodedInformationTypes, ContentType, ProbeSubmissionIdentifier,
+ ProbeSubmissionTime
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ OPERATION, ERROR
+FROM Remote-Operations-Information-Objects
+ administration-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- MTS abstract-service upper bounds
+ ub-content-types, ub-encoded-information-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MS X413ATTRIBUTE table
+ AttributeTable
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching rule table
+ MatchingRuleTable
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS auto-action-table and auto-action-error table
+ AutoActionTable, AutoActionErrorTable
+ --==
+ FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)}
+ -- MS object-identifiers
+ id-cp-ms-connection, id-crt-ms-access-88, id-crt-ms-access-94,
+ id-ext-modify-capability, id-ext-modify-retrieval-status-capability,
+ id-ext-originator-token, id-ext-originator-certificate-selectors-override,
+ id-ext-protected-change-credentials,
+ id-ext-protected-change-credentials-capability, id-ot-ms, id-ot-ms-user,
+ id-pt-retrieval-88, id-pt-retrieval-94, id-pt-ms-submission
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Access abstract-operation and error codes
+ err-attribute-error, err-auto-action-request-error, err-ms-extension-error,
+ err-delete-error, err-entry-class-error, err-fetch-restriction-error,
+ err-invalid-parameters-error, err-message-group-error, err-modify-error,
+ err-range-error, err-security-error, err-sequence-number-error,
+ err-service-error, err-register-ms-error, op-alert, op-delete, op-fetch,
+ op-list, op-modify, op-ms-message-submission, op-ms-probe-submission,
+ op-register-ms, op-summarize
+ --==
+ FROM MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-attributes-supported, ub-attribute-values, ub-auto-action-errors,
+ ub-auto-actions, ub-auto-registrations, ub-default-registrations,
+ ub-entry-classes, ub-error-reasons, ub-extensions, ub-group-depth,
+ ub-group-descriptor-length, ub-group-part-length, ub-matching-rules,
+ ub-message-groups, ub-messages, ub-modifications, ub-per-entry,
+ ub-per-auto-action, ub-service-information-length, ub-summaries,
+ ub-supplementary-info-length, ub-ua-registration-identifier-length,
+ ub-ua-registrations, ub-ua-restrictions
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MATCHING-RULE information object class
+ MATCHING-RULE
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Remote Operations
+ CONTRACT, CONNECTION-PACKAGE
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+-- MS Abstract Objects
+ms MHS-OBJECT ::= {
+ IS {mts-user}
+ RESPONDS {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms
+}
+
+ms-user MHS-OBJECT ::= {
+ INITIATES {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms-user
+}
+
+-- Contracts
+ms-access-contract-94 CONTRACT ::= {
+ CONNECTION ms-connect
+ INITIATOR CONSUMER OF {retrieval | ms-submission | administration}
+ ID id-crt-ms-access-94
+}
+
+ms-access-contract-88 CONTRACT ::= {
+ CONNECTION ms-connect -- with all 1994 extensions omitted
+ INITIATOR CONSUMER OF {retrieval-88 | submission | administration-88}
+ ID id-crt-ms-access-88
+}
+
+-- Connection-package
+ms-connect CONNECTION-PACKAGE ::= {
+ BIND ms-bind
+ UNBIND ms-unbind
+ ID id-cp-ms-connection
+}
+
+-- MS Ports
+--retrieval PORT ::= {
+-- OPERATIONS {operationObject1, ...}
+-- CONSUMER INVOKES
+-- {summarize | list | fetch | delete | register-MS,
+-- ... - 1994 extension addition -, modify}
+-- SUPPLIER INVOKES {alert}
+-- ID id-pt-retrieval-94
+--}
+
+--retrieval-88 PORT ::= {
+-- - With all 1994 extensions to the abstract-operations absent
+-- OPERATIONS {operationObject1, ...}
+-- CONSUMER INVOKES {summarize | list | fetch | delete | register-MS}
+-- SUPPLIER INVOKES {alert}
+-- ID id-pt-retrieval-88
+--}
+
+--ms-submission PORT ::= {
+-- OPERATIONS {operationObject1, ...}
+-- CONSUMER INVOKES
+-- {ms-message-submission | ms-probe-submission | ms-cancel-deferred-delivery}
+-- SUPPLIER INVOKES {ms-submission-control}
+-- ID id-pt-ms-submission
+--}
+
+-- X413ATTRIBUTE information object class
+X413ATTRIBUTE ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type ,
+ &equalityMatch MATCHING-RULE OPTIONAL,
+ &substringsMatch MATCHING-RULE OPTIONAL,
+ &orderingMatch MATCHING-RULE OPTIONAL,
+ &numeration ENUMERATED {single-valued(0), multi-valued(1)},
+ -- 1994 extension
+ &OtherMatches MATCHING-RULE OPTIONAL
+}
+WITH SYNTAX {
+ WITH ATTRIBUTE-SYNTAX &Type,
+ [EQUALITY MATCHING-RULE &equalityMatch,]
+ [SUBSTRINGS MATCHING-RULE &substringsMatch,]
+ [ORDERING MATCHING-RULE &orderingMatch,]
+ [OTHER MATCHING-RULES &OtherMatches,]
+ NUMERATION &numeration,
+ ID &id
+}
+
+Attribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+AttributeType ::= OBJECT IDENTIFIER
+
+-- AUTO-ACTION information object class
+AUTO-ACTION ::= CLASS {
+ &id AutoActionType UNIQUE,
+ &RegistrationParameter OPTIONAL,
+ &Errors AUTO-ACTION-ERROR OPTIONAL
+}
+WITH SYNTAX {
+ [REGISTRATION PARAMETER IS &RegistrationParameter]
+ [ERRORS &Errors]
+ IDENTIFIED BY &id
+}
+
+AutoActionType ::= OBJECT IDENTIFIER
+
+AutoActionRegistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1,
+ registration-parameter
+ [1] AUTO-ACTION.&RegistrationParameter
+ ({AutoActionTable}{@auto-action-type}) OPTIONAL
+}
+
+-- AUTO-ACTION-ERROR information object class
+AUTO-ACTION-ERROR ::=
+ ABSTRACT-ERROR
+
+AutoActionError ::= SET {
+ error-code [0] AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable}),
+ error-parameter
+ [1] AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code})
+ OPTIONAL
+}
+
+-- MS-EXTENSION information object class
+MS-EXTENSION ::= TYPE-IDENTIFIER
+
+MSExtensionItem ::= INSTANCE OF MS-EXTENSION
+
+MSExtensions ::= SEQUENCE SIZE (1..ub-extensions) OF MSExtensionItem
+
+-- Common data-types related to the information model
+EntryClass ::= INTEGER {
+ delivery(0),
+ -- 1994 extensions
+ submission(1), draft(2), stored-message(3), delivery-log(4),
+ submission-log(5), message-log(6), auto-action-log(7)}(0..ub-entry-classes)
+
+EntryType ::= INTEGER {
+ delivered-message(0), delivered-report(1),
+ returned-content(2),
+ -- 1994 extensions
+ submitted-message(3), submitted-probe(4), draft-message(5),
+ auto-action-event(6)}
+
+SequenceNumber ::= INTEGER(0..ub-messages)
+
+RetrievalStatus ::= INTEGER {new(0), listed(1), processed(2)}
+
+MessageGroupName ::= SEQUENCE SIZE (1..ub-group-depth) OF GroupNamePart
+
+GroupNamePart ::= GeneralString(SIZE (1..ub-group-part-length))
+
+-- MS-bind abstract-operation
+ms-bind -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT MSBindArgument
+ RESULT MSBindResult
+ ERRORS {ms-bind-error}
+ CODE op-ros-bind -- WS: internal operation code
+}
+
+MSBindArgument ::= SET {
+ initiator-name ORAddressAndOrDirectoryName,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] IMPLICIT SecurityContext OPTIONAL,
+ fetch-restrictions [4] Restrictions OPTIONAL -- default is none--,
+ ms-configuration-request [5] BOOLEAN DEFAULT FALSE,
+ -- 1994 extensions
+ ua-registration-identifier [6] RegistrationIdentifier OPTIONAL,
+ bind-extensions [7] MSExtensions OPTIONAL
+}
+
+Restrictions ::= SET {
+ allowed-content-types
+ [0] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL--default is no restriction--,
+ allowed-EITs [1] MS-EITs OPTIONAL --default is no restriction--,
+ maximum-attribute-length [2] INTEGER OPTIONAL --default is no restriction--
+}
+
+MS-EITs ::= SET SIZE (1..ub-encoded-information-types) OF MS-EIT
+
+MS-EIT ::= OBJECT IDENTIFIER
+
+RegistrationIdentifier ::=
+ PrintableString(SIZE (1..ub-ua-registration-identifier-length))
+
+MSBindResult ::= SET {
+ responder-credentials [2] ResponderCredentials,
+ available-auto-actions
+ [3] SET SIZE (1..ub-auto-actions) OF AUTO-ACTION.&id({AutoActionTable})
+ OPTIONAL,
+ available-attribute-types
+ [4] SET SIZE (1..ub-attributes-supported) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ alert-indication [5] BOOLEAN DEFAULT FALSE,
+ content-types-supported
+ [6] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL,
+ -- 1994 extensions
+ entry-classes-supported
+ [7] SET SIZE (1..ub-entry-classes) OF EntryClass OPTIONAL,
+ matching-rules-supported
+ [8] SET SIZE (1..ub-matching-rules) OF OBJECT IDENTIFIER OPTIONAL,
+ bind-result-extensions [9] MSExtensions OPTIONAL,
+ message-group-depth [10] INTEGER(1..ub-group-depth) OPTIONAL,
+ auto-action-error-indication [11] AutoActionErrorIndication OPTIONAL,
+ unsupported-extensions
+ [12] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER OPTIONAL,
+ ua-registration-id-unknown [13] BOOLEAN DEFAULT FALSE,
+ service-information
+ [14] GeneralString(SIZE (1..ub-service-information-length)) OPTIONAL
+}
+
+modify-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-capability
+}
+
+modify-retrieval-status-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-retrieval-status-capability
+}
+
+protected-change-credentials-capability MS-EXTENSION ::= {
+ ChangeCredentialsAlgorithms
+ IDENTIFIED BY id-ext-protected-change-credentials-capability
+}
+
+ChangeCredentialsAlgorithms ::= SET OF OBJECT IDENTIFIER
+
+AutoActionErrorIndication ::= CHOICE {
+ indication-only [0] NULL,
+ auto-action-log-entry [1] SequenceNumber
+}
+
+ms-bind-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ CHOICE {unqualified-error BindProblem,
+ -- 1994 extension
+ qualified-error
+ SET {bind-problem [0] BindProblem,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length))
+ OPTIONAL,
+ bind-extension-errors
+ [2] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER
+ OPTIONAL}}
+ CODE err-ros-bind -- WS: internal error code
+}
+
+BindProblem ::= ENUMERATED {
+ authentication-error(0), unacceptable-security-context(1),
+ unable-to-establish-association(2), ... -- 1994 extension addition --,
+ bind-extension-problem(3), inadequate-association-confidentiality(4)
+}
+
+-- MS Unbind abstract-operation
+ms-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Common data-types
+Range ::= CHOICE {
+ sequence-number-range [0] NumberRange,
+ creation-time-range [1] TimeRange
+}
+
+NumberRange ::= SEQUENCE {
+ from [0] SequenceNumber OPTIONAL -- omitted means no lower bound--,
+ to [1] SequenceNumber OPTIONAL -- omitted means no upper bound--
+}
+
+TimeRange ::= SEQUENCE {
+ from [0] CreationTime OPTIONAL -- omitted means no lower bound--,
+ to [1] CreationTime OPTIONAL -- omitted means no upper bound--
+}
+
+CreationTime ::= UTCTime
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ any
+ [1] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ final
+ [2] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type})
+ }},
+ greater-or-equal [2] AttributeValueAssertion,
+ less-or-equal [3] AttributeValueAssertion,
+ present [4] X413ATTRIBUTE.&id({AttributeTable}),
+ approximate-match [5] AttributeValueAssertion,
+ -- 1994 extension
+ other-match [6] MatchingRuleAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matching-rule [0] MATCHING-RULE.&id({MatchingRuleTable}),
+ attribute-type [1] X413ATTRIBUTE.&id,
+ match-value
+ [2] MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule})
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-value X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+Selector ::= SET {
+ child-entries [0] BOOLEAN DEFAULT FALSE,
+ range [1] Range OPTIONAL -- default is unbounded --,
+ filter
+ [2] Filter
+ OPTIONAL -- default is all entries within the specified range --,
+ limit [3] INTEGER(1..ub-messages) OPTIONAL,
+ override [4] OverrideRestrictions OPTIONAL -- by default, --
+ -- any fetch-restrictions in force apply
+}
+
+OverrideRestrictions ::= BIT STRING {
+ override-content-types-restriction(0), override-EITs-restriction(1),
+ override-attribute-length-restriction(2)}(SIZE (1..ub-ua-restrictions))
+
+EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection
+
+AttributeSelection ::= SET {
+ type X413ATTRIBUTE.&id({AttributeTable}),
+ from
+ [0] INTEGER(1..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--,
+ count
+ [1] INTEGER(0..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--
+}
+
+EntryInformation ::= SEQUENCE {
+ sequence-number SequenceNumber,
+ attributes SET SIZE (1..ub-per-entry) OF Attribute OPTIONAL,
+ -- 1994 extension
+ value-count-exceeded
+ [0] SET SIZE (1..ub-per-entry) OF AttributeValueCount OPTIONAL
+}
+
+AttributeValueCount ::= SEQUENCE {
+ type [0] X413ATTRIBUTE.&id({AttributeTable}),
+ total [1] INTEGER
+}
+
+MSSubmissionOptions ::= SET {
+ object-entry-class
+ [0] EntryClass(submission | submission-log | draft) OPTIONAL,
+ disable-auto-modify [1] BOOLEAN DEFAULT FALSE,
+ add-message-group-names
+ [2] SET SIZE (1..ub-message-groups) OF MessageGroupName OPTIONAL,
+ ms-submission-extensions [3] MSExtensions OPTIONAL
+}
+
+originator-token MS-EXTENSION ::= {
+ OriginatorToken
+ IDENTIFIED BY id-ext-originator-token
+}
+
+OriginatorToken ::=
+ MessageToken
+ (CONSTRAINED BY {
+
+ -- Must contain an asymmetric-token with an encrypted-data component --})
+
+originator-certificate-selectors-override MS-EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ })
+ IDENTIFIED BY id-ext-originator-certificate-selectors-override
+}
+
+CommonSubmissionResults ::= SET {
+ created-entry [0] SequenceNumber OPTIONAL,
+ auto-action-error-indication [1] AutoActionErrorIndication OPTIONAL,
+ ms-submission-result-extensions [2] MSExtensions OPTIONAL
+}
+
+-- Retrieval Port abstract-operations
+summarize -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT SummarizeArgument
+ RESULT SummarizeResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-summarize
+}
+
+SummarizeArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ summary-requests
+ [2] SEQUENCE SIZE (1..ub-summaries) OF X413ATTRIBUTE.&id({AttributeTable})
+ OPTIONAL -- absent if no summaries are requested--,
+ -- 1994 extension
+ summarize-extensions [3] MSExtensions OPTIONAL
+}
+
+SummarizeResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ count
+ [1] INTEGER(0..ub-messages)-- of the entries selected-- ,
+ span [2] Span OPTIONAL -- of the entries selected,---- omitted if count is zero --,
+ summaries
+ [3] SEQUENCE SIZE (1..ub-summaries) OF Summary OPTIONAL,
+ -- 1994 extension
+ summarize-result-extensions [4] MSExtensions OPTIONAL
+}
+
+Span ::= SEQUENCE {lowest [0] SequenceNumber,
+ highest [1] SequenceNumber
+}
+
+Summary ::= SET {
+ absent
+ [0] INTEGER(1..ub-messages)
+ OPTIONAL --count of entries where X413ATTRIBUTE is absent--,
+ present
+ [1] SET SIZE (1..ub-attribute-values)
+ OF--one for each X413ATTRIBUTE value present--
+ SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ value X413ATTRIBUTE.&Type({AttributeTable}{@.type}),
+ count INTEGER(1..ub-messages)} OPTIONAL
+}
+
+--
+list -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-list
+}
+
+ListArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ list-extensions [4] MSExtensions OPTIONAL
+}
+
+ListResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ requested
+ [1] SEQUENCE SIZE (1..ub-messages) OF EntryInformation OPTIONAL--omitted if none found--,
+ -- 1994 extension
+ list-result-extensions [2] MSExtensions OPTIONAL
+}
+
+--
+fetch -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT FetchArgument
+ RESULT FetchResult
+ ERRORS
+ {attribute-error | fetch-restriction-error | invalid-parameters-error |
+ range-error | security-error | sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-fetch
+}
+
+FetchArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ item
+ CHOICE {search [1] Selector,
+ precise [2] SequenceNumber},
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ fetch-extensions [4] MSExtensions OPTIONAL
+}
+
+FetchResult ::= SET {
+ entry-information
+ [0] EntryInformation OPTIONAL --if an entry was selected--,
+ list
+ [1] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ next [2] SequenceNumber OPTIONAL,
+ -- 1994 extension
+ fetch-result-extensions [3] MSExtensions OPTIONAL
+}
+
+--
+delete -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT DeleteArgument
+ RESULT DeleteResult
+ ERRORS
+ {delete-error | invalid-parameters-error | range-error | security-error |
+ sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-delete
+}
+
+DeleteArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ items
+ CHOICE {selector [1] Selector,
+ sequence-numbers [2] SET SIZE (1..ub-messages) OF SequenceNumber
+ },
+ -- 1994 extension
+ delete-extensions [3] MSExtensions OPTIONAL
+}
+
+DeleteResult ::= CHOICE {
+ delete-result-88 NULL,
+ -- 1994 extension
+ delete-result-94
+ SET {entries-deleted
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ delete-result-extensions [1] MSExtensions OPTIONAL}
+}
+
+--
+register-MS -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT Register-MSArgument
+ RESULT Register-MSResult
+ ERRORS
+ {attribute-error | auto-action-request-error | invalid-parameters-error |
+ security-error | service-error | old-credentials-incorrectly-specified |
+ new-credentials-unacceptable, ... -- 1994 extension additions --,
+ message-group-error | ms-extension-error | register-ms-error}
+ LINKED {operationObject1, ...}
+ CODE op-register-ms
+}
+
+Register-MSArgument ::= SET {
+ auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration OPTIONAL,
+ auto-action-deregistrations
+ [1] SET SIZE (1..ub-auto-registrations) OF AutoActionDeregistration
+ OPTIONAL,
+ list-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [3] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ change-credentials
+ [4] SEQUENCE {old-credentials
+ [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials
+ [1] Credentials(WITH COMPONENTS {
+ simple
+ })} OPTIONAL,
+ user-security-labels
+ [5] SET SIZE (1..ub-labels-and-redirections) OF SecurityLabel OPTIONAL,
+ -- 1994 extensions
+ ua-registrations
+ [6] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [7] MSSubmissionOptions OPTIONAL,
+ message-group-registrations [8] MessageGroupRegistrations OPTIONAL,
+ registration-status-request [9] RegistrationTypes OPTIONAL,
+ register-ms-extensions [10] MSExtensions OPTIONAL
+}
+
+AutoActionDeregistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1
+}
+
+UARegistration ::= SET {
+ ua-registration-identifier [0] RegistrationIdentifier,
+ ua-list-attribute-defaults
+ [1] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-fetch-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-submission-defaults [3] MSSubmissionOptions OPTIONAL,
+ content-specific-defaults [4] MSExtensions OPTIONAL
+}
+
+MessageGroupRegistrations ::=
+ SEQUENCE SIZE (1..ub-default-registrations) OF
+ CHOICE {register-group [0] MessageGroupNameAndDescriptor,
+ deregister-group [1] MessageGroupName,
+ change-descriptors [2] MessageGroupNameAndDescriptor}
+
+MessageGroupNameAndDescriptor ::= SET {
+ message-group-name [0] MessageGroupName,
+ message-group-descriptor
+ [1] GeneralString(SIZE (1..ub-group-descriptor-length)) OPTIONAL
+}
+
+RegistrationTypes ::= SET {
+ registrations
+ [0] BIT STRING {auto-action-registrations(0), list-attribute-defaults(1),
+ fetch-attribute-defaults(2), ua-registrations(3),
+ submission-defaults(4), message-group-registrations(5)}
+ OPTIONAL,
+ extended-registrations [1] SET OF MS-EXTENSION.&id OPTIONAL,
+ restrict-message-groups [2] MessageGroupsRestriction OPTIONAL
+}
+
+MessageGroupsRestriction ::= SET {
+ parent-group [0] MessageGroupName OPTIONAL,
+ immediate-descendants-only [1] BOOLEAN DEFAULT TRUE,
+ omit-descriptors [2] BOOLEAN DEFAULT TRUE
+}
+
+protected-change-credentials MS-EXTENSION ::= {
+ ProtectedChangeCredentials
+ IDENTIFIED BY id-ext-protected-change-credentials
+}
+
+ProtectedChangeCredentials ::= SEQUENCE {
+ algorithm-identifier [0] IMPLICIT OBJECT IDENTIFIER,
+ old-credentials
+ InitiatorCredentials(WITH COMPONENTS {
+ protected PRESENT
+ }),
+ password-delta [2] IMPLICIT BIT STRING
+}
+
+Register-MSResult ::= CHOICE {
+ no-status-information NULL,
+ -- 1994 extension
+ registered-information
+ SET {auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration
+ OPTIONAL,
+ list-attribute-defaults
+ [1] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [2] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-registrations
+ [3] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [4] MSSubmissionOptions OPTIONAL,
+ message-group-registrations
+ [5] SET SIZE (1..ub-message-groups) OF
+ MessageGroupNameAndDescriptor OPTIONAL,
+ register-ms-result-extensions [6] MSExtensions OPTIONAL}
+}
+
+--
+alert -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT AlertArgument
+ RESULT AlertResult
+ ERRORS {security-error}
+ LINKED {operationObject1, ...}
+ CODE op-alert
+}
+
+AlertArgument ::= SET {
+ alert-registration-identifier [0] INTEGER(1..ub-auto-actions),
+ new-entry [2] EntryInformation OPTIONAL
+}
+
+AlertResult ::= NULL
+
+--
+modify -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT ModifyArgument
+ RESULT ModifyResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | security-error |
+ sequence-number-error | service-error | modify-error |
+ message-group-error | entry-class-error | ms-extension-error,
+ ... -- For future extension additions --}
+ LINKED {operationObject1, ...}
+ CODE op-modify
+}
+
+ModifyArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ entries
+ CHOICE {selector [1] Selector,
+ specific-entries
+ [2] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber},
+ modifications
+ [3] SEQUENCE SIZE (1..ub-modifications) OF EntryModification,
+ modify-extensions [4] MSExtensions OPTIONAL
+}
+
+EntryModification ::= SET {
+ strict [0] BOOLEAN DEFAULT FALSE,
+ modification
+ CHOICE {add-attribute [1] Attribute,
+ remove-attribute [2] X413ATTRIBUTE.&id({AttributeTable}),
+ add-values [3] OrderedAttribute,
+ remove-values [4] OrderedAttribute}
+}
+
+OrderedAttribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ SEQUENCE {-- at least one must be specified
+ value
+ [0] X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+ OPTIONAL,
+ position [1] INTEGER(1..ub-attribute-values) OPTIONAL
+ }
+}
+
+ModifyResult ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ modify-result-extensions [1] MSExtensions OPTIONAL
+}
+
+-- MS-submission Port abstract-operations
+ms-message-submission -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT MSMessageSubmissionArgument
+ RESULT MSMessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-message-submission
+}
+
+MSMessageSubmissionArgument ::= SEQUENCE {
+-- COMPONENTS OF
+-- MessageSubmissionArgument - This imported type has IMPLICIT tags -,
+-- WS expanded here
+ envelope MessageSubmissionEnvelope,
+ content Content,
+
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+forwarding-request EXTENSION ::= {
+ SequenceNumber,
+ IDENTIFIED BY standard-extension:36
+}
+
+MSMessageSubmissionResult ::= CHOICE {
+ mts-result
+ SET {--COMPONENTS OF
+-- MessageSubmissionResult- This imported type has IMPLICIT tags - ,
+-- WS extended here
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] IMPLICIT MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField --{{MessageSubmissionResultExtensions}}-- DEFAULT {},
+
+ -- 1994 extension
+ ms-message-result [4] CommonSubmissionResults OPTIONAL},
+ -- 1994 extension
+ store-draft-result [4] CommonSubmissionResults
+}
+
+--
+ms-probe-submission -- ABSTRACT- -- OPERATION ::= {
+ ARGUMENT MSProbeSubmissionArgument
+ RESULT MSProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-probe-submission
+}
+
+MSProbeSubmissionArgument ::= SET {
+-- COMPONENTS OF
+-- ProbeSubmissionArgument - This imported type has IMPLICIT tags -,
+-- WS Expanded
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField --{{PerProbeSubmissionExtensions}}-- DEFAULT {}
+ ,per-recipient-fields
+ [3] SEQUENCE --SIZE (1..ub-recipients)-- OF PerRecipientProbeSubmissionFields,
+
+
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+MSProbeSubmissionResult ::= SET {
+-- COMPONENTS OF
+-- ProbeSubmissionResult - This imported type has IMPLICIT tags -,
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField --{{ProbeResultExtensions}}-- DEFAULT {},
+
+ -- 1994 extension
+ ms-probe-result [4] CommonSubmissionResults OPTIONAL
+}
+
+ms-cancel-deferred-delivery ABSTRACT-OPERATION ::= cancel-deferred-delivery
+
+ms-submission-control ABSTRACT-OPERATION ::= submission-control
+
+-- Abstract-errors
+attribute-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-per-entry) OF
+ SET {problem [0] AttributeProblem,
+ type [1] X413ATTRIBUTE.&id({AttributeTable}),
+ value
+ [2] X413ATTRIBUTE.&Type({AttributeTable}{@.type})
+ OPTIONAL}}
+ CODE err-attribute-error
+}
+
+AttributeProblem ::= INTEGER {
+ invalid-attribute-value(0), unavailable-attribute-type(1),
+ inappropriate-matching(2), attribute-type-not-subscribed(3),
+ inappropriate-for-operation(4),
+ -- 1994 extensions
+ inappropriate-modification(5), single-valued-attribute(6)
+}(0..ub-error-reasons)
+
+--
+auto-action-request-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-auto-registrations) OF
+ SET {problem [0] AutoActionRequestProblem,
+ type [1] AUTO-ACTION.&id({AutoActionTable})
+ }}
+ CODE err-auto-action-request-error
+}
+
+AutoActionRequestProblem ::= INTEGER {
+ unavailable-auto-action-type(0),
+ auto-action-type-not-subscribed(1),
+ -- 1994 extension
+ not-willing-to-perform(2)}(0..ub-error-reasons)
+
+--
+delete-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-messages) OF
+ SET {problem [0] DeleteProblem,
+ sequence-number [1] SequenceNumber},
+ -- 1994 extension
+ entries-deleted
+ [1] SET SIZE (1..ub-messages) OF SequenceNumber OPTIONAL}
+ CODE err-delete-error
+}
+
+DeleteProblem ::= INTEGER {
+ child-entry-specified(0),
+ delete-restriction-problem(1),
+ -- 1994 extensions
+ new-entry-specified(2), entry-class-restriction(3), stored-message-exists(4)
+}(0..ub-error-reasons)
+
+--
+fetch-restriction-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-default-registrations) OF
+ SET {problem [3] FetchRestrictionProblem,
+ restriction
+ CHOICE {content-type [0] OBJECT IDENTIFIER,
+ eit [1] MS-EITs,
+ attribute-length [2] INTEGER}}}
+ CODE err-fetch-restriction-error
+}
+
+FetchRestrictionProblem ::= INTEGER {
+ content-type-problem(1), eit-problem(2), maximum-length-problem(3)
+}(0..ub-error-reasons)
+
+--
+invalid-parameters-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER NULL
+ CODE err-invalid-parameters-error
+}
+
+--
+range-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER SET {problem [0] RangeProblem}
+ CODE err-range-error
+}
+
+RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons)
+
+--
+sequence-number-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problems
+ [1] SET SIZE (1..ub-messages) OF
+ SET {problem [0] SequenceNumberProblem,
+ sequence-number [1] SequenceNumber}}
+ CODE err-sequence-number-error
+}
+
+SequenceNumberProblem ::= INTEGER {no-such-entry(0)}(0..ub-error-reasons)
+
+--
+service-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER ServiceErrorParameter
+ CODE err-service-error
+}
+
+ServiceErrorParameter ::= SET {
+ problem [0] ServiceProblem,
+ -- 1994 extension
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+ServiceProblem ::= INTEGER {busy(0), unavailable(1), unwilling-to-perform(2)
+}(0..ub-error-reasons)
+
+--
+message-group-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER MessageGroupErrorParameter
+ CODE err-message-group-error
+}
+
+MessageGroupErrorParameter ::= SET {
+ problem [0] MessageGroupProblem,
+ name [1] MessageGroupName
+}
+
+MessageGroupProblem ::= INTEGER {
+ name-not-registered(0), name-already-registered(1), parent-not-registered(2),
+ group-not-empty(3), name-in-use(4), child-group-registered(5),
+ group-depth-exceeded(6)}(0..ub-error-reasons)
+
+--
+ms-extension-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER MSExtensionErrorParameter
+ CODE err-ms-extension-error
+}
+
+MSExtensionErrorParameter ::= CHOICE {
+ ms-extension-problem [0] MSExtensionItem,
+ unknown-ms-extension [1] OBJECT IDENTIFIER
+}
+
+--
+register-ms-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER
+ SET {problem [0] RegistrationProblem,
+ registration-type [1] RegistrationTypes}
+ CODE err-register-ms-error
+}
+
+RegistrationProblem ::= ENUMERATED {
+ registration-not-supported(0), registration-improperly-specified(1),
+ registration-limit-exceeded(2), ... -- For future extension additions --
+ }
+
+--
+modify-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER ModifyErrorParameter
+ CODE err-modify-error
+}
+
+ModifyErrorParameter ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ failing-entry [1] SequenceNumber,
+ modification-number [2] INTEGER,
+ problem [3] ModifyProblem
+}
+
+ModifyProblem ::= INTEGER {
+ attribute-not-present(0), value-not-present(1),
+ attribute-or-value-already-exists(2), invalid-position(3),
+ modify-restriction-problem(4)}(0..ub-error-reasons)
+
+--
+entry-class-error -- ABSTRACT- -- ERROR ::= {
+ PARAMETER EntryClassErrorParameter
+ CODE err-entry-class-error
+}
+
+EntryClassErrorParameter ::= SET {
+ entry-class [0] EntryClass,
+ problem
+ [1] BIT STRING {unsupported-entry-class(0), entry-class-not-subscribed(1),
+ inappropriate-entry-class(2)}
+}
+
+END -- of MS Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/p7/MSAccessProtocol.asn b/epan/dissectors/asn1/p7/MSAccessProtocol.asn
new file mode 100644
index 00000000..309a38da
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSAccessProtocol.asn
@@ -0,0 +1,257 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x419/1999/index.html
+-- Module MSAccessProtocol (X.419:06/1999)
+MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MS Abstract Service
+ ms-access-contract-88, ms-access-contract-94, ms-submission, retrieval,
+ retrieval-88
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- MTS Access Protocol
+ message-administration-abstract-syntax-88,
+ message-administration-abstract-syntax-94,
+ message-submission-abstract-syntax
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Object Identifiers
+ id-ac-ms-access-88, id-ac-ms-access-94, id-ac-ms-reliable-access-88,
+ id-ac-ms-reliable-access-94, id-as-ms-msse, id-as-mase-88, id-as-mase-94,
+ id-as-mdse-88, id-as-mdse-94, id-as-mrse-88, id-as-mrse-94, id-as-ms-88,
+ id-as-ms-94, id-as-ms-rtse, id-as-msse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- APPLICATION-CONTEXTS
+-- 1994 Application Context omitting RTSE
+ms-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-abstract-syntax-94}
+ APPLICATION CONTEXT NAME id-ac-ms-access-94
+}
+
+-- 1994 Application Context including RTSE
+ms-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-94
+}
+
+-- 1988 Application Context omitting RTSE
+ms-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-abstract-syntax-88}
+ APPLICATION CONTEXT NAME id-ac-ms-access-88
+}
+
+-- 1988 Application Context including RTSE
+ms-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-88
+}
+
+-- ABSTRACT SYNTAXES
+-- Abstract-syntax for 1994 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs94
+ IDENTIFIED BY id-as-ms-94
+}
+
+--MSBindUnbindPDUs94 ::= CHOICE {
+-- bind Bind{ms-access-contract-94.&connection.&bind},
+-- unbind Unbind{ms-access-contract-94.&connection.&unbind}
+--}
+
+-- Abstract-syntax for 1988 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs88
+ IDENTIFIED BY id-as-ms-88
+}
+
+--MSBindUnbindPDUs88 ::= CHOICE {
+-- bind Bind{ms-access-contract-88.&connection.&bind},
+-- unbind Unbind{ms-access-contract-88.&connection.&unbind}
+--}
+
+-- Abstract-syntax for MS-bind and MS-unbind with RTSE
+ms-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MS-bind and MS-unbind --
+ IDENTIFIED BY id-as-ms-rtse
+}
+
+-- Abstract Syntax for MS Message Submission Service Element
+ms-message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MSMessageSubmissionPDUs
+ IDENTIFIED BY id-as-ms-msse
+}
+
+--MSMessageSubmissionPDUs ::= ROS-SingleAS{{MSInvokeIds}, ms-submission}
+
+--MSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Abstract Syntax for Message Retrieval Service Element 1994
+--message-retrieval-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+-- MessageRetrievalPDUs
+-- IDENTIFIED BY id-as-mrse-94
+--}
+
+-- Abstract Syntax for Message Retrieval Service Element 1988
+--MessageRetrievalPDUs ::=
+-- ROS-SingleAS{{MSInvokeIds}, retrieval}
+
+--message-retrieval-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+-- MessageRetrievalPDUs88
+-- IDENTIFIED BY id-as-mrse-88
+--}
+
+--MessageRetrievalPDUs88 ::= ROS-SingleAS{{MSInvokeIds}, retrieval-88}
+
+-- Remote Operations
+op-ms-submission-control Code ::= local:2
+
+op-ms-message-submission Code ::= local:3
+
+op-ms-probe-submission Code ::= local:4
+
+op-ms-cancel-deferred-delivery Code ::= local:7
+
+op-summarize Code ::= local:20
+
+op-list Code ::= local:21
+
+op-fetch Code ::= local:22
+
+op-delete Code ::= local:23
+
+op-register-ms Code ::= local:24
+
+op-alert Code ::= local:25
+
+op-modify Code ::= local:26
+
+-- Remote Errors
+err-attribute-error Code ::= local:21
+
+err-auto-action-request-error Code ::= local:22
+
+err-delete-error Code ::= local:23
+
+err-fetch-restriction-error Code ::= local:24
+
+err-range-error Code ::= local:25 -- 1988 Application Contexts only
+
+err-ub-security-error Code ::= local:26 -- Renamed to avoid duplicate in MTSAccessProtocol.asn
+
+err-service-error Code ::= local:27
+
+err-sequence-number-error Code ::= local:28
+
+err-invalid-parameters-error Code ::= local:29
+
+err-message-group-error Code ::= local:30
+
+err-ms-extension-error Code ::= local:31
+
+err-register-ms-error Code ::= local:32
+
+err-modify-error Code ::= local:33
+
+err-entry-class-error Code ::= local:34
+
+END -- of MSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn b/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn
new file mode 100644
index 00000000..960270e2
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSGeneralAttributeTypes.asn
@@ -0,0 +1,832 @@
+-- Module MSGeneralAttributeTypes (X.413:06/1999)
+MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- X413ATTRIBUTE information object class
+ X413ATTRIBUTE,
+ -- MS abstract-service data-types
+ AutoActionError, AutoActionType, CreationTime, EntryClassErrorParameter,
+ EntryType, MessageGroupName, MessageGroupErrorParameter, MS-EIT,
+ MSExtensionErrorParameter, RetrievalStatus, SequenceNumber,
+ ServiceErrorParameter
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- General-attribute-type Object Identifiers
+ id-att-ac-correlated-report-list, id-att-ac-report-subject-entry,
+ id-att-ac-report-summary, id-att-ac-uncorrelated-report-list,
+ id-att-auto-action-error, id-att-auto-action-registration-identifier,
+ id-att-auto-action-subject-entry, id-att-auto-action-type,
+ id-att-certificate-selectors, id-att-child-sequence-numbers,
+ id-att-content, id-att-content-confidentiality-algorithm-identifier,
+ id-att-content-correlator, id-att-content-identifier,
+ id-att-content-integrity-check, id-att-content-length,
+ id-att-content-returned, id-att-content-type,
+ id-att-conversion-with-loss-prohibited, id-att-converted-EITs,
+ id-att-creation-time, id-att-deferred-delivery-cancellation-time,
+ id-att-deferred-delivery-time, id-att-deletion-time, id-att-delivered-EITs,
+ id-att-delivery-flags, id-att-dl-exempted-recipients,
+ id-att-dl-expansion-history, id-att-dl-expansion-prohibited,
+ id-att-entry-type, id-att-internal-trace-information,
+ id-att-latest-delivery-time, id-att-locally-originated,
+ id-att-marked-for-deletion, id-att-message-delivery-envelope,
+ id-att-message-delivery-time, id-att-message-group-name,
+ id-att-message-identifier, id-att-message-notes,
+ id-att-message-origin-authentication-check, id-att-message-security-label,
+ id-att-message-submission-envelope, id-att-message-submission-time,
+ id-att-message-token, id-att-ms-originated, id-att-ms-submission-error,
+ id-att-multiple-originator-certificates, id-att-original-EITs,
+ id-att-originally-intended-recipient-name,
+ id-att-originating-MTA-certificate, id-att-originator-certificate,
+ id-att-originator-name, id-att-originator-report-request,
+ id-att-originator-return-address, id-att-other-recipient-names,
+ id-att-parent-sequence-number, id-att-per-message-indicators,
+ id-att-per-recipient-message-submission-fields,
+ id-att-per-recipient-probe-submission-fields,
+ id-att-per-recipient-report-delivery-fields, id-att-priority,
+ id-att-probe-origin-authentication-check, id-att-probe-submission-envelope,
+ id-att-proof-of-delivery-request, id-att-proof-of-submission,
+ id-att-recipient-certificate, id-att-recipient-names,
+ id-att-recipient-reassignment-prohibited, id-att-redirection-history,
+ id-att-report-delivery-envelope, id-att-reporting-DL-name,
+ id-att-reporting-MTA-certificate,
+ id-att-report-origin-authentication-check, id-att-retrieval-status,
+ id-att-security-classification, id-att-sequence-number,
+ id-att-signature-verification-status, id-att-storage-period,
+ id-att-storage-time, id-att-subject-submission-identifier,
+ id-att-this-recipient-name, id-att-trace-information
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Message Store matching-rules
+ bitStringMatch, contentCorrelatorMatch, contentIdentifierMatch,
+ mSSingleSubstringListElementsMatch, mSSingleSubstringListMatch,
+ mSSingleSubstringMatch, mSSubstringsMatch, mSStringCaseSensitiveMatch,
+ mSStringListElementsMatch, mSStringListMatch, mSStringMatch,
+ mSStringOrderingMatch, mTSIdentifierMatch, oRAddressElementsMatch,
+ oRAddressMatch, oRAddressSubstringElementsMatch, oRNameElementsMatch,
+ oRNameMatch, oRNameSingleElementMatch, oRNameSubstringElementsMatch,
+ redirectionOrDLExpansionElementsMatch, redirectionOrDLExpansionMatch,
+ redirectionOrDLExpansionSingleElementMatch,
+ redirectionOrDLExpansionSubstringElementsMatch, redirectionReasonMatch,
+ valueCountMatch
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-entry-types, ub-message-notes-length
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service data-types
+ CertificateSelectors, Content, ContentCorrelator, ContentIdentifier,
+ ContentIntegrityCheck, ContentLength, ConversionWithLossProhibited,
+ DeferredDeliveryTime, DeliveryFlags, DLExpansion, DLExpansionProhibited,
+ ExtendedCertificates, ImproperlySpecifiedRecipients, LatestDeliveryTime,
+ MessageDeliveryEnvelope, MessageDeliveryTime,
+ MessageOriginAuthenticationCheck, MessageSecurityLabel,
+ MessageSubmissionEnvelope, MessageSubmissionTime, MessageToken,
+ MTSIdentifier, OriginatingMTACertificate, OriginatorCertificate,
+ OriginatorReportRequest, OriginatorReturnAddress, ORName,
+ PerMessageIndicators, PerRecipientMessageSubmissionFields,
+ PerRecipientProbeSubmissionFields, PerRecipientReportDeliveryFields,
+ Priority, ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope,
+ ProofOfDeliveryRequest, ProofOfSubmission, RecipientReassignmentProhibited,
+ Redirection, ReportDeliveryEnvelope, ReportingDLName,
+ ReportingMTACertificate, ReportOriginAuthenticationCheck,
+ SecurityClassification, SecurityProblem, SubjectSubmissionIdentifier
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service upper bound
+ ub-recipients
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MTA abstract-service data-types
+ InternalTraceInformationElement, TraceInformationElement
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- Directory matching-rules
+ booleanMatch, integerMatch, integerOrderingMatch, uTCTimeMatch,
+ uTCTimeOrderingMatch
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ objectIdentifierMatch
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Authentication-service data-types
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- X413ATTRIBUTE table
+AttributeTable X413ATTRIBUTE ::=
+ {GeneralAttributes | ContentSpecificAttributes}
+
+GeneralAttributes X413ATTRIBUTE ::=
+ {ms-child-sequence-numbers | mt-content |
+ mt-content-confidentiality-algorithm-identifier | mt-content-correlator |
+ mt-content-identifier | mt-content-integrity-check | ms-content-length |
+ ms-content-returned | mt-content-type | mt-conversion-with-loss-prohibited |
+ mt-converted-EITs | ms-creation-time | ms-delivered-EITs | mt-delivery-flags
+ | mt-dl-expansion-history | ms-entry-type | mt-message-delivery-envelope |
+ mt-message-delivery-time | mt-message-identifier |
+ mt-message-origin-authentication-check | mt-message-security-label |
+ mt-message-submission-time | mt-message-token | mt-original-EITs |
+ mt-originally-intended-recipient-name | mt-originator-certificate |
+ mt-originator-name | mt-other-recipient-names | ms-parent-sequence-number |
+ mt-per-recipient-report-delivery-fields | mt-priority |
+ mt-proof-of-delivery-request | mt-redirection-history |
+ mt-report-delivery-envelope | mt-reporting-DL-name |
+ mt-reporting-MTA-certificate | mt-report-origin-authentication-check |
+ ms-retrieval-status | mt-security-classification | ms-sequence-number |
+ mt-subject-submission-identifier | mt-this-recipient-name,
+ ... -- 1994 extension additions --, ms-ac-correlated-report-list |
+ ms-ac-report-subject-entry | ms-ac-report-summary |
+ ms-ac-uncorrelated-report-list | ms-auto-action-error |
+ ms-auto-action-registration-identifier | ms-auto-action-subject-entry |
+ ms-auto-action-type | mt-certificate-selectors |
+ ms-deferred-delivery-cancellation-time | mt-deferred-delivery-time |
+ ms-deletion-time | mt-dl-exempted-recipients | mt-dl-expansion-prohibited |
+ mt-internal-trace-information | mt-latest-delivery-time |
+ ms-locally-originated | ms-marked-for-deletion | ms-message-group-name |
+ ms-message-notes | mt-message-submission-envelope |
+ mt-multiple-originator-certificates | ms-originated | ms-submission-error |
+ mt-originating-MTA-certificate | mt-originator-report-request |
+ mt-originator-return-address | mt-per-message-indicators |
+ mt-per-recipient-message-submission-fields |
+ mt-per-recipient-probe-submission-fields |
+ mt-probe-origin-authentication-check | mt-probe-submission-envelope |
+ mt-proof-of-submission | mt-recipient-certificate | ms-recipient-names |
+ mt-recipient-reassignment-prohibited | ms-signature-verification-status |
+ ms-storage-period | ms-storage-time | mt-trace-information}
+
+--ContentSpecificAttributes X413ATTRIBUTE ::=
+-- {...}
+
+-- Attribute-types
+--ms-ac-correlated-report-list X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportLocation,
+-- NUMERATION multi-valued,
+-- ID id-att-ac-correlated-report-list
+--}
+
+ReportLocation ::= CHOICE {
+ no-correlated-reports [0] NULL,
+ location [1] SEQUENCE OF PerRecipientReport
+}
+
+PerRecipientReport ::= SEQUENCE {
+ report-entry [0] SequenceNumber,
+ position [1] INTEGER(1..ub-recipients) DEFAULT 1
+}
+
+--ms-ac-report-subject-entry X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SequenceNumber,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-ac-report-subject-entry
+--}
+
+--ms-ac-report-summary X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportSummary,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION multi-valued,
+-- ID id-att-ac-report-summary
+--}
+
+ReportSummary ::= ENUMERATED {
+ no-report-requested(0) -- non-delivery report suppressed --,
+ no-report-received(1) -- non-delivery report requested --,
+ report-outstanding(2) -- delivery report requested --, delivery-cancelled(3),
+ delivery-report-from-another-recipient(4),
+ non-delivery-report-from-another-recipient(5),
+ delivery-report-from-intended-recipient(6),
+ non-delivery-report-from-intended-recipient(7)}
+
+--ms-ac-uncorrelated-report-list X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX PerRecipientReport,
+-- NUMERATION multi-valued,
+-- ID id-att-ac-uncorrelated-report-list
+--}
+
+--ms-auto-action-error X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX AutoActionError,
+-- NUMERATION single-valued,
+-- ID id-att-auto-action-error
+--}
+
+--ms-auto-action-registration-identifier X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX INTEGER,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-auto-action-registration-identifier
+--}
+
+--ms-auto-action-subject-entry X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SequenceNumber,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-auto-action-subject-entry
+--}
+
+--ms-auto-action-type X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX AutoActionType,
+-- EQUALITY MATCHING-RULE objectIdentifierMatch,
+-- NUMERATION single-valued,
+-- ID id-att-auto-action-type
+--}
+
+--mt-certificate-selectors X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX CertificateSelectors,
+-- NUMERATION single-valued,
+-- ID id-att-certificate-selectors
+--}
+
+--ms-child-sequence-numbers X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SequenceNumber,
+-- NUMERATION multi-valued,
+-- ID id-att-child-sequence-numbers
+--}
+
+--mt-content X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX Content,
+-- NUMERATION single-valued,
+-- ID id-att-content
+--}
+
+--mt-content-confidentiality-algorithm-identifier X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX AlgorithmIdentifier,
+-- NUMERATION single-valued,
+-- ID id-att-content-confidentiality-algorithm-identifier
+--}
+
+--mt-content-correlator X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ContentCorrelator,
+-- EQUALITY MATCHING-RULE contentCorrelatorMatch,
+-- NUMERATION single-valued,
+-- ID id-att-content-correlator
+--}
+
+--mt-content-identifier X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ContentIdentifier,
+-- EQUALITY MATCHING-RULE contentIdentifierMatch,
+-- NUMERATION single-valued,
+-- ID id-att-content-identifier
+--}
+
+--mt-content-integrity-check X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ContentIntegrityCheck,
+-- NUMERATION single-valued,
+-- ID id-att-content-integrity-check
+--}
+
+--ms-content-length X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ContentLength,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-content-length
+--}
+
+--ms-content-returned X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX BOOLEAN,
+-- EQUALITY MATCHING-RULE booleanMatch,
+-- NUMERATION single-valued,
+-- ID id-att-content-returned
+--}
+
+--mt-content-type X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+-- EQUALITY MATCHING-RULE objectIdentifierMatch,
+-- NUMERATION single-valued,
+-- ID id-att-content-type
+--}
+
+--mt-conversion-with-loss-prohibited X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ConversionWithLossProhibited,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- NUMERATION single-valued,
+-- ID id-att-conversion-with-loss-prohibited
+--}
+
+--mt-converted-EITs X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MS-EIT,
+-- EQUALITY MATCHING-RULE objectIdentifierMatch,
+-- NUMERATION multi-valued,
+-- ID id-att-converted-EITs
+--}
+
+--ms-creation-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX CreationTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-creation-time
+--}
+
+--ms-deferred-delivery-cancellation-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DeferredDeliveryCancellationTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-deferred-delivery-cancellation-time
+--}
+
+DeferredDeliveryCancellationTime ::= UTCTime
+
+--mt-deferred-delivery-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DeferredDeliveryTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-deferred-delivery-time
+--}
+
+--ms-deletion-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DeletionTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-deletion-time
+--}
+
+DeletionTime ::= UTCTime
+
+--ms-delivered-EITs X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MS-EIT,
+-- EQUALITY MATCHING-RULE objectIdentifierMatch,
+-- NUMERATION multi-valued,
+-- ID id-att-delivered-EITs
+--}
+
+--mt-delivery-flags X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DeliveryFlags,
+-- EQUALITY MATCHING-RULE bitStringMatch,
+-- NUMERATION single-valued,
+-- ID id-att-delivery-flags
+--}
+
+--mt-dl-exempted-recipients X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION multi-valued,
+-- ID id-att-dl-exempted-recipients
+--}
+
+--mt-dl-expansion-history X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DLExpansion,
+-- OTHER MATCHING-RULES
+-- {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+-- redirectionOrDLExpansionSubstringElementsMatch |
+-- redirectionOrDLExpansionSingleElementMatch, ...},
+-- NUMERATION multi-valued,
+-- ID id-att-dl-expansion-history
+--}
+
+--mt-dl-expansion-prohibited X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX DLExpansionProhibited,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- NUMERATION single-valued,
+-- ID id-att-dl-expansion-prohibited
+--}
+
+--ms-entry-type X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX EntryType,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE
+-- integerOrderingMatch, - - rule not defined in 1988 Application Contexts
+--
+-- NUMERATION single-valued,
+-- ID id-att-entry-type
+--}
+
+--mt-internal-trace-information X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX InternalTraceInformationElement,
+-- NUMERATION multi-valued,
+-- ID id-att-internal-trace-information
+--}
+
+--mt-latest-delivery-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX LatestDeliveryTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-latest-delivery-time
+--}
+
+--ms-locally-originated X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX NULL,
+-- NUMERATION single-valued,
+-- ID id-att-locally-originated
+--}
+
+--ms-marked-for-deletion X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX NULL,
+-- NUMERATION single-valued,
+-- ID id-att-marked-for-deletion
+--}
+
+--mt-message-delivery-envelope X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageDeliveryEnvelope,
+-- NUMERATION single-valued,
+-- ID id-att-message-delivery-envelope
+--}
+
+--mt-message-delivery-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageDeliveryTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-message-delivery-time
+--}
+
+--ms-message-group-name X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageGroupName,
+-- EQUALITY MATCHING-RULE mSStringListMatch,
+-- OTHER MATCHING-RULES
+-- {mSSingleSubstringListMatch | mSStringListElementsMatch |
+-- mSSingleSubstringListElementsMatch | valueCountMatch, ...},
+-- NUMERATION multi-valued,
+-- ID id-att-message-group-name
+--}
+
+--mt-message-identifier X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MTSIdentifier,
+-- EQUALITY MATCHING-RULE
+-- mTSIdentifierMatch, - - rule not defined in 1988 Application Contexts
+--
+-- NUMERATION single-valued,
+-- ID id-att-message-identifier
+--}
+
+--ms-message-notes X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX GeneralString(SIZE (1..ub-message-notes-length)),
+-- EQUALITY MATCHING-RULE mSStringMatch,
+-- SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+-- NUMERATION multi-valued,
+-- ID id-att-message-notes
+--}
+
+--mt-message-origin-authentication-check X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageOriginAuthenticationCheck,
+-- NUMERATION single-valued,
+-- ID id-att-message-origin-authentication-check
+--}
+
+--mt-message-security-label X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageSecurityLabel,
+-- NUMERATION single-valued,
+-- ID id-att-message-security-label
+--}
+
+--mt-message-submission-envelope X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageSubmissionEnvelope,
+-- NUMERATION single-valued,
+-- ID id-att-message-submission-envelope
+--}
+
+--mt-message-submission-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageSubmissionTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-message-submission-time
+--}
+
+--mt-message-token X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MessageToken,
+-- NUMERATION single-valued,
+-- ID id-att-message-token
+--}
+
+--ms-originated X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX NULL,
+-- NUMERATION single-valued,
+-- ID id-att-ms-originated
+--}
+
+--ms-submission-error X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SubmissionError,
+-- NUMERATION single-valued,
+-- ID id-att-ms-submission-error
+--}
+
+SubmissionError ::= CHOICE {
+ submission-control-violated [1] NULL,
+ originator-invalid [2] NULL,
+ recipient-improperly-specified [3] ImproperlySpecifiedRecipients,
+ element-of-service-not-subscribed [4] NULL,
+ inconsistent-request [11] NULL,
+ security-error [12] SecurityProblem,
+ unsupported-critical-function [13] NULL,
+ remote-bind-error [15] NULL,
+ service-error [27] ServiceErrorParameter,
+ message-group-error [30] MessageGroupErrorParameter,
+ ms-extension-error [31] MSExtensionErrorParameter,
+ entry-class-error [34] EntryClassErrorParameter
+}
+
+--mt-multiple-originator-certificates X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+-- NUMERATION single-valued,
+-- ID id-att-multiple-originator-certificates
+--}
+
+--mt-original-EITs X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX MS-EIT,
+-- EQUALITY MATCHING-RULE objectIdentifierMatch,
+-- NUMERATION multi-valued,
+-- ID id-att-original-EITs
+--}
+
+--mt-originally-intended-recipient-name X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION single-valued,
+-- ID id-att-originally-intended-recipient-name
+--}
+
+--mt-originating-MTA-certificate X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX OriginatingMTACertificate,
+-- NUMERATION single-valued,
+-- ID id-att-originating-MTA-certificate
+--}
+
+--mt-originator-certificate X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX OriginatorCertificate,
+-- NUMERATION single-valued,
+-- ID id-att-originator-certificate
+--}
+
+--mt-originator-name X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION single-valued,
+-- ID id-att-originator-name
+--}
+
+--mt-originator-report-request X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX OriginatorReportRequest,
+-- NUMERATION multi-valued,
+-- ID id-att-originator-report-request
+--}
+
+--mt-originator-return-address X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX OriginatorReturnAddress,
+-- NUMERATION single-valued,
+-- ID id-att-originator-return-address
+--}
+
+--mt-other-recipient-names X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION multi-valued,
+-- ID id-att-other-recipient-names
+--}
+
+--ms-parent-sequence-number X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SequenceNumber,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-parent-sequence-number
+--}
+
+--mt-per-message-indicators X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX PerMessageIndicators,
+-- EQUALITY MATCHING-RULE bitStringMatch,
+-- NUMERATION single-valued,
+-- ID id-att-per-message-indicators
+--}
+
+--mt-per-recipient-message-submission-fields X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX PerRecipientMessageSubmissionFields,
+-- NUMERATION multi-valued,
+-- ID id-att-per-recipient-message-submission-fields
+--}
+
+--mt-per-recipient-probe-submission-fields X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX PerRecipientProbeSubmissionFields,
+-- NUMERATION multi-valued,
+-- ID id-att-per-recipient-probe-submission-fields
+--}
+
+--mt-per-recipient-report-delivery-fields X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX PerRecipientReportDeliveryFields,
+-- NUMERATION multi-valued,
+-- ID id-att-per-recipient-report-delivery-fields
+--}
+
+--mt-priority X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX Priority,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE
+-- integerOrderingMatch, - - rule not defined in 1988 Application Contexts
+--
+-- NUMERATION single-valued,
+-- ID id-att-priority
+--}
+
+--mt-probe-origin-authentication-check X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ProbeOriginAuthenticationCheck,
+-- NUMERATION single-valued,
+-- ID id-att-probe-origin-authentication-check
+--}
+
+--mt-probe-submission-envelope X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ProbeSubmissionEnvelope,
+-- NUMERATION single-valued,
+-- ID id-att-probe-submission-envelope
+--}
+
+--mt-proof-of-delivery-request X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ProofOfDeliveryRequest,
+-- EQUALITY MATCHING-RULE
+-- integerMatch, - - rule not defined in 1988 Application Contexts
+--
+-- NUMERATION single-valued,
+-- ID id-att-proof-of-delivery-request
+--}
+
+--mt-proof-of-submission X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ProofOfSubmission,
+-- NUMERATION single-valued,
+-- ID id-att-proof-of-submission
+--}
+
+--mt-recipient-certificate X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+-- NUMERATION single-valued,
+-- ID id-att-recipient-certificate
+--}
+
+--ms-recipient-names X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION multi-valued,
+-- ID id-att-recipient-names
+--}
+
+--mt-recipient-reassignment-prohibited X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX RecipientReassignmentProhibited,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- NUMERATION single-valued,
+-- ID id-att-recipient-reassignment-prohibited
+--}
+
+--mt-redirection-history X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX Redirection,
+-- OTHER MATCHING-RULES
+-- {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+-- redirectionOrDLExpansionSubstringElementsMatch |
+-- redirectionOrDLExpansionSingleElementMatch | redirectionReasonMatch,
+-- ...},
+-- NUMERATION multi-valued,
+-- ID id-att-redirection-history
+--}
+
+--mt-report-delivery-envelope X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportDeliveryEnvelope,
+-- NUMERATION single-valued,
+-- ID id-att-report-delivery-envelope
+--}
+
+--mt-reporting-DL-name X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportingDLName,
+-- EQUALITY MATCHING-RULE
+-- oRNameMatch, - - rule not defined in 1988 Application Contexts
+
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION single-valued,
+-- ID id-att-reporting-DL-name
+--}
+
+--mt-reporting-MTA-certificate X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportingMTACertificate,
+-- NUMERATION single-valued,
+-- ID id-att-reporting-MTA-certificate
+--}
+
+--mt-report-origin-authentication-check X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ReportOriginAuthenticationCheck,
+-- NUMERATION single-valued,
+-- ID id-att-report-origin-authentication-check
+--}
+
+--ms-retrieval-status X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX RetrievalStatus,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- NUMERATION single-valued,
+-- ID id-att-retrieval-status
+--}
+
+--mt-security-classification X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SecurityClassification,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- NUMERATION single-valued,
+-- ID id-att-security-classification
+--}
+
+--ms-sequence-number X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SequenceNumber,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-sequence-number
+--}
+
+--ms-signature-verification-status X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SignatureVerificationStatus,
+-- NUMERATION single-valued,
+-- ID id-att-signature-verification-status
+--}
+
+SignatureVerificationStatus ::= SET {
+ content-integrity-check
+ [0] SignatureStatus DEFAULT signature-absent,
+ message-origin-authentication-check
+ [1] SignatureStatus DEFAULT signature-absent,
+ message-token
+ [2] SignatureStatus DEFAULT signature-absent,
+ report-origin-authentication-check
+ [3] SignatureStatus DEFAULT signature-absent,
+ proof-of-delivery
+ [4] SignatureStatus DEFAULT signature-absent,
+ proof-of-submission
+ [5] SignatureStatus DEFAULT signature-absent
+}
+
+SignatureStatus ::= INTEGER {
+ signature-absent(0), verification-in-progress(1), verification-succeeded(2),
+ verification-not-possible(3), content-converted(4), signature-encrypted(5),
+ algorithm-not-supported(6), certificate-not-obtainable(7),
+ verification-failed(8)}
+
+--ms-storage-period X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX StoragePeriod,
+-- EQUALITY MATCHING-RULE integerMatch,
+-- ORDERING MATCHING-RULE integerOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-storage-period
+--}
+
+StoragePeriod ::= INTEGER -- seconds
+
+--ms-storage-time X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX StorageTime,
+-- EQUALITY MATCHING-RULE uTCTimeMatch,
+-- ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+-- NUMERATION single-valued,
+-- ID id-att-storage-time
+--}
+
+StorageTime ::= UTCTime
+
+--mt-subject-submission-identifier X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX SubjectSubmissionIdentifier,
+-- EQUALITY MATCHING-RULE
+-- mTSIdentifierMatch, - - rule not defined in 1988 Application Contexts
+--
+-- NUMERATION single-valued,
+-- ID id-att-subject-submission-identifier
+--}
+
+--mt-this-recipient-name X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX ORName,
+-- EQUALITY MATCHING-RULE oRNameMatch,
+-- OTHER MATCHING-RULES
+-- {oRNameElementsMatch | oRNameSubstringElementsMatch |
+-- oRNameSingleElementMatch, ...},
+-- NUMERATION single-valued,
+-- ID id-att-this-recipient-name
+--}
+
+--mt-trace-information X413ATTRIBUTE ::= {
+-- WITH ATTRIBUTE-SYNTAX TraceInformationElement,
+-- NUMERATION multi-valued,
+-- ID id-att-trace-information
+--}
+
+END -- of MSGeneralAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/p7/MSUpperBounds.asn b/epan/dissectors/asn1/p7/MSUpperBounds.asn
new file mode 100644
index 00000000..bcd6e858
--- /dev/null
+++ b/epan/dissectors/asn1/p7/MSUpperBounds.asn
@@ -0,0 +1,79 @@
+-- Module MSUpperBounds (X.413:06/1999)
+-- See also ITU-T X.413 (06/1999)
+-- See also the index of all ASN.1 assignments needed in this document
+
+MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-alert-addresses INTEGER ::= 16
+
+ub-attribute-values INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-attributes-supported INTEGER ::= 1024
+
+ub-auto-action-errors INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-auto-actions INTEGER ::= 128
+
+ub-auto-registrations INTEGER ::= 1024
+
+ub-default-registrations INTEGER ::= 1024
+
+ub-entry-classes INTEGER ::= 128
+
+ub-entry-types INTEGER ::= 16
+
+ub-error-reasons INTEGER ::= 16
+
+ub-extensions INTEGER ::= 32
+
+ub-group-depth INTEGER ::= 64
+
+ub-group-descriptor-length INTEGER ::= 256
+
+ub-group-part-length INTEGER ::= 128
+
+ub-information-bases INTEGER ::= 16
+
+ub-matching-rules INTEGER ::= 1024
+
+ub-message-groups INTEGER ::= 8192
+
+ub-message-notes-length INTEGER ::= 1024
+
+ub-messages INTEGER ::= 2147483647 -- (231 - 1) the largest integer
+
+-- representable in 32 bits
+ub-modifications INTEGER ::=
+ 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-msstring-match INTEGER ::= 512
+
+ub-per-auto-action INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-per-entry INTEGER ::= 1024
+
+ub-service-information-length INTEGER ::= 2048
+
+ub-summaries INTEGER ::= 16
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-ua-registration-identifier-length INTEGER ::= 32
+
+ub-ua-registrations INTEGER ::= 128
+
+ub-ua-restrictions INTEGER ::= 16 -- renamed to avoid duplicate in MTSUpperBounds
+
+END -- of MSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/epan/dissectors/asn1/p7/p7.cnf b/epan/dissectors/asn1/p7/p7.cnf
new file mode 100644
index 00000000..2fe5f0ba
--- /dev/null
+++ b/epan/dissectors/asn1/p7/p7.cnf
@@ -0,0 +1,422 @@
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../ros/ros-exp.cnf
+#.IMPORT ../rtse/rtse-exp.cnf
+
+#.MODULE
+Reliable-Transfer-APDU rtse
+
+#.EXPORTS
+SequenceNumber
+SignatureStatus
+#.END
+
+# 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 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 MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&associationContract ClassReference CONTRACT
+&associationRealization
+&transferRealization
+&AbstractSyntaxes ClassReference ABSTRACT-SYNTAX
+&applicationContextName ObjectIdentifierType
+#.END
+
+#.TYPE_RENAME
+
+PAR-fetch-restriction-error/problems FetchRestrictionProblems
+PAR-sequence-number-error/problems SequenceNumberProblems
+PAR-attribute-error/problems AttributeProblems
+PAR-auto-action-request-error/problems AutoActionRequestProblems
+PAR-delete-error/problems DeleteProblems
+
+PAR-fetch-restriction-error/problems/_item FetchRestrictionProblemItem
+PAR-sequence-number-error/problems/_item SequenceNumberProblemItem
+PAR-attribute-error/problems/_item AttributeProblemItem
+PAR-auto-action-request-error/problems/_item AutoActionRequestProblemItem
+PAR-delete-error/problems/_item DeleteProblemItem
+
+Attribute/attribute-values AttributeValues
+OrderedAttribute/attribute-values OrderedAttributeValues
+
+Attribute/attribute-values/_item AttributeItem
+OrderedAttribute/attribute-values/_item OrderedAttributeItem
+
+Summary/present/_item/value SummaryPresentItemValue
+OrderedAttribute/attribute-values/_item/value OrderedAttributeValue
+
+#.FIELD_RENAME
+
+PAR-sequence-number-error/problems/_item/problem sequence-number-problem
+PAR-register-ms-error/problem register-ms-problem
+PAR-delete-error/problems/_item/problem delete-problem
+PAR-auto-action-request-error/problems/_item/problem auto-action-request-problem
+PAR-attribute-error/problems/_item/problem attribute-problem
+
+PAR-sequence-number-error/problems sequence-number-problems
+PAR-fetch-restriction-error/problems fetch-restriction-problems
+PAR-attribute-error/problems attribute-problems
+PAR-auto-action-request-error/problems auto-action-request-problems
+PAR-delete-error/problems delete-problems
+
+PAR-fetch-restriction-error/problems/_item fetch-restriction-problem-item
+PAR-sequence-number-error/problems/_item sequence-number-problem-item
+PAR-attribute-error/problems/_item attribute-problem-item
+PAR-auto-action-request-error/problems/_item auto-action-request-problem-item
+PAR-delete-error/problems/_item delete-problem-item
+
+OrderedAttribute/attribute-values ordered-attribute-values
+OrderedAttribute/attribute-values/_item ordered-attribute-values-item
+OrderedAttribute/attribute-values/_item/position ordered-position
+
+Summary/present/_item/count summary-count
+AttributeSelection/count selection-count
+
+DeleteResult/delete-result-94/entries-deleted entries-deleted-94
+
+Register-MSArgument/change-credentials/old-credentials register-old-credentials
+
+Register-MSResult/registered-information/fetch-attribute-defaults registered-fetch-attribute-defaults
+Register-MSResult/registered-information/list-attribute-defaults registered-list-attribute-defaults
+Register-MSResult/registered-information/message-group-registrations registered-message-group-registrations
+
+TimeRange/from from-time
+NumberRange/from from-number
+
+TimeRange/to to-time
+NumberRange/to to-number
+
+Filter/item filter-item
+
+Summary/present summary-present
+
+PAR-fetch-restriction-error/problems/_item/problem fetch-restriction-problem
+PAR-range-error/problem range-problem
+EntryClassErrorParameter/problem entry-class-problem
+MessageGroupErrorParameter/problem message-group-problem
+ServiceErrorParameter/problem service-problem
+ModifyErrorParameter/problem modify-problem
+
+OrderedAttribute/attribute-values/_item/value ordered-attribute-value
+
+PAR-fetch-restriction-error/problems/_item/restriction/content-type extended-content-type
+PAR-auto-action-request-error/problems/_item/type auto-action-type
+PAR-attribute-error/problems/_item/value attr-value
+
+#.FIELD_ATTR
+TimeRange/from ABBREV=timeRange.time
+NumberRange/from ABBREV=numberRange.number
+TimeRange/to ABBREV=timeRange.to
+NumberRange/to ABBREV=NumberRange.to
+Summary/present ABBREV=summary.present
+PAR-fetch-restriction-error/problems/_item/restriction/content-type ABBREV=extended-content-type
+PAR-fetch-restriction-error/problems/_item/problem ABBREV=fetch-restriction-problem
+PAR-range-error/problem ABBREV=pAR-range-error.problem
+EntryClassErrorParameter/problem ABBREV=entryClassErrorParameter.problem
+MessageGroupErrorParameter/problem ABBREV=messageGroupErrorParameter.group-problem
+ServiceErrorParameter/problem ABBREV=serviceErrorParameter.problem
+ModifyErrorParameter/problem ABBREV=modifyErrorParameter.problem
+
+# This table creates the value_sting to name P7 operation codes and errors
+# in file packet-p7-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* P7 ABSTRACT-OPERATIONS */
+const value_string p7_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* P7 ERRORS */
+static const value_string p7_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 p7_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (dissector_t)(-1), (dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t p7_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (dissector_t)(-1) },
+};
+#.END
+
+#.PDU
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
+#.REGISTER
+# MSGeneralAttributeTypes
+ReportLocation B "2.6.4.3.42" "id-att-ac-correlated-report-list"
+SequenceNumber B "2.6.4.3.76" "id-att-ac-report-subject-entry"
+ReportSummary B "2.6.4.3.43" "id-att-ac-report-summary"
+PerRecipientReport B "2.6.4.3.44" "id-att-ac-uncorrelated-report-list"
+AutoActionError B "2.6.4.3.46" "id-att-auto-action-error"
+#Integer B "2.6.4.3.47" "id-att-auto-action-registration-identifier" - see XXX
+SequenceNumber B "2.6.4.3.48" "id-att-auto-action-subject-entry"
+AutoActionType B "2.6.4.3.49" "id-att-auto-action-type"
+#CertificateSelectors B "2.6.4.3.80" "id-att-certificate-selectors" - see p1.cnf
+SequenceNumber B "2.6.4.3.0" "id-att-child-sequence-numbers"
+#Content B "2.6.4.3.1" "id-att-content" - see XXX
+#AlgorithmIdentifier B "2.6.4.3.2" "id-att-content-confidentiality-algorithm-identifier" - see XXX
+#ContentCorrelator B "2.6.4.3.3" "id-att-content-correlator" - see p1.cnf
+#ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier" - see p1.cnf
+#ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check" - see p1.cnf
+#ContentLength B "2.6.4.3.6" "id-att-content-length" - see p1.cnf
+#Boolean B "2.6.4.3.7" "id-att-content-returned" - see XXX
+#ExtendedContentType B "2.6.4.3.8" "id-att-content-type" - see p1.cnf
+#ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited" - see p1.cnf
+MS-EIT B "2.6.4.3.10" "id-att-converted-EITs"
+CreationTime B "2.6.4.3.11" "id-att-creation-time"
+DeferredDeliveryCancellationTime B "2.6.4.3.50" "id-att-deferred-delivery-cancellation-time"
+#DeferredDeliveryTime B "2.6.4.3.51" "id-att-deferred-delivery-time" - see p1.cnf
+DeletionTime B "2.6.4.3.52" "id-att-deletion-time"
+MS-EIT B "2.6.4.3.12" "id-att-delivered-EITs"
+#DeliveryFlags B "2.6.4.3.13" "id-att-delivery-flags" - see p1.cnf
+#ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients" - see p1.cnf
+#DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history" - see p1.cnf
+#DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited" - see p1.cnf
+EntryType B "2.6.4.3.16" "id-att-entry-type"
+#InternalTraceInformationElement B "2.6.4.3.54" "id-att-internal-trace-information" - see p1.cnf
+#LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time" - see p1.cnf
+#NULL B "2.6.4.3.77" "id-att-locally-originated - see XXX
+#NULL B "2.6.4.3.56" "id-att-marked-for-deletion" - see XXX
+#MessageDeliveryEnvelope B "2.6.4.3.18" "id-att-message-delivery-envelope" - see p1.cnf
+#MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time" - see p1.cnf
+MessageGroupName B "2.6.4.3.57" "id-att-message-group-name"
+#MTSIdentifier B "2.6.4.3.19" "id-att-message-identifier" - see p1.cnf
+#GeneralString B "2.6.4.3.58" "id-att-message-notes" - see XXX
+#MessageOriginAuthenticationCheck B "2.6.4.3.21" "id-at-message-orgin-authentication-check" - see p1.cnf
+#MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label" - see p1.cnf
+#MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope" - see p1.cnf
+#MessageSubmissionTime B "2.6.4.3.23" "id-att-message-submission-time"
+#MessageToken B "2.6.4.3.24" "id-att-message-token"
+#NULL B "2.6.4.3.60" "id-att-ms-originated"
+SubmissionError B "2.6.4.3.61" "id-att-ms-submission-error"
+#ExtendedCertificates B "2.6.4.3.81" "id-att-multiple-originator-certificates" - see p1.cnf
+MS-EIT B "2.6.4.3.25" "id-att-original-EITs"
+#ORName B "2.6.4.3.17" "id-att-originally-intended-recipient-name" - see p1.cnf
+#OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate" - see p1.cnf
+#OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate" - see p1.cnf
+#ORName B "2.6.4.3.27" "id-att-originator-name" - see p1.cnf
+#OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request" - see p1.cnf
+#OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address" - see p1.cnf
+#ORName B "2.6.4.3.28" "id-att-other-recipient-names" - see p1.cnf
+SequenceNumber B "2.6.4.3.29" "id-att-parent-sequence-number"
+#PerMessageIndicators B "2.6.4.3.65" "id-att-per-message-indicators" - see p1.cnf
+#PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields" - see p1.cnf
+#PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields" - see p1.cnf
+#PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields" - see p1.cnf
+#Priority B "2.6.4.3.31" "id-att-priority" - see p1.cnf
+#ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check" - see p1.cnf
+#ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope" - see p1.cnf
+#ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request" - see p1.cnf
+#ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission" - see p1.cnf
+#ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate" - see p1.cnf
+#ORName B "2.6.4.3.71" "id-att-recipient-names" - see p1.cnf
+#RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited" - see p1.cnf
+#Redirection B "2.6.4.3.33" "id-at-redirection-history" - see p1.cnf
+#ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope" - see p1.cnf
+#ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name" - see p1.cnf
+#ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate" - see p1.cnf
+#ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check" - see p1.cnf
+RetrievalStatus B "2.6.4.3.15" "id-att-retrieval-status"
+#SecurityClassification B "2.6.4.3.38" "id-att-security-classification" - see p1.cnf
+SequenceNumber B "2.6.4.3.39" "id-att-sequence-number"
+SignatureVerificationStatus B "2.6.4.3.79" "id-att-signature-verification-status"
+StoragePeriod B "2.6.4.3.73" "id-att-storage-period"
+StorageTime B "2.6.4.3.74" "id-att-storage-time"
+#SubjectSubmissionIdentifier B "2.6.4.3.40" "id-att-subject-submission-identifier" - see p1.cnf
+#ORName B "2.6.4.3.41" "id-att-this-recipient-name" - see p1.cnf
+#TraceInformationElement B "2.6.4.3.75" "id-att-trace-information" - see p1.cnf
+
+#MSExtensions
+ChangeCredentialsAlgorithms B "2.6.4.9.5" "id-ext-protected-change-credentials-capability"
+OriginatorToken B "2.6.4.9.3" "id-ext-originator-token"
+ProtectedChangeCredentials B "2.6.4.9.4" "id-ext-protected-change-credentials"
+
+RTSE-apdus B "2.6.0.2.10""id-as-ms-rtse"
+
+#.FN_PARS AttributeType FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY Attribute/attribute-values/_item
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY AttributeValueAssertion/attribute-value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/initial
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/any
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY FilterItem/substrings/strings/_item/final
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY MatchingRuleAssertion/match-value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY Summary/present/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY OrderedAttribute/attribute-values/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_PARS AutoActionType FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
+
+#.FN_BODY AutoActionRegistration/registration-parameter
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+
+#.FN_BODY AutoActionError/error-code
+ /* XXX: Is this really the best way to do this? */
+ offset = dissect_ros_Code(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+#.FN_BODY RegistrationTypes/extended-registrations/_item
+ /* XXX: Is this really the best way to do this? */
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
+
+#.FN_BODY RTABapdu/userdataAB
+ offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+#.END
+
+#.FN_BODY AutoActionError/error-parameter
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+#.FN_BODY PAR-attribute-error/problems/_item/value
+ if(actx->external.direct_reference)
+ call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
+
+
+#.FN_BODY MSBindArgument/initiator-name
+ const char *ora = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if ((ora = p1_get_last_oraddress(actx))) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (initiator=%%s)", ora);
+ }
+
+#.FN_PARS SequenceNumber VAL_PTR = &seqno
+
+#.FN_BODY NumberRange
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " (range=");
+ %(DEFAULT_BODY)s
+ col_append_str(actx->pinfo->cinfo, COL_INFO, ")");
+
+#.FN_FTR NumberRange/from
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " from %d", seqno);
+
+#.FN_FTR NumberRange/to
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " to %d", seqno);
+
+#.FN_PARS SummarizeResult/count VAL_PTR = &count
+
+#.FN_BODY SummarizeResult/count
+ int count = 0;
+
+ %(DEFAULT_BODY)s
+
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (count=%%d)", count);
+
+#.FN_BODY MSMessageSubmissionArgument
+ p1_initialize_content_globals (actx, tree, TRUE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
+
+#.FN_BODY EntryInformation
+ p1_initialize_content_globals (actx, NULL, FALSE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
+
+#.FN_BODY EntryModification
+ p1_initialize_content_globals (actx, NULL, FALSE);
+ %(DEFAULT_BODY)s
+ p1_initialize_content_globals (actx, NULL, FALSE);
diff --git a/epan/dissectors/asn1/p7/packet-p7-template.c b/epan/dissectors/asn1/p7/packet-p7-template.c
new file mode 100644
index 00000000..621aa9b0
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.c
@@ -0,0 +1,118 @@
+/* packet-p7.c
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/proto_data.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+#include "packet-p7.h"
+
+#include "packet-p1.h"
+#include <epan/strutil.h>
+
+#define PNAME "X.413 Message Store Service"
+#define PSNAME "P7"
+#define PFNAME "p7"
+
+void proto_register_p7(void);
+void proto_reg_handoff_p7(void);
+
+static int seqno = 0;
+
+/* Initialize the protocol and registered fields */
+static int proto_p7 = -1;
+
+#include "packet-p7-val.h"
+
+#include "packet-p7-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p7 = -1;
+#include "packet-p7-ett.c"
+
+#include "packet-p7-table.c" /* operation and error codes */
+
+#include "packet-p7-fn.c"
+
+#include "packet-p7-table11.c" /* operation argument/result dissectors */
+#include "packet-p7-table21.c" /* error dissector */
+
+static const ros_info_t p7_ros_info = {
+ "P7",
+ &proto_p7,
+ &ett_p7,
+ p7_opr_code_string_vals,
+ p7_opr_tab,
+ p7_err_code_string_vals,
+ p7_err_tab
+};
+
+
+/*--- proto_register_p7 -------------------------------------------*/
+void proto_register_p7(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+#include "packet-p7-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_p7,
+#include "packet-p7-ettarr.c"
+ };
+ module_t *p7_module;
+
+ /* Register protocol */
+ proto_p7 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_p7, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register our configuration options for P7, particularly our port */
+
+ p7_module = prefs_register_protocol_subtree("OSI/X.400", proto_p7, NULL);
+
+ prefs_register_obsolete_preference(p7_module, "tcp.port");
+
+ prefs_register_static_text_preference(p7_module, "tcp_port_info",
+ "The TCP ports used by the P7 protocol should be added to the TPKT preference \"TPKT TCP ports\", or by selecting \"TPKT\" as the \"Transport\" protocol in the \"Decode As\" dialog.",
+ "P7 TCP Port preference moved information");
+}
+
+
+/*--- proto_reg_handoff_p7 --- */
+void proto_reg_handoff_p7(void) {
+
+ #include "packet-p7-dis-tab.c"
+
+ /* APPLICATION CONTEXT */
+
+ oid_add_from_string("id-ac-ms-access","2.6.0.1.11");
+ oid_add_from_string("id-ac-ms-reliable-access","2.6.0.1.12");
+
+ /* ABSTRACT SYNTAXES */
+
+ /* Register P7 with ROS (with no use of RTSE) */
+ register_ros_protocol_info("2.6.0.2.9", &p7_ros_info, 0, "id-as-ms", FALSE);
+ register_ros_protocol_info("2.6.0.2.5", &p7_ros_info, 0, "id-as-mrse", FALSE);
+ register_ros_protocol_info("2.6.0.2.1", &p7_ros_info, 0, "id-as-msse", FALSE);
+}
diff --git a/epan/dissectors/asn1/p7/packet-p7-template.h b/epan/dissectors/asn1/p7/packet-p7-template.h
new file mode 100644
index 00000000..d57bc8dc
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.h
@@ -0,0 +1,17 @@
+/* packet-p7.h
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef PACKET_P7_H
+#define PACKET_P7_H
+
+#include "packet-p7-exp.h"
+
+#endif /* PACKET_P7_H */