aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/p7
diff options
context:
space:
mode:
authorGraeme Lunt <graeme.lunt@smhs.co.uk>2007-11-17 18:08:01 +0000
committerGraeme Lunt <graeme.lunt@smhs.co.uk>2007-11-17 18:08:01 +0000
commit0c571bb23573801aca727dd2d49e53ccee640d0d (patch)
tree45639fcf905e52a13b80070a0a6e5bf275e05efb /asn1/p7
parentd2545978d853f8c23ab4ca7daf10dfa0495e0f1a (diff)
Basic P7 (X.400 Message Store Access Protocol) dissection after request from the list:
http://www.wireshark.org/lists/wireshark-dev/200711/msg00228.html Only a single (private) capture file is currently available which contains only a few of the P7 operations, so testing has been minimal. General attribute types, containing information from the X.400 envelope, are also included. svn path=/trunk/; revision=23479
Diffstat (limited to 'asn1/p7')
-rwxr-xr-xasn1/p7/MSAbstractService.asn1113
-rwxr-xr-xasn1/p7/MSGeneralAttributeTypes.asn836
-rw-r--r--asn1/p7/Makefile.am26
-rw-r--r--asn1/p7/Makefile.common58
-rw-r--r--asn1/p7/Makefile.nmake29
-rw-r--r--asn1/p7/p7.cnf298
-rw-r--r--asn1/p7/packet-p7-template.c403
-rwxr-xr-xasn1/p7/packet-p7-template.h31
8 files changed, 2794 insertions, 0 deletions
diff --git a/asn1/p7/MSAbstractService.asn b/asn1/p7/MSAbstractService.asn
new file mode 100755
index 0000000000..7877b0f989
--- /dev/null
+++ b/asn1/p7/MSAbstractService.asn
@@ -0,0 +1,1113 @@
+--
+-- $Id$
+--
+
+-- 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,
+ MessageSubmissionEnvelope, Content, -- COMPONENTS OF MessageSubmissionArgument
+ MessageSubmissionIdentifier, MessageSubmissionTime, ContentIdentifier, ExtensionField, -- COMPONENTS OF MessageSubmissionResult
+ ProbeSubmissionEnvelope, -- COMPONENTS OF ProbeSubmissionArgument (?)
+ ProbeSubmissionIdentifier, ProbeSubmissionTime -- COMPONENTS OF ProbeSubmissionResult
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ 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-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})-- AttributeType,
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+-- X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type}) -- ANY
+}
+
+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})-- AutoActionType,
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1,
+ registration-parameter
+ [1] --AUTO-ACTION.&RegistrationParameter
+ -- ({AutoActionTable}{@auto-action-type}) -- ANY OPTIONAL
+}
+
+-- AUTO-ACTION-ERROR information object class
+--AUTO-ACTION-ERROR ::=
+-- ABSTRACT-ERROR
+
+AutoActionError ::= SET {
+ error-code [0] --AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable})-- OBJECT IDENTIFIER,
+ error-parameter
+ [1] --AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code})
+ ANY OPTIONAL
+}
+
+-- MS-EXTENSION information object class
+--MS-EXTENSION ::= TYPE-IDENTIFIER
+
+MSExtensionItem ::= --INSTANCE OF MS-EXTENSION-- EXTERNAL
+
+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}
+--}
+
+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})-- AutoActionType
+ OPTIONAL,
+ available-attribute-types
+ [4] SET SIZE (1..ub-attributes-supported) OF
+ --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType 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
+MSBindError ::=
+ 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}}
+--}
+
+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})-- AttributeType,
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] --X413ATTRIBUTE.&Type
+ -- ({AttributeTable}{@substrings.type})-- ANY,
+ any
+ [1] --X413ATTRIBUTE.&Type
+ -- ({AttributeTable}{@substrings.type})-- ANY,
+ final
+ [2] --X413ATTRIBUTE.&Type
+ -- ({AttributeTable}{@substrings.type})-- ANY
+ }},
+ greater-or-equal [2] AttributeValueAssertion,
+ less-or-equal [3] AttributeValueAssertion,
+ present [4] --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType,
+ approximate-match [5] AttributeValueAssertion,
+ -- 1994 extension
+ other-match [6] MatchingRuleAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matching-rule [0] --MATCHING-RULE.&id({MatchingRuleTable})-- OBJECT IDENTIFIER,
+ attribute-type [1] --X413ATTRIBUTE.&id-- AttributeType,
+ match-value
+ [2] --MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule})-- ANY
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ attribute-type --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType,
+ attribute-value --X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})-- ANY
+}
+
+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-restrictions))
+
+EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection
+
+AttributeSelection ::= SET {
+ type --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType,
+ 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})-- AttributeType,
+ 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})-- AttributeType
+ 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})-- AttributeType,
+ value --X413ATTRIBUTE.&Type({AttributeTable}{@.type})-- ANY,
+ 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})-- AttributeType OPTIONAL,
+ fetch-attribute-defaults
+ [3] SET SIZE (0..ub-default-registrations) OF
+ --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType 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})-- AutoActionType,
+ 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})-- AttributeType OPTIONAL,
+ ua-fetch-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType 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-- OBJECT IDENTIFIER 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})-- AttributeType OPTIONAL,
+ fetch-attribute-defaults
+ [2] SET SIZE (1..ub-default-registrations) OF
+ --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType 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})-- AttributeType,
+ add-values [3] OrderedAttribute,
+ remove-values [4] OrderedAttribute}
+}
+
+OrderedAttribute ::= SEQUENCE {
+ attribute-type --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType,
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ SEQUENCE {-- at least one must be specified
+ value
+ [0] --X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})-- ANY
+ 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 - -,
+ 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 - - ,
+ 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 - -,
+ probe-submission-envelope ProbeSubmissionEnvelope, -- XXX: Is this right?
+ -- 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] IMPLICIT 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
+AttributeErrorParameter ::=
+ SET {problems
+ [0] SET SIZE (1..ub-per-entry) OF
+ SET {problem [0] AttributeProblem,
+ type [1] --X413ATTRIBUTE.&id({AttributeTable})-- AttributeType,
+ value
+ [2] --X413ATTRIBUTE.&Type({AttributeTable}{@.type})-- ANY
+ 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
+AutoActionRequestErrorParameter ::=
+ SET {problems
+ [0] SET SIZE (1..ub-auto-registrations) OF
+ SET {problem [0] AutoActionRequestProblem,
+ type [1] --AUTO-ACTION.&id({AutoActionTable})-- AutoActionType
+ }}
+-- 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
+DeleteErrorParameter ::=
+ 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
+FetchRestrictionErrorParameter ::=
+ 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-- RangeErrorParameter ::= SET {problem [0] RangeProblem}
+-- CODE err-range-error
+--}
+
+RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons)
+
+--
+--sequence-number-error ABSTRACT-ERROR ::= {
+-- PARAMETER
+SequenceNumberErrorParameter ::=
+ 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
+RegisterMSErrorParameter ::=
+ 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/asn1/p7/MSGeneralAttributeTypes.asn b/asn1/p7/MSGeneralAttributeTypes.asn
new file mode 100755
index 0000000000..04a3c97758
--- /dev/null
+++ b/asn1/p7/MSGeneralAttributeTypes.asn
@@ -0,0 +1,836 @@
+--
+-- $Id$
+--
+
+-- 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/asn1/p7/Makefile.am b/asn1/p7/Makefile.am
new file mode 100644
index 0000000000..462af31e88
--- /dev/null
+++ b/asn1/p7/Makefile.am
@@ -0,0 +1,26 @@
+# $Id$
+#
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/asn1/p7/Makefile.common b/asn1/p7/Makefile.common
new file mode 100644
index 0000000000..36c3cd93f9
--- /dev/null
+++ b/asn1/p7/Makefile.common
@@ -0,0 +1,58 @@
+# $Id$
+#
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+PROTOCOL_NAME=p7
+
+DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
+ packet-$(PROTOCOL_NAME).h
+
+NEED_PACKET_PROTO_H = 1
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ MSAbstractService.asn \
+ MSGeneralAttributeTypes.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 = \
+ $(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 -e -X -T
+
+EXTRA_CNF= \
+ ../x411/x411-exp.cnf
+
+../x411/x411-exp.cnf:
+ (cd ../x411 && $(MAKE_CNF_EXPORT))
+
diff --git a/asn1/p7/Makefile.nmake b/asn1/p7/Makefile.nmake
new file mode 100644
index 0000000000..5a32997c60
--- /dev/null
+++ b/asn1/p7/Makefile.nmake
@@ -0,0 +1,29 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id$
+#
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/asn1/p7/p7.cnf b/asn1/p7/p7.cnf
new file mode 100644
index 0000000000..4f45aa49be
--- /dev/null
+++ b/asn1/p7/p7.cnf
@@ -0,0 +1,298 @@
+#
+# $Id$
+#
+
+#.IMPORT ../x411/x411-exp.cnf
+
+#.MODULE_IMPORT
+MTSAbstractService x411
+
+#.TYPE_RENAME
+Attribute/attribute-values AttributeValues
+OrderedAttribute/attribute-values OrderedAttributeValues
+
+Attribute/attribute-values/_item AttributeItem
+OrderedAttribute/attribute-values/_item OrderedAttributeItem
+
+AttributeErrorParameter/problems AttributeErrorProblems
+DeleteErrorParameter/problems DeleteErrorProblems
+FetchRestrictionErrorParameter/problems FetchRestrictionErrorProblems
+SequenceNumberErrorParameter/problems SequenceNumberErrorProblems
+
+AttributeErrorParameter/problems/_item AttributeErrorProblem
+DeleteErrorParameter/problems/_item DeleteErrorProblem
+FetchRestrictionErrorParameter/problems/_item FetchRestrictionErrorProblem
+SequenceNumberErrorParameter/problems/_item SequenceNumberErrorProblem
+
+Summary/present/_item/value SummaryPresentItemValue
+OrderedAttribute/attribute-values/_item/value OrderedAttributeValue
+AttributeErrorParameter/problems/_item/value AttributeErrorProblemValue
+
+#.FIELD_RENAME
+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
+
+AttributeErrorParameter/problems attribute-error-problems
+AutoActionRequestErrorParameter/problems auto-action-request-error-problems
+DeleteErrorParameter/problems delete-error-problems
+SequenceNumberErrorParameter/problems sequence-number-error-problems
+FetchRestrictionErrorParameter/problems fetch-restriction-error-problems
+
+DeleteErrorParameter/problems/_item delete-error-problem-item
+AttributeErrorParameter/problems/_item attribute-error-problem-item
+AutoActionRequestErrorParameter/problems/_item auto-action-request-error-problem-item
+SequenceNumberErrorParameter/problems/_item sequence-number-error-problem-item
+FetchRestrictionErrorParameter/problems/_item fetch-restriction-error-problem-item
+
+EntryClassErrorParameter/problem entry-class-problem
+FetchRestrictionErrorParameter/problems/_item/problem fetch-restriction-problem
+RegisterMSErrorParameter/problem registration-problem
+AttributeErrorParameter/problems/_item/problem attribute-problem
+SequenceNumberErrorParameter/problems/_item/problem sequence-number-problem
+RangeErrorParameter/problem range-problem
+DeleteErrorParameter/problems/_item/problem delete-problem
+MessageGroupErrorParameter/problem message-group-problem
+ServiceErrorParameter/problem service-problem
+ModifyErrorParameter/problem modify-problem
+AutoActionRequestErrorParameter/problems/_item/problem auto-action-request-problem
+
+AutoActionRequestErrorParameter/problems/_item/type auto-action-type
+
+AttributeErrorParameter/problems/_item/value problem-value
+OrderedAttribute/attribute-values/_item/value ordered-attribute-value
+
+#.PDU
+MSBindArgument
+MSBindResult
+MSBindError
+MSMessageSubmissionArgument
+MSMessageSubmissionResult
+MSProbeSubmissionArgument
+MSProbeSubmissionResult
+SummarizeArgument
+SummarizeResult
+ListArgument
+ListResult
+FetchArgument
+FetchResult
+DeleteArgument
+DeleteResult
+Register-MSArgument
+Register-MSResult
+ModifyArgument
+ModifyResult
+AlertArgument
+AlertResult
+AttributeErrorParameter
+AutoActionRequestErrorParameter
+DeleteErrorParameter
+FetchRestrictionErrorParameter
+RangeErrorParameter
+SequenceNumberErrorParameter
+MessageGroupErrorParameter
+MSExtensionErrorParameter
+EntryClassErrorParameter
+ServiceErrorParameter
+RegisterMSErrorParameter
+ModifyErrorParameter
+
+#.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 x411.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 x411.cnf
+#ContentIdentifier B "2.6.4.3.4" "id-att-content-identifier" - see x411.cnf
+#ContentIntegrityCheck B "2.6.4.3.5" "id-att-content-inetgrity-check" - see x411.cnf
+#ContentLength B "2.6.4.3.6" "id-att-content-length" - see x411.cnf
+#Boolean B "2.6.4.3.7" "id-att-content-returned" - see XXX
+#ObjectIdentifier B "2.6.4.3.8" "id-att-content-type" - see XXX
+#ConversionWithLossProhibited B "2.6.4.3.9" "id-att-conversion-with-loss-prohibited" - see x411.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 x411.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 x411.cnf
+#ORName B "2.6.4.3.78" "id-att-dl-exempted-recipients" - see x411.cnf
+#DLExpansion B "2.6.4.3.14" "id-att-dl-expansion-history" - see x411.cnf
+#DLExpansionProhibited B "2.6.4.3.53" "id-att-dl-expansion-prohibited" - see x411.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 x411.cnf
+#LatestDeliveryTime B "2.6.4.3.55" "id-att-latest-delivery-time" - see x411.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 x411.cnf
+#MessageDeliveryTime B "2.6.4.3.20" "id-att-message-delivery-time" - see x411.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 x411.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 x411.cnf
+#MessageSecurityLabel B "2.6.4.3.22" "id-att-message-security-label" - see x411.cnf
+#MessageSubmissionEnvelope B "2.6.4.3.59" "id-att-message-submission-envelope" - see x411.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 x411.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 x411.cnf
+#OriginatingMTACertificate B "2.6.4.3.62" "id-att-originating-MTA-certificate" - see x411.cnf
+#OriginatorCertificate B "2.6.4.3.26" "id-att-originator-certificate" - see x411.cnf
+#ORName B "2.6.4.3.27" "id-att-originator-name" - see x411.cnf
+#OriginatorReportRequest B "2.6.4.3.63" "id-att-originator-report-request" - see x411.cnf
+#OriginatorReturnAddress B "2.6.4.3.64" "id-att-originator-return-address" - see x411.cnf
+#ORName B "2.6.4.3.28" "id-att-other-recipient-names" - see x411.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 x411.cnf
+#PerRecipientMessageSubmissionFields B "2.6.4.3.66" "id-att-per-recipient-message-submission-fields" - see x411.cnf
+#PerRecipientProbeSubmissionFields B "2.6.4.3.67" "id-att-per-recipient-probe-submission-fields" - see x411.cnf
+#PerRecipientReportDeliveryFields B "2.6.4.3.30" "id-att-per-recipient-report-delivery-fields" - see x411.cnf
+#Priority B "2.6.4.3.31" "id-att-priority" - see x411.cnf
+#ProbeOriginAuthenticationCheck B "2.6.4.3.68" "id-att-probe-origin-authentication-check" - see x411.cnf
+#ProbeSubmissionEnvelope B "2.6.4.3.69" "id-att-probe-submission-envelope" - see x411.cnf
+#ProofOfDeliveryRequest B "2.6.4.3.32" "id-att-proof-of-delivery-request" - see x411.cnf
+#ProofOfSubmission B "2.6.4.3.70" "id-att-proof-of-submission" - see x411.cnf
+#ExtendedCertificates B "2.6.4.3.82" "id-att-recipient-certificate" - see x411.cnf
+#ORName B "2.6.4.3.71" "id-att-recipient-names" - see x411.cnf
+#RecipientReassignmentProhibited B "2.6.4.3.72" "id-att-recipient-reassignment-prohibited" - see x411.cnf
+#Redirection B "2.6.4.3.33" "id-at-redirection-history" - see x411.cnf
+#ReportDeliveryEnvelope B "2.6.4.3.34" "id-att-report-delivery-envelope" - see x411.cnf
+#ReportingDLName B "2.6.4.3.35" "id-att-reporting-DL-name" - see x411.cnf
+#ReportingMTACertificate B "2.6.4.3.36" "id-att-reporting-MTA-certificate" - see x411.cnf
+#ReportOriginAuthenticationCheck B "2.6.4.3.37" "id-att-report-origin-authentication-check" - see x411.cnf
+RetrievalStatus B "2.6.4.3.15" "id-att-retrieval-status"
+#SecurityClassification B "2.6.4.3.38" "id-att-security-classification" - see x411.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 x411.cnf
+#ORName B "2.6.4.3.41" "id-att-this-recipient-name" - see x411.cnf
+#TraceInformationElement B "2.6.4.3.75" "id-att-trace-information" - see x411.cnf
+
+#.FN_PARS AttributeType FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY Attribute/attribute-values/_item
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY AttributeValueAssertion/attribute-value
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY FilterItem/substrings/strings/_item/initial
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY FilterItem/substrings/strings/_item/any
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY FilterItem/substrings/strings/_item/final
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY MatchingRuleAssertion/match-value
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY Summary/present/_item/value
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY OrderedAttribute/attribute-values/_item/value
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY AttributeErrorParameter/problems/_item/value
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS AutoActionType FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY AutoActionRegistration/registration-parameter
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS AutoActionError/error-code FN_VARIANT = _str VAL_PTR = &object_identifier_id
+
+#.FN_BODY AutoActionError/error-parameter
+ if(object_identifier_id)
+ call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY MSBindArgument/initiator-name
+ char *ora = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if (check_col(actx->pinfo->cinfo, COL_INFO) && (ora = x411_get_last_oraddress())) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (initiator=%%s)", ora);
+ }
+
+#.FN_PARS SequenceNumber VAL_PTR = &seqno
+
+#.FN_BODY NumberRange
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (range=");
+ }
+ %(DEFAULT_BODY)s
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, ")");
+ }
+
+#.FN_FTR NumberRange/from
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " from %d", seqno);
+ }
+
+#.FN_FTR NumberRange/to
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ 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
+
+ if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (count=%%d)", count);
+ }
+
+
+ \ No newline at end of file
diff --git a/asn1/p7/packet-p7-template.c b/asn1/p7/packet-p7-template.c
new file mode 100644
index 0000000000..44cf92bb82
--- /dev/null
+++ b/asn1/p7/packet-p7-template.c
@@ -0,0 +1,403 @@
+/* packet-p7.c
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * $Id$
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+
+#include "packet-x411.h"
+#include <epan/strutil.h>
+
+#define PNAME "X.413 Message Store Service"
+#define PSNAME "P7"
+#define PFNAME "p7"
+
+static guint global_p7_tcp_port = 102;
+static guint tcp_port = 0;
+static dissector_handle_t tpkt_handle = NULL;
+static const char *object_identifier_id = NULL; /* attribute identifier */
+static int seqno = 0;
+
+void prefs_register_p7(void); /* forwad declaration for use in preferences registration */
+
+
+/* Initialize the protocol and registered fields */
+int proto_p7 = -1;
+
+static struct SESSION_DATA_STRUCTURE* session = NULL;
+
+#include "packet-p7-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p7 = -1;
+#include "packet-p7-ett.c"
+
+#include "packet-p7-fn.c"
+
+/*
+* Dissect P7 PDUs inside a ROS PDUs
+*/
+static void
+dissect_p7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ int offset = 0;
+ int old_offset;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int (*p7_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
+ char *p7_op_name;
+ int hf_p7_index = -1;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ /* do we have operation information from the ROS dissector? */
+ if( !pinfo->private_data ){
+ if(parent_tree){
+ proto_tree_add_text(parent_tree, tvb, offset, -1,
+ "Internal error: can't get operation information from ROS dissector.");
+ }
+ return ;
+ } else {
+ session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
+ }
+
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_p7, tvb, 0, -1, FALSE);
+ tree = proto_item_add_subtree(item, ett_p7);
+ }
+ if (check_col(pinfo->cinfo, COL_PROTOCOL))
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "P7");
+ if (check_col(pinfo->cinfo, COL_INFO))
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ switch(session->ros_op & ROS_OP_MASK) {
+ case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
+ p7_dissector = dissect_p7_MSBindArgument;
+ p7_op_name = "MS-Bind-Argument";
+ hf_p7_index = hf_p7_MSBindArgument_PDU;
+ break;
+ case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
+ p7_dissector = dissect_p7_MSBindResult;
+ p7_op_name = "MS-Bind-Result";
+ hf_p7_index = hf_p7_MSBindResult_PDU;
+ break;
+ case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
+ p7_dissector = dissect_p7_MSBindError;
+ p7_op_name = "MS-Bind-Error";
+ hf_p7_index = hf_p7_MSBindError_PDU;
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 3: /* msMessageSubmission */
+ p7_dissector = dissect_p7_MSMessageSubmissionArgument;
+ p7_op_name = "MS-Message-Submission-Argument";
+ hf_p7_index = hf_p7_MSMessageSubmissionArgument_PDU;
+ break;
+ case 4: /* msProbeSubmission */
+ p7_dissector = dissect_p7_MSProbeSubmissionArgument;
+ p7_op_name = "MS-Probe-Submission-Argument";
+ hf_p7_index = hf_p7_MSProbeSubmissionArgument_PDU;
+ break;
+ case 20: /* summarize */
+ p7_dissector = dissect_p7_SummarizeArgument;
+ p7_op_name = "Summarize-Argument";
+ hf_p7_index = hf_p7_SummarizeArgument_PDU;
+ break;
+ case 21: /* list */
+ p7_dissector = dissect_p7_ListArgument;
+ p7_op_name = "List-Argument";
+ hf_p7_index = hf_p7_ListArgument_PDU;
+ break;
+ case 22: /* fetch */
+ p7_dissector = dissect_p7_FetchArgument;
+ p7_op_name = "Fetch-Argument";
+ hf_p7_index = hf_p7_FetchArgument_PDU;
+ break;
+ case 23: /* delete */
+ p7_dissector = dissect_p7_DeleteArgument;
+ p7_op_name = "Delete-Argument";
+ hf_p7_index = hf_p7_DeleteArgument_PDU;
+ break;
+ case 24: /* register-ms */
+ p7_dissector = dissect_p7_Register_MSArgument;
+ p7_op_name = "RegisterMS-Argument";
+ hf_p7_index = hf_p7_Register_MSArgument_PDU;
+ break;
+ case 25: /* alert */
+ p7_dissector = dissect_p7_AlertArgument;
+ p7_op_name = "Alert-Argument";
+ hf_p7_index = hf_p7_AlertArgument_PDU;
+ break;
+ case 26: /* modify */
+ p7_dissector = dissect_p7_ModifyArgument;
+ p7_op_name = "Modify-Argument";
+ hf_p7_index = hf_p7_ModifyArgument_PDU;
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P7 argument opcode (%d)",
+ session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 3: /* msMessageSubmission */
+ p7_dissector = dissect_p7_MSMessageSubmissionResult;
+ p7_op_name = "MS-Message-Submission-Result";
+ hf_p7_index = hf_p7_MSMessageSubmissionResult_PDU;
+ break;
+ case 4: /* msProbeSubmission */
+ p7_dissector = dissect_p7_MSProbeSubmissionResult;
+ p7_op_name = "MS-Probe-Submission-Result";
+ hf_p7_index = hf_p7_MSProbeSubmissionResult_PDU;
+ break;
+ case 20: /* summarize */
+ p7_dissector = dissect_p7_SummarizeResult;
+ p7_op_name = "Summarize-Result";
+ hf_p7_index = hf_p7_SummarizeResult_PDU;
+ break;
+ case 21: /* list */
+ p7_dissector = dissect_p7_ListResult;
+ p7_op_name = "List-Result";
+ hf_p7_index = hf_p7_ListResult_PDU;
+ break;
+ case 22: /* fetch */
+ p7_dissector = dissect_p7_FetchResult;
+ p7_op_name = "Fetch-Result";
+ hf_p7_index = hf_p7_FetchResult_PDU;
+ break;
+ case 23: /* delete */
+ p7_dissector = dissect_p7_DeleteResult;
+ p7_op_name = "Delete-Result";
+ break;
+ case 24: /* register-ms */
+ p7_dissector = dissect_p7_Register_MSResult;
+ p7_op_name = "RegisterMS-Result";
+ hf_p7_index = hf_p7_Register_MSResult_PDU;
+ break;
+ case 25: /* alert */
+ p7_dissector = dissect_p7_AlertResult;
+ p7_op_name = "Alert-Result";
+ hf_p7_index = hf_p7_AlertResult_PDU;
+ break;
+ case 26: /* modify */
+ p7_dissector = dissect_p7_ModifyResult;
+ p7_op_name = "Modify-Result";
+ hf_p7_index = hf_p7_ModifyResult_PDU;
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P7 result opcode (%d)",
+ session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
+ switch(session->ros_op & ROS_OP_OPCODE_MASK) {
+ case 21: /* attributeError */
+ p7_dissector = dissect_p7_AttributeErrorParameter;
+ p7_op_name = "Attribute-Error";
+ hf_p7_index = hf_p7_AttributeErrorParameter_PDU;
+ break;
+ case 22: /* autoActionRequestError */
+ p7_dissector = dissect_p7_AutoActionRequestErrorParameter;
+ p7_op_name = "Auto-Action-Request-Error";
+ hf_p7_index = hf_p7_AutoActionRequestErrorParameter_PDU;
+ break;
+ case 23: /* deleteError */
+ p7_dissector = dissect_p7_DeleteErrorParameter;
+ p7_op_name = "Delete-Error";
+ hf_p7_index = hf_p7_DeleteErrorParameter_PDU;
+ break;
+ case 24: /* fetchRestrictionError */
+ p7_dissector = dissect_p7_FetchRestrictionErrorParameter;
+ p7_op_name = "Fetch-Restriction-Error";
+ hf_p7_index = hf_p7_FetchRestrictionErrorParameter_PDU;
+ break;
+ case 25: /* rangeError */
+ p7_dissector = dissect_p7_RangeErrorParameter;
+ p7_op_name = "Range-Error";
+ hf_p7_index = hf_p7_RangeErrorParameter_PDU;
+ break;
+ case 26: /* securityError */
+ p7_dissector = dissect_x411_SecurityProblem;
+ p7_op_name = "Security-Error";
+ break;
+ case 27: /* serviceError*/
+ p7_dissector = dissect_p7_ServiceErrorParameter;
+ p7_op_name = "Service-Error";
+ hf_p7_index = hf_p7_ServiceErrorParameter_PDU;
+ break;
+ case 28: /* sequenceNumberError */
+ p7_dissector = dissect_p7_SequenceNumberErrorParameter;
+ p7_op_name = "Sequence-Number-Error";
+ hf_p7_index = hf_p7_SequenceNumberErrorParameter_PDU;
+ break;
+ case 29: /* invalidParametersError */
+ p7_dissector = NULL;
+ p7_op_name = "Invalid-Parameters-Error";
+ break;
+ case 30: /* messageGroupError */
+ p7_dissector = dissect_p7_MessageGroupErrorParameter;
+ p7_op_name = "Message-Group-Error";
+ hf_p7_index = hf_p7_MessageGroupErrorParameter_PDU;
+ break;
+ case 31: /* msExtensioError */
+ p7_dissector = dissect_p7_MSExtensionErrorParameter;
+ p7_op_name = "MS-Extension-Error";
+ hf_p7_index = hf_p7_MSExtensionErrorParameter_PDU;
+ break;
+ case 32: /* registerMSError */
+ p7_dissector = dissect_p7_RegisterMSErrorParameter;
+ p7_op_name = "Register-MS-Error";
+ hf_p7_index = hf_p7_RegisterMSErrorParameter_PDU;
+ break;
+ case 33: /* sequenceNumberError */
+ p7_dissector = dissect_p7_ModifyErrorParameter;
+ p7_op_name = "Modify-Error";
+ hf_p7_index = hf_p7_ModifyErrorParameter_PDU;
+ break;
+ case 34: /* entryClassError */
+ p7_dissector = dissect_p7_EntryClassErrorParameter;
+ p7_op_name = "Entry-Class-Error";
+ hf_p7_index = hf_p7_EntryClassErrorParameter_PDU;
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P7 error opcode (%d)",
+ session->ros_op & ROS_OP_OPCODE_MASK);
+ break;
+ }
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P7 PDU");
+ return;
+ }
+
+ if(p7_dissector) {
+ if (check_col(pinfo->cinfo, COL_INFO))
+ col_set_str(pinfo->cinfo, COL_INFO, p7_op_name);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0){
+ old_offset=offset;
+ offset=(*p7_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_index);
+ if(offset == old_offset){
+ proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte P7 PDU");
+ offset = tvb_length(tvb);
+ break;
+ }
+ }
+ }
+}
+
+
+/*--- 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_dissector("p7", dissect_p7, proto_p7);
+
+ /* 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) {
+ dissector_handle_t handle = NULL;
+
+ /* #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) */
+ if((handle = find_dissector("p7"))) {
+ register_ros_oid_dissector_handle("2.6.0.2.9", handle, 0, "id-as-ms", FALSE);
+ register_ros_oid_dissector_handle("2.6.0.2.5", handle, 0, "id-as-mrse", FALSE);
+ register_ros_oid_dissector_handle("2.6.0.2.1", handle, 0, "id-as-msse", FALSE);
+ }
+
+ /* remember the tpkt handler for change in preferences */
+ tpkt_handle = find_dissector("tpkt");
+}
+
+
+void prefs_register_p7(void) {
+
+ /* de-register the old port */
+ /* port 102 is registered by TPKT - don't undo this! */
+ if((tcp_port != 102) && tpkt_handle)
+ dissector_delete("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("tcp.port", global_p7_tcp_port, tpkt_handle);
+
+}
diff --git a/asn1/p7/packet-p7-template.h b/asn1/p7/packet-p7-template.h
new file mode 100755
index 0000000000..1b2fcfdeea
--- /dev/null
+++ b/asn1/p7/packet-p7-template.h
@@ -0,0 +1,31 @@
+/* packet-p7.h
+ * Routines for X.413 (P7) packet dissection
+ * Graeme Lunt 2007
+ *
+ * $Id$
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_P7_H
+#define PACKET_P7_H
+
+/* #include "packet-p7-exp.h" */
+
+#endif /* PACKET_P7_H */