public class

X400Address

extends Object
implements GeneralNameInterface
java.lang.Object
   ↳ sun.security.x509.X400Address

Class Overview

This class defines the X400Address of the GeneralName choice.

The ASN.1 syntax for this is:

 ORAddress ::= SEQUENCE {
    built-in-standard-attributes BuiltInStandardAttributes,
    built-in-domain-defined-attributes
                         BuiltInDomainDefinedAttributes OPTIONAL,
    -- see also teletex-domain-defined-attributes
    extension-attributes ExtensionAttributes OPTIONAL }
 --      The OR-address is semantically absent from the OR-name if the
 --      built-in-standard-attribute sequence is empty and the
 --      built-in-domain-defined-attributes and extension-attributes are
 --      both omitted.

 --      Built-in Standard Attributes

 BuiltInStandardAttributes ::= SEQUENCE {
    country-name CountryName OPTIONAL,
    administration-domain-name AdministrationDomainName OPTIONAL,
    network-address      [0] NetworkAddress OPTIONAL,
    -- see also extended-network-address
    terminal-identifier  [1] TerminalIdentifier OPTIONAL,
    private-domain-name  [2] PrivateDomainName OPTIONAL,
    organization-name    [3] OrganizationName OPTIONAL,
    -- see also teletex-organization-name
    numeric-user-identifier      [4] NumericUserIdentifier OPTIONAL,
    personal-name        [5] PersonalName OPTIONAL,
    -- see also teletex-personal-name
    organizational-unit-names    [6] 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] PrintableString (SIZE (1..ub-surname-length)),
    given-name [1] PrintableString
                         (SIZE (1..ub-given-name-length)) OPTIONAL,
    initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL,
    generation-qualifier [3] 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

 ExtensionAttribute ::=  SEQUENCE {
    extension-attribute-type [0] INTEGER (0..ub-extension-attributes),
    extension-attribute-value [1]
                         ANY DEFINED BY extension-attribute-type }

 -- Extension types and attribute values
 --

 common-name INTEGER ::= 1

 CommonName ::= PrintableString (SIZE (1..ub-common-name-length))

 teletex-common-name INTEGER ::= 2

 TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))

 teletex-organization-name INTEGER ::= 3

 TeletexOrganizationName ::=
                 TeletexString (SIZE (1..ub-organization-name-length))

 teletex-personal-name INTEGER ::= 4

 TeletexPersonalName ::= SET {
    surname [0] TeletexString (SIZE (1..ub-surname-length)),
    given-name [1] TeletexString
                 (SIZE (1..ub-given-name-length)) OPTIONAL,
    initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
    generation-qualifier [3] TeletexString (SIZE
                 (1..ub-generation-qualifier-length)) OPTIONAL }

 teletex-organizational-unit-names INTEGER ::= 5

 TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
         (1..ub-organizational-units) OF TeletexOrganizationalUnitName

 TeletexOrganizationalUnitName ::= TeletexString
                         (SIZE (1..ub-organizational-unit-name-length))

 pds-name INTEGER ::= 7

 PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))

 physical-delivery-country-name INTEGER ::= 8

 PhysicalDeliveryCountryName ::= CHOICE {
    x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
    iso-3166-alpha2-code PrintableString
                         (SIZE (ub-country-name-alpha-length)) }

 postal-code INTEGER ::= 9

 PostalCode ::= CHOICE {
    numeric-code NumericString (SIZE (1..ub-postal-code-length)),
    printable-code PrintableString (SIZE (1..ub-postal-code-length)) }

 physical-delivery-office-name INTEGER ::= 10

 PhysicalDeliveryOfficeName ::= PDSParameter

 physical-delivery-office-number INTEGER ::= 11

 PhysicalDeliveryOfficeNumber ::= PDSParameter

 extension-OR-address-components INTEGER ::= 12

 ExtensionORAddressComponents ::= PDSParameter

 physical-delivery-personal-name INTEGER ::= 13

 PhysicalDeliveryPersonalName ::= PDSParameter

 physical-delivery-organization-name INTEGER ::= 14

 PhysicalDeliveryOrganizationName ::= PDSParameter

 extension-physical-delivery-address-components INTEGER ::= 15

 ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter

 unformatted-postal-address INTEGER ::= 16

 UnformattedPostalAddress ::= 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 }

 street-address INTEGER ::= 17

 StreetAddress ::= PDSParameter

 post-office-box-address INTEGER ::= 18

 PostOfficeBoxAddress ::= PDSParameter

 poste-restante-address INTEGER ::= 19

 PosteRestanteAddress ::= PDSParameter

 unique-postal-name INTEGER ::= 20

 UniquePostalName ::= PDSParameter

 local-postal-attributes INTEGER ::= 21

 LocalPostalAttributes ::= PDSParameter

 PDSParameter ::= SET {
    printable-string PrintableString
                 (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
    teletex-string TeletexString
                 (SIZE(1..ub-pds-parameter-length)) OPTIONAL }

 extended-network-address INTEGER ::= 22

 ExtendedNetworkAddress ::= CHOICE {
    e163-4-address SEQUENCE {
         number [0] NumericString (SIZE (1..ub-e163-4-number-length)),
         sub-address [1] NumericString
                 (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL },
    psap-address [0] PresentationAddress }

 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 }

 terminal-type  INTEGER ::= 23

 TerminalType ::= INTEGER {
    telex (3),
    teletex (4),
    g3-facsimile (5),
    g4-facsimile (6),
    ia5-terminal (7),
    videotex (8) } (0..ub-integer-options)

 --      Extension Domain-defined Attributes

 teletex-domain-defined-attributes INTEGER ::= 6

 TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
    (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute

 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 shall be regarded as mandatory
 --  from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
 --  Upper Bounds

 --      Upper Bounds
 ub-name INTEGER ::=     32768
 ub-common-name  INTEGER ::=     64
 ub-locality-name        INTEGER ::=     128
 ub-state-name   INTEGER ::=     128
 ub-organization-name    INTEGER ::=     64
 ub-organizational-unit-name     INTEGER ::=     64
 ub-title        INTEGER ::=     64
 ub-match        INTEGER ::=     128

 ub-emailaddress-length 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.
 

Summary

[Expand]
Inherited Constants
From interface sun.security.x509.GeneralNameInterface
Public Constructors
X400Address(byte[] value)
Create the X400Address object from the specified byte array
X400Address(DerValue derValue)
Create the X400Address object from the passed encoded Der value.
Public Methods
int constrains(GeneralNameInterface inputName)
Return type of constraint inputName places on this name:
  • NAME_DIFF_TYPE = -1: input name is different type from name (i.e.
void encode(DerOutputStream out)
Encode the X400 name into the DerOutputStream.
int getType()
Return the type of the GeneralName.
int subtreeDepth()
Return subtree depth of this name for purposes of determining NameConstraints minimum and maximum bounds and for calculating path lengths in name subtrees.
String toString()
Return the printable string.
[Expand]
Inherited Methods
From class java.lang.Object
From interface sun.security.x509.GeneralNameInterface

Public Constructors

public X400Address (byte[] value)

Create the X400Address object from the specified byte array

public X400Address (DerValue derValue)

Create the X400Address object from the passed encoded Der value.

Parameters
derValue the encoded DER X400Address.
Throws
IOException on error.

Public Methods

public int constrains (GeneralNameInterface inputName)

Return type of constraint inputName places on this name:

  • NAME_DIFF_TYPE = -1: input name is different type from name (i.e. does not constrain).
  • NAME_MATCH = 0: input name matches name.
  • NAME_NARROWS = 1: input name narrows name (is lower in the naming subtree)
  • NAME_WIDENS = 2: input name widens name (is higher in the naming subtree)
  • NAME_SAME_TYPE = 3: input name does not match or narrow name, but is same type.
. These results are used in checking NameConstraints during certification path verification.

Parameters
inputName to be checked for being constrained
Throws
UnsupportedOperationException if name is same type, but comparison operations are not supported for this name type.

public void encode (DerOutputStream out)

Encode the X400 name into the DerOutputStream.

Parameters
out the DER stream to encode the X400Address to.
Throws
IOException on encoding errors.

public int getType ()

Return the type of the GeneralName.

public int subtreeDepth ()

Return subtree depth of this name for purposes of determining NameConstraints minimum and maximum bounds and for calculating path lengths in name subtrees.

Throws
UnsupportedOperationException if not supported for this name type

public String toString ()

Return the printable string.

Returns
  • a string representation of the object.