| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
  |
  +--iaik.x509.V3Extension
        |
        +--iaik.x509.extensions.SubjectAltName
This class implements the SubjectAltName extension.
 
 The SubjectAltName extension is a standard X509v3 extension, which
 has to be marked as being critical if the certificate´s subject field contains
 an empty sequence.
 
 Each extension is associated with a specific certificateExtension
 object identifier, derived from:
 
 certificateExtension  OBJECT IDENTIFIER ::=
                            {joint-iso-ccitt(2) ds(5) 29}
 id-ce                 OBJECT IDENTIFIER ::=  certificateExtension
 
 The object identifier for the SubjectAltName extension
 is defined as:
 
 id-ce-subjectAltName OBJECT IDENTIFIER ::=  { id-ce 17 }
 
which corresponds to the OID string "2.5.29.17".
The X.509 Certificate and CRL profile presented in RFC 2459 specifies the Subject Alternative Name extension for allowing to bind additional identities to the subject of the certificate. Defined options include an rfc822 name (electronic mail address), a DNS name, an IP address, and an URI:
SubjectAltName ::= GeneralNames
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
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 }
DirectoryString ::= CHOICE { teletexString TeletexString (SIZE (1..maxSize), printableString PrintableString (SIZE (1..maxSize)), universalString UniversalString (SIZE (1..maxSize)), utf8String UTF8String (SIZE (1.. MAX)), bmpString BMPString (SIZE(1..maxSIZE)) }
If the only subject identity included in the certificate is an alternative name form (e.g., an electronic mail address), then the subject distinguished name shall be empty (an empty sequence), and the subjectAltName extension shall be present. If the subject field contains an empty sequence, the subjectAltName extension shall be marked critical.
More information can be found in RFC 2459, section 4.2.1.7 "Subject Alternative Name".
 For adding a SubjectAltName extension object to a X509Certificate,
 use the addExtension method of the iaik.x509.X509Certificate class, e.g.:
 
X509Certificate cert = new X509Certificate(); ... GeneralNames generalNames = new GeneralNames(); generalNames.addName(new GeneralName(GeneralName.iPAddress, "127.0.0.1")); SubjectAltName subAltName = new SubjectAltName(generalNames); cert.addExtension(subAltName);
 When intending to mark this extension as critical (which necessarily has to be done
 if the certificate´s subject field is an empty sequence), use the
 setCritical
 method of the iaik.x509.V3Extension
 parent class (note that you have to mark an extension as critical before adding the
 extension to a certificate), e.g.:
 
subAltName.setCritical(true);
GeneralNames, 
GeneralName, 
IA5String, 
OCTET_STRING, 
ObjectID, 
Name, 
T61String, 
PrintableString, 
UNIString, 
BMPString, 
V3Extension, 
X509Extensions, 
X509Certificate| Field Summary | |
| static ObjectID | oidThe object identifier of this SubjectAltName extension. | 
| Fields inherited from class iaik.x509.V3Extension | 
| critical | 
| Constructor Summary | |
| SubjectAltName()Default Constructor. | |
| SubjectAltName(GeneralNames gn)Constructs a SubjectAltNameextension with the given GeneralNames
 as value. | |
| Method Summary | |
|  GeneralNames | getGeneralNames()Returns the alternative name of the subject. | 
|  ObjectID | getObjectID()Returns the object ID of this SubjectAltNameextension | 
|  int | hashCode()Returns a hashcode for this identity. | 
|  void | init(ASN1Object obj)Inits this SubjectAltNameimplementation with an ASN1object
 representing the value of this extension. | 
|  void | setGeneralNames(GeneralNames gn)Sets the alternative name of the subject. | 
|  ASN1Object | toASN1Object()Returns an ASN1Object representing the value of this SubjectAltNameextension object. | 
|  String | toString()Returns a string that represents the contents of this SubjectAltNameextension. | 
| Methods inherited from class iaik.x509.V3Extension | 
| getName, isCritical, setCritical | 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
public static final ObjectID oid
| Constructor Detail | 
public SubjectAltName()
 Creates an empty SubjectAltName object.
 Use setGeneralNames for supplying some
 GeneralNames object to this SubjectAltName extension.
 
 The critical value per default is set to false.
 If you want to specify this extension as critical (which necessarily
 has to be done if the certificate´s subject field is an empty sequence) before
 adding it to a certificate, use the
 setCritical method of the
 iaik.x509.V3Extension
 parent class, e.g.:
 
subAltName.setCritical(true); cert.addExtension(subAltName);
V3Extension.setCritical(boolean)public SubjectAltName(GeneralNames gn)
SubjectAltName extension with the given GeneralNames
 as value.
 
 The critical value per default is set to false.
 If you want to specify this extension as critical (which necessarily
 has to be done if the certificate´s subject field is an empty sequence) before
 adding it to a certificate, use the
 setCritical method of the
 iaik.x509.V3Extension
 parent class, e.g.:
 
X509Certificate cert = new X509Certificate(); ... GeneralNames generalNames = new GeneralNames(); generalNames.addName(new GeneralName(GeneralName.iPAddress, "127.0.0.1")); SubjectAltName subAltName = new SubjectAltName(generalNames); subAltName.setCritical(true); cert.addExtension(subAltName);
gn - the alternative name of the subject as GeneralNamesV3Extension.setCritical(boolean), 
GeneralNames| Method Detail | 
public ObjectID getObjectID()
SubjectAltName extensiongetObjectID in class V3Extension
public void init(ASN1Object obj)
          throws X509ExtensionException
SubjectAltName implementation with an ASN1object
 representing the value of this extension.
 The given ASN1Object represents a GeneralNames value (additionally) identifying the certificate subject.
 The given ASN1Object is the one created by toASN1Object().
 
 This method is used by the X509Extensions class when parsing the ASN.1 representation
 of a certificate for properly initializing an included
 SubjectAltName extension. This method initializes the
 extension only with its value, but not with its critical
 specification. For that reason, this method shall not be
 explicitly called by an application.
init in class V3Extensionobj - the SubjectAltName as ASN1ObjectX509ExtensionException - if the extension could not be parsed
public ASN1Object toASN1Object()
                        throws X509ExtensionException
SubjectAltName
 extension object.
 The returned ASN1Object represents a GeneralNames value (additionally) identifying the certificate subject:
SubjectAltName ::= GeneralNames
toASN1Object in class V3ExtensionSubjectAltName as ASN1ObjectX509ExtensionException - if the ASN1Object cannot be created because
                                   of an coding errorpublic void setGeneralNames(GeneralNames gn)
For instance:
GeneralNames generalNames = new GeneralNames(); generalNames.addName(new GeneralName(GeneralName.iPAddress, "127.0.0.1")); SubjectAltName subAltName = new SubjectAltName(); subAltName.setGeneralNames(generalNames);
the - alternative name of the subject as GeneralNamesgetGeneralNames(), 
GeneralNamespublic GeneralNames getGeneralNames()
setGeneralNames(iaik.asn1.structures.GeneralNames), 
GeneralNamespublic int hashCode()
hashCode in class V3Extensionpublic String toString()
SubjectAltName extension.toString in class Object| 
 | This Javadoc may contain text parts from Internet Standard specifications (RFC 2459, 3280, 3039, 2560, 1521, 821, 822, 2253, 1319, 1321, ,2630, 2631, 2268, 3058, 2984, 2104, 2144, 2040, 2311, 2279, see copyright note) and RSA Data Security Public-Key Cryptography Standards (PKCS#1,3,5,7,8,9,10,12, see copyright note). | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
 IAIK-JCE 3.1 with IAIK-JCE CC Core 3.1, (c) 1997-2004 IAIK
  IAIK-JCE 3.1 with IAIK-JCE CC Core 3.1, (c) 1997-2004 IAIK