aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/p7
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2016-03-09 03:17:51 +0000
committerJoão Valverde <j@v6e.pt>2016-03-13 21:30:24 +0000
commit54a520d4a1151c68d0b4e5f09a8d82466fa499f3 (patch)
tree7aacae160382098ce651ac862a5dfd5de4beff94 /epan/dissectors/asn1/p7
parentc1f3c935bdd33090c87f0d2f84842ce9729b747a (diff)
Move /asn1 to /epan/dissectors
Change-Id: I1208fe3c2ba428995526f561e8f792b8d871e9a9 Reviewed-on: https://code.wireshark.org/review/14388 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'epan/dissectors/asn1/p7')
-rw-r--r--epan/dissectors/asn1/p7/CMakeLists.txt65
-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/Makefile.am23
-rw-r--r--epan/dissectors/asn1/p7/Makefile.common64
-rw-r--r--epan/dissectors/asn1/p7/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/p7/p7.cnf408
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.c156
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.h29
11 files changed, 3063 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/p7/CMakeLists.txt b/epan/dissectors/asn1/p7/CMakeLists.txt
new file mode 100644
index 0000000000..71477eace5
--- /dev/null
+++ b/epan/dissectors/asn1/p7/CMakeLists.txt
@@ -0,0 +1,65 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+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 -L -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 0000000000..5641f3c135
--- /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 0000000000..309a38da5b
--- /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 0000000000..960270e2a5
--- /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 0000000000..bcd6e8587e
--- /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/Makefile.am b/epan/dissectors/asn1/p7/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/p7/Makefile.common b/epan/dissectors/asn1/p7/Makefile.common
new file mode 100644
index 0000000000..fd3cbd195b
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.common
@@ -0,0 +1,64 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME=p7
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MSAbstractService.asn \
+ MSGeneralAttributeTypes.asn \
+ MSAccessProtocol.asn \
+ MSUpperBounds.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS = -b -L -C
+
+EXTRA_CNF = \
+ $(builddir)/../p1/p1-exp.cnf \
+ $(builddir)/../ros/ros-exp.cnf \
+ $(builddir)/../rtse/rtse.cnf
+
+EXPORT_DEPENDS = \
+ $(builddir)/../p1/p1-exp.cnf
+
+$(builddir)/../p1/p1-exp.cnf:
+ (cd $(builddir)/../p1 && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../ros/ros-exp.cnf:
+ (cd $(builddir)/../ros && $(MAKE_CNF_EXPORT))
+
+$(builddir)/../rtse/rtse-exp.cnf:
+ (cd $(builddir)/../rtse && $(MAKE_CNF_EXPORT))
+
diff --git a/epan/dissectors/asn1/p7/Makefile.nmake b/epan/dissectors/asn1/p7/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/p7/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/p7/p7.cnf b/epan/dissectors/asn1/p7/p7.cnf
new file mode 100644
index 0000000000..ab46e42a9d
--- /dev/null
+++ b/epan/dissectors/asn1/p7/p7.cnf
@@ -0,0 +1,408 @@
+#.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
+
+# 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 0000000000..1f56222713
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.c
@@ -0,0 +1,156 @@
+/* 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
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.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 guint global_p7_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static int seqno = 0;
+
+static void prefs_register_p7(void); /* forward declaration for use in preferences registration */
+
+
+/* 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, prefs_register_p7);
+
+ prefs_register_uint_preference(p7_module, "tcp.port", "P7 TCP Port",
+ "Set the port for P7 operations (if other"
+ " than the default of 102)",
+ 10, &global_p7_tcp_port);
+
+}
+
+
+/*--- 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);
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+}
+
+
+static void
+prefs_register_p7(void)
+{
+ static guint tcp_port = 0;
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
+
+ /* Set our port number for future use */
+ tcp_port = global_p7_tcp_port;
+
+ if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
+ dissector_add_uint("tcp.port", global_p7_tcp_port, tpkt_handle);
+
+}
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 0000000000..fd745aef58
--- /dev/null
+++ b/epan/dissectors/asn1/p7/packet-p7-template.h
@@ -0,0 +1,29 @@
+/* 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
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef PACKET_P7_H
+#define PACKET_P7_H
+
+#include "packet-p7-exp.h"
+
+#endif /* PACKET_P7_H */