com.ibm.security12.sun.security.x509
Class Extension

java.lang.Object
  |
  +--com.ibm.security12.sun.security.x509.Extension
Direct Known Subclasses:
AuthorityKeyIdentifierExtension, BasicConstraintsExtension, CRLNumberExtension, CRLReasonCodeExtension, IssuerAlternativeNameExtension, KeyUsageExtension, NameConstraintsExtension, NetscapeCertTypeExtension, PolicyConstraintsExtension, PolicyMappingsExtension, PrivateKeyUsageExtension, SubjectAlternativeNameExtension, SubjectKeyIdentifierExtension

public class Extension
extends Object

Represent a X509 Extension Attribute.

Extensions are addiitonal attributes which can be inserted in a X509 v3 certificate. For example a "Driving License Certificate" could have the driving license number as a extension.

Extensions are represented as a sequence of the extension identifier (Object Identifier), a boolean flag stating whether the extension is to be treated as being critical and the extension value itself (this is again a DER encoding of the extension value).

 ASN.1 definition of Extension:
 Extension ::= SEQUENCE {
	ExtensionId	OBJECT IDENTIFIER,
	critical	BOOLEAN DEFAULT FALSE,
	extensionValue	OCTET STRING
 }
 
All subclasses need to implement a constructor of the form
      (Boolean, Object)
 
 where the Object is typically an array of DER encoded bytes.
 

Version:
1.14
Author:
Amit Kapoor, Hemma Prafullchandra

Field Summary
protected  boolean critical
           
protected  ObjectIdentifier extensionId
           
protected  byte[] extensionValue
           
 
Constructor Summary
Extension()
          Default constructor.
Extension(DerValue derVal)
          Constructs an extension from a DER encoded array of bytes.
Extension(Extension ext)
          Constructs an Extension from another extension.
Extension(ObjectIdentifier extensionId, boolean critical, byte[] extensionValue)
          Constructs an Extension from individual components of ObjectIdentifier, criticality and the DER encoded OctetString.
 
Method Summary
 void encode(DerOutputStream out)
          Write the extension to the DerOutputStream.
 boolean equals(Object other)
          Compares this Extension for equality with the specified object.
 ObjectIdentifier getExtensionId()
          Returns the ObjectIdentifier of the extension.
 byte[] getExtensionValue()
          Returns the extension value as an byte array for further processing.
 int hashCode()
          Returns a hashcode value for this Extension.
 boolean isCritical()
          Returns true if extension is critical.
 String toString()
          Returns the Extension in user readable form.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

extensionId

protected ObjectIdentifier extensionId

critical

protected boolean critical

extensionValue

protected byte[] extensionValue
Constructor Detail

Extension

public Extension()
Default constructor. Used only by sub-classes.

Extension

public Extension(DerValue derVal)
          throws IOException
Constructs an extension from a DER encoded array of bytes.

Extension

public Extension(ObjectIdentifier extensionId,
                 boolean critical,
                 byte[] extensionValue)
          throws IOException
Constructs an Extension from individual components of ObjectIdentifier, criticality and the DER encoded OctetString.
Parameters:
extensionId - the ObjectIdentifier of the extension
critical - the boolean indicating if the extension is critical
extensionValue - the DER encoded octet string of the value.

Extension

public Extension(Extension ext)
Constructs an Extension from another extension. To be used for creating decoded subclasses.
Parameters:
ext - the extension to create from.
Method Detail

encode

public void encode(DerOutputStream out)
            throws IOException
Write the extension to the DerOutputStream.
Parameters:
out - the DerOutputStream to write the extension to.
Throws:
IOException - on encoding errors

isCritical

public boolean isCritical()
Returns true if extension is critical.

getExtensionId

public ObjectIdentifier getExtensionId()
Returns the ObjectIdentifier of the extension.

getExtensionValue

public byte[] getExtensionValue()
Returns the extension value as an byte array for further processing. Note, this is the raw DER value of the extension, not the DER encoded octet string which is in the certificate.

toString

public String toString()
Returns the Extension in user readable form.
Overrides:
toString in class Object

hashCode

public int hashCode()
Returns a hashcode value for this Extension.
Returns:
the hashcode value.
Overrides:
hashCode in class Object

equals

public boolean equals(Object other)
Compares this Extension for equality with the specified object. If the other object is an instanceof Extension, then its encoded form is retrieved and compared with the encoded form of this Extension.
Parameters:
other - the object to test for equality with this Extension.
Returns:
true iff the encoded forms of the two Extensions match, false otherwise.
Overrides:
equals in class Object