Move /asn1 to /epan/dissectors
[metze/wireshark/wip.git] / epan / dissectors / asn1 / p1 / MTSAbstractService.asn
1 -- Module MTSAbstractService (X.411:06/1999)
2 MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
3   mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
4 BEGIN
5
6 --      Prologue
7 --      Exports everything
8 IMPORTS
9   -- Remote Operations
10   CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
11     ROS-OBJECT-CLASS
12     --==
13     FROM Remote-Operations-Information-Objects {joint-iso-itu-t
14       remote-operations(4) informationObjects(5) version1(0)}
15   emptyUnbind
16     --==
17     FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
18       remote-operations(4) useful-definitions(7) version1(0)}
19   -- MTA Abstract Service
20   internal-trace-information, trace-information
21     --==
22     FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
23       mta-abstract-service(2) version-1999(1)}
24   -- MS Abstract Service Extension
25   forwarding-request
26     --==
27     FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
28       abstract-service(1) version-1999(1)}
29   -- IPM Information Objects
30   IPMPerRecipientEnvelopeExtensions
31     --==
32     FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
33       information-objects(2) version-1999(1)}
34   -- Object Identifiers
35   id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
36     id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
37     id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
38     --==
39     FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
40       object-identifiers(0) version-1999(1)}
41   -- Operation and Error Codes
42   err-control-violates-registration,
43     err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
44     err-element-of-service-not-subscribed, err-inconsistent-request,
45     err-message-submission-identifier-invalid,
46     err-new-credentials-unacceptable,
47     err-old-credentials-incorrectly-specified, err-operation-refused,
48     err-originator-invalid, err-recipient-improperly-specified,
49     err-register-rejected, err-remote-bind-error, err-security-error,
50     err-submission-control-violated, err-unsupported-critical-function,
51     op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
52     op-message-delivery, op-message-submission, op-probe-submission,
53     op-register, op-report-delivery, op-submission-control
54     --==
55     FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
56       mts-access-protocol(1) version-1999(1)}
57   -- Directory Definitions
58   Name
59     --==
60     FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
61       informationFramework(1) 3}
62   PresentationAddress
63     --==
64     FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
65       selectedAttributeTypes(5) 3}
66   ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}
67 -- , SIGNATURE{},  SIGNED{}
68     --==
69     FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
70       authenticationFramework(7) 3}
71   -- Certificate Extensions
72   CertificateAssertion
73     --==
74     FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
75       certificateExtensions(26) 0}
76   -- Upper Bounds
77   ub-bit-options, ub-built-in-content-type,
78     ub-built-in-encoded-information-types, ub-certificates,
79     ub-common-name-length, ub-content-id-length, ub-content-length,
80     ub-content-types, ub-country-name-alpha-length,
81     ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
82     ub-dl-expansions, ub-domain-defined-attributes,
83     ub-domain-defined-attribute-type-length,
84     ub-domain-defined-attribute-value-length, ub-domain-name-length,
85     ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
86     ub-e163-4-number-length, ub-e163-4-sub-address-length,
87     ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
88     ub-integer-options, ub-local-id-length, ub-mta-name-length,
89     ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
90     ub-organizational-units, ub-organizational-unit-name-length,
91     ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
92     ub-pds-parameter-length, ub-pds-physical-address-lines,
93     ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
94     ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
95     ub-redirections, ub-redirection-classes, ub-restrictions,
96     ub-security-categories, ub-security-labels, ub-security-problems,
97     ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
98     ub-tsap-id-length, ub-unformatted-address-length,
99     ub-universal-generation-qualifier-length, ub-universal-given-name-length,
100     ub-universal-initials-length, ub-universal-surname-length,
101     ub-x121-address-length
102     --==
103     FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
104       upper-bounds(3) version-1999(1)};
105
106 -- operationObject1 OPERATION ::= {LINKED  {operationObject2}
107 -- }
108
109 -- operationObject2 OPERATION ::= {LINKED  {operationObject3}
110 -- }
111
112 -- operationObject3 OPERATION ::= {LINKED  {operationObject4}
113 -- }
114
115 -- operationObject4 OPERATION ::= {LINKED  {...}
116 -- }
117
118 --      Objects
119 MHS-OBJECT ::= ROS-OBJECT-CLASS
120
121 mts MHS-OBJECT ::= {
122   INITIATES  {mts-forced-access-contract}
123   RESPONDS   {mts-access-contract}
124   ID         id-ot-mts
125 }
126
127 mts-user MHS-OBJECT ::= {
128   INITIATES  {mts-access-contract}
129   RESPONDS   {mts-forced-access-contract}
130   ID         id-ot-mts-user
131 }
132
133 -- Contracts
134 mts-access-contract CONTRACT ::= {
135   CONNECTION             mts-connect
136   INITIATOR CONSUMER OF  {submission | delivery | administration}
137   ID                     id-ct-mts-access
138 }
139
140 mts-forced-access-contract CONTRACT ::= {
141   CONNECTION             mts-connect
142   RESPONDER CONSUMER OF  {submission | delivery | administration}
143   ID                     id-ct-mts-forced-access
144 }
145
146 -- Connection package
147 mts-connect CONNECTION-PACKAGE ::= {
148   BIND    mts-bind
149   UNBIND  mts-unbind
150   ID      id-cp-mts-connect
151 }
152
153 --      Ports
154 PORT ::= OPERATION-PACKAGE
155
156 submission PORT ::= {
157   OPERATIONS        {operationObject1, ...}
158   CONSUMER INVOKES
159     {message-submission | probe-submission | cancel-deferred-delivery, ...}
160   SUPPLIER INVOKES  {submission-control, ...}
161   ID                id-pt-submission
162 }
163
164 delivery PORT ::= {
165   OPERATIONS        {operationObject1, ...}
166   CONSUMER INVOKES  {delivery-control, ...}
167   SUPPLIER INVOKES  {message-delivery | report-delivery, ...}
168   ID                id-pt-delivery
169 }
170
171 administration PORT ::= {
172   OPERATIONS        {change-credentials, ...}
173   CONSUMER INVOKES  {register, ...}
174   SUPPLIER INVOKES  {operationObject1, ...}
175   ID                id-pt-administration
176 }
177
178 --      MTS-bind and MTS-unbind
179 ABSTRACT-OPERATION ::= OPERATION
180
181 ABSTRACT-ERROR ::= ERROR
182
183 mts-bind --ABSTRACT- -- OPERATION ::= {
184   ARGUMENT  MTSBindArgument
185   RESULT    MTSBindResult
186   ERRORS    {mts-bind-error}
187   CODE      op-ros-bind -- WS: internal operation code
188 }
189
190 MTSBindArgument ::= SET {
191   initiator-name         ObjectName,
192   messages-waiting       [1] EXPLICIT MessagesWaiting OPTIONAL,
193   initiator-credentials  [2]  InitiatorCredentials,
194   security-context       [3]  SecurityContext OPTIONAL,
195   ...,
196   extensions
197     [5]  SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
198 }
199
200 MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
201
202 -- May contain private extensions and future standardised extensions
203 MTSBindResult ::= SET {
204   responder-name         ObjectName,
205   messages-waiting       [1] EXPLICIT MessagesWaiting OPTIONAL,
206   responder-credentials  [2]  ResponderCredentials,
207   ...,
208   extensions
209     [5]  SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
210 }
211
212 MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
213
214 -- May contain private extensions and future standardised extensions
215 mts-bind-error -- ABSTRACT- -- ERROR ::= {
216   PARAMETER
217     INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
218              unacceptable-security-context(4),
219              inadequate-association-confidentiality(5)}(0..ub-integer-options)
220   CODE err-ros-bind  -- WS: internal error code
221 }
222
223 mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
224
225 --      Association Control Parameters
226 ObjectName ::= CHOICE {
227   user-agent     ORAddressAndOptionalDirectoryName,
228   mTA            [0]  MTAName,
229   message-store  [4]  ORAddressAndOptionalDirectoryName
230 }
231
232 MessagesWaiting ::= SET {
233   urgent      [0]  DeliveryQueue,
234   normal      [1]  DeliveryQueue,
235   non-urgent  [2]  DeliveryQueue
236 }
237
238 DeliveryQueue ::= SET {
239   messages  [0]  INTEGER(0..ub-queue-size),
240   octets    [1]  INTEGER(0..ub-content-length) OPTIONAL
241 }
242
243 InitiatorCredentials ::= Credentials
244
245 ResponderCredentials ::= Credentials
246
247 Credentials ::= CHOICE {
248   simple     Password,
249   strong     [0]  StrongCredentials,
250   ...,
251   protected  [1]  ProtectedPassword
252 }
253
254 Password ::= CHOICE {
255   ia5-string    IA5String(SIZE (0..ub-password-length)),
256   octet-string  OCTET STRING(SIZE (0..ub-password-length))
257 }
258
259 StrongCredentials ::= SET {
260   bind-token               [0]  Token OPTIONAL,
261   certificate              [1]  Certificates OPTIONAL,
262   ...,
263   certificate-selector     [2]  CertificateAssertion OPTIONAL
264 }
265
266 ProtectedPassword ::= SET {
267   signature
268 --    SIGNATURE{SET {password  Password,
269 --                   time1     [0]  UTCTime OPTIONAL,
270 --                   time2     [1]  UTCTime OPTIONAL,
271 --                   random1   [2]  BIT STRING OPTIONAL,
272 --                   random2   [3]  BIT STRING OPTIONAL}},
273   Signature,
274   time1      [0]  UTCTime OPTIONAL,
275   time2      [1]  UTCTime OPTIONAL,
276   random1    [2]  BIT STRING OPTIONAL,
277   random2    [3]  BIT STRING OPTIONAL
278 }
279
280 Signature ::= SEQUENCE {
281   algorithmIdentifier   AlgorithmIdentifier,
282   encrypted             BIT STRING
283 }
284
285 SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
286
287 --      Submission Port
288 message-submission -- ABSTRACT- -- OPERATION ::= {
289   ARGUMENT         MessageSubmissionArgument
290   RESULT           MessageSubmissionResult
291   ERRORS
292     {submission-control-violated | element-of-service-not-subscribed |
293       originator-invalid | recipient-improperly-specified |
294       inconsistent-request | security-error | unsupported-critical-function |
295       remote-bind-error}
296   LINKED           {operationObject1, ...}
297   INVOKE PRIORITY  {4 -- | 6 | 7 -- }
298   CODE             op-message-submission
299 }
300
301 MessageSubmissionArgument ::= SEQUENCE {
302   envelope  MessageSubmissionEnvelope,
303   content   Content
304 }
305
306 MessageSubmissionResult ::= SET {
307   message-submission-identifier  MessageSubmissionIdentifier,
308   message-submission-time        [0]  MessageSubmissionTime,
309   content-identifier             ContentIdentifier OPTIONAL,
310   extensions
311     [1]  SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
312 }
313
314 MessageSubmissionResultExtensions EXTENSION ::=
315   {-- May contain the following extensions, private extensions, and future standardised extensions,
316    -- at most one instance of each extension type:
317    originating-MTA-certificate | proof-of-submission | PrivateExtensions, 
318    ...}
319
320 probe-submission -- ABSTRACT- -- OPERATION ::= {
321   ARGUMENT         ProbeSubmissionArgument
322   RESULT           ProbeSubmissionResult
323   ERRORS
324     {submission-control-violated | element-of-service-not-subscribed |
325       originator-invalid | recipient-improperly-specified |
326       inconsistent-request | security-error | unsupported-critical-function |
327       remote-bind-error}
328   LINKED           {operationObject1, ...}
329   INVOKE PRIORITY  {5}
330   CODE             op-probe-submission
331 }
332
333 ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
334
335 ProbeSubmissionResult ::= SET {
336   probe-submission-identifier  ProbeSubmissionIdentifier,
337   probe-submission-time        [0]  ProbeSubmissionTime,
338   content-identifier           ContentIdentifier OPTIONAL,
339   extensions
340     [1]  SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
341 }
342
343 ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
344
345 -- May contain private extensions and future standardised extensions,
346 -- at most one instance of each extension type
347 cancel-deferred-delivery -- ABSTRACT- -- OPERATION ::= {
348   ARGUMENT         CancelDeferredDeliveryArgument
349   RESULT           CancelDeferredDeliveryResult
350   ERRORS
351     {deferred-delivery-cancellation-rejected |
352       message-submission-identifier-invalid | remote-bind-error}
353   LINKED           {operationObject1, ...}
354   INVOKE PRIORITY  {3}
355   CODE             op-cancel-deferred-delivery
356 }
357
358 CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
359
360 CancelDeferredDeliveryResult ::= NULL
361
362 submission-control -- ABSTRACT- -- OPERATION ::= {
363   ARGUMENT         SubmissionControlArgument
364   RESULT           SubmissionControlResult
365   ERRORS           {security-error | remote-bind-error}
366   LINKED           {operationObject1, ...}
367   INVOKE PRIORITY  {3}
368   CODE             op-submission-control
369 }
370
371 SubmissionControlArgument ::= SubmissionControls
372
373 SubmissionControlResult ::= Waiting
374
375 submission-control-violated -- ABSTRACT- -- ERROR ::= {
376   PARAMETER  NULL
377   CODE       err-submission-control-violated
378 }
379
380 element-of-service-not-subscribed -- ABSTRACT- -- ERROR ::= {
381   PARAMETER  NULL
382   CODE       err-element-of-service-not-subscribed
383 }
384
385 deferred-delivery-cancellation-rejected -- ABSTRACT- -- ERROR ::= {
386   PARAMETER  NULL
387   CODE       err-deferred-delivery-cancellation-rejected
388 }
389
390 originator-invalid -- ABSTRACT- -- ERROR ::= {
391   PARAMETER  NULL
392   CODE       err-originator-invalid
393 }
394
395 recipient-improperly-specified -- ABSTRACT- -- ERROR ::= {
396   PARAMETER  ImproperlySpecifiedRecipients
397   CODE       err-recipient-improperly-specified
398 }
399
400 ImproperlySpecifiedRecipients ::=
401   SEQUENCE SIZE (1..ub-recipients) OF RecipientName
402
403 message-submission-identifier-invalid -- ABSTRACT- -- ERROR ::= {
404   PARAMETER  NULL
405   CODE       err-message-submission-identifier-invalid
406 }
407
408 inconsistent-request -- ABSTRACT- -- ERROR ::= {
409   PARAMETER  NULL
410   CODE       err-inconsistent-request
411 }
412
413 security-error -- ABSTRACT- -- ERROR ::= {
414   PARAMETER  SecurityProblem
415   CODE       err-security-error
416 }
417
418 SecurityProblem ::= INTEGER {
419   assemby-instructions-conflict-with-security-services(0),
420   authentication-problem(1), authentication-failure-on-subject-message(2),
421   confidentiality-association-problem(3), decryption-failed(4),
422   decryption-key-unobtainable(5), failure-of-proof-of-message(6),
423   forbidden-user-security-label-register(7),
424   incompatible-change-with-original-security-context(8),
425   integrity-failure-on-subject-message(9), invalid-security-label(10),
426   invalid-security-label-update(11), key-failure(12),
427   mandatory-parameter-absence(13), operation-security-failure(14),
428   redirection-prohibited(15), refused-alternate-recipient-name(16),
429   repudiation-failure-of-message(17),
430   responder-credentials-checking-problem(18), security-context-failure(19),
431   security-context-problem(20), security-policy-violation(21),
432   security-services-refusal(22), token-decryption-failed(23), token-error(24),
433   unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
434   unauthorised-entry-class(27),
435   unauthorised-originally-intended-recipient-name(28),
436   unauthorised-originator-name(29), unauthorised-recipient-name(30),
437   unauthorised-security-label-update(31), unauthorised-user-name(32),
438   unknown-security-label(33), unsupported-algorithm-identifier(34),
439   unsupported-security-policy(35)}(0..ub-security-problems)
440
441 unsupported-critical-function -- ABSTRACT- -- ERROR ::= {
442   PARAMETER  NULL
443   CODE       err-unsupported-critical-function
444 }
445
446 remote-bind-error -- ABSTRACT- -- ERROR ::= {
447   PARAMETER  NULL
448   CODE       err-remote-bind-error
449 }
450
451 --      Submission Port Parameters
452 MessageSubmissionIdentifier ::= MTSIdentifier
453
454 MessageSubmissionTime ::= Time
455
456 ProbeSubmissionIdentifier ::= MTSIdentifier
457
458 ProbeSubmissionTime ::= Time
459
460 SubmissionControls ::=
461   Controls
462     (WITH COMPONENTS {
463        ...,
464        permissible-content-types              ABSENT,
465        permissible-encoded-information-types  ABSENT
466      })
467
468 Waiting ::= SET {
469   waiting-operations                 [0]  Operations DEFAULT {},
470   waiting-messages                   [1]  WaitingMessages DEFAULT {},
471   waiting-content-types
472     [2]  SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
473   waiting-encoded-information-types  EncodedInformationTypes OPTIONAL
474 }
475
476 Operations ::= BIT STRING {
477   probe-submission-or-report-delivery(0),
478   message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
479
480 -- holding 'one', not-holding 'zero'
481 WaitingMessages ::= BIT STRING {
482   long-content(0), low-priority(1), other-security-labels(2)
483 }(SIZE (0..ub-bit-options))
484
485 --      Delivery Port
486 message-delivery -- ABSTRACT- -- OPERATION ::= {
487   ARGUMENT         MessageDeliveryArgument
488   RESULT           MessageDeliveryResult
489   ERRORS
490     {delivery-control-violated | security-error |
491       unsupported-critical-function}
492   LINKED           {operationObject1, ...}
493   INVOKE PRIORITY  {4 -- | 6 | 7 --}
494   CODE             op-message-delivery
495 }
496
497 MessageDeliveryArgument ::= SEQUENCE {
498   COMPONENTS OF MessageDeliveryEnvelope,
499   content  Content
500 }
501
502 MessageDeliveryResult ::= SET {
503   recipient-certificate  [0]  RecipientCertificate OPTIONAL,
504   proof-of-delivery      [1] IMPLICIT ProofOfDelivery OPTIONAL,
505   ...,
506   extensions
507     [2]  SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
508 }
509
510 MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
511
512 -- May contain private extensions and future standardised extensions
513 report-delivery -- ABSTRACT- -- OPERATION ::= {
514   ARGUMENT         ReportDeliveryArgument
515   RESULT           ReportDeliveryResult
516   ERRORS
517     {delivery-control-violated | security-error |
518       unsupported-critical-function}
519   LINKED           {operationObject1, ...}
520   INVOKE PRIORITY  {5}
521   CODE             op-report-delivery
522 }
523
524 ReportDeliveryArgument ::= SET {
525   COMPONENTS OF ReportDeliveryEnvelope,
526   returned-content  [0]  Content OPTIONAL
527 }
528
529 ReportDeliveryResult ::= CHOICE {
530   empty-result  NULL,
531   ...,
532   extensions
533     SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
534 }
535
536 ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
537
538 -- May contain private extensions and future standardised extensions
539 delivery-control -- ABSTRACT- -- OPERATION ::= {
540   ARGUMENT         DeliveryControlArgument
541   RESULT           DeliveryControlResult
542   ERRORS
543     {control-violates-registration | security-error | operation-refused}
544   LINKED           {operationObject1, ...}
545   INVOKE PRIORITY  {3}
546   CODE             op-delivery-control
547 }
548
549 DeliveryControlArgument ::= SET {
550 --  COMPONENTS OF DeliveryControls,
551   restrict                               [0]  BOOLEAN DEFAULT TRUE,
552   -- update 'TRUE', remove 'FALSE'
553   permissible-operations                 [1]  Operations OPTIONAL,
554   permissible-maximum-content-length     [2]  ContentLength OPTIONAL,
555   permissible-lowest-priority            Priority OPTIONAL,
556   permissible-content-types              [4]  ContentTypes OPTIONAL,
557   permissible-encoded-information-types
558     PermissibleEncodedInformationTypes OPTIONAL,
559   permissible-security-context           [5]  SecurityContext OPTIONAL,
560   extensions
561     [6]  SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
562 }
563
564 DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
565
566 -- May contain private extensions and future standardised extensions
567 DeliveryControlResult ::= SET {
568   COMPONENTS OF Waiting,
569   extensions
570     [6]  SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
571 }
572
573 DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
574
575 -- May contain private extensions and future standardised extensions
576 delivery-control-violated -- ABSTRACT- -- ERROR ::= {
577   PARAMETER  NULL
578   CODE       err-delivery-control-violated
579 }
580
581 control-violates-registration -- ABSTRACT- -- ERROR ::= {
582   PARAMETER  NULL
583   CODE       err-control-violates-registration
584 }
585
586 operation-refused -- ABSTRACT- -- ERROR ::= {
587   PARAMETER  RefusedOperation
588   CODE       err-operation-refused
589 }
590
591 RefusedOperation ::= SET {
592   refused-argument
593     CHOICE {built-in-argument  [1]  RefusedArgument,
594             refused-extension  EXTENSION.&id},
595   refusal-reason    [2]  RefusalReason
596 }
597
598 RefusedArgument ::= INTEGER {
599   user-name(0), user-address(1), deliverable-content-types(2),
600   deliverable-maximum-content-length(3),
601   deliverable-encoded-information-types-constraints(4),
602   deliverable-security-labels(5), recipient-assigned-redirections(6),
603   restricted-delivery(7),
604   retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
605   restrict(10), permissible-operations(11), permissible-lowest-priority(12),
606   permissible-encoded-information-types(13), permissible-content-types(14),
607   permissible-maximum-content-length(15), permissible-security-context(16)
608 }(0..ub-integer-options)
609
610 RefusalReason ::= INTEGER {
611   facility-unavailable(0), facility-not-subscribed(1),
612   parameter-unacceptable(2)}(0..ub-integer-options)
613
614 --      Delivery Port Parameters
615 RecipientCertificate ::= Certificates
616
617 ProofOfDelivery ::= Signature
618 --  SIGNATURE
619 --    {SEQUENCE {algorithm-identifier
620 --                 ProofOfDeliveryAlgorithmIdentifier,
621 --               delivery-time                       MessageDeliveryTime,
622 --               this-recipient-name                 ThisRecipientName,
623 --               originally-intended-recipient-name
624 --                 OriginallyIntendedRecipientName OPTIONAL,
625 --               content                             Content,
626 --               content-identifier                  ContentIdentifier OPTIONAL,
627 --               message-security-label
628 --                 MessageSecurityLabel OPTIONAL}}
629
630 ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
631
632 DeliveryControls ::= Controls
633
634 Controls ::= SET {
635   restrict                               [0]  BOOLEAN DEFAULT TRUE,
636   -- update 'TRUE', remove 'FALSE'
637   permissible-operations                 [1]  Operations OPTIONAL,
638   permissible-maximum-content-length     [2]  ContentLength OPTIONAL,
639   permissible-lowest-priority            Priority OPTIONAL,
640   permissible-content-types              [4]  ContentTypes OPTIONAL,
641   permissible-encoded-information-types
642     PermissibleEncodedInformationTypes OPTIONAL,
643   permissible-security-context           [5]  SecurityContext OPTIONAL
644 }
645
646 --      Note - The Tags [0], [1] and [2] are altered for the Register operation only.
647 PermissibleEncodedInformationTypes ::=
648   EncodedInformationTypesConstraints
649
650 --      Administration Port
651 register -- ABSTRACT- -- OPERATION ::= {
652   ARGUMENT         RegisterArgument
653   RESULT           RegisterResult
654   ERRORS
655     {register-rejected | remote-bind-error | operation-refused |
656       security-error}
657   LINKED           {operationObject1, ...}
658   INVOKE PRIORITY  {5}
659   CODE             op-register
660 }
661
662 RegisterArgument ::= SET {
663   user-name                  UserName OPTIONAL,
664   user-address               [0]  UserAddress OPTIONAL,
665   deliverable-class
666     SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
667   default-delivery-controls  [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
668   redirections               [3]  Redirections OPTIONAL,
669   restricted-delivery        [4]  RestrictedDelivery OPTIONAL,
670   retrieve-registrations     [5]  RegistrationTypes OPTIONAL,
671   extensions
672     [6]  SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
673 }
674
675 RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
676
677 -- May contain private extensions and future standardised extensions
678 RegisterResult ::= CHOICE {
679   empty-result      NULL,
680   non-empty-result
681     SET {registered-information
682            [0]  RegisterArgument
683                   (WITH COMPONENTS {
684                      ...,
685                      retrieve-registrations  ABSENT
686                    }) OPTIONAL,
687          extensions
688            [1]  SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
689   }
690 }
691
692 RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
693
694 -- May contain private extensions and future standardised extensions
695 change-credentials -- ABSTRACT- -- OPERATION ::= {
696   ARGUMENT         ChangeCredentialsArgument
697   RESULT           NULL
698   ERRORS
699     {new-credentials-unacceptable | old-credentials-incorrectly-specified |
700       remote-bind-error | security-error}
701   LINKED           {operationObject1, ...}
702   INVOKE PRIORITY  {5}
703   CODE             op-change-credentials
704 }
705
706 ChangeCredentialsArgument ::= SET {
707   old-credentials  [0]  Credentials(WITH COMPONENTS {
708                                       simple  
709                                     }),
710   new-credentials  [1]  Credentials(WITH COMPONENTS {
711                                       simple  
712                                     })
713 }
714
715 register-rejected -- ABSTRACT- -- ERROR ::= {
716   PARAMETER  NULL
717   CODE       err-register-rejected
718 }
719
720 new-credentials-unacceptable -- ABSTRACT- -- ERROR ::= {
721   PARAMETER  NULL
722   CODE       err-new-credentials-unacceptable
723 }
724
725 old-credentials-incorrectly-specified -- ABSTRACT- -- ERROR ::= {
726   PARAMETER  NULL
727   CODE       err-old-credentials-incorrectly-specified
728 }
729
730 --      Administration Port Parameters
731 UserName ::= ORAddressAndOptionalDirectoryName
732
733 UserAddress ::= CHOICE {
734   x121
735     [0]  SEQUENCE {x121-address
736                      NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
737                    tsap-id
738                      PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
739   },
740   presentation  [1]  PSAPAddress
741 }
742
743 PSAPAddress ::= PresentationAddress
744
745 DeliverableClass ::=
746   MessageClass
747     (WITH COMPONENTS {
748        ...,
749        priority         ABSENT,
750        -- The 'objects' component shall always be defaulted.
751        -- objects ABSENT,
752        -- A component with a DEFAULT clause cannot be ABSENT 
753        applies-only-to  ABSENT
754      })
755
756 DefaultDeliveryControls ::=
757   Controls
758     (WITH COMPONENTS {
759        ...,
760        
761        -- The 'restrict' component shall always be defaulted.
762        -- restrict ABSENT,
763        -- A component with a DEFAULT clause cannot be ABSENT 
764        permissible-security-context  ABSENT
765      })
766
767 Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
768
769 RecipientRedirection ::= SET {
770   redirection-classes
771     [0]  SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
772   recipient-assigned-alternate-recipient
773     [1]  RecipientAssignedAlternateRecipient OPTIONAL
774 }
775
776 RedirectionClass ::= MessageClass
777
778 MessageClass ::= SET {
779   content-types                          [0]  ContentTypes OPTIONAL,
780   maximum-content-length                 [1]  ContentLength OPTIONAL,
781   encoded-information-types-constraints
782     [2]  EncodedInformationTypesConstraints OPTIONAL,
783   security-labels                        [3]  SecurityContext OPTIONAL,
784   priority                               [4]  SET OF Priority OPTIONAL,
785   objects
786     [5]  ENUMERATED {messages(0), reports(1), both(2), ...
787                      } DEFAULT both,
788   applies-only-to                        [6]  SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports 
789   extensions
790     [7]  SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
791 }
792
793 EncodedInformationTypesConstraints ::= SEQUENCE {
794   unacceptable-eits            [0]  ExtendedEncodedInformationTypes OPTIONAL,
795   acceptable-eits              [1]  ExtendedEncodedInformationTypes OPTIONAL,
796   exclusively-acceptable-eits  [2]  ExtendedEncodedInformationTypes OPTIONAL
797 }
798
799 MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
800
801 -- May contain private extensions and future standardised extensions
802 RecipientAssignedAlternateRecipient ::=
803   ORAddressAndOrDirectoryName
804
805 RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
806
807 Restriction ::= SET {
808   permitted    BOOLEAN DEFAULT TRUE,
809   source-type
810     BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
811       DEFAULT {originated-by, redirected-by, dl-expanded-by},
812   source-name  ExactOrPattern OPTIONAL
813 }
814
815 ExactOrPattern ::= CHOICE {
816   exact-match    [0]  ORName,
817   pattern-match  [1]  ORName
818 }
819
820 RegistrationTypes ::= SEQUENCE {
821   standard-parameters
822     [0]  BIT STRING {user-name(0), user-address(1), deliverable-class(2),
823                      default-delivery-controls(3), redirections(4),
824                      restricted-delivery(5)} OPTIONAL,
825   extensions           [1]  SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
826 }
827
828 --      Message Submission Envelope
829 MessageSubmissionEnvelope ::= SET {
830   COMPONENTS OF PerMessageSubmissionFields,
831   per-recipient-fields
832     [1]  SEQUENCE SIZE (1..ub-recipients) OF
833            PerRecipientMessageSubmissionFields
834 }
835
836 PerMessageSubmissionFields ::= SET {
837   originator-name                     OriginatorName,
838   original-encoded-information-types  OriginalEncodedInformationTypes OPTIONAL,
839   content-type                        ContentType,
840   content-identifier                  ContentIdentifier OPTIONAL,
841   priority                            Priority DEFAULT normal,
842   per-message-indicators              PerMessageIndicators DEFAULT {},
843   deferred-delivery-time              [0]  DeferredDeliveryTime OPTIONAL,
844   extensions
845     [2]  SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
846 }
847
848 PerMessageSubmissionExtensions EXTENSION ::=
849   {-- May contain the following extensions, private extensions, and future standardised extensions,
850    -- at most one instance of each extension type:
851    recipient-reassignment-prohibited | dl-expansion-prohibited |
852    conversion-with-loss-prohibited | latest-delivery-time |
853    originator-return-address | originator-certificate |
854    content-confidentiality-algorithm-identifier |
855    message-origin-authentication-check | message-security-label |
856    proof-of-submission-request | content-correlator | dl-exempted-recipients |
857    certificate-selectors | multiple-originator-certificates |
858    forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
859    ...}
860
861 PerRecipientMessageSubmissionFields ::= SET {
862   recipient-name             RecipientName,
863   originator-report-request  [0]  OriginatorReportRequest,
864   explicit-conversion        [1]  ExplicitConversion OPTIONAL,
865   extensions
866     [2]  SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
867       DEFAULT {}
868 }
869
870 PerRecipientMessageSubmissionExtensions EXTENSION ::=
871   {-- May contain the following extensions, private extensions, and future standardised extensions,
872    -- at most one instance of each extension type:
873    originator-requested-alternate-recipient | requested-delivery-method |
874    physical-forwarding-prohibited | physical-forwarding-address-request |
875    physical-delivery-modes | registered-mail-type | recipient-number-for-advice
876    | physical-rendition-attributes | physical-delivery-report-request |
877    message-token | content-integrity-check | proof-of-delivery-request |
878    certificate-selectors-override | recipient-certificate |
879    IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
880
881 --      Probe Submission Envelope
882 ProbeSubmissionEnvelope ::= SET {
883   COMPONENTS OF PerProbeSubmissionFields,
884   per-recipient-fields
885     [3]  SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
886 }
887
888 PerProbeSubmissionFields ::= SET {
889   originator-name                     OriginatorName,
890   original-encoded-information-types  OriginalEncodedInformationTypes OPTIONAL,
891   content-type                        ContentType,
892   content-identifier                  ContentIdentifier OPTIONAL,
893   content-length                      [0]  ContentLength OPTIONAL,
894   per-message-indicators              PerMessageIndicators DEFAULT {},
895   extensions
896     [2]  SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
897 }
898
899 PerProbeSubmissionExtensions EXTENSION ::=
900   {-- May contain the following extensions, private extensions, and future standardised extensions,
901    -- at most one instance of each extension type:
902    recipient-reassignment-prohibited | dl-expansion-prohibited |
903    conversion-with-loss-prohibited | originator-certificate |
904    message-security-label | content-correlator |
905    probe-origin-authentication-check | PrivateExtensions, ...}
906
907 PerRecipientProbeSubmissionFields ::= SET {
908   recipient-name             RecipientName,
909   originator-report-request  [0]  OriginatorReportRequest,
910   explicit-conversion        [1]  ExplicitConversion OPTIONAL,
911   extensions
912     [2]  SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
913       DEFAULT {}
914 }
915
916 PerRecipientProbeSubmissionExtensions EXTENSION ::=
917   {-- May contain the following extensions, private extensions, and future standardised extensions,
918    -- at most one instance of each extension type:
919    originator-requested-alternate-recipient | requested-delivery-method |
920    physical-rendition-attributes | PrivateExtensions, ...}
921
922 --      Message Delivery Envelope
923 MessageDeliveryEnvelope ::= SEQUENCE {
924   message-delivery-identifier  MessageDeliveryIdentifier,
925   message-delivery-time        MessageDeliveryTime,
926   other-fields                 OtherMessageDeliveryFields
927 }
928
929 OtherMessageDeliveryFields ::= SET {
930   content-type                         DeliveredContentType,
931   originator-name                      DeliveredOriginatorName,
932   original-encoded-information-types
933     [1]  OriginalEncodedInformationTypes OPTIONAL,
934   priority                             Priority DEFAULT normal,
935   delivery-flags                       [2]  DeliveryFlags OPTIONAL,
936   other-recipient-names                [3]  OtherRecipientNames OPTIONAL,
937   this-recipient-name                  [4]  ThisRecipientName,
938   originally-intended-recipient-name
939     [5]  OriginallyIntendedRecipientName OPTIONAL,
940   converted-encoded-information-types
941     [6]  ConvertedEncodedInformationTypes OPTIONAL,
942   message-submission-time              [7]  MessageSubmissionTime,
943   content-identifier                   [8]  ContentIdentifier OPTIONAL,
944   extensions
945     [9]  SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
946 }
947
948 MessageDeliveryExtensions EXTENSION ::=
949   {-- May contain the following extensions, private extensions, and future standardised extensions,
950    -- at most one instance of each extension type:
951    conversion-with-loss-prohibited | requested-delivery-method |
952    physical-forwarding-prohibited | physical-forwarding-address-request |
953    physical-delivery-modes | registered-mail-type | recipient-number-for-advice
954    | physical-rendition-attributes | originator-return-address |
955    physical-delivery-report-request | originator-certificate | message-token |
956    content-confidentiality-algorithm-identifier | content-integrity-check |
957    message-origin-authentication-check | message-security-label |
958    proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
959    certificate-selectors-override | multiple-originator-certificates |
960    recipient-certificate | IPMPerRecipientEnvelopeExtensions |
961    redirection-history | dl-expansion-history | trace-information |
962    internal-trace-information | PrivateExtensions, ...}
963
964 --      Report Delivery Envelope
965 ReportDeliveryEnvelope ::= SET {
966   COMPONENTS OF PerReportDeliveryFields,
967   per-recipient-fields
968     SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
969 }
970
971 PerReportDeliveryFields ::= SET {
972   subject-submission-identifier       SubjectSubmissionIdentifier,
973   content-identifier                  ContentIdentifier OPTIONAL,
974   content-type                        ContentType OPTIONAL,
975   original-encoded-information-types  OriginalEncodedInformationTypes OPTIONAL,
976   extensions
977     [1]  SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
978 }
979
980 ReportDeliveryExtensions EXTENSION ::=
981   {-- May contain the following extensions, private extensions, and future standardised extensions,
982    -- at most one instance of each extension type:
983    message-security-label | content-correlator | redirection-history |
984    originator-and-DL-expansion-history | reporting-DL-name |
985    reporting-MTA-certificate | report-origin-authentication-check |
986    trace-information | internal-trace-information | reporting-MTA-name |
987    PrivateExtensions, ...}
988
989 PerRecipientReportDeliveryFields ::= SET {
990   actual-recipient-name                [0]  ActualRecipientName,
991   report-type                          [1]  ReportType,
992   converted-encoded-information-types
993     ConvertedEncodedInformationTypes OPTIONAL,
994   originally-intended-recipient-name
995     [2]  OriginallyIntendedRecipientName OPTIONAL,
996   supplementary-information            [3]  SupplementaryInformation OPTIONAL,
997   extensions
998     [4]  SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
999       DEFAULT {}
1000 }
1001
1002 PerRecipientReportDeliveryExtensions EXTENSION ::=
1003   {-- May contain the following extensions, private extensions, and future standardised extensions,
1004    -- at most one instance of each extension type:
1005    redirection-history | physical-forwarding-address | recipient-certificate |
1006    proof-of-delivery | PrivateExtensions, ...}
1007
1008 ReportType ::= CHOICE {
1009   delivery      [0]  DeliveryReport,
1010   non-delivery  [1]  NonDeliveryReport
1011 }
1012
1013 DeliveryReport ::= SET {
1014   message-delivery-time  [0]  MessageDeliveryTime,
1015   type-of-MTS-user       [1]  TypeOfMTSUser DEFAULT public
1016 }
1017
1018 NonDeliveryReport ::= SET {
1019   non-delivery-reason-code      [0]  NonDeliveryReasonCode,
1020   non-delivery-diagnostic-code  [1]  NonDeliveryDiagnosticCode OPTIONAL
1021 }
1022
1023 --      Envelope Fields
1024 OriginatorName ::= ORAddressAndOrDirectoryName
1025
1026 DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
1027
1028 OriginalEncodedInformationTypes ::= EncodedInformationTypes
1029
1030 ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
1031
1032 ContentType ::= CHOICE {
1033   built-in  BuiltInContentType,
1034   extended  ExtendedContentType
1035 }
1036
1037 BuiltInContentType ::= [APPLICATION 6]  INTEGER {
1038   unidentified(0),
1039   external(1), -- identified by the object-identifier of the EXTERNAL content
1040   interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
1041   edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
1042
1043 ExtendedContentType ::= OBJECT IDENTIFIER -- RELATIVE-OID
1044
1045 DeliveredContentType ::= CHOICE {
1046   built-in  [0]  BuiltInContentType,
1047   extended  ExtendedContentType
1048 }
1049
1050 ContentIdentifier ::=
1051   [APPLICATION 10]  PrintableString(SIZE (1..ub-content-id-length))
1052
1053 PerMessageIndicators ::= [APPLICATION 8]  BIT STRING {
1054   disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
1055   
1056   -- disclosure-of-other-recipients-prohibited 'zero';
1057   -- ignored for Probe-submission
1058   implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one', 
1059   
1060   -- implicit-conversion-allowed 'zero'
1061   alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
1062   
1063   -- alternate-recipient-prohibited 'zero'
1064   content-return-request(3), -- content-return-requested 'one', 
1065   
1066   -- content-return-not-requested 'zero';
1067   -- ignored for Probe-submission
1068   reserved(4), -- bit reserved by MOTIS 1986
1069   bit-5(5),
1070   bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
1071   
1072   -- notification type-2 : bit 5 'one' and bit 6 'zero'
1073   -- notification type-3 : bit 5 'one' and bit 6 'one'
1074   -- the mapping between notification type 1, 2, 3
1075   -- and the content specific notification types are defined
1076   -- in relevant content specifications
1077   service-message(7) -- the message content is for service purposes;
1078   
1079   
1080 -- it may be a notification related to a service message;
1081 -- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
1082
1083 RecipientName ::= ORAddressAndOrDirectoryName
1084
1085 OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
1086                                                    
1087 -- at most one bit shall be 'one':
1088 -- report bit 'one' requests a 'report';
1089 -- non-delivery-report bit 'one' requests a 'non-delivery-report';
1090 -- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
1091
1092 ExplicitConversion ::= INTEGER {
1093   ia5-text-to-teletex(0),
1094   -- values 1 to 7 are no longer defined
1095   ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
1096   ia5-text-to-videotex(10), teletex-to-ia5-text(11),
1097   teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
1098   teletex-to-videotex(14),
1099   -- value 15 is no longer defined
1100   videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
1101
1102 DeferredDeliveryTime ::= Time
1103
1104 Priority ::= [APPLICATION 7]  ENUMERATED {normal(0), non-urgent(1), urgent(2)}
1105
1106 ContentLength ::= INTEGER(0..ub-content-length)
1107
1108 MessageDeliveryIdentifier ::= MTSIdentifier
1109
1110 MessageDeliveryTime ::= Time
1111
1112 DeliveryFlags ::= BIT STRING {
1113   implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one', 
1114   
1115   -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
1116
1117 OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
1118
1119 OtherRecipientName ::= ORAddressAndOptionalDirectoryName
1120
1121 ThisRecipientName ::= ORAddressAndOptionalDirectoryName
1122
1123 OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
1124
1125 ConvertedEncodedInformationTypes ::= EncodedInformationTypes
1126
1127 SubjectSubmissionIdentifier ::= MTSIdentifier
1128
1129 ActualRecipientName ::= ORAddressAndOrDirectoryName
1130
1131 TypeOfMTSUser ::= INTEGER {
1132   public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
1133 }(0..ub-mts-user-types)
1134
1135 NonDeliveryReasonCode ::= INTEGER {
1136   transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
1137   physical-rendition-not-performed(3), physical-delivery-not-performed(4),
1138   restricted-delivery(5), directory-operation-unsuccessful(6),
1139   deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
1140 }(0..ub-reason-codes)
1141
1142 NonDeliveryDiagnosticCode ::= INTEGER {
1143   unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
1144   loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
1145   encoded-information-types-unsupported(6), content-too-long(7),
1146   conversion-impractical(8), implicit-conversion-prohibited(9),
1147   implicit-conversion-not-subscribed(10), invalid-arguments(11),
1148   content-syntax-error(12), size-constraint-violation(13),
1149   protocol-violation(14), content-type-not-supported(15),
1150   too-many-recipients(16), no-bilateral-agreement(17),
1151   unsupported-critical-function(18), conversion-with-loss-prohibited(19),
1152   line-too-long(20), page-split(21), pictorial-symbol-loss(22),
1153   punctuation-symbol-loss(23), alphabetic-character-loss(24),
1154   multiple-information-loss(25), recipient-reassignment-prohibited(26),
1155   redirection-loop-detected(27), dl-expansion-prohibited(28),
1156   no-dl-submit-permission(29), dl-expansion-failure(30),
1157   physical-rendition-attributes-not-supported(31),
1158   undeliverable-mail-physical-delivery-address-incorrect(32),
1159   undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
1160   undeliverable-mail-physical-delivery-address-incomplete(34),
1161   undeliverable-mail-recipient-unknown(35),
1162   undeliverable-mail-recipient-deceased(36),
1163   undeliverable-mail-organization-expired(37),
1164   undeliverable-mail-recipient-refused-to-accept(38),
1165   undeliverable-mail-recipient-did-not-claim(39),
1166   undeliverable-mail-recipient-changed-address-permanently(40),
1167   undeliverable-mail-recipient-changed-address-temporarily(41),
1168   undeliverable-mail-recipient-changed-temporary-address(42),
1169   undeliverable-mail-new-address-unknown(43),
1170   undeliverable-mail-recipient-did-not-want-forwarding(44),
1171   undeliverable-mail-originator-prohibited-forwarding(45),
1172   secure-messaging-error(46), unable-to-downgrade(47),
1173   unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
1174   incorrect-notification-type(50),
1175   dl-expansion-prohibited-by-security-policy(51),
1176   forbidden-alternate-recipient(52), security-policy-violation(53),
1177   security-services-refusal(54), unauthorised-dl-member(55),
1178   unauthorised-dl-name(56),
1179   unauthorised-originally-intended-recipient-name(57),
1180   unauthorised-originator-name(58), unauthorised-recipient-name(59),
1181   unreliable-system(60), authentication-failure-on-subject-message(61),
1182   decryption-failed(62), decryption-key-unobtainable(63),
1183   double-envelope-creation-failure(64),
1184   double-enveloping-message-restoring-failure(65),
1185   failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
1186   invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
1187   operation-security-failure(71), repudiation-failure-of-message(72),
1188   security-context-failure(73), token-decryption-failed(74), token-error(75),
1189   unknown-security-label(76), unsupported-algorithm-identifier(77),
1190   unsupported-security-policy(78)}(0..ub-diagnostic-codes)
1191
1192 SupplementaryInformation ::=
1193   PrintableString(SIZE (1..ub-supplementary-info-length))
1194
1195 --      Extension Fields
1196 EXTENSION ::= CLASS {
1197   &id           ExtensionType UNIQUE,
1198   &Type         OPTIONAL,
1199   &absent       &Type OPTIONAL,
1200   &recommended  Criticality DEFAULT {}
1201 }
1202 WITH SYNTAX {
1203   [&Type
1204    [IF ABSENT &absent],]
1205   [RECOMMENDED CRITICALITY &recommended,]
1206   IDENTIFIED BY &id
1207 }
1208
1209 ExtensionType ::= CHOICE {
1210   standard-extension  [0]  --INTEGER(0..ub-extension-types)-- StandardExtension,
1211   private-extension   [3]  OBJECT IDENTIFIER
1212 }
1213
1214 StandardExtension ::= INTEGER {
1215   recipient-reassignment-prohibited (1),
1216   originator-requested-alternate-recipient (2),
1217   dl-expansion-prohibited (3),
1218   conversion-with-loss-prohibited (4),
1219   latest-delivery-time (5),
1220   requested-delivery-method (6),
1221   physical-forwarding-prohibited (7),
1222   physical-forwarding-address-request (8),
1223   physical-delivery-modes (9),
1224   registered-mail-type (10),
1225   recipient-number-for-advice (11),
1226   physical-rendition-attributes (12),
1227   originator-return-address (13),
1228   physical-delivery-report-request (14),
1229   originator-certificate (15),
1230   message-token (16),
1231   content-confidentiality-algorithm-identifier (17),
1232   content-integrity-check (18),
1233   message-origin-authentication-check (19),
1234   message-security-label (20),
1235   proof-of-submission-request (21),
1236   proof-of-delivery-request (22),
1237   content-correlator (23),
1238   probe-origin-authentication-check (24),
1239   redirection-history (25),
1240   dl-expansion-history (26),
1241   physical-forwarding-address (27),
1242   recipient-certificate (28),
1243   proof-of-delivery (29),
1244   originator-and-DL-expansion-history (30),
1245   reporting-DL-name (31),
1246   reporting-MTA-certificate (32),
1247   report-origin-authentication-check (33),
1248   originating-MTA-certificate (34),
1249   proof-of-submission (35),
1250   forwarding-request (36),
1251   trace-information (37),
1252   internal-trace-information (38),
1253   reporting-MTA-name (39),
1254   multiple-originator-certificates (40),
1255   blind-copy-recipients (41),
1256   dl-exempted-recipients (42),
1257   body-part-encryption-token (43),
1258   forwarded-content-token (44),
1259   certificate-selectors (45)
1260 }
1261
1262
1263 Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
1264 }(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
1265  
1266
1267 ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
1268   type         EXTENSION.&id({ChosenFrom}),
1269   criticality  [1]  Criticality DEFAULT {},
1270   value        [2]  EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
1271 }
1272
1273 PrivateExtensions EXTENSION ::=
1274   {-- Any value shall be relayed and delivered if not Critical (see Table 27)
1275    -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
1276    -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
1277
1278 recipient-reassignment-prohibited EXTENSION ::= {
1279   RecipientReassignmentProhibited
1280   IF ABSENT                recipient-reassignment-allowed,
1281   RECOMMENDED CRITICALITY  {for-delivery},
1282   IDENTIFIED BY            standard-extension:1
1283 }
1284
1285 RecipientReassignmentProhibited ::= ENUMERATED {
1286   recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
1287 }
1288
1289 originator-requested-alternate-recipient EXTENSION ::= {
1290   OriginatorRequestedAlternateRecipient,
1291   RECOMMENDED CRITICALITY  {for-submission},
1292   IDENTIFIED BY            standard-extension:2
1293 }
1294
1295 OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
1296
1297 -- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name 
1298 -- defined in Figure 4, since on submission the OR-address need not be present, but on 
1299 -- transfer the OR-address must be present.
1300 dl-expansion-prohibited EXTENSION ::= {
1301   DLExpansionProhibited
1302   IF ABSENT                dl-expansion-allowed,
1303   RECOMMENDED CRITICALITY  {for-delivery},
1304   IDENTIFIED BY            standard-extension:3
1305 }
1306
1307 DLExpansionProhibited ::= ENUMERATED {
1308   dl-expansion-allowed(0), dl-expansion-prohibited(1)}
1309
1310 conversion-with-loss-prohibited EXTENSION ::= {
1311   ConversionWithLossProhibited
1312   IF ABSENT                conversion-with-loss-allowed,
1313   RECOMMENDED CRITICALITY  {for-delivery},
1314   IDENTIFIED BY            standard-extension:4
1315 }
1316
1317 ConversionWithLossProhibited ::= ENUMERATED {
1318   conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
1319 }
1320
1321 latest-delivery-time EXTENSION ::= {
1322   LatestDeliveryTime,
1323   RECOMMENDED CRITICALITY  {for-delivery},
1324   IDENTIFIED BY            standard-extension:5
1325 }
1326
1327 LatestDeliveryTime ::= Time
1328
1329 requested-delivery-method EXTENSION ::= {
1330   RequestedDeliveryMethod
1331   IF ABSENT      {any-delivery-method},
1332   IDENTIFIED BY  standard-extension:6
1333 }
1334
1335 RequestedDeliveryMethod ::=
1336   SEQUENCE OF INTEGER { -- each different in order of preference,
1337       -- most preferred first
1338       any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
1339       telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
1340       g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
1341       telephone-delivery(9)}(0..ub-integer-options)
1342
1343 physical-forwarding-prohibited EXTENSION ::= {
1344   PhysicalForwardingProhibited
1345   IF ABSENT                physical-forwarding-allowed,
1346   RECOMMENDED CRITICALITY  {for-delivery},
1347   IDENTIFIED BY            standard-extension:7
1348 }
1349
1350 PhysicalForwardingProhibited ::= ENUMERATED {
1351   physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
1352
1353 physical-forwarding-address-request EXTENSION ::= {
1354   PhysicalForwardingAddressRequest
1355   IF ABSENT                physical-forwarding-address-not-requested,
1356   RECOMMENDED CRITICALITY  {for-delivery},
1357   IDENTIFIED BY            standard-extension:8
1358 }
1359
1360 PhysicalForwardingAddressRequest ::= ENUMERATED {
1361   physical-forwarding-address-not-requested(0),
1362   physical-forwarding-address-requested(1)}
1363
1364 physical-delivery-modes EXTENSION ::= {
1365   PhysicalDeliveryModes
1366   IF ABSENT                {ordinary-mail},
1367   RECOMMENDED CRITICALITY  {for-delivery},
1368   IDENTIFIED BY            standard-extension:9
1369 }
1370
1371 PhysicalDeliveryModes ::= BIT STRING {
1372   ordinary-mail(0), special-delivery(1), express-mail(2),
1373   counter-collection(3), counter-collection-with-telephone-advice(4),
1374   counter-collection-with-telex-advice(5),
1375   counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
1376                                              
1377 -- bits 0 to 6 are mutually exclusive
1378 -- bit 7 can be set independently of any of bits 0 to 6 --}
1379 (SIZE (0..ub-bit-options))
1380
1381 registered-mail-type EXTENSION ::= {
1382   RegisteredMailType
1383   IF ABSENT                non-registered-mail,
1384   RECOMMENDED CRITICALITY  {for-delivery},
1385   IDENTIFIED BY            standard-extension:10
1386 }
1387
1388 RegisteredMailType ::= INTEGER {
1389   non-registered-mail(0), registered-mail(1),
1390   registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
1391
1392 recipient-number-for-advice EXTENSION ::= {
1393   RecipientNumberForAdvice,
1394   RECOMMENDED CRITICALITY  {for-delivery},
1395   IDENTIFIED BY            standard-extension:11
1396 }
1397
1398 RecipientNumberForAdvice ::=
1399   TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
1400
1401 physical-rendition-attributes EXTENSION ::= {
1402   PhysicalRenditionAttributes
1403   IF ABSENT                id-att-physicalRendition-basic,
1404   RECOMMENDED CRITICALITY  {for-delivery},
1405   IDENTIFIED BY            standard-extension:12
1406 }
1407
1408 PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
1409
1410 originator-return-address EXTENSION ::= {
1411   OriginatorReturnAddress,
1412   IDENTIFIED BY  standard-extension:13
1413 }
1414
1415 OriginatorReturnAddress ::= ORAddress
1416
1417 physical-delivery-report-request EXTENSION ::= {
1418   PhysicalDeliveryReportRequest
1419   IF ABSENT                return-of-undeliverable-mail-by-PDS,
1420   RECOMMENDED CRITICALITY  {for-delivery},
1421   IDENTIFIED BY            standard-extension:14
1422 }
1423
1424 PhysicalDeliveryReportRequest ::= INTEGER {
1425   return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
1426   return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
1427 }(0..ub-integer-options)
1428
1429 originator-certificate EXTENSION ::= {
1430   OriginatorCertificate,
1431   IDENTIFIED BY  standard-extension:15
1432 }
1433
1434 OriginatorCertificate ::= Certificates
1435
1436 message-token EXTENSION ::= {
1437   MessageToken,
1438   RECOMMENDED CRITICALITY  {for-delivery},
1439   IDENTIFIED BY            standard-extension:16
1440 }
1441
1442 MessageToken ::= Token
1443
1444 content-confidentiality-algorithm-identifier EXTENSION ::= {
1445   ContentConfidentialityAlgorithmIdentifier,
1446   RECOMMENDED CRITICALITY  {for-delivery},
1447   IDENTIFIED BY            standard-extension:17
1448 }
1449
1450 ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
1451
1452 content-integrity-check EXTENSION ::= {
1453   ContentIntegrityCheck,
1454   RECOMMENDED CRITICALITY  {for-delivery},
1455   IDENTIFIED BY            standard-extension:18
1456 }
1457
1458 ContentIntegrityCheck ::= Signature
1459 --  SIGNATURE
1460 --    {SEQUENCE {algorithm-identifier
1461 --                 ContentIntegrityAlgorithmIdentifier OPTIONAL,
1462 --               content               Content}}
1463
1464 ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
1465
1466 message-origin-authentication-check EXTENSION ::= {
1467   MessageOriginAuthenticationCheck,
1468   RECOMMENDED CRITICALITY  {for-delivery},
1469   IDENTIFIED BY            standard-extension:19
1470 }
1471
1472 MessageOriginAuthenticationCheck ::= Signature
1473 --  SIGNATURE
1474 --    {SEQUENCE {algorithm-identifier
1475 --                 MessageOriginAuthenticationAlgorithmIdentifier,
1476 --               content                 Content,
1477 --               content-identifier      ContentIdentifier OPTIONAL,
1478 --               message-security-label  MessageSecurityLabel OPTIONAL}}
1479
1480 MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
1481
1482 message-security-label EXTENSION ::= {
1483   MessageSecurityLabel,
1484   RECOMMENDED CRITICALITY  {for-delivery},
1485   IDENTIFIED BY            standard-extension:20
1486 }
1487
1488 MessageSecurityLabel ::= SecurityLabel
1489
1490 proof-of-submission-request EXTENSION ::= {
1491   ProofOfSubmissionRequest
1492   IF ABSENT                proof-of-submission-not-requested,
1493   RECOMMENDED CRITICALITY  {for-submission},
1494   IDENTIFIED BY            standard-extension:21
1495 }
1496
1497 ProofOfSubmissionRequest ::= ENUMERATED {
1498   proof-of-submission-not-requested(0), proof-of-submission-requested(1)
1499 }
1500
1501 proof-of-delivery-request EXTENSION ::= {
1502   ProofOfDeliveryRequest
1503   IF ABSENT                proof-of-delivery-not-requested,
1504   RECOMMENDED CRITICALITY  {for-delivery},
1505   IDENTIFIED BY            standard-extension:22
1506 }
1507
1508 ProofOfDeliveryRequest ::= ENUMERATED {
1509   proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
1510
1511 content-correlator EXTENSION ::= {
1512   ContentCorrelator,
1513   IDENTIFIED BY  standard-extension:23
1514 }
1515
1516 ContentCorrelator ::= CHOICE {ia5text  IA5String,
1517                               octets   OCTET STRING
1518 }
1519
1520 probe-origin-authentication-check EXTENSION ::= {
1521   ProbeOriginAuthenticationCheck,
1522   RECOMMENDED CRITICALITY  {for-delivery},
1523   IDENTIFIED BY            standard-extension:24
1524 }
1525
1526 ProbeOriginAuthenticationCheck ::= Signature
1527 --  SIGNATURE
1528 --    {SEQUENCE {algorithm-identifier
1529 --                 ProbeOriginAuthenticationAlgorithmIdentifier,
1530 --               content-identifier      ContentIdentifier OPTIONAL,
1531 --               message-security-label  MessageSecurityLabel OPTIONAL}}
1532
1533 ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
1534
1535 redirection-history EXTENSION ::= {
1536   RedirectionHistory,
1537   IDENTIFIED BY  standard-extension:25
1538 }
1539
1540 RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
1541
1542 Redirection ::= SEQUENCE {
1543   intended-recipient-name  IntendedRecipientName,
1544   redirection-reason       RedirectionReason
1545 }
1546
1547 IntendedRecipientName ::= SEQUENCE {
1548   intended-recipient  ORAddressAndOptionalDirectoryName,
1549   redirection-time    Time
1550 }
1551
1552 RedirectionReason ::= ENUMERATED {
1553   recipient-assigned-alternate-recipient(0),
1554   originator-requested-alternate-recipient(1),
1555   recipient-MD-assigned-alternate-recipient(2),
1556   -- The following values may not be supported by implementations of earlier versions of this Service Definition
1557   directory-look-up(3), alias(4), ...
1558   }
1559
1560 dl-expansion-history EXTENSION ::= {
1561   DLExpansionHistory,
1562   IDENTIFIED BY  standard-extension:26
1563 }
1564
1565 DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
1566
1567 DLExpansion ::= SEQUENCE {
1568   dl                 ORAddressAndOptionalDirectoryName,
1569   dl-expansion-time  Time
1570 }
1571
1572 physical-forwarding-address EXTENSION ::= {
1573   PhysicalForwardingAddress,
1574   IDENTIFIED BY  standard-extension:27
1575 }
1576
1577 PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
1578
1579 recipient-certificate EXTENSION ::= {
1580   RecipientCertificate,
1581   IDENTIFIED BY  standard-extension:28
1582 }
1583
1584 proof-of-delivery EXTENSION ::= {
1585   ProofOfDelivery,
1586   IDENTIFIED BY  standard-extension:29
1587 }
1588
1589 originator-and-DL-expansion-history EXTENSION ::= {
1590   OriginatorAndDLExpansionHistory,
1591   IDENTIFIED BY  standard-extension:30
1592 }
1593
1594 OriginatorAndDLExpansionHistory ::=
1595   SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
1596
1597 OriginatorAndDLExpansion ::= SEQUENCE {
1598   originator-or-dl-name          ORAddressAndOptionalDirectoryName,
1599   origination-or-expansion-time  Time
1600 }
1601
1602 reporting-DL-name EXTENSION ::= {
1603   ReportingDLName,
1604   IDENTIFIED BY  standard-extension:31
1605 }
1606
1607 ReportingDLName ::= ORAddressAndOptionalDirectoryName
1608
1609 reporting-MTA-certificate EXTENSION ::= {
1610   ReportingMTACertificate,
1611   RECOMMENDED CRITICALITY  {for-delivery},
1612   IDENTIFIED BY            standard-extension:32
1613 }
1614
1615 ReportingMTACertificate ::= Certificates
1616
1617 report-origin-authentication-check EXTENSION ::= {
1618   ReportOriginAuthenticationCheck,
1619   RECOMMENDED CRITICALITY  {for-delivery},
1620   IDENTIFIED BY            standard-extension:33
1621 }
1622
1623 ReportOriginAuthenticationCheck ::= Signature
1624 --  SIGNATURE
1625 --    {SEQUENCE {algorithm-identifier
1626 --                 ReportOriginAuthenticationAlgorithmIdentifier,
1627 --               content-identifier      ContentIdentifier OPTIONAL,
1628 --               message-security-label  MessageSecurityLabel OPTIONAL,
1629 --               per-recipient
1630 --                 SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
1631 --    }}
1632
1633 ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
1634
1635 PerRecipientReportFields ::= SEQUENCE {
1636   actual-recipient-name               ActualRecipientName,
1637   originally-intended-recipient-name  OriginallyIntendedRecipientName OPTIONAL,
1638   report-type
1639     CHOICE {delivery      [0]  PerRecipientDeliveryReportFields,
1640             non-delivery  [1]  PerRecipientNonDeliveryReportFields}
1641 }
1642
1643 PerRecipientDeliveryReportFields ::= SEQUENCE {
1644   message-delivery-time  MessageDeliveryTime,
1645   type-of-MTS-user       TypeOfMTSUser,
1646   recipient-certificate  [0]  RecipientCertificate OPTIONAL,
1647   proof-of-delivery      [1]  ProofOfDelivery OPTIONAL
1648 }
1649
1650 PerRecipientNonDeliveryReportFields ::= SEQUENCE {
1651   non-delivery-reason-code      NonDeliveryReasonCode,
1652   non-delivery-diagnostic-code  NonDeliveryDiagnosticCode OPTIONAL
1653 }
1654
1655 originating-MTA-certificate EXTENSION ::= {
1656   OriginatingMTACertificate,
1657   IDENTIFIED BY  standard-extension:34
1658 }
1659
1660 OriginatingMTACertificate ::= Certificates
1661
1662 proof-of-submission EXTENSION ::= {
1663   ProofOfSubmission,
1664   IDENTIFIED BY  standard-extension:35
1665 }
1666
1667 ProofOfSubmission ::= Signature
1668 --  SIGNATURE
1669 --    {SEQUENCE {algorithm-identifier
1670 --                 ProofOfSubmissionAlgorithmIdentifier,
1671 --               message-submission-envelope    MessageSubmissionEnvelope,
1672 --               content                        Content,
1673 --               message-submission-identifier  MessageSubmissionIdentifier,
1674 --               message-submission-time        MessageSubmissionTime}}
1675
1676 ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
1677
1678 reporting-MTA-name EXTENSION ::= {
1679   ReportingMTAName,
1680   IDENTIFIED BY  standard-extension:39
1681 }
1682
1683 ReportingMTAName ::= SEQUENCE {
1684   domain              GlobalDomainIdentifier,
1685   mta-name            MTAName,
1686   mta-directory-name  [0]  Name OPTIONAL
1687 }
1688
1689 multiple-originator-certificates EXTENSION ::= {
1690   ExtendedCertificates,
1691   IDENTIFIED BY  standard-extension:40
1692 }
1693
1694 ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
1695
1696 ExtendedCertificate ::= CHOICE {
1697   directory-entry  [0]  Name, -- Name of a Directory entry where the certificate can be found
1698   certificate      [1]  Certificates
1699 }
1700
1701 dl-exempted-recipients EXTENSION ::= {
1702   DLExemptedRecipients,
1703   IDENTIFIED BY  standard-extension:42
1704 }
1705
1706 DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
1707
1708 certificate-selectors EXTENSION ::= {
1709   CertificateSelectors,
1710   IDENTIFIED BY  standard-extension:45
1711 }
1712
1713 CertificateSelectors ::= SET {
1714   encryption-recipient           [0]  CertificateAssertion OPTIONAL,
1715   encryption-originator          [1]  CertificateAssertion OPTIONAL,
1716   content-integrity-check        [2]  CertificateAssertion OPTIONAL,
1717   token-signature                [3]  CertificateAssertion OPTIONAL,
1718   message-origin-authentication  [4]  CertificateAssertion OPTIONAL
1719 }
1720
1721 certificate-selectors-override EXTENSION ::= {
1722   CertificateSelectors
1723     (WITH COMPONENTS {
1724        ...,
1725        message-origin-authentication  ABSENT
1726      }),
1727   IDENTIFIED BY  standard-extension:46
1728 }
1729
1730 -- Some standard-extensions are defined elsewhere:
1731 --      36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
1732 --      37 (trace-information), and 38 (internal-trace-information) in Figure 4;
1733 --      41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in 
1734 --              ITU-T Rec. X.420 | ISO/IEC 10021-7
1735 --      Common Parameter Types
1736 Content ::=
1737   OCTET
1738     STRING -- when the content-type has the integer value external, the value of the
1739
1740 -- content octet string is the ASN.1 encoding of the external-content;
1741 -- an external-content is a data type EXTERNAL
1742 MTSIdentifier ::= [APPLICATION 4]  SEQUENCE {
1743   global-domain-identifier  GlobalDomainIdentifier,
1744   local-identifier          LocalIdentifier
1745 }
1746
1747 LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
1748
1749 GlobalDomainIdentifier ::= [APPLICATION 3]  SEQUENCE {
1750   country-name                CountryName,
1751   administration-domain-name  AdministrationDomainName,
1752   private-domain-identifier   PrivateDomainIdentifier OPTIONAL
1753 }
1754
1755 PrivateDomainIdentifier ::= CHOICE {
1756   numeric    NumericString(SIZE (1..ub-domain-name-length)),
1757   printable  PrintableString(SIZE (1..ub-domain-name-length))
1758 }
1759
1760 MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
1761
1762 Time ::= UTCTime
1763
1764 --      OR Names
1765 ORAddressAndOrDirectoryName ::= ORName
1766
1767 ORAddressAndOptionalDirectoryName ::= ORName
1768
1769 ORName ::= [APPLICATION 0]  SEQUENCE {
1770   -- address --COMPONENTS OF ORAddress,
1771   directory-name  [0]  Name OPTIONAL
1772 }
1773
1774 ORAddress ::= SEQUENCE {
1775   built-in-standard-attributes        BuiltInStandardAttributes,
1776   built-in-domain-defined-attributes  BuiltInDomainDefinedAttributes OPTIONAL,
1777   -- see also teletex-domain-defined-attributes
1778   extension-attributes                ExtensionAttributes OPTIONAL
1779 }
1780
1781 --      The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
1782 --      sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
1783 --      Built-in Standard Attributes
1784 BuiltInStandardAttributes ::= SEQUENCE {
1785   country-name                CountryName OPTIONAL,
1786   administration-domain-name  AdministrationDomainName OPTIONAL,
1787   network-address             [0]  NetworkAddress OPTIONAL,
1788   -- see also extended-network-address
1789   terminal-identifier         [1]  TerminalIdentifier OPTIONAL,
1790   private-domain-name         [2]  PrivateDomainName OPTIONAL,
1791   organization-name           [3]  OrganizationName OPTIONAL,
1792   -- see also teletex-organization-name
1793   numeric-user-identifier     [4]  NumericUserIdentifier OPTIONAL,
1794   personal-name               [5]  PersonalName OPTIONAL,
1795   -- see also teletex-personal-name
1796   organizational-unit-names   [6]  OrganizationalUnitNames OPTIONAL
1797   -- see also teletex-organizational-unit-names 
1798 }
1799
1800 CountryName ::= [APPLICATION 1]  CHOICE {
1801   x121-dcc-code         NumericString(SIZE (ub-country-name-numeric-length)),
1802   iso-3166-alpha2-code  PrintableString(SIZE (ub-country-name-alpha-length))
1803 }
1804
1805 AdministrationDomainName ::= [APPLICATION 2]  CHOICE {
1806   numeric    NumericString(SIZE (0..ub-domain-name-length)),
1807   printable  PrintableString(SIZE (0..ub-domain-name-length))
1808 }
1809
1810 NetworkAddress ::= X121Address
1811
1812 -- see also extended-network-address
1813 X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
1814
1815 TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
1816
1817 PrivateDomainName ::= CHOICE {
1818   numeric    NumericString(SIZE (1..ub-domain-name-length)),
1819   printable  PrintableString(SIZE (1..ub-domain-name-length))
1820 }
1821
1822 OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
1823
1824 -- see also teletex-organization-name
1825 NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
1826
1827 PersonalName ::= SET {
1828   surname               [0]  PrintableString(SIZE (1..ub-surname-length)),
1829   given-name
1830     [1]  PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
1831   initials
1832     [2]  PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
1833   generation-qualifier
1834     [3]  PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
1835 }
1836
1837 -- see also teletex-personal-name
1838 OrganizationalUnitNames ::=
1839   SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
1840
1841 -- see also teletex-organizational-unit-names
1842 OrganizationalUnitName ::=
1843   PrintableString(SIZE (1..ub-organizational-unit-name-length))
1844
1845 --      Built-in Domain-defined Attributes
1846 BuiltInDomainDefinedAttributes ::=
1847   SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
1848     BuiltInDomainDefinedAttribute
1849
1850 BuiltInDomainDefinedAttribute ::= SEQUENCE {
1851   type   PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
1852   value  PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
1853 }
1854
1855 --      Extension Attributes
1856 ExtensionAttributes ::=
1857   SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
1858
1859 ExtensionAttribute ::= SEQUENCE {
1860   extension-attribute-type
1861     [0]  --EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable})-- ExtensionAttributeType,
1862   extension-attribute-value
1863     [1]  EXTENSION-ATTRIBUTE.&Type
1864            ({ExtensionAttributeTable}{@extension-attribute-type})
1865 }
1866
1867 ExtensionAttributeType ::= INTEGER {
1868   common-name (1),
1869   teletex-common-name (2),
1870   teletex-organization-name (3),
1871   teletex-personal-name (4),
1872   teletex-organizational-unit-names (5),
1873   teletex-domain-defined-attributes (6),
1874   pds-name (7),
1875   physical-delivery-country-name (8),
1876   postal-code (9),
1877   physical-delivery-office-name (10),
1878   physical-delivery-office-number (11),
1879   extension-OR-address-components (12),
1880   physical-delivery-personal-name (13),
1881   physical-delivery-organization-name (14),
1882   extension-physical-delivery-address-components (15),
1883   unformatted-postal-address (16),
1884   street-address (17),
1885   post-office-box-address (18),
1886   poste-restante-address (19),
1887   unique-postal-name (20),
1888   local-postal-attributes (21),
1889   extended-network-address (22),
1890   terminal-type (23),
1891   universal-common-name (24),
1892   universal-organization-name (25),
1893   universal-personal-name (26),
1894   universal-organizational-unit-names (27),
1895   universal-domain-defined-attributes (28),
1896   universal-physical-delivery-office-name (29),
1897   universal-physical-delivery-office-number (30),
1898   universal-extension-OR-address-components (31),
1899   universal-physical-delivery-personal-name (32),
1900   universal-physical-delivery-organization-name (33),
1901   universal-extension-physical-delivery-address-components (34),
1902   universal-unformatted-postal-address (35),
1903   universal-street-address (36),
1904   universal-post-office-box-address (37),
1905   universal-poste-restante-address (38),
1906   universal-unique-postal-name (39),
1907   universal-local-postal-attributes (40)
1908 }
1909
1910 EXTENSION-ATTRIBUTE ::= CLASS {
1911   &id    INTEGER(0..ub-extension-attributes) UNIQUE,
1912   &Type  
1913 }WITH SYNTAX {&Type
1914               IDENTIFIED BY &id
1915 }
1916
1917 ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
1918   {common-name | teletex-common-name | universal-common-name |
1919    teletex-organization-name | universal-organization-name |
1920    teletex-personal-name | universal-personal-name |
1921    teletex-organizational-unit-names | universal-organizational-unit-names |
1922    teletex-domain-defined-attributes | universal-domain-defined-attributes |
1923    pds-name | physical-delivery-country-name | postal-code |
1924    physical-delivery-office-name | universal-physical-delivery-office-name |
1925    physical-delivery-office-number | universal-physical-delivery-office-number
1926    | extension-OR-address-components |
1927    universal-extension-OR-address-components | physical-delivery-personal-name
1928    | universal-physical-delivery-personal-name |
1929    physical-delivery-organization-name |
1930    universal-physical-delivery-organization-name |
1931    extension-physical-delivery-address-components |
1932    universal-extension-physical-delivery-address-components |
1933    unformatted-postal-address | universal-unformatted-postal-address |
1934    street-address | universal-street-address | post-office-box-address |
1935    universal-post-office-box-address | poste-restante-address |
1936    universal-poste-restante-address | unique-postal-name |
1937    universal-unique-postal-name | local-postal-attributes |
1938    universal-local-postal-attributes | extended-network-address | terminal-type
1939   }
1940
1941 --      Extension Standard Attributes
1942 common-name EXTENSION-ATTRIBUTE ::= {CommonName
1943                                      IDENTIFIED BY  1
1944 }
1945
1946 CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
1947
1948 teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
1949                                              IDENTIFIED BY  2
1950 }
1951
1952 TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
1953
1954 universal-common-name EXTENSION-ATTRIBUTE ::= {
1955   UniversalCommonName
1956   IDENTIFIED BY  24
1957 }
1958
1959 UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
1960
1961 teletex-organization-name EXTENSION-ATTRIBUTE ::= {
1962   TeletexOrganizationName
1963   IDENTIFIED BY  3
1964 }
1965
1966 TeletexOrganizationName ::=
1967   TeletexString(SIZE (1..ub-organization-name-length))
1968
1969 universal-organization-name EXTENSION-ATTRIBUTE ::= {
1970   UniversalOrganizationName
1971   IDENTIFIED BY  25
1972 }
1973
1974 UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
1975
1976 teletex-personal-name EXTENSION-ATTRIBUTE ::= {
1977   TeletexPersonalName
1978   IDENTIFIED BY  4
1979 }
1980
1981 TeletexPersonalName ::= SET {
1982   surname               [0]  TeletexString(SIZE (1..ub-surname-length)),
1983   given-name
1984     [1]  TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
1985   initials
1986     [2]  TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
1987   generation-qualifier
1988     [3]  TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
1989 }
1990
1991 universal-personal-name EXTENSION-ATTRIBUTE ::= {
1992   UniversalPersonalName
1993   IDENTIFIED BY  26
1994 }
1995
1996 UniversalPersonalName ::= SET {
1997   surname               [0]  UniversalOrBMPString{ub-universal-surname-length},
1998   --    If a language is specified within surname, then that language applies to each of the following
1999   --    optional components unless the component specifies another language.
2000   given-name
2001     [1]  UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
2002   initials
2003     [2]  UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
2004   generation-qualifier
2005     [3]  UniversalOrBMPString{ub-universal-generation-qualifier-length}
2006       OPTIONAL
2007 }
2008
2009 teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
2010   TeletexOrganizationalUnitNames
2011   IDENTIFIED BY  5
2012 }
2013
2014 TeletexOrganizationalUnitNames ::=
2015   SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
2016
2017 TeletexOrganizationalUnitName ::=
2018   TeletexString(SIZE (1..ub-organizational-unit-name-length))
2019
2020 universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
2021   UniversalOrganizationalUnitNames
2022   IDENTIFIED BY  27
2023 }
2024
2025 UniversalOrganizationalUnitNames ::=
2026   SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
2027
2028 --      If a unit name specifies a language, then that language applies to subordinate unit names unless
2029 --      the subordinate specifies another language.
2030 UniversalOrganizationalUnitName ::=
2031   UniversalOrBMPString{ub-organizational-unit-name-length}
2032
2033 UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
2034   character-encoding
2035     CHOICE {two-octets   BMPString(SIZE (1..ub-string-length)),
2036             four-octets  UniversalString(SIZE (1..ub-string-length))},
2037   iso-639-language-code  PrintableString(SIZE (2 | 5)) OPTIONAL
2038 }
2039
2040 pds-name EXTENSION-ATTRIBUTE ::= {PDSName
2041                                   IDENTIFIED BY  7
2042 }
2043
2044 PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
2045
2046 physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
2047   PhysicalDeliveryCountryName
2048   IDENTIFIED BY  8
2049 }
2050
2051 PhysicalDeliveryCountryName ::= CHOICE {
2052   x121-dcc-code         NumericString(SIZE (ub-country-name-numeric-length)),
2053   iso-3166-alpha2-code  PrintableString(SIZE (ub-country-name-alpha-length))
2054 }
2055
2056 postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
2057                                      IDENTIFIED BY  9
2058 }
2059
2060 PostalCode ::= CHOICE {
2061   numeric-code    NumericString(SIZE (1..ub-postal-code-length)),
2062   printable-code  PrintableString(SIZE (1..ub-postal-code-length))
2063 }
2064
2065 physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
2066   PhysicalDeliveryOfficeName
2067   IDENTIFIED BY  10
2068 }
2069
2070 PhysicalDeliveryOfficeName ::= PDSParameter
2071
2072 universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
2073   UniversalPhysicalDeliveryOfficeName
2074   IDENTIFIED BY  29
2075 }
2076
2077 UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
2078
2079 physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
2080   PhysicalDeliveryOfficeNumber
2081   IDENTIFIED BY  11
2082 }
2083
2084 PhysicalDeliveryOfficeNumber ::= PDSParameter
2085
2086 universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
2087   UniversalPhysicalDeliveryOfficeNumber
2088   IDENTIFIED BY  30
2089 }
2090
2091 UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
2092
2093 extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
2094   ExtensionORAddressComponents
2095   IDENTIFIED BY  12
2096 }
2097
2098 ExtensionORAddressComponents ::= PDSParameter
2099
2100 universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
2101   UniversalExtensionORAddressComponents
2102   IDENTIFIED BY  31
2103 }
2104
2105 UniversalExtensionORAddressComponents ::= UniversalPDSParameter
2106
2107 physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
2108   PhysicalDeliveryPersonalName
2109   IDENTIFIED BY  13
2110 }
2111
2112 PhysicalDeliveryPersonalName ::= PDSParameter
2113
2114 universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
2115   UniversalPhysicalDeliveryPersonalName
2116   IDENTIFIED BY  32
2117 }
2118
2119 UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
2120
2121 physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
2122   PhysicalDeliveryOrganizationName
2123   IDENTIFIED BY  14
2124 }
2125
2126 PhysicalDeliveryOrganizationName ::= PDSParameter
2127
2128 universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= 
2129 {UniversalPhysicalDeliveryOrganizationName
2130  IDENTIFIED BY  33
2131 }
2132
2133 UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
2134
2135 extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::= 
2136 {ExtensionPhysicalDeliveryAddressComponents
2137  IDENTIFIED BY  15
2138 }
2139
2140 ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
2141
2142 universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
2143   ::= {UniversalExtensionPhysicalDeliveryAddressComponents
2144        IDENTIFIED BY  34
2145 }
2146
2147 UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
2148
2149 unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
2150   UnformattedPostalAddress
2151   IDENTIFIED BY  16
2152 }
2153
2154 UnformattedPostalAddress ::= SET {
2155   printable-address
2156     SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
2157       PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
2158   teletex-string
2159     TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
2160 }
2161
2162 universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
2163   UniversalUnformattedPostalAddress
2164   IDENTIFIED BY  35
2165 }
2166
2167 UniversalUnformattedPostalAddress ::=
2168   UniversalOrBMPString{ub-unformatted-address-length}
2169
2170 street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
2171                                         IDENTIFIED BY  17
2172 }
2173
2174 StreetAddress ::= PDSParameter
2175
2176 universal-street-address EXTENSION-ATTRIBUTE ::= {
2177   UniversalStreetAddress
2178   IDENTIFIED BY  36
2179 }
2180
2181 UniversalStreetAddress ::= UniversalPDSParameter
2182
2183 post-office-box-address EXTENSION-ATTRIBUTE ::= {
2184   PostOfficeBoxAddress
2185   IDENTIFIED BY  18
2186 }
2187
2188 PostOfficeBoxAddress ::= PDSParameter
2189
2190 universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
2191   UniversalPostOfficeBoxAddress
2192   IDENTIFIED BY  37
2193 }
2194
2195 UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
2196
2197 poste-restante-address EXTENSION-ATTRIBUTE ::= {
2198   PosteRestanteAddress
2199   IDENTIFIED BY  19
2200 }
2201
2202 PosteRestanteAddress ::= PDSParameter
2203
2204 universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
2205   UniversalPosteRestanteAddress
2206   IDENTIFIED BY  38
2207 }
2208
2209 UniversalPosteRestanteAddress ::= UniversalPDSParameter
2210
2211 unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
2212                                             IDENTIFIED BY  20
2213 }
2214
2215 UniquePostalName ::= PDSParameter
2216
2217 universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
2218   UniversalUniquePostalName
2219   IDENTIFIED BY  39
2220 }
2221
2222 UniversalUniquePostalName ::= UniversalPDSParameter
2223
2224 local-postal-attributes EXTENSION-ATTRIBUTE ::= {
2225   LocalPostalAttributes
2226   IDENTIFIED BY  21
2227 }
2228
2229 LocalPostalAttributes ::= PDSParameter
2230
2231 universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
2232   UniversalLocalPostalAttributes
2233   IDENTIFIED BY  40
2234 }
2235
2236 UniversalLocalPostalAttributes ::= UniversalPDSParameter
2237
2238 PDSParameter ::= SET {
2239   printable-string  PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
2240   teletex-string    TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
2241 }
2242
2243 UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
2244
2245 extended-network-address EXTENSION-ATTRIBUTE ::= {
2246   ExtendedNetworkAddress
2247   IDENTIFIED BY  22
2248 }
2249
2250 ExtendedNetworkAddress ::= CHOICE {
2251   e163-4-address
2252     SEQUENCE {number
2253                 [0]  NumericString(SIZE (1..ub-e163-4-number-length)),
2254               sub-address
2255                 [1]  NumericString(SIZE (1..ub-e163-4-sub-address-length))
2256                   OPTIONAL},
2257   psap-address    [0]  PresentationAddress
2258 }
2259
2260 terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
2261                                        IDENTIFIED BY  23
2262 }
2263
2264 TerminalType ::= INTEGER {
2265   telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
2266   videotex(8)}(0..ub-integer-options)
2267
2268 --      Extension Domain-defined Attributes
2269 teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
2270   TeletexDomainDefinedAttributes
2271   IDENTIFIED BY  6
2272 }
2273
2274 TeletexDomainDefinedAttributes ::=
2275   SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
2276     TeletexDomainDefinedAttribute
2277
2278 TeletexDomainDefinedAttribute ::= SEQUENCE {
2279   type   TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
2280   value  TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
2281 }
2282
2283 universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
2284   UniversalDomainDefinedAttributes
2285   IDENTIFIED BY  28
2286 }
2287
2288 UniversalDomainDefinedAttributes ::=
2289   SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
2290     UniversalDomainDefinedAttribute
2291
2292 UniversalDomainDefinedAttribute ::= SEQUENCE {
2293   type   UniversalOrBMPString{ub-domain-defined-attribute-type-length},
2294   value  UniversalOrBMPString{ub-domain-defined-attribute-value-length}
2295 }
2296
2297 --      Encoded Information Types
2298 EncodedInformationTypes ::= [APPLICATION 5]  SET {
2299   built-in-encoded-information-types  [0]  BuiltInEncodedInformationTypes,
2300   -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
2301   extended-encoded-information-types
2302     [4]  ExtendedEncodedInformationTypes OPTIONAL
2303 }
2304
2305 --      Built-in Encoded Information Types
2306 BuiltInEncodedInformationTypes ::= BIT STRING {
2307   unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
2308   videotex(6), voice(7), sfd(8), mixed-mode(9)
2309 }(SIZE (0..ub-built-in-encoded-information-types))
2310
2311 --      Extended Encoded Information Types
2312 ExtendedEncodedInformationTypes ::=
2313   SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
2314
2315 ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
2316
2317 --      Non-basic Parameters
2318 NonBasicParameters ::= SET {
2319   g3-facsimile  [1]  G3FacsimileNonBasicParameters DEFAULT {},
2320   teletex       [2]  TeletexNonBasicParameters DEFAULT {}
2321 }
2322
2323 G3FacsimileNonBasicParameters ::= BIT STRING {
2324   two-dimensional(8), -- As defined in ITU-T Recommendation T.30
2325   fine-resolution(9), --
2326   unlimited-length(20), -- These bit values are chosen such that when
2327   b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
2328   a3-width(22), -- the resulting octets have the same values
2329   b4-width(23), -- as for T.30 encoding
2330   t6-coding(25), --
2331   uncompressed(30), -- Trailing zero bits are not significant.
2332   width-middle-864-of-1728(37), -- It is recommended that implementations
2333   width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
2334   resolution-type(44), -- higher numbered bits are non-zero.
2335   resolution-400x400(45), resolution-300x300(46), resolution-8x15(47), 
2336   edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
2337   twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
2338   processable-mode-26(71)}
2339
2340 TeletexNonBasicParameters ::= SET {
2341   graphic-character-sets               [0]  TeletexString OPTIONAL,
2342   control-character-sets               [1]  TeletexString OPTIONAL,
2343   page-formats                         [2]  OCTET STRING OPTIONAL,
2344   miscellaneous-terminal-capabilities  [3]  TeletexString OPTIONAL,
2345   private-use
2346     [4]  OCTET STRING
2347       OPTIONAL -- maximum ub-teletex-private-use-length octets --
2348 }
2349
2350 TOKEN ::= TYPE-IDENTIFIER
2351
2352 -- as defined in CCITT Recommendation T.62
2353 --      Token
2354 Token ::= SEQUENCE {
2355   token-type-identifier  [0]  -- TOKEN.&id({TokensTable})-- TokenTypeIdentifier,
2356   token
2357     [1]  --TOKEN.&Type({TokensTable}{@token-type-identifier})-- TokenTypeData
2358 }
2359
2360 TokenTypeIdentifier ::= OBJECT IDENTIFIER
2361 TokenTypeData ::= ANY
2362
2363 TokensTable TOKEN ::= {asymmetric-token, ...}
2364
2365 asymmetric-token TOKEN ::= {
2366   AsymmetricToken
2367   IDENTIFIED BY  id-tok-asymmetricToken
2368 }
2369
2370 AsymmetricTokenData ::=
2371 --  SIGNED
2372 --    {--SEQUENCE {signature-algorithm-identifier   AlgorithmIdentifier,
2373                name
2374                  CHOICE {recipient-name  RecipientName,
2375                          mta
2376                            [3]  MTANameAndOptionalGDI },
2377                time                             Time,
2378                signed-data                      [0]  TokenData OPTIONAL,
2379                encryption-algorithm-identifier
2380                  [1]  AlgorithmIdentifier OPTIONAL,
2381                encrypted-data
2382                  [2]  --ENCRYPTED{TokenData}-- BIT STRING OPTIONAL} --}
2383
2384 MTANameAndOptionalGDI ::= SEQUENCE {
2385      global-domain-identifier   GlobalDomainIdentifier OPTIONAL,
2386      mta-name                   MTAName
2387 }
2388
2389 AsymmetricToken ::= SEQUENCE {
2390   asymmetric-token-data         AsymmetricTokenData,
2391   algorithm-identifier          AlgorithmIdentifier,
2392   encrypted                     BIT STRING
2393 }
2394
2395
2396 TokenData ::= SEQUENCE {
2397   type   [0]  -- TOKEN-DATA.&id({TokenDataTable})-- TokenDataType,
2398   value  [1]  TOKEN-DATA.&Type({TokenDataTable}{@type})
2399 }
2400
2401 TokenDataType ::= INTEGER {
2402   bind-token-signed-data (1),
2403   message-token-signed-data (2),
2404   message-token-encrypted-data (3),
2405   bind-token-encrypted-data(4)
2406 }
2407
2408 TOKEN-DATA ::= CLASS {&id    INTEGER UNIQUE,
2409                       &Type  
2410 }WITH SYNTAX {&Type
2411               IDENTIFIED BY &id
2412 }
2413
2414 TokenDataTable TOKEN-DATA ::=
2415   {bind-token-signed-data | message-token-signed-data |
2416    message-token-encrypted-data | bind-token-encrypted-data, ...}
2417
2418 bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
2419                                        IDENTIFIED BY  1
2420 }
2421
2422 BindTokenSignedData ::= RandomNumber
2423
2424 RandomNumber ::= BIT STRING
2425
2426 message-token-signed-data TOKEN-DATA ::= {
2427   MessageTokenSignedData
2428   IDENTIFIED BY  2
2429 }
2430
2431 MessageTokenSignedData ::= SEQUENCE {
2432   content-confidentiality-algorithm-identifier
2433     [0]  ContentConfidentialityAlgorithmIdentifier OPTIONAL,
2434   content-integrity-check
2435     [1]  ContentIntegrityCheck OPTIONAL,
2436   message-security-label
2437     [2]  MessageSecurityLabel OPTIONAL,
2438   proof-of-delivery-request
2439     [3]  ProofOfDeliveryRequest OPTIONAL,
2440   message-sequence-number                       [4]  INTEGER OPTIONAL
2441 }
2442
2443 message-token-encrypted-data TOKEN-DATA ::= {
2444   MessageTokenEncryptedData
2445   IDENTIFIED BY  3
2446 }
2447
2448 MessageTokenEncryptedData ::= SEQUENCE {
2449   content-confidentiality-key  [0]  EncryptionKey OPTIONAL,
2450   content-integrity-check      [1]  ContentIntegrityCheck OPTIONAL,
2451   message-security-label       [2]  MessageSecurityLabel OPTIONAL,
2452   content-integrity-key        [3]  EncryptionKey OPTIONAL,
2453   message-sequence-number      [4]  INTEGER OPTIONAL
2454 }
2455
2456 EncryptionKey ::= BIT STRING
2457
2458 bind-token-encrypted-data TOKEN-DATA ::= {
2459   BindTokenEncryptedData
2460   IDENTIFIED BY  4
2461 }
2462
2463 BindTokenEncryptedData ::= EXTERNAL
2464
2465 --      Security Label
2466 SecurityLabel ::= SET {
2467   security-policy-identifier  SecurityPolicyIdentifier OPTIONAL,
2468   security-classification     SecurityClassification OPTIONAL,
2469   privacy-mark                PrivacyMark OPTIONAL,
2470   security-categories         SecurityCategories OPTIONAL
2471 }
2472
2473 SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
2474
2475 SecurityClassification ::= INTEGER {
2476   unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
2477   top-secret(5)}(0..ub-integer-options)
2478
2479 PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
2480
2481 SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
2482
2483 SECURITY-CATEGORY ::= TYPE-IDENTIFIER
2484
2485 SecurityCategory ::= SEQUENCE {
2486   type   [0]  --SECURITY-CATEGORY.&id({SecurityCategoriesTable})-- SecurityCategoryIdentifier, 
2487   value  [1]  --SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})-- SecurityCategoryValue
2488 }
2489
2490 SecurityCategoryIdentifier ::= OBJECT IDENTIFIER
2491 SecurityCategoryValue ::= ANY
2492
2493
2494 SecurityCategoriesTable SECURITY-CATEGORY ::=
2495   {...}
2496
2497 END -- of MTSAbstractService
2498
2499 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
2500