wireshark/asn1/x420/IPMSInformationObjects.asn
Graeme Lunt 0c7876ca39 Revised X.420 dissector using separate ASN.1 modules and making the bare minimum changes to those modules that asn2wrs requires.
Also supports the X.420 message store attributes, used over P7.


svn path=/trunk/; revision=23981
2008-01-02 09:34:34 +00:00

645 lines
19 KiB
Groff

-- $Id$
-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x420/1999/index.html
-- Module IPMSInformationObjects (X.420:06/1999)
IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- Prologue
-- Exports everything.
IMPORTS
-- IPMS Extended Body Parts
bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
g4-class1-body-part, ia5-text-body-part, message-body-part,
mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
videotex-body-part
--==
FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
extended-body-part-types(7) version-1994(0)}
general-text-body-part
--==
FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7)
modules(0) extended-body-part-types-2(1)}
file-transfer-body-part
--==
FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) file-transfer-body-part-type(9)}
voice-body-part
--==
FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) extended-voice-body-part-type(11)}
notification-body-part, report-body-part
--==
FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) forwarded-report-body-part-type(12)}
content-body-part{}
--==
FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) forwarded-content-body-part-type(15)}
pkcs7-body-part
--==
FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
pkcs7-body-part-type(16)}
-- IPMS Heading Extensions
authorization-time, auto-submitted, body-part-signatures,
circulation-list-indicator, circulation-list-recipients,
distribution-codes, extended-subject, incomplete-copy,
information-category, ipm-security-label, languages,
manual-handling-instructions, originators-reference, precedence,
precedence-policy-identifier
--==
FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
heading-extensions(6) version-1999(1)}
-- IPMS Security Extensions
body-part-encryption-token, BodyPartTokens, forwarded-content-token,
ForwardedContentToken, ipn-security-response, recipient-security-request
--==
FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
ipm-security-extensions(14) version-1999(1)}
-- IPMS Upper bounds
ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
ub-subject-field, ub-telephone-number
--==
FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
upper-bounds(10) version-1999(1)}
-- ODIF
-- Interchange-Data-Element
--==
-- FROM Interchange-Data-Elements {2 8 1 5 5}
-- MTS Abstract Service
EncodedInformationTypes, ExtendedCertificates, EXTENSION,
G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
OtherMessageDeliveryFields, SupplementaryInformation,
TeletexNonBasicParameters
--==
FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
mts-abstract-service(1) version-1999(1)}
-- MS Abstract Service
MS-EXTENSION, SequenceNumber
--==
FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
abstract-service(1) version-1999(1)}
-- Directory Authentication Framework
AlgorithmIdentifier, ENCRYPTED{}
--==
FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
authenticationFramework(7) 3}
-- IPMS Object Identifiers
id-mst-assembly-capability, id-mst-assembly-instructions,
id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
id-mst-originator-body-part-encryption-token,
id-mst-originator-forwarded-content-token,
id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
id-on-absence-advice, id-on-change-of-address-advice
--==
FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
object-identifiers(0) version-1999(1)};
Time ::= UTCTime
-- Information object
InformationObject ::= CHOICE {ipm [0] IPM,
ipn [1] IPN
}
-- IPM
IPM ::= SEQUENCE {heading Heading,
body Body
}
-- MTS Extensions
IPMPerRecipientEnvelopeExtensions EXTENSION ::=
{blind-copy-recipients | body-part-encryption-token |
forwarded-content-token, ...}
-- IPMS Extensions
IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
&Type DEFAULT NULL
}WITH SYNTAX {[VALUE &Type,]
IDENTIFIED BY &id
}
IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
type IPMS-EXTENSION.&id({ChosenFrom}),
value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
}
-- WS: Moved earlier
--IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
-- &Type DEFAULT NULL
--}WITH SYNTAX {[VALUE &Type,]
-- IDENTIFIED BY &id
--}
PrivateIPMSExtensions IPMS-EXTENSION ::=
{...}
-- Heading
Heading ::= SET {
this-IPM ThisIPMField,
originator [0] OriginatorField OPTIONAL,
authorizing-users [1] AuthorizingUsersField OPTIONAL,
primary-recipients [2] PrimaryRecipientsField DEFAULT {},
copy-recipients [3] CopyRecipientsField DEFAULT {},
blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL,
replied-to-IPM [5] RepliedToIPMField OPTIONAL,
obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {},
related-IPMs [7] RelatedIPMsField DEFAULT {},
subject [8] EXPLICIT SubjectField OPTIONAL,
expiry-time [9] ExpiryTimeField OPTIONAL,
reply-time [10] ReplyTimeField OPTIONAL,
reply-recipients [11] ReplyRecipientsField OPTIONAL,
importance [12] ImportanceField DEFAULT normal,
sensitivity [13] SensitivityField OPTIONAL,
auto-forwarded [14] AutoForwardedField DEFAULT FALSE,
extensions [15] ExtensionsField DEFAULT {}
}
-- Heading component types
IPMIdentifier ::= [APPLICATION 11] SET {
user ORName OPTIONAL,
user-relative-identifier LocalIPMIdentifier
}
LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
RecipientSpecifier ::= SET {
recipient [0] ORDescriptor,
notification-requests [1] NotificationRequests DEFAULT {},
reply-requested [2] BOOLEAN DEFAULT FALSE,
recipient-extensions [3] RecipientExtensionsField OPTIONAL
}
ORDescriptor ::= SET {
formal-name ORName OPTIONAL,
free-form-name [0] FreeFormName OPTIONAL,
telephone-number [1] TelephoneNumber OPTIONAL
}
FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
NotificationRequests ::= BIT STRING {
rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}}
RecipientExtensions IPMS-EXTENSION ::=
{circulation-list-indicator | precedence | recipient-security-request |
PrivateIPMSExtensions, ...}
-- This IPM heading field
ThisIPMField ::= IPMIdentifier
-- Originator heading field
OriginatorField ::= ORDescriptor
-- Authorizing Users heading field
AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
AuthorizingUsersSubfield ::= ORDescriptor
-- Primary Recipients heading field
PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
PrimaryRecipientsSubfield ::= RecipientSpecifier
-- Copy Recipients heading field
CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
CopyRecipientsSubfield ::= RecipientSpecifier
-- Blind Copy Recipients heading field
BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
BlindCopyRecipientsSubfield ::= RecipientSpecifier
-- Blind Copy Recipients envelope field
blind-copy-recipients EXTENSION ::= {
BlindCopyRecipientsField,
IDENTIFIED BY standard-extension:41
}
-- Replied-to IPM heading field
RepliedToIPMField ::= IPMIdentifier
-- Obsoleted IPMs heading field
ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
ObsoletedIPMsSubfield ::= IPMIdentifier
-- Related IPMs heading field
RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
RelatedIPMsSubfield ::= IPMIdentifier
-- Subject heading field
SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
-- Expiry Time heading field
ExpiryTimeField ::= Time
-- Reply Time heading field
ReplyTimeField ::= Time
-- Reply Recipients heading field
ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
ReplyRecipientsSubfield ::=
ORDescriptor(WITH COMPONENTS {
...,
formal-name PRESENT
})
-- Importance heading field
ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
-- Sensitivity heading field
SensitivityField ::= ENUMERATED {
personal(1), private(2), company-confidential(3)}
-- Auto-forwarded heading field
AutoForwardedField ::= BOOLEAN
-- Extensions heading field
ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}}
HeadingExtensions IPMS-EXTENSION ::=
{authorization-time | auto-submitted | body-part-signatures |
circulation-list-recipients | distribution-codes | extended-subject |
incomplete-copy | information-category | ipm-security-label | languages |
manual-handling-instructions | originators-reference |
precedence-policy-identifier | PrivateIPMSExtensions, ...}
-- Body
Body ::= SEQUENCE OF BodyPart
BodyPart ::= CHOICE {
basic
CHOICE {ia5-text [0] IA5TextBodyPart,
g3-facsimile [3] G3FacsimileBodyPart,
g4-class1 [4] G4Class1BodyPart,
teletex [5] TeletexBodyPart,
videotex [6] VideotexBodyPart,
encrypted [8] EncryptedBodyPart,
message [9] MessageBodyPart,
mixed-mode [11] MixedModeBodyPart,
bilaterally-defined [14] BilaterallyDefinedBodyPart,
nationally-defined [7] NationallyDefinedBodyPart},
extended [15] ExtendedBodyPart{{IPMBodyPartTable}}
}
-- Extended body part
ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE {
parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
data INSTANCE OF TYPE-IDENTIFIER
}
(CONSTRAINED BY { -- must correspond to the &parameters field and &data field of a member of --
IPMBodyPartTable})
IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
{StandardBodyParts | ApplicationSpecificBodyParts}
StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
{ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
teletex-body-part | videotex-body-part | encrypted-body-part |
message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
nationally-defined-body-part | general-text-body-part |
file-transfer-body-part | voice-body-part | report-body-part |
notification-body-part |
content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} |
pkcs7-body-part, ...}
ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
{--any body part defined in other Specifications, or for proprietary or private use
...}
EXTENDED-BODY-PART-TYPE ::= CLASS {
&parameters TYPE-IDENTIFIER OPTIONAL,
&data TYPE-IDENTIFIER
}WITH SYNTAX {[PARAMETERS &parameters,]
DATA &data
}
-- IA5 Text body part
IA5TextBodyPart ::= SEQUENCE {
parameters IA5TextParameters,
data IA5TextData
}
IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5
}
IA5TextData ::= IA5String
Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
-- G3 Facsimile body part
G3FacsimileBodyPart ::= SEQUENCE {
parameters G3FacsimileParameters,
data G3FacsimileData
}
G3FacsimileParameters ::= SET {
number-of-pages [0] INTEGER OPTIONAL,
non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL
}
G3FacsimileData ::= SEQUENCE OF BIT STRING
-- G4 Class 1 and Mixed-mode body parts
G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
--WS: We don't have an IMPORT for this, so we make it an ANY.
Interchange-Data-Element ::= ANY
-- Teletex body part
TeletexBodyPart ::= SEQUENCE {
parameters TeletexParameters,
data TeletexData
}
TeletexParameters ::= SET {
number-of-pages [0] INTEGER OPTIONAL,
telex-compatible [1] BOOLEAN DEFAULT FALSE,
non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL
}
TeletexData ::= SEQUENCE OF TeletexString
-- Videotex body part
VideotexBodyPart ::= SEQUENCE {
parameters VideotexParameters,
data VideotexData
}
VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL
}
VideotexSyntax ::= INTEGER {
ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
VideotexData ::= VideotexString
-- Encrypted body part
EncryptedBodyPart ::= SEQUENCE {
parameters EncryptedParameters,
data EncryptedData
}
EncryptedParameters ::= SET {
algorithm-identifier AlgorithmIdentifier,
originator-certificates ExtendedCertificates OPTIONAL,
...
}
EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
-- Message body part
MessageBodyPart ::= SEQUENCE {
parameters MessageParameters,
data MessageData
}
MessageParameters ::= SET {
delivery-time [0] MessageDeliveryTime OPTIONAL,
delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL
}
MessageData ::= IPM
-- Bilaterally Defined body part
BilaterallyDefinedBodyPart ::= OCTET STRING
-- Nationally Defined body part
NATIONAL-BODY-PARTS ::= CLASS {&Type
}
NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
-- Provided for Historic reasons. Use is strongly deprecated.
-- IPN
IPN ::= SET {
-- common-fields --COMPONENTS OF CommonFields,
choice
[0] CHOICE {non-receipt-fields [0] NonReceiptFields,
receipt-fields [1] ReceiptFields,
other-notification-type-fields
[2] OtherNotificationTypeFields}
}
RN ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
receipt-fields PRESENT
})
})
NRN ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
non-receipt-fields PRESENT
})
})
ON ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
other-notification-type-fields PRESENT
})
})
CommonFields ::= SET {
subject-ipm SubjectIPMField,
ipn-originator [1] IPNOriginatorField OPTIONAL,
ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL,
conversion-eits ConversionEITsField OPTIONAL,
notification-extensions [3] NotificationExtensionsField OPTIONAL
}
NonReceiptFields ::= SET {
non-receipt-reason [0] NonReceiptReasonField,
discard-reason [1] DiscardReasonField OPTIONAL,
auto-forward-comment [2] AutoForwardCommentField OPTIONAL,
returned-ipm [3] ReturnedIPMField OPTIONAL,
nrn-extensions [4] NRNExtensionsField OPTIONAL
}
ReceiptFields ::= SET {
receipt-time [0] ReceiptTimeField,
acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual,
suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL,
rn-extensions [3] RNExtensionsField OPTIONAL
}
-- Common fields
SubjectIPMField ::= IPMIdentifier
IPNOriginatorField ::= ORDescriptor
IPMIntendedRecipientField ::= ORDescriptor
ConversionEITsField ::= EncodedInformationTypes
NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}}
NotificationExtensions IPMS-EXTENSION ::=
{ipn-security-response | PrivateIPMSExtensions, ...}
-- Non-receipt fields
NonReceiptReasonField ::= ENUMERATED {
ipm-discarded(0), ipm-auto-forwarded(1), ...
}
-- ITU-T version:
DiscardReasonField ::= ENUMERATED {
ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
not-used(3)}
-- ISO/IEC version:
--DiscardReasonField ::= ENUMERATED {
-- ipm-expired (0),
-- ipm-obsoleted (1),
-- user-subscription-terminated (2),
-- The following value may not be supported by implementations of earlier versions of this Specification
-- ipm-deleted (3),
-- ... }
AutoForwardCommentField ::=
AutoForwardComment
AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
ReturnedIPMField ::= IPM
NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}}
NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
-- Receipt fields
ReceiptTimeField ::= Time
AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
SupplReceiptInfoField ::= SupplementaryInformation
RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}}
RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
-- Other Notification Type fields
OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}}
OtherNotifications IPMS-EXTENSION ::=
{AdviceNotifications | PrivateIPMSExtensions, ...}
AdviceNotifications IPMS-EXTENSION ::=
{absence-advice | change-of-address-advice, ...}
-- Advice Notification fields
absence-advice IPMS-EXTENSION ::= {
VALUE AbsenceAdvice,
IDENTIFIED BY id-on-absence-advice
}
AbsenceAdvice ::= SEQUENCE {
advice BodyPart OPTIONAL,
next-available Time OPTIONAL
}
-- at least one component shall be present
change-of-address-advice IPMS-EXTENSION ::= {
VALUE ChangeOfAddressAdvice,
IDENTIFIED BY id-on-change-of-address-advice
}
ChangeOfAddressAdvice ::= SEQUENCE {
new-address
[0] ORDescriptor(WITH COMPONENTS {
...,
formal-name PRESENT
}),
effective-from [1] Time OPTIONAL
}
-- Message Store Realization
-- WS: Manually import MACRO
MS-EXTENSION ::= TYPE-IDENTIFIER
prevent-nrn-generation MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-prevent-nrn-generation
}
suspend-auto-acknowledgement MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-suspend-auto-acknowledgement
}
assembly-capability MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-assembly-capability
}
IPMSubmissionOptions MS-EXTENSION ::=
{ipm-assembly-instructions | originator-body-part-encryption-token |
originator-forwarded-content-token, ...} -- For future extension additions
ipm-assembly-instructions MS-EXTENSION ::= {
IPMAssemblyInstructions
IDENTIFIED BY id-mst-assembly-instructions
}
IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences
}
BodyPartReferences ::= SEQUENCE OF BodyPartReference
BodyPartReference ::= CHOICE {
stored-entry [0] SequenceNumber,
stored-content [1] SequenceNumber,
submitted-body-part [2] INTEGER(1..MAX),
stored-body-part
[3] SEQUENCE {message-entry SequenceNumber,
body-part-number BodyPartNumber}
}
BodyPartNumber ::= INTEGER(1..MAX)
originator-body-part-encryption-token MS-EXTENSION ::= {
BodyPartTokens
IDENTIFIED BY id-mst-originator-body-part-encryption-token
}
originator-forwarded-content-token MS-EXTENSION ::= {
ForwardedContentToken
IDENTIFIED BY id-mst-originator-forwarded-content-token
}
IPMSubmissionErrors MS-EXTENSION ::=
{invalid-assembly-instructions | invalid-ipn, ...
} -- For future extension additions
invalid-assembly-instructions MS-EXTENSION ::= {
BodyPartReferences
IDENTIFIED BY id-mst-invalid-assembly-instructions
}
invalid-ipn MS-EXTENSION ::= {NULL
IDENTIFIED BY id-mst-invalid-ipn
}
END -- of IPMSInformationObjects
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D