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
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. |
extensionId
protected ObjectIdentifier extensionId
critical
protected boolean critical
extensionValue
protected byte[] extensionValue
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 extensioncritical
- the boolean indicating if the extension is criticalextensionValue
- 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.
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