-- -- This module is used to isolate all the X.400 naming information. -- There is no reason to expect this to occur in a PKIX certificate. -- PKIX-X400Address-2009 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-x400address-02(60) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- X.400 address syntax starts here ORAddress ::= SEQUENCE { built-in-standard-attributes BuiltInStandardAttributes, built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL, -- see also teletex-domain-defined-attributes extension-attributes ExtensionAttributes OPTIONAL } -- Built-in Standard Attributes BuiltInStandardAttributes ::= SEQUENCE { country-name CountryName OPTIONAL, administration-domain-name AdministrationDomainName OPTIONAL, network-address [0] IMPLICIT NetworkAddress OPTIONAL, -- see also extended-network-address terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL, private-domain-name [2] PrivateDomainName OPTIONAL, organization-name [3] IMPLICIT OrganizationName OPTIONAL, -- see also teletex-organization-name numeric-user-identifier [4] IMPLICIT NumericUserIdentifier OPTIONAL, personal-name [5] IMPLICIT PersonalName OPTIONAL, -- see also teletex-personal-name organizational-unit-names [6] IMPLICIT OrganizationalUnitNames OPTIONAL } -- see also teletex-organizational-unit-names CountryName ::= [APPLICATION 1] CHOICE { x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)), iso-3166-alpha2-code PrintableString (SIZE (ub-country-name-alpha-length)) } AdministrationDomainName ::= [APPLICATION 2] CHOICE { numeric NumericString (SIZE (0..ub-domain-name-length)), printable PrintableString (SIZE (0..ub-domain-name-length)) } NetworkAddress ::= X121Address -- see also extended-network-address X121Address ::= NumericString (SIZE (1..ub-x121-address-length)) TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length)) PrivateDomainName ::= CHOICE { numeric NumericString (SIZE (1..ub-domain-name-length)), printable PrintableString (SIZE (1..ub-domain-name-length)) } OrganizationName ::= PrintableString (SIZE (1..ub-organization-name-length)) -- see also teletex-organization-name NumericUserIdentifier ::= NumericString (SIZE (1..ub-numeric-user-id-length)) PersonalName ::= SET { surname [0] IMPLICIT PrintableString (SIZE (1..ub-surname-length)), given-name [1] IMPLICIT PrintableString (SIZE (1..ub-given-name-length)) OPTIONAL, initials [2] IMPLICIT PrintableString (SIZE (1..ub-initials-length)) OPTIONAL, generation-qualifier [3] IMPLICIT PrintableString (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } -- see also teletex-personal-name OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName -- see also teletex-organizational-unit-names OrganizationalUnitName ::= PrintableString (SIZE (1..ub-organizational-unit-name-length)) -- Built-in Domain-defined Attributes BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE (1..ub-domain-defined-attributes) OF BuiltInDomainDefinedAttribute BuiltInDomainDefinedAttribute ::= SEQUENCE { type PrintableString (SIZE (1..ub-domain-defined-attribute-type-length)), value PrintableString (SIZE (1..ub-domain-defined-attribute-value-length)) } -- Extension Attributes ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute EXTENSION-ATTRIBUTE ::= CLASS { &id INTEGER (0..ub-extension-attributes) UNIQUE, &Type } WITH SYNTAX { &Type IDENTIFIED BY &id } ExtensionAttribute ::= SEQUENCE { extension-attribute-type [0] IMPLICIT EXTENSION-ATTRIBUTE. &id({SupportedExtensionAttributes}), extension-attribute-value [1] EXTENSION-ATTRIBUTE. &Type({SupportedExtensionAttributes} {@extension-attribute-type})} SupportedExtensionAttributes EXTENSION-ATTRIBUTE ::= { ea-commonName | ea-teletexCommonName | ea-teletexOrganizationName | ea-teletexPersonalName | ea-teletexOrganizationalUnitNames | ea-pDSName | ea-physicalDeliveryCountryName | ea-postalCode | ea-physicalDeliveryOfficeName | ea-physicalDeliveryOfficeNumber | ea-extensionORAddressComponents | ea-physicalDeliveryPersonalName | ea-physicalDeliveryOrganizationName | ea-extensionPhysicalDeliveryAddressComponents | ea-unformattedPostalAddress | ea-streetAddress | ea-postOfficeBoxAddress | ea-posteRestanteAddress | ea-uniquePostalName | ea-localPostalAttributes | ea-extendedNetworkAddress | ea-terminalType | ea-teletexDomainDefinedAttributes, ... } -- Extension types and attribute values ea-commonName EXTENSION-ATTRIBUTE ::= { PrintableString (SIZE (1..ub-common-name-length)) IDENTIFIED BY 1 } ea-teletexCommonName EXTENSION-ATTRIBUTE ::= {TeletexString (SIZE (1..ub-common-name-length)) IDENTIFIED BY 2 } ea-teletexOrganizationName EXTENSION-ATTRIBUTE::= { TeletexString (SIZE (1..ub-organization-name-length)) IDENTIFIED BY 3 } ea-teletexPersonalName EXTENSION-ATTRIBUTE ::= {SET { surname [0] IMPLICIT TeletexString (SIZE (1..ub-surname-length)), given-name [1] IMPLICIT TeletexString (SIZE (1..ub-given-name-length)) OPTIONAL, initials [2] IMPLICIT TeletexString (SIZE (1..ub-initials-length)) OPTIONAL, generation-qualifier [3] IMPLICIT TeletexString (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } IDENTIFIED BY 4 } ea-teletexOrganizationalUnitNames EXTENSION-ATTRIBUTE ::= { SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName IDENTIFIED BY 5 } TeletexOrganizationalUnitName ::= TeletexString (SIZE (1..ub-organizational-unit-name-length)) ea-pDSName EXTENSION-ATTRIBUTE ::= {PrintableString (SIZE (1..ub-pds-name-length)) IDENTIFIED BY 7 } ea-physicalDeliveryCountryName EXTENSION-ATTRIBUTE ::= { CHOICE { x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)), iso-3166-alpha2-code PrintableString (SIZE (ub-country-name-alpha-length)) } IDENTIFIED BY 8 } ea-postalCode EXTENSION-ATTRIBUTE ::= { CHOICE { numeric-code NumericString (SIZE (1..ub-postal-code-length)), printable-code PrintableString (SIZE (1..ub-postal-code-length)) } IDENTIFIED BY 9 } ea-physicalDeliveryOfficeName EXTENSION-ATTRIBUTE ::= { PDSParameter IDENTIFIED BY 10 } ea-physicalDeliveryOfficeNumber EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 11 } ea-extensionORAddressComponents EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 12 } ea-physicalDeliveryPersonalName EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 13} ea-physicalDeliveryOrganizationName EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 14 } ea-extensionPhysicalDeliveryAddressComponents EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 15 } ea-unformattedPostalAddress EXTENSION-ATTRIBUTE ::= { SET { printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL, teletex-string TeletexString (SIZE (1..ub-unformatted-address-length)) OPTIONAL } IDENTIFIED BY 16 } ea-streetAddress EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 17 } ea-postOfficeBoxAddress EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 18 } ea-posteRestanteAddress EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 19 } ea-uniquePostalName EXTENSION-ATTRIBUTE ::= { PDSParameter IDENTIFIED BY 20 } ea-localPostalAttributes EXTENSION-ATTRIBUTE ::= {PDSParameter IDENTIFIED BY 21 } PDSParameter ::= SET { printable-string PrintableString (SIZE(1..ub-pds-parameter-length)) OPTIONAL, teletex-string TeletexString (SIZE(1..ub-pds-parameter-length)) OPTIONAL } ea-extendedNetworkAddress EXTENSION-ATTRIBUTE ::= { CHOICE { e163-4-address SEQUENCE { number [0] IMPLICIT NumericString (SIZE (1..ub-e163-4-number-length)), sub-address [1] IMPLICIT NumericString (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, psap-address [0] IMPLICIT PresentationAddress } IDENTIFIED BY 22 } PresentationAddress ::= SEQUENCE { pSelector [0] EXPLICIT OCTET STRING OPTIONAL, sSelector [1] EXPLICIT OCTET STRING OPTIONAL, tSelector [2] EXPLICIT OCTET STRING OPTIONAL, nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } ea-terminalType EXTENSION-ATTRIBUTE ::= {INTEGER { telex (3), teletex (4), g3-facsimile (5), g4-facsimile (6), ia5-terminal (7), videotex (8) } (0..ub-integer-options) IDENTIFIED BY 23 } -- Extension Domain-defined Attributes ea-teletexDomainDefinedAttributes EXTENSION-ATTRIBUTE ::= { SEQUENCE SIZE (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute IDENTIFIED BY 6 } TeletexDomainDefinedAttribute ::= SEQUENCE { type TeletexString (SIZE (1..ub-domain-defined-attribute-type-length)), value TeletexString (SIZE (1..ub-domain-defined-attribute-value-length)) } -- specifications of Upper Bounds MUST be regarded as mandatory -- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter -- Upper Bounds -- Upper Bounds ub-match INTEGER ::= 128 ub-common-name-length INTEGER ::= 64 ub-country-name-alpha-length INTEGER ::= 2 ub-country-name-numeric-length INTEGER ::= 3 ub-domain-defined-attributes INTEGER ::= 4 ub-domain-defined-attribute-type-length INTEGER ::= 8 ub-domain-defined-attribute-value-length INTEGER ::= 128 ub-domain-name-length INTEGER ::= 16 ub-extension-attributes INTEGER ::= 256 ub-e163-4-number-length INTEGER ::= 15 ub-e163-4-sub-address-length INTEGER ::= 40 ub-generation-qualifier-length INTEGER ::= 3 ub-given-name-length INTEGER ::= 16 ub-initials-length INTEGER ::= 5 ub-integer-options INTEGER ::= 256 ub-numeric-user-id-length INTEGER ::= 32 ub-organization-name-length INTEGER ::= 64 ub-organizational-unit-name-length INTEGER ::= 32 ub-organizational-units INTEGER ::= 4 ub-pds-name-length INTEGER ::= 16 ub-pds-parameter-length INTEGER ::= 30 ub-pds-physical-address-lines INTEGER ::= 6 ub-postal-code-length INTEGER ::= 16 ub-surname-length INTEGER ::= 40 ub-terminal-id-length INTEGER ::= 24 ub-unformatted-address-length INTEGER ::= 180 ub-x121-address-length INTEGER ::= 16 -- Note - upper bounds on string types, such as TeletexString, are -- measured in characters. Excepting PrintableString or IA5String, a -- significantly greater number of octets will be required to hold -- such a value. As a minimum, 16 octets or twice the specified -- upper bound, whichever is the larger, should be allowed for -- TeletexString. For UTF8String or UniversalString, at least four -- times the upper bound should be allowed. END