1422e9cadd56d6d4493678946bbf7323885a7d78
[obnox/wireshark/wip.git] / asn1 / x420 / x420.asn
1 -- Module IPMSInformationObjects (X.420:06/1999)
2 IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
3   information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
4 BEGIN
5
6 -- Prologue
7 -- Exports everything.
8 IMPORTS
9   -- IPMS Extended Body Parts
10 --  bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
11 --    g4-class1-body-part, ia5-text-body-part, message-body-part,
12 --    mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
13 --    videotex-body-part
14     --==
15 --    FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
16 --      extended-body-part-types(7) version-1994(0)}
17 --  general-text-body-part
18     --==
19 --    FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) 
20 --      modules(0) extended-body-part-types-2(1)}
21 --  file-transfer-body-part
22     --==
23 --    FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
24 --      modules(0) file-transfer-body-part-type(9)}
25 --  voice-body-part
26     --==
27 --    FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
28 --      modules(0) extended-voice-body-part-type(11)}
29 --  notification-body-part, report-body-part
30     --==
31 --    FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
32 --      modules(0) forwarded-report-body-part-type(12)}
33 --  content-body-part{}
34     --==
35 --    FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
36 --      modules(0) forwarded-content-body-part-type(15)}
37 --  pkcs7-body-part
38     --==
39 --    FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
40 --      pkcs7-body-part-type(16)}
41   -- IPMS Heading Extensions
42 --  authorization-time, auto-submitted, body-part-signatures,
43 --    circulation-list-indicator, circulation-list-recipients,
44 --    distribution-codes, extended-subject, incomplete-copy,
45 --    information-category, ipm-security-label, languages,
46 --    manual-handling-instructions, originators-reference, precedence,
47 --    precedence-policy-identifier
48     --==
49 --    FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
50 --      heading-extensions(6) version-1999(1)}
51   -- IPMS Security Extensions
52 --  body-part-encryption-token, BodyPartTokens, forwarded-content-token,
53 --    ForwardedContentToken, ipn-security-response, recipient-security-request
54     --==
55 --    FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
56 --      ipm-security-extensions(14) version-1999(1)}
57   -- IPMS Upper bounds
58 --  ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
59 --    ub-subject-field, ub-telephone-number
60     --==
61 --    FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
62 --      upper-bounds(10) version-1999(1)}
63   -- ODIF
64 --  Interchange-Data-Element
65     --==
66 --    FROM Interchange-Data-Elements {2 8 1 5 5}
67   -- MTS Abstract Service
68   EncodedInformationTypes, ExtendedCertificates, EXTENSION,
69     G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
70     OtherMessageDeliveryFields, SupplementaryInformation,
71     TeletexNonBasicParameters, UniversalOrBMPString, SecurityLabel,
72     MessageDeliveryIdentifier, ProofOfSubmission, OriginatingMTACertificate,
73     MessageSubmissionEnvelope
74     --==
75     FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
76       mts-abstract-service(1) version-1999(1)}
77   -- MS Abstract Service
78 --  MS-EXTENSION, SequenceNumber
79     --==
80 --    FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
81 --      abstract-service(1) version-1999(1)}
82   -- Directory Authentication Framework
83   AlgorithmIdentifier, ENCRYPTED{}
84     --==
85     FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
86       authenticationFramework(7) 3}
87   -- IPMS Object Identifiers
88 --  id-mst-assembly-capability, id-mst-assembly-instructions,
89 --    id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
90 --    id-mst-originator-body-part-encryption-token,
91 --    id-mst-originator-forwarded-content-token,
92 --    id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
93 --    id-on-absence-advice, id-on-change-of-address-advice
94     --==
95 --    FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
96 --      object-identifiers(0) version-1999(1)} ; --
97     EXTERNAL 
98     FROM ACSE-1
99   CertificateAssertion
100     --==
101     FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
102       certificateExtensions(26) 0};
103
104
105 Time ::= UTCTime
106
107 -- Information object
108 InformationObject ::= CHOICE {ipm  [0]  IPM,
109                               ipn  [1]  IPN
110 }
111
112 -- IPM
113 IPM ::= SEQUENCE {heading  Heading,
114                   body     Body
115 }
116
117 -- MTS Extensions
118 --IPMPerRecipientEnvelopeExtensions EXTENSION ::=
119 --  {blind-copy-recipients | body-part-encryption-token |
120 --   forwarded-content-token, ...}
121
122 -- IPMS Extensions
123 IPMSExtension --{IPMS-EXTENSION:ChosenFrom}-- ::= SEQUENCE {
124   type   OBJECT IDENTIFIER, --IPMS-EXTENSION.&id({ChosenFrom}),
125   value  ANY --IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
126 }
127
128 --IPMS-EXTENSION ::= CLASS {&id    OBJECT IDENTIFIER UNIQUE,
129 --                          &Type  DEFAULT NULL
130 --}WITH SYNTAX {[VALUE &Type,]
131 --              IDENTIFIED BY &id
132 --}
133
134 --PrivateIPMSExtensions IPMS-EXTENSION ::=
135 --  {...}
136
137 -- Heading
138 Heading ::= SET {
139   this-IPM               ThisIPMField,
140   originator             [0]  OriginatorField OPTIONAL,
141   authorizing-users      [1]  AuthorizingUsersField OPTIONAL,
142   primary-recipients     [2]  PrimaryRecipientsField DEFAULT {},
143   copy-recipients        [3]  CopyRecipientsField DEFAULT {},
144   blind-copy-recipients  [4]  BlindCopyRecipientsField OPTIONAL,
145   replied-to-IPM         [5]  RepliedToIPMField OPTIONAL,
146   obsoleted-IPMs         [6]  ObsoletedIPMsField DEFAULT {},
147   related-IPMs           [7]  RelatedIPMsField DEFAULT {},
148   subject                [8] EXPLICIT SubjectField OPTIONAL,
149   expiry-time            [9]  ExpiryTimeField OPTIONAL,
150   reply-time             [10]  ReplyTimeField OPTIONAL,
151   reply-recipients       [11]  ReplyRecipientsField OPTIONAL,
152   importance             [12]  ImportanceField DEFAULT normal,
153   sensitivity            [13]  SensitivityField OPTIONAL,
154   auto-forwarded         [14]  AutoForwardedField DEFAULT FALSE,
155   extensions             [15]  ExtensionsField DEFAULT {}
156 }
157
158 -- Heading component types
159 IPMIdentifier ::= [APPLICATION 11]  SET {
160   user                      ORName OPTIONAL,
161   user-relative-identifier  LocalIPMIdentifier
162 }
163
164 LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
165
166 RecipientSpecifier ::= SET {
167   recipient              [0]  ORDescriptor,
168   notification-requests  [1]  NotificationRequests DEFAULT {},
169   reply-requested        [2]  BOOLEAN DEFAULT FALSE,
170   recipient-extensions   [3]  RecipientExtensionsField OPTIONAL
171 }
172
173 ORDescriptor ::= SET {
174   formal-name       ORName OPTIONAL,
175   free-form-name    [0]  FreeFormName OPTIONAL,
176   telephone-number  [1]  TelephoneNumber OPTIONAL
177 }
178
179 FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
180
181 TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
182
183 NotificationRequests ::= BIT STRING {
184   rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
185
186 RecipientExtensionsField ::= SET OF IPMSExtension --{{RecipientExtensions}}
187
188 --RecipientExtensions IPMS-EXTENSION ::=
189 --  {circulation-list-indicator | precedence | recipient-security-request |
190 --   PrivateIPMSExtensions, ...}
191
192 -- This IPM heading field
193 ThisIPMField ::= IPMIdentifier
194
195 -- Originator heading field
196 OriginatorField ::= ORDescriptor
197
198 -- Authorizing Users heading field
199 AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
200
201 AuthorizingUsersSubfield ::= ORDescriptor
202
203 -- Primary Recipients heading field
204 PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
205
206 PrimaryRecipientsSubfield ::= RecipientSpecifier
207
208 -- Copy Recipients heading field
209 CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
210
211 CopyRecipientsSubfield ::= RecipientSpecifier
212
213 -- Blind Copy Recipients heading field
214 BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
215
216 BlindCopyRecipientsSubfield ::= RecipientSpecifier
217
218 -- Blind Copy Recipients envelope field
219 --blind-copy-recipients EXTENSION ::= {
220 --  BlindCopyRecipientsField,
221 --  IDENTIFIED BY  standard-extension:41
222 --}
223
224 -- Replied-to IPM heading field
225 RepliedToIPMField ::= IPMIdentifier
226
227 -- Obsoleted IPMs heading field
228 ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
229
230 ObsoletedIPMsSubfield ::= IPMIdentifier
231
232 -- Related IPMs heading field
233 RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
234
235 RelatedIPMsSubfield ::= IPMIdentifier
236
237 -- Subject heading field
238 SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
239
240 -- Expiry Time heading field
241 ExpiryTimeField ::= Time
242
243 -- Reply Time heading field
244 ReplyTimeField ::= Time
245
246 -- Reply Recipients heading field
247 ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
248
249 ReplyRecipientsSubfield ::=
250   ORDescriptor --(WITH COMPONENTS {
251 --                 ...,
252 --                 formal-name  PRESENT
253 --               })
254
255 -- Importance heading field
256 ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
257
258 -- Sensitivity heading field
259 SensitivityField ::= ENUMERATED {
260   personal(1), private(2), company-confidential(3)}
261
262 -- Auto-forwarded heading field
263 AutoForwardedField ::= BOOLEAN
264
265 -- Extensions heading field
266 ExtensionsField ::= SET OF IPMSExtension --{{HeadingExtensions}}
267
268 --HeadingExtensions IPMS-EXTENSION ::=
269 --  {authorization-time | auto-submitted | body-part-signatures |
270 --   circulation-list-recipients | distribution-codes | extended-subject |
271 --   incomplete-copy | information-category | ipm-security-label | languages |
272 --   manual-handling-instructions | originators-reference |
273 --   precedence-policy-identifier | PrivateIPMSExtensions, ...}
274
275 -- Body
276 Body ::= SEQUENCE OF BodyPart
277
278 -- asn2wrs seems to have problems with this CHOICE CHOICE
279 BodyPart ::= CHOICE {
280 --  basic
281 --    CHOICE { -- ia5-text             [0]  IA5TextBodyPart,
282             g3-facsimile         [3]  G3FacsimileBodyPart,
283             g4-class1            [4]  G4Class1BodyPart,
284             teletex              [5]  TeletexBodyPart,
285             videotex             [6]  VideotexBodyPart,
286             encrypted            [8]  EncryptedBodyPart,
287             message              [9]  MessageBodyPart,
288             mixed-mode           [11]  MixedModeBodyPart,
289             bilaterally-defined  [14]  BilaterallyDefinedBodyPart,
290             nationally-defined   [7]  NationallyDefinedBodyPart --} --,
291             extended  [15]  ExtendedBodyPart --{{IPMBodyPartTable}}
292 }
293
294
295 -- Extended body part
296 ExtendedBodyPart --{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable}-- ::= SEQUENCE {
297   parameters  [0]  EXTERNAL, --INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
298   data        EXTERNAL -- INSTANCE OF TYPE-IDENTIFIER
299 }
300 --(CONSTRAINED BY { - - must correspond to the &parameters field and &data field of a member of --
301 --   IPMBodyPartTable})
302
303 --IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
304 --  {StandardBodyParts | ApplicationSpecificBodyParts}
305
306 --StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
307 --  {ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
308 --   teletex-body-part | videotex-body-part | encrypted-body-part |
309 --   message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
310 --   nationally-defined-body-part | general-text-body-part |
311 --   file-transfer-body-part | voice-body-part | report-body-part |
312 --   notification-body-part |
313 --   content-body-part{{1 2 3 - - RELATIVE-OID to be provided - -}} |
314 --   pkcs7-body-part, ...}
315
316 --ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
317 --  {- -any body part defined in other Specifications, or for proprietary or private use 
318 --   ...}
319
320 --EXTENDED-BODY-PART-TYPE ::= CLASS {
321 --  &parameters  TYPE-IDENTIFIER OPTIONAL,
322 --  &data        TYPE-IDENTIFIER
323 --}WITH SYNTAX {[PARAMETERS &parameters,]
324 --              DATA &data
325 --}
326
327 -- IA5 Text body part
328 IA5TextBodyPart ::= SEQUENCE {
329   parameters  IA5TextParameters,
330   data        IA5TextData
331 }
332
333 IA5TextParameters ::= SET {repertoire  [0]  Repertoire DEFAULT ia5
334 }
335
336 IA5TextData ::= IA5String
337
338 Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
339
340 -- G3 Facsimile body part
341 G3FacsimileBodyPart ::= SEQUENCE {
342   parameters  G3FacsimileParameters,
343   data        G3FacsimileData
344 }
345
346 G3FacsimileParameters ::= SET {
347   number-of-pages       [0]  INTEGER OPTIONAL,
348   non-basic-parameters  [1]  G3FacsimileNonBasicParameters OPTIONAL
349 }
350
351 G3FacsimileData ::= SEQUENCE OF BIT STRING
352
353 -- G4 Class 1 and Mixed-mode body parts
354 G4Class1BodyPart ::= G4Class1Data
355
356 G4Class1Data ::= SEQUENCE OF Interchange-Data-Element
357
358 MixedModeBodyPart ::= MixedModeData
359
360 MixedModeData ::= SEQUENCE OF Interchange-Data-Element
361
362 -- Teletex body part
363 TeletexBodyPart ::= SEQUENCE {
364   parameters  TeletexParameters,
365   data        TeletexData
366 }
367
368 TeletexParameters ::= SET {
369   number-of-pages       [0]  INTEGER OPTIONAL,
370   telex-compatible      [1]  BOOLEAN DEFAULT FALSE,
371   non-basic-parameters  [2]  TeletexNonBasicParameters OPTIONAL
372 }
373
374 TeletexData ::= SEQUENCE OF TeletexString
375
376 -- Videotex body part
377 VideotexBodyPart ::= SEQUENCE {
378   parameters  VideotexParameters,
379   data        VideotexData
380 }
381
382 VideotexParameters ::= SET {syntax  [0]  VideotexSyntax OPTIONAL
383 }
384
385 VideotexSyntax ::= INTEGER {
386   ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
387
388 VideotexData ::= VideotexString
389
390 -- Encrypted body part
391 EncryptedBodyPart ::= SEQUENCE {
392   parameters  EncryptedParameters,
393   data        EncryptedData
394 }
395
396 EncryptedParameters ::= SET {
397   algorithm-identifier     AlgorithmIdentifier,
398   originator-certificates  ExtendedCertificates OPTIONAL,
399   ...
400 }
401
402 EncryptedData ::= BIT STRING --(CONSTRAINED BY {BodyPart})
403
404 -- Message body part
405 MessageBodyPart ::= SEQUENCE {
406   parameters  MessageParameters,
407   data        MessageData
408 }
409
410 MessageParameters ::= SET {
411   delivery-time      [0]  MessageDeliveryTime OPTIONAL,
412   delivery-envelope  [1]  OtherMessageDeliveryFields OPTIONAL
413 }
414
415 MessageData ::= IPM
416
417 -- Bilaterally Defined body part
418 BilaterallyDefinedBodyPart ::= OCTET STRING
419
420 -- Nationally Defined body part
421 --NATIONAL-BODY-PARTS ::= CLASS {&Type  
422 --}
423
424 --NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
425
426 -- Provided for Historic reasons. Use is strongly deprecated.
427 -- IPN
428 IPN ::= SET {
429   -- common-fields - -COMPONENTS OF CommonFields,
430   subject-ipm              SubjectIPMField,
431   ipn-originator           [1]  IPNOriginatorField OPTIONAL,
432   ipm-intended-recipient   [2]  IPMIntendedRecipientField OPTIONAL,
433   conversion-eits          ConversionEITsField OPTIONAL,
434   notification-extensions  [3]  NotificationExtensionsField OPTIONAL,
435   choice
436     [0]  CHOICE {non-receipt-fields              [0]  NonReceiptFields,
437                  receipt-fields                  [1]  ReceiptFields,
438                  other-notification-type-fields
439                    [2]  OtherNotificationTypeFields}
440 }
441
442 --RN ::=
443 --  IPN
444 --    (WITH COMPONENTS {
445 --       ...,
446 --       choice  (WITH COMPONENTS {
447 --                  receipt-fields  PRESENT
448 --                })
449 --     })
450
451 --NRN ::=
452 --  IPN
453 --    (WITH COMPONENTS {
454 --       ...,
455 --       choice  (WITH COMPONENTS {
456 --                  non-receipt-fields  PRESENT
457 --                })
458 --     })
459
460 --ON ::=
461 --  IPN
462 --    (WITH COMPONENTS {
463 --       ...,
464 --       choice  (WITH COMPONENTS {
465 --                  other-notification-type-fields  PRESENT
466 --                })
467 --     })
468
469 -- CommonFields are always used with WITH COMPONENTS - which are manually expanded
470 --CommonFields ::= SET {
471 --  subject-ipm              SubjectIPMField,
472 --  ipn-originator           [1]  IPNOriginatorField OPTIONAL,
473 --  ipm-intended-recipient   [2]  IPMIntendedRecipientField OPTIONAL,
474 --  conversion-eits          ConversionEITsField OPTIONAL,
475 --  notification-extensions  [3]  NotificationExtensionsField OPTIONAL
476 --}
477
478 NonReceiptFields ::= SET {
479   non-receipt-reason    [0]  NonReceiptReasonField,
480   discard-reason        [1]  DiscardReasonField OPTIONAL,
481   auto-forward-comment  [2]  AutoForwardCommentField OPTIONAL,
482   returned-ipm          [3]  ReturnedIPMField OPTIONAL,
483   nrn-extensions        [4]  NRNExtensionsField OPTIONAL
484 }
485
486 ReceiptFields ::= SET {
487   receipt-time         [0]  ReceiptTimeField,
488   acknowledgment-mode  [1]  AcknowledgmentModeField DEFAULT manual,
489   suppl-receipt-info   [2]  SupplReceiptInfoField OPTIONAL,
490   rn-extensions        [3]  RNExtensionsField OPTIONAL
491 }
492
493 -- Common fields
494 SubjectIPMField ::= IPMIdentifier
495
496 IPNOriginatorField ::= ORDescriptor
497
498 IPMIntendedRecipientField ::= ORDescriptor
499
500 ConversionEITsField ::= EncodedInformationTypes
501
502 NotificationExtensionsField ::= SET OF IPMSExtension --{{NotificationExtensions}}
503
504 --NotificationExtensions IPMS-EXTENSION ::=
505 --  {ipn-security-response | PrivateIPMSExtensions, ...}
506
507 -- Non-receipt fields
508 NonReceiptReasonField ::= ENUMERATED {
509   ipm-discarded(0), ipm-auto-forwarded(1), ...
510   }
511
512 -- ITU-T version: 
513 DiscardReasonField ::= ENUMERATED {
514   ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
515   not-used(3)}
516
517 -- ISO/IEC version: 
518 --DiscardReasonField ::= ENUMERATED {
519 --      ipm-expired                  (0),
520 --      ipm-obsoleted                (1),
521 --      user-subscription-terminated (2),
522 -- The following value may not be supported by implementations of earlier versions of this Specification
523 --      ipm-deleted                  (3),
524 --      ... }
525 AutoForwardCommentField ::=
526   AutoForwardComment
527
528 AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
529
530 ReturnedIPMField ::= IPM
531
532 NRNExtensionsField ::= SET OF IPMSExtension --{{NRNExtensions}}
533
534 --NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
535
536 -- Receipt fields
537 ReceiptTimeField ::= Time
538
539 AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
540
541 SupplReceiptInfoField ::= SupplementaryInformation
542
543 RNExtensionsField ::= SET OF IPMSExtension --{{RNExtensions}}
544
545 --RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
546
547 -- Other Notification Type fields
548 OtherNotificationTypeFields ::= SET OF IPMSExtension --{{OtherNotifications}}
549
550 --OtherNotifications IPMS-EXTENSION ::=
551 --  {AdviceNotifications | PrivateIPMSExtensions, ...}
552
553 --AdviceNotifications IPMS-EXTENSION ::=
554 --  {absence-advice | change-of-address-advice, ...}
555
556 -- Advice Notification fields
557 --absence-advice IPMS-EXTENSION ::= {
558 --  VALUE          AbsenceAdvice,
559 --  IDENTIFIED BY  id-on-absence-advice
560 --}
561
562 AbsenceAdvice ::= SEQUENCE {
563   advice          BodyPart OPTIONAL,
564   next-available  Time OPTIONAL
565 }
566
567 -- at least one component shall be present 
568 --change-of-address-advice IPMS-EXTENSION ::= {
569 --  VALUE          ChangeOfAddressAdvice,
570 --  IDENTIFIED BY  id-on-change-of-address-advice
571 --}
572
573 ChangeOfAddressAdvice ::= SEQUENCE {
574   new-address
575     [0]  ORDescriptor --(WITH COMPONENTS {
576 --                        ...,
577 --                        formal-name  PRESENT
578 --                      }) --,
579   effective-from  [1]  Time OPTIONAL
580 }
581
582 -- Message Store Realization
583 --prevent-nrn-generation MS-EXTENSION ::= {
584 --  NULL
585 --  IDENTIFIED BY  id-mst-prevent-nrn-generation
586 --}
587
588 --suspend-auto-acknowledgement MS-EXTENSION ::= {
589 --  NULL
590 --  IDENTIFIED BY  id-mst-suspend-auto-acknowledgement
591 --}
592
593 --assembly-capability MS-EXTENSION ::= {
594 --  NULL
595 --  IDENTIFIED BY  id-mst-assembly-capability
596 --}
597
598 --IPMSubmissionOptions MS-EXTENSION ::=
599 --  {ipm-assembly-instructions | originator-body-part-encryption-token |
600 --   originator-forwarded-content-token, ...} - - For future extension additions 
601
602 --ipm-assembly-instructions MS-EXTENSION ::= {
603 --  IPMAssemblyInstructions
604 --  IDENTIFIED BY  id-mst-assembly-instructions
605 --}
606
607 IPMAssemblyInstructions ::= SET {assembly-instructions  [0]  BodyPartReferences
608 }
609
610 BodyPartReferences ::= SEQUENCE OF BodyPartReference
611
612 BodyPartReference ::= CHOICE {
613   stored-entry         [0]  SequenceNumber,
614   stored-content       [1]  SequenceNumber,
615   submitted-body-part  [2]  INTEGER--(1..MAX)--,
616   stored-body-part
617     [3]  SEQUENCE {message-entry     SequenceNumber,
618                    body-part-number  --INTEGER(1..MAX)-- BodyPartNumber}
619 }
620
621 --originator-body-part-encryption-token MS-EXTENSION ::= {
622 --  BodyPartTokens
623 --  IDENTIFIED BY  id-mst-originator-body-part-encryption-token
624 --}
625
626 --originator-forwarded-content-token MS-EXTENSION ::= {
627 --  ForwardedContentToken
628 --  IDENTIFIED BY  id-mst-originator-forwarded-content-token
629 --}
630
631 --IPMSubmissionErrors MS-EXTENSION ::=
632 --  {invalid-assembly-instructions | invalid-ipn, ...
633 --  } - - For future extension additions 
634
635 --invalid-assembly-instructions MS-EXTENSION ::= {
636 --  BodyPartReferences
637 --  IDENTIFIED BY  id-mst-invalid-assembly-instructions
638 --}
639
640 --invalid-ipn MS-EXTENSION ::= {NULL
641 --                              IDENTIFIED BY  id-mst-invalid-ipn
642 --}
643
644 SequenceNumber ::= INTEGER
645 Interchange-Data-Element ::= ANY
646 NationallyDefinedBodyPart ::= ANY
647
648 -- cannot refer to basic types in .cnf .#REGISTER - so we create an intermediate type
649 OriginatingUA ::= IA5String
650
651 -- END - - of IPMSInformationObjects
652
653
654 -- Module IPMSHeadingExtensions (X.420:06/1999)
655 --IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
656 --  heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
657 --BEGIN
658
659 -- Prologue
660 -- Exports everything.
661 --IMPORTS
662   -- IPMS Information Objects
663 --  IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart
664     --==
665 --    FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
666 --      information-objects(2) version-1999(1)}
667   -- MTS Abstract Service
668 --  ExtendedCertificates, SecurityLabel, UniversalOrBMPString{}
669     --==
670 --    FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
671 --      mts-abstract-service(1) version-1999(1)}
672   -- Directory Authentication Framework
673 --  AlgorithmIdentifier, SIGNATURE{}, SIGNED{}
674     --==
675 --    FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
676 --      authenticationFramework(7) 3}
677   -- Directory Certificate Extensions
678 --  CertificateAssertion
679     --==
680 --    FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
681 --      certificateExtensions(26) 0}
682   -- IPMS upper bounds
683 --  ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes,
684 --    ub-extended-subject-length, ub-information-categories,
685 --    ub-information-category-length, ub-manual-handling-instruction-length,
686 --    ub-manual-handling-instructions, ub-originators-reference-length,
687 --    ub-precedence
688     --==
689 --    FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
690 --      upper-bounds(10) version-1999(1)}
691   -- IPMS Object Identifiers
692 --  id-hex-authorization-time, id-hex-auto-submitted,
693 --    id-hex-body-part-signatures, id-hex-circulation-list-recipients,
694 --    id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy,
695 --    id-hex-information-category, id-hex-ipm-security-label, id-hex-languages,
696 --    id-hex-manual-handling-instructions, id-hex-originators-reference,
697 --    id-hex-precedence-policy-id, id-rex-circulation-list-indicator,
698 --    id-rex-precedence
699     --==
700 --    FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
701 --      object-identifiers(0) version-1999(1)};
702
703 -- Incomplete Copy
704 --incomplete-copy IPMS-EXTENSION ::= {
705 --  VALUE          IncompleteCopy,
706 --  IDENTIFIED BY  id-hex-incomplete-copy
707 --}
708
709 IncompleteCopy ::= NULL
710
711 -- Languages
712 --languages IPMS-EXTENSION ::= {
713 --  VALUE          SET OF Language,
714 --  IDENTIFIED BY  id-hex-languages
715 --}
716
717 Languages ::= SET OF Language
718
719 Language ::= PrintableString --(SIZE (2 | 5))
720
721 -- Auto-submitted
722 --auto-submitted IPMS-EXTENSION ::= {
723 --  VALUE          AutoSubmitted,
724 --  IDENTIFIED BY  id-hex-auto-submitted
725 --}
726
727 AutoSubmitted ::= ENUMERATED {
728   not-auto-submitted(0), auto-generated(1), auto-replied(2)}
729
730 --body-part-signatures IPMS-EXTENSION ::= {
731 --  VALUE          BodyPartSignatures,
732 --  IDENTIFIED BY  id-hex-body-part-signatures
733 --}
734
735 Signature ::= SEQUENCE {
736   algorithmIdentifier   AlgorithmIdentifier,
737   encrypted             BIT STRING
738 }
739
740
741 BodyPartSignatures ::=
742   SET OF
743     SET {body-part-number                 BodyPartNumber,
744          body-part-signature              BodyPartSignature,
745          originator-certificate-selector  [1]  CertificateAssertion OPTIONAL,
746          originator-certificates          [0]  ExtendedCertificates OPTIONAL --,
747 --         ... --}
748
749 BodyPartNumber ::= INTEGER --(1..MAX)
750
751 BodyPartSignature ::= Signature
752 --  SIGNATURE
753 --    {SEQUENCE {signature-algorithm-identifier  AlgorithmIdentifier,
754 --               body-part                       BodyPart,
755 --               body-part-security-label        SecurityLabel OPTIONAL
756 --    }}
757
758 --ipm-security-label IPMS-EXTENSION ::= {
759 --  VALUE          IPMSecurityLabel,
760 --  IDENTIFIED BY  id-hex-ipm-security-label
761 --}
762
763 IPMSecurityLabel ::= SEQUENCE {
764   content-security-label     [0]  SecurityLabel,
765   heading-security-label     [1]  SecurityLabel OPTIONAL,
766   body-part-security-labels  [2]  SEQUENCE OF BodyPartSecurityLabel OPTIONAL
767 }
768
769 BodyPartSecurityLabel ::= CHOICE {
770   body-part-unlabelled      [0]  NULL,
771   body-part-security-label  [1]  SecurityLabel
772 }
773
774 -- Authorization Time
775 --authorization-time IPMS-EXTENSION ::= {
776 --  VALUE          AuthorizationTime,
777 --  IDENTIFIED BY  id-hex-authorization-time
778 --}
779
780 AuthorizationTime ::= GeneralizedTime
781
782 -- Circulation List
783 --circulation-list-recipients IPMS-EXTENSION ::= {
784 --  VALUE          CirculationList,
785 --  IDENTIFIED BY  id-hex-circulation-list-recipients
786 --}
787
788 CirculationList ::=
789   SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember
790
791 CirculationMember ::= SET {
792   circulation-recipient
793     RecipientSpecifier
794 --      (WITH COMPONENTS {
795 --         ...,
796 --         recipient  (WITH COMPONENTS {
797 --                       ...,
798 --                       formal-name  PRESENT
799 --                     })
800 --       })--,
801   checked                Checkmark OPTIONAL
802 }
803
804 Checkmark ::= CHOICE {
805   simple       NULL,
806   timestamped  CirculationTime,
807   signed       CirculationSignature
808 }
809
810 CirculationTime ::= GeneralizedTime
811
812 CirculationSignatureData ::= 
813 --  SIGNED
814 --    { --SEQUENCE {algorithm-identifier  CirculationSignatureAlgorithmIdentifier,
815                this-IPM              ThisIPMField,
816                timestamp             CirculationTime} --}
817
818 -- expand SIGNED macro
819
820 CirculationSignature ::= SEQUENCE {
821   circulation-signature-data    CirculationSignatureData,
822   algorithm-identifier          AlgorithmIdentifier,
823   encrypted                     BIT STRING
824 }
825
826
827
828 CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier
829
830 -- Circulation List Indicator
831 --circulation-list-indicator IPMS-EXTENSION ::= {
832 --  VALUE          NULL,
833 --  IDENTIFIED BY  id-rex-circulation-list-indicator
834 --}
835
836 CirculationListIndicator ::= NULL
837
838 -- Distribution Codes
839 --distribution-codes IPMS-EXTENSION ::= {
840 --  VALUE          DistributionCodes,
841 --  IDENTIFIED BY  id-hex-distribution-codes
842 --}
843
844 DistributionCodes ::=
845   SEQUENCE --(SIZE (1..ub-distribution-codes))-- OF DistributionCode
846
847 DistributionCode ::= SEQUENCE {
848   oid-code           OBJECT IDENTIFIER OPTIONAL,
849   alphanumeric-code  AlphaCode OPTIONAL,
850   or-descriptor      [0]  ORDescriptor OPTIONAL
851 }
852
853 AlphaCode ::= UniversalOrBMPString --{ub-alpha-code-length}
854
855 -- Extended Subject
856 --extended-subject IPMS-EXTENSION ::= {
857 --  VALUE          ExtendedSubject,
858 --  IDENTIFIED BY  id-hex-extended-subject
859 --}
860
861 ExtendedSubject ::= UniversalOrBMPString--{ub-extended-subject-length}
862
863 -- Information category
864 --information-category IPMS-EXTENSION ::= {
865 --  VALUE          InformationCategories,
866 --  IDENTIFIED BY  id-hex-information-category
867 --}
868
869 InformationCategories ::=
870   SEQUENCE --(SIZE (1..ub-information-categories))-- OF InformationCategory
871
872 InformationCategory ::= SEQUENCE {
873   reference    [0]  OBJECT IDENTIFIER OPTIONAL,
874   description  [1]  DescriptionString OPTIONAL
875 }
876
877 DescriptionString ::= UniversalOrBMPString --{ub-information-category-length}
878
879 -- Manual handling Instructions
880 --manual-handling-instructions IPMS-EXTENSION ::= {
881 --  VALUE          ManualHandlingInstructions,
882 --  IDENTIFIED BY  id-hex-manual-handling-instructions
883 --}
884
885 ManualHandlingInstructions ::=
886   SEQUENCE --(SIZE (1..ub-manual-handling-instructions))-- OF
887     ManualHandlingInstruction
888
889 ManualHandlingInstruction ::=
890   UniversalOrBMPString --{ub-manual-handling-instruction-length}
891
892 -- Originator's Reference
893 --originators-reference IPMS-EXTENSION ::= {
894 --  VALUE          OriginatorsReference,
895 --  IDENTIFIED BY  id-hex-originators-reference
896 --}
897
898 OriginatorsReference ::= UniversalOrBMPString--{ub-originators-reference-length}
899
900 -- Precedence Policy Identifier
901 --precedence-policy-identifier IPMS-EXTENSION ::= {
902 --  VALUE          PrecedencePolicyIdentifier,
903 --  IDENTIFIED BY  id-hex-precedence-policy-id
904 --}
905
906 PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER
907
908 -- Precedence
909 --precedence IPMS-EXTENSION ::= {
910 --  VALUE          Precedence,
911 --  IDENTIFIED BY  id-rex-precedence
912 --}
913
914 Precedence ::= INTEGER(0..ub-precedence)
915
916 -- END - - of IPMSHeadingExtensions
917
918 -- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999)
919 -- IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0)
920 --   extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::=
921 --BEGIN
922
923 -- Prologue
924 -- Exports everything.
925 --IMPORTS
926   -- IPMS Information Objects
927 --  EXTENDED-BODY-PART-TYPE
928     --==
929 --    FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
930 --      information-objects(2) version-1999(1)}
931   -- IPMS Object Identifiers
932 --  id-ep-general-text, id-et-general-text
933     --==
934 --    FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
935 --      object-identifiers(0) version-1999(1)};
936
937 -- General Text body part
938 --general-text-body-part EXTENDED-BODY-PART-TYPE ::= {
939 --  PARAMETERS  {GeneralTextParameters
940 --               IDENTIFIED BY  id-ep-general-text},
941 --  DATA        {GeneralTextData
942 --               IDENTIFIED BY  id-et-general-text}
943 --}
944
945 GeneralTextParameters ::= SET OF CharacterSetRegistration
946
947 GeneralTextData ::= GeneralString
948
949 CharacterSetRegistration ::= INTEGER(1..32767)
950
951 --END - - of IPMSExtendedBodyPartTypes2
952
953 -- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999)
954 --IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
955 --  extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::=
956 --BEGIN
957
958 -- Prologue
959 -- Exports everything.
960 --IMPORTS
961   -- IPMS Information Objects
962 --  EXTENDED-BODY-PART-TYPE
963     --==
964 --    FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
965 --      information-objects(2) version-1999(1)}
966   -- IPMS Object Identifiers
967 --  id-ep-voice, id-et-voice
968     --==
969 --    FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
970 --      object-identifiers(0) version-1999(1)};
971
972 -- Extended Voice body part
973 --voice-body-part EXTENDED-BODY-PART-TYPE ::= {
974 --  PARAMETERS  {VoiceParameters
975 --               IDENTIFIED BY  id-ep-voice},
976 --  DATA        {VoiceData
977 --               IDENTIFIED BY  id-et-voice}
978 --}
979
980 VoiceParameters ::= SEQUENCE {
981   voice-message-duration     [0]  INTEGER OPTIONAL, -- In seconds
982   voice-encoding-type        [1]  OBJECT IDENTIFIER,
983   supplementary-information  [2]  IA5String OPTIONAL
984 }
985
986 VoiceData ::= OCTET STRING
987
988 --END - - of IPMSExtendedVoiceBodyPartType
989
990 -- Module IPMSForwardedContentBodyPartType (X.420:06/1999)
991 --IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
992 --  forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::=
993 --BEGIN
994
995 -- Prologue
996 -- Exports everything.
997 --IMPORTS
998   -- MTS Abstract Service
999 --  Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime,
1000 --    MessageSubmissionEnvelope, OriginatingMTACertificate,
1001 --    OtherMessageDeliveryFields, ProofOfSubmission
1002     --==
1003 --    FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
1004 --      mts-abstract-service(1) version-1999(1)}
1005   -- IPMS Information Objects
1006 --  EXTENDED-BODY-PART-TYPE
1007     --==
1008 --    FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
1009 --      information-objects(2) version-1999(1)}
1010   -- IPMS Object Identifiers
1011 --  id-ep-content, id-et-content
1012     --==
1013 --    FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
1014 --      object-identifiers(0) version-1999(1)};
1015
1016 -- Forwarded Content body part
1017 --content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::=
1018 --  {
1019 --  PARAMETERS
1020 --    {ForwardedContentParameters
1021 --     IDENTIFIED BY  {id-ep-content  content-type}},
1022 --  DATA        {Content
1023 --               IDENTIFIED BY  {id-et-content  content-type}}
1024 --}
1025
1026 ForwardedContentParameters ::= SET {
1027   delivery-time      [0]  MessageDeliveryTime OPTIONAL,
1028   delivery-envelope  [1]  OtherMessageDeliveryFields OPTIONAL,
1029   mts-identifier     [2]  MessageDeliveryIdentifier OPTIONAL,
1030   submission-proof   [3]  SubmissionProof OPTIONAL
1031 }
1032
1033 SubmissionProof ::= SET {
1034   proof-of-submission          [0]  ProofOfSubmission,
1035   originating-MTA-certificate  [1]  OriginatingMTACertificate,
1036   message-submission-envelope  MessageSubmissionEnvelope
1037 }
1038
1039 END -- of IPMSForwardedContentBodyPartType
1040
1041 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
1042
1043