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