public class

Extension

extends Object
java.lang.Object
   ↳ sun.security.x509.Extension
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Represent a X509 Extension Attribute.

Extensions are additional 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.

Summary

Fields
protected boolean critical
protected ObjectIdentifier extensionId
protected byte[] extensionValue
Public Constructors
Extension()
Default constructor.
Extension(DerValue derVal)
Constructs an extension from a DER encoded array of bytes.
Extension(ObjectIdentifier extensionId, boolean critical, byte[] extensionValue)
Constructs an Extension from individual components of ObjectIdentifier, criticality and the DER encoded OctetString.
Extension(Extension ext)
Constructs an Extension from another extension.
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected boolean critical

protected ObjectIdentifier extensionId

protected byte[] extensionValue

Public Constructors

public Extension ()

Default constructor. Used only by sub-classes.

public Extension (DerValue derVal)

Constructs an extension from a DER encoded array of bytes.

Throws
IOException

public Extension (ObjectIdentifier extensionId, boolean critical, byte[] extensionValue)

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.
Throws
IOException

public Extension (Extension ext)

Constructs an Extension from another extension. To be used for creating decoded subclasses.

Parameters
ext the extension to create from.

Public Methods

public void encode (DerOutputStream out)

Write the extension to the DerOutputStream.

Parameters
out the DerOutputStream to write the extension to.
Throws
IOException on encoding errors

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 other object is of type Extension, and the criticality flag, object identifier and encoded extension value of the two Extensions match, false otherwise.

public ObjectIdentifier getExtensionId ()

Returns the ObjectIdentifier of the extension.

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. This method does not return a clone; it is the responsibility of the caller to clone the array if necessary.

public int hashCode ()

Returns a hashcode value for this Extension.

Returns
  • the hashcode value.

public boolean isCritical ()

Returns true if extension is critical.

public String toString ()

Returns the Extension in user readable form.

Returns
  • a string representation of the object.