Class Extension

java.lang.Object
org.mozilla.jss.netscape.security.x509.Extension
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AuthInfoAccessExtension, AuthorityKeyIdentifierExtension, BasicConstraintsExtension, CertificateIssuerExtension, CertificatePoliciesExtension, CertificateRenewalWindowExtension, CertificateScopeOfUseExtension, CRLDistributionPointsExtension, CRLNumberExtension, CRLReasonExtension, DeltaCRLIndicatorExtension, ExtendedKeyUsageExtension, FreshestCRLExtension, GenericASN1Extension, HoldInstructionExtension, InhibitAnyPolicyExtension, InvalidityDateExtension, IssuerAlternativeNameExtension, IssuingDistributionPointExtension, KeyUsageExtension, NameConstraintsExtension, NSCCommentExtension, NSCertTypeExtension, OCSPNoCheckExtension, PolicyConstraintsExtension, PolicyMappingsExtension, PresenceServerExtension, PrivateKeyUsageExtension, SubjectAlternativeNameExtension, SubjectDirAttributesExtension, SubjectInfoAccessExtension, SubjectKeyIdentifierExtension

public class Extension extends Object implements Serializable
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
 }
 
Version:
1.9
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • extensionId

      protected ObjectIdentifier extensionId
    • critical

      protected boolean critical
    • extensionValue

      protected byte[] extensionValue
  • Constructor Details

    • 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.
      Throws:
      IOException
    • 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.
      Throws:
      IOException
    • 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 Details

    • 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.
    • setCritical

      public void setCritical(boolean c)
    • clearValue

      public void clearValue()
    • getExtensionId

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

      public void setExtensionId(ObjectIdentifier oid)
    • 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.
    • setExtensionValue

      public void setExtensionValue(byte[] value)
    • toString

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