1  --
2  --  This module is used to isolate all the X.400 naming information.
3  --  There is no reason to expect this to occur in a PKIX certificate.
4  --
5
6  PKIX-X400Address-2009
7      {iso(1) identified-organization(3) dod(6) internet(1) security(5)
8      mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-x400address-02(60) }
9  DEFINITIONS EXPLICIT TAGS ::=
10  BEGIN
11
12  -- X.400 address syntax starts here
13
14  ORAddress ::= SEQUENCE {
15     built-in-standard-attributes BuiltInStandardAttributes,
16     built-in-domain-defined-attributes
17                     BuiltInDomainDefinedAttributes OPTIONAL,
18
19     -- see also teletex-domain-defined-attributes
20     extension-attributes ExtensionAttributes OPTIONAL }
21
22  -- Built-in Standard Attributes
23
24  BuiltInStandardAttributes ::= SEQUENCE {
25     country-name                  CountryName OPTIONAL,
26     administration-domain-name    AdministrationDomainName OPTIONAL,
27     network-address           [0] IMPLICIT NetworkAddress OPTIONAL,
28       -- see also extended-network-address
29     terminal-identifier       [1] IMPLICIT TerminalIdentifier OPTIONAL,
30     private-domain-name       [2] PrivateDomainName OPTIONAL,
31     organization-name         [3] IMPLICIT OrganizationName OPTIONAL,
32       -- see also teletex-organization-name
33     numeric-user-identifier   [4] IMPLICIT NumericUserIdentifier
34                                   OPTIONAL,
35     personal-name             [5] IMPLICIT PersonalName OPTIONAL,
36       -- see also teletex-personal-name
37     organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
38                                   OPTIONAL }
39       -- see also teletex-organizational-unit-names
40
41  CountryName ::= [APPLICATION 1] CHOICE {
42     x121-dcc-code         NumericString
43                             (SIZE (ub-country-name-numeric-length)),
44     iso-3166-alpha2-code  PrintableString
45                             (SIZE (ub-country-name-alpha-length)) }
46
47  AdministrationDomainName ::= [APPLICATION 2] CHOICE {
48     numeric   NumericString   (SIZE (0..ub-domain-name-length)),
49     printable PrintableString (SIZE (0..ub-domain-name-length)) }
50
51  NetworkAddress ::= X121Address  -- see also extended-network-address
52
53  X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
54
55  TerminalIdentifier ::= PrintableString (SIZE
56  (1..ub-terminal-id-length))
57
58  PrivateDomainName ::= CHOICE {
59     numeric   NumericString   (SIZE (1..ub-domain-name-length)),
60     printable PrintableString (SIZE (1..ub-domain-name-length)) }
61
62  OrganizationName ::= PrintableString
63                              (SIZE (1..ub-organization-name-length))
64    -- see also teletex-organization-name
65
66  NumericUserIdentifier ::= NumericString
67                              (SIZE (1..ub-numeric-user-id-length))
68
69  PersonalName ::= SET {
70     surname     [0] IMPLICIT PrintableString
71                      (SIZE (1..ub-surname-length)),
72     given-name  [1] IMPLICIT PrintableString
73                      (SIZE (1..ub-given-name-length)) OPTIONAL,
74     initials    [2] IMPLICIT PrintableString
75                      (SIZE (1..ub-initials-length)) OPTIONAL,
76     generation-qualifier [3] IMPLICIT PrintableString
77                      (SIZE (1..ub-generation-qualifier-length))
78                      OPTIONAL }
79    -- see also teletex-personal-name
80
81  OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
82                               OF OrganizationalUnitName
83    -- see also teletex-organizational-unit-names
84
85  OrganizationalUnitName ::= PrintableString (SIZE
86                      (1..ub-organizational-unit-name-length))
87
88  -- Built-in Domain-defined Attributes
89
90  BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
91                      (1..ub-domain-defined-attributes) OF
92                      BuiltInDomainDefinedAttribute
93
94  BuiltInDomainDefinedAttribute ::= SEQUENCE {
95     type PrintableString (SIZE
96                     (1..ub-domain-defined-attribute-type-length)),
97     value PrintableString (SIZE
98                     (1..ub-domain-defined-attribute-value-length)) }
99
100  -- Extension Attributes
101
102  ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
103                 ExtensionAttribute
104
105  EXTENSION-ATTRIBUTE ::= CLASS {
106      &id             INTEGER (0..ub-extension-attributes) UNIQUE,
107      &Type
108  } WITH SYNTAX { &Type IDENTIFIED BY &id }
109
110  ExtensionAttribute ::=  SEQUENCE {
111     extension-attribute-type [0] IMPLICIT EXTENSION-ATTRIBUTE.
112          &id({SupportedExtensionAttributes}),
113     extension-attribute-value [1] EXTENSION-ATTRIBUTE.
114          &Type({SupportedExtensionAttributes}
115              {@extension-attribute-type})}
116
117  SupportedExtensionAttributes EXTENSION-ATTRIBUTE ::= {
118      ea-commonName | ea-teletexCommonName | ea-teletexOrganizationName
119      | ea-teletexPersonalName | ea-teletexOrganizationalUnitNames |
120      ea-pDSName | ea-physicalDeliveryCountryName | ea-postalCode |
121      ea-physicalDeliveryOfficeName | ea-physicalDeliveryOfficeNumber |
122      ea-extensionORAddressComponents | ea-physicalDeliveryPersonalName
123      | ea-physicalDeliveryOrganizationName |
124      ea-extensionPhysicalDeliveryAddressComponents |
125      ea-unformattedPostalAddress | ea-streetAddress |
126      ea-postOfficeBoxAddress | ea-posteRestanteAddress |
127      ea-uniquePostalName | ea-localPostalAttributes |
128      ea-extendedNetworkAddress | ea-terminalType |
129      ea-teletexDomainDefinedAttributes, ... }
130
131  -- Extension types and attribute values
132
133  ea-commonName EXTENSION-ATTRIBUTE ::= { PrintableString
134      (SIZE (1..ub-common-name-length)) IDENTIFIED BY 1 }
135
136  ea-teletexCommonName EXTENSION-ATTRIBUTE ::= {TeletexString
137      (SIZE (1..ub-common-name-length)) IDENTIFIED BY 2 }
138
139  ea-teletexOrganizationName EXTENSION-ATTRIBUTE::= { TeletexString
140      (SIZE (1..ub-organization-name-length)) IDENTIFIED BY 3 }
141
142  ea-teletexPersonalName EXTENSION-ATTRIBUTE ::= {SET {
143     surname     [0] IMPLICIT TeletexString
144                      (SIZE (1..ub-surname-length)),
145     given-name  [1] IMPLICIT TeletexString
146                      (SIZE (1..ub-given-name-length)) OPTIONAL,
147     initials    [2] IMPLICIT TeletexString
148                      (SIZE (1..ub-initials-length)) OPTIONAL,
149     generation-qualifier [3] IMPLICIT TeletexString
150                      (SIZE (1..ub-generation-qualifier-length))
151                      OPTIONAL } IDENTIFIED BY 4 }
152
153  ea-teletexOrganizationalUnitNames EXTENSION-ATTRIBUTE ::=
154      { SEQUENCE SIZE (1..ub-organizational-units) OF
155            TeletexOrganizationalUnitName IDENTIFIED BY 5 }
156
157  TeletexOrganizationalUnitName ::= TeletexString
158      (SIZE (1..ub-organizational-unit-name-length))
159
160  ea-pDSName EXTENSION-ATTRIBUTE ::= {PrintableString
161      (SIZE (1..ub-pds-name-length)) IDENTIFIED BY 7 }
162
163  ea-physicalDeliveryCountryName EXTENSION-ATTRIBUTE ::= { CHOICE {
164       x121-dcc-code NumericString (SIZE
165          (ub-country-name-numeric-length)),
166       iso-3166-alpha2-code PrintableString
167          (SIZE (ub-country-name-alpha-length)) }
168       IDENTIFIED BY 8 }
169
170  ea-postalCode EXTENSION-ATTRIBUTE ::= { CHOICE {
171     numeric-code NumericString (SIZE (1..ub-postal-code-length)),
172     printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
173     IDENTIFIED BY 9 }
174
175  ea-physicalDeliveryOfficeName EXTENSION-ATTRIBUTE ::=
176      { PDSParameter IDENTIFIED BY 10 }
177
178  ea-physicalDeliveryOfficeNumber EXTENSION-ATTRIBUTE ::=
179      {PDSParameter IDENTIFIED BY 11 }
180
181  ea-extensionORAddressComponents EXTENSION-ATTRIBUTE ::=
182      {PDSParameter IDENTIFIED BY 12 }
183
184  ea-physicalDeliveryPersonalName EXTENSION-ATTRIBUTE ::=
185      {PDSParameter IDENTIFIED BY 13}
186
187  ea-physicalDeliveryOrganizationName EXTENSION-ATTRIBUTE ::=
188      {PDSParameter IDENTIFIED BY 14 }
189
190  ea-extensionPhysicalDeliveryAddressComponents EXTENSION-ATTRIBUTE ::=
191      {PDSParameter IDENTIFIED BY 15 }
192
193  ea-unformattedPostalAddress EXTENSION-ATTRIBUTE ::= { SET {
194     printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
195           OF PrintableString (SIZE (1..ub-pds-parameter-length))
196           OPTIONAL,
197     teletex-string TeletexString
198           (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
199     IDENTIFIED BY 16 }
200
201  ea-streetAddress EXTENSION-ATTRIBUTE ::=
202      {PDSParameter IDENTIFIED BY 17 }
203
204  ea-postOfficeBoxAddress EXTENSION-ATTRIBUTE ::=
205      {PDSParameter IDENTIFIED BY 18 }
206
207  ea-posteRestanteAddress EXTENSION-ATTRIBUTE ::=
208      {PDSParameter IDENTIFIED BY 19 }
209
210  ea-uniquePostalName EXTENSION-ATTRIBUTE ::=
211      { PDSParameter IDENTIFIED BY 20 }
212
213  ea-localPostalAttributes EXTENSION-ATTRIBUTE ::=
214      {PDSParameter IDENTIFIED BY 21 }
215  PDSParameter ::= SET {
216     printable-string PrintableString
217                  (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
218     teletex-string TeletexString
219                  (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
220
221  ea-extendedNetworkAddress EXTENSION-ATTRIBUTE ::= {
222     CHOICE {
223         e163-4-address SEQUENCE {
224             number      [0] IMPLICIT NumericString
225                   (SIZE (1..ub-e163-4-number-length)),
226             sub-address [1] IMPLICIT NumericString
227                   (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL
228         },
229         psap-address [0] IMPLICIT PresentationAddress
230     } IDENTIFIED BY 22
231  }
232
233  PresentationAddress ::= SEQUENCE {
234      pSelector     [0] EXPLICIT OCTET STRING OPTIONAL,
235      sSelector     [1] EXPLICIT OCTET STRING OPTIONAL,
236      tSelector     [2] EXPLICIT OCTET STRING OPTIONAL,
237      nAddresses    [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
238
239  ea-terminalType EXTENSION-ATTRIBUTE ::= {INTEGER {
240     telex (3),
241     teletex (4),
242     g3-facsimile (5),
243     g4-facsimile (6),
244     ia5-terminal (7),
245     videotex (8) } (0..ub-integer-options)
246     IDENTIFIED BY 23 }
247
248  -- Extension Domain-defined Attributes
249
250  ea-teletexDomainDefinedAttributes EXTENSION-ATTRIBUTE ::=
251      { SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
252           TeletexDomainDefinedAttribute IDENTIFIED BY 6 }
253
254  TeletexDomainDefinedAttribute ::= SEQUENCE {
255      type TeletexString
256          (SIZE (1..ub-domain-defined-attribute-type-length)),
257      value TeletexString
258          (SIZE (1..ub-domain-defined-attribute-value-length)) }
259
260  --  specifications of Upper Bounds MUST be regarded as mandatory
261  --  from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
262  --  Upper Bounds
263  -- Upper Bounds
264  ub-match INTEGER ::= 128
265  ub-common-name-length INTEGER ::= 64
266  ub-country-name-alpha-length INTEGER ::= 2
267  ub-country-name-numeric-length INTEGER ::= 3
268  ub-domain-defined-attributes INTEGER ::= 4
269  ub-domain-defined-attribute-type-length INTEGER ::= 8
270  ub-domain-defined-attribute-value-length INTEGER ::= 128
271  ub-domain-name-length INTEGER ::= 16
272  ub-extension-attributes INTEGER ::= 256
273  ub-e163-4-number-length INTEGER ::= 15
274  ub-e163-4-sub-address-length INTEGER ::= 40
275  ub-generation-qualifier-length INTEGER ::= 3
276  ub-given-name-length INTEGER ::= 16
277  ub-initials-length INTEGER ::= 5
278  ub-integer-options INTEGER ::= 256
279  ub-numeric-user-id-length INTEGER ::= 32
280  ub-organization-name-length INTEGER ::= 64
281  ub-organizational-unit-name-length INTEGER ::= 32
282  ub-organizational-units INTEGER ::= 4
283  ub-pds-name-length INTEGER ::= 16
284  ub-pds-parameter-length INTEGER ::= 30
285  ub-pds-physical-address-lines INTEGER ::= 6
286  ub-postal-code-length INTEGER ::= 16
287  ub-surname-length INTEGER ::= 40
288  ub-terminal-id-length INTEGER ::= 24
289  ub-unformatted-address-length INTEGER ::= 180
290  ub-x121-address-length INTEGER ::= 16
291
292  -- Note - upper bounds on string types, such as TeletexString, are
293  -- measured in characters.  Excepting PrintableString or IA5String, a
294  -- significantly greater number of octets will be required to hold
295  -- such a value.  As a minimum, 16 octets or twice the specified
296  -- upper bound, whichever is the larger, should be allowed for
297  -- TeletexString.  For UTF8String or UniversalString, at least four
298  -- times the upper bound should be allowed.
299
300  END
301