org.bouncycastle.asn1.x509

Class GeneralName

Implemented Interfaces:
ASN1Choice, DEREncodable

public class GeneralName
extends ASN1Encodable
implements ASN1Choice

The GeneralName object.
 GeneralName ::= CHOICE {
      otherName                       [0]     OtherName,
      rfc822Name                      [1]     IA5String,
      dNSName                         [2]     IA5String,
      x400Address                     [3]     ORAddress,
      directoryName                   [4]     Name,
      ediPartyName                    [5]     EDIPartyName,
      uniformResourceIdentifier       [6]     IA5String,
      iPAddress                       [7]     OCTET STRING,
      registeredID                    [8]     OBJECT IDENTIFIER}

 OtherName ::= SEQUENCE {
      type-id    OBJECT IDENTIFIER,
      value      [0] EXPLICIT ANY DEFINED BY type-id }

 EDIPartyName ::= SEQUENCE {
      nameAssigner            [0]     DirectoryString OPTIONAL,
      partyName               [1]     DirectoryString }
 
 Name ::= CHOICE { RDNSequence }
 

Field Summary

static int
dNSName
static int
directoryName
static int
ediPartyName
static int
iPAddress
static int
otherName
static int
registeredID
static int
rfc822Name
static int
uniformResourceIdentifier
static int
x400Address

Fields inherited from class org.bouncycastle.asn1.ASN1Encodable

BER, DER

Constructor Summary

GeneralName(int tag, String name)
Create a GeneralName for the given tag from the passed in String.
GeneralName(int tag, ASN1Encodable name)
When the subjectAltName extension contains an Internet mail address, the address MUST be included as an rfc822Name.
GeneralName(DERObject name, int tag)
Deprecated. this constructor seems the wrong way round!
GeneralName(X509Name dirName)

Method Summary

static GeneralName
getInstance(Object obj)
static GeneralName
getInstance(ASN1TaggedObject tagObj, boolean explicit)
DEREncodable
getName()
int
getTagNo()
DERObject
toASN1Object()
String
toString()

Methods inherited from class org.bouncycastle.asn1.ASN1Encodable

equals, getDEREncoded, getDERObject, getEncoded, getEncoded, hashCode, toASN1Object

Field Details

dNSName

public static final int dNSName
Field Value:
2

directoryName

public static final int directoryName
Field Value:
4

ediPartyName

public static final int ediPartyName
Field Value:
5

iPAddress

public static final int iPAddress
Field Value:
7

otherName

public static final int otherName
Field Value:
0

registeredID

public static final int registeredID
Field Value:
8

rfc822Name

public static final int rfc822Name
Field Value:
1

uniformResourceIdentifier

public static final int uniformResourceIdentifier
Field Value:
6

x400Address

public static final int x400Address
Field Value:
3

Constructor Details

GeneralName

public GeneralName(int tag,
                   String name)
Create a GeneralName for the given tag from the passed in String.

This constructor can handle:

  • rfc822Name
  • iPAddress
  • directoryName
  • dNSName
  • uniformResourceIdentifier
  • registeredID
For x400Address, otherName and ediPartyName there is no common string format defined.

Note: A directory name can be encoded in different ways into a byte representation. Be aware of this if the byte representation is used for comparing results.

Parameters:
tag - tag number
name - string representation of name

GeneralName

public GeneralName(int tag,
                   ASN1Encodable name)
When the subjectAltName extension contains an Internet mail address, the address MUST be included as an rfc822Name. The format of an rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822]. When the subjectAltName extension contains a domain name service label, the domain name MUST be stored in the dNSName (an IA5String). The name MUST be in the "preferred name syntax," as specified by RFC 1034 [RFC 1034]. When the subjectAltName extension contains a URI, the name MUST be stored in the uniformResourceIdentifier (an IA5String). The name MUST be a non-relative URL, and MUST follow the URL syntax and encoding rules specified in [RFC 1738]. The name must include both a scheme (e.g., "http" or "ftp") and a scheme-specific-part. The scheme- specific-part must include a fully qualified domain name or IP address as the host. When the subjectAltName extension contains a iPAddress, the address MUST be stored in the octet string in "network byte order," as specified in RFC 791 [RFC 791]. The least significant bit (LSB) of each octet is the LSB of the corresponding byte in the network address. For IP Version 4, as specified in RFC 791, the octet string MUST contain exactly four octets. For IP Version 6, as specified in RFC 1883, the octet string MUST contain exactly sixteen octets [RFC 1883].

GeneralName

public GeneralName(DERObject name,
                   int tag)

Deprecated. this constructor seems the wrong way round! Use GeneralName(tag, name).


GeneralName

public GeneralName(X509Name dirName)

Method Details

getInstance

public static GeneralName getInstance(Object obj)

getInstance

public static GeneralName getInstance(ASN1TaggedObject tagObj,
                                      boolean explicit)

getName

public DEREncodable getName()

getTagNo

public int getTagNo()

toASN1Object

public DERObject toASN1Object()
Overrides:
toASN1Object in interface ASN1Encodable

toString

public String toString()