Class Extensions

java.lang.Object
org.apache.harmony.security.x509.Extensions

public final class Extensions
extends Object
The class encapsulates the ASN.1 DER encoding/decoding work with the Extensions part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
  Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
 
  • Field Details

    • ASN1

      public static final ASN1Type ASN1
      Custom X.509 Extensions decoder.
  • Constructor Details

    • Extensions

      public Extensions()
      Constructs an object representing the value of Extensions.
    • Extensions

      public Extensions​(List<Extension> extensions)
  • Method Details

    • size

      public int size()
    • getCriticalExtensions

      public Set<String> getCriticalExtensions()
      Returns the list of critical extensions.
    • getNonCriticalExtensions

      public Set<String> getNonCriticalExtensions()
      Returns the list of critical extensions.
    • hasUnsupportedCritical

      public boolean hasUnsupportedCritical()
    • getExtensionByOID

      public Extension getExtensionByOID​(String oid)
      Returns the values of extensions.
    • valueOfKeyUsage

      public boolean[] valueOfKeyUsage()
      Returns the value of Key Usage extension (OID == 2.5.29.15). The ASN.1 definition of Key Usage Extension is:
       id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }
      
       KeyUsage ::= BIT STRING {
           digitalSignature        (0),
           nonRepudiation          (1),
           keyEncipherment         (2),
           dataEncipherment        (3),
           keyAgreement            (4),
           keyCertSign             (5),
           cRLSign                 (6),
           encipherOnly            (7),
           decipherOnly            (8)
       }
       
      (as specified in RFC 3280)
      Returns:
      the value of Key Usage Extension if it is in the list, and null if there is no such extension or its value can not be decoded otherwise. Note, that the length of returned array can be greater than 9.
    • valueOfExtendedKeyUsage

      public List<String> valueOfExtendedKeyUsage() throws IOException
      Returns the value of Extended Key Usage extension (OID == 2.5.29.37). The ASN.1 definition of Extended Key Usage Extension is:
        id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 }
      
        ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
      
        KeyPurposeId ::= OBJECT IDENTIFIER
       
      (as specified in RFC 3280)
      Returns:
      the list with string representations of KeyPurposeId's OIDs and null
      Throws:
      IOException - if extension was incorrectly encoded.
    • valueOfBasicConstraints

      public int valueOfBasicConstraints()
      Returns the value of Basic Constraints Extension (OID = 2.5.29.19). The ASN.1 definition of Basic Constraints Extension is:
         id-ce-basicConstraints OBJECT IDENTIFIER ::=  { id-ce 19 }
      
         BasicConstraints ::= SEQUENCE {
              cA                      BOOLEAN DEFAULT FALSE,
              pathLenConstraint       INTEGER (0..MAX) OPTIONAL
         }
       
      (as specified in RFC 3280)
    • valueOfSubjectAlternativeName

      public Collection<List<?>> valueOfSubjectAlternativeName() throws IOException
      Returns the value of Subject Alternative Name (OID = 2.5.29.17). The ASN.1 definition for Subject Alternative Name is:
        id-ce-subjectAltName OBJECT IDENTIFIER ::=  { id-ce 17 }
      
        SubjectAltName ::= GeneralNames
       
      (as specified in RFC 3280)
      Returns:
      Returns the collection of pairs: (Integer (tag), Object (name value)) if extension presents, and null if does not.
      Throws:
      IOException
    • valueOfIssuerAlternativeName

      public Collection<List<?>> valueOfIssuerAlternativeName() throws IOException
      Returns the value of Issuer Alternative Name Extension (OID = 2.5.29.18). The ASN.1 definition for Issuer Alternative Name is:
         id-ce-issuerAltName OBJECT IDENTIFIER ::=  { id-ce 18 }
      
         IssuerAltName ::= GeneralNames
       
      (as specified in RFC 3280)
      Returns:
      Returns the collection of pairs: (Integer (tag), Object (name value)) if extension presents, and null if does not.
      Throws:
      IOException
    • valueOfCertificateIssuerExtension

      public X500Principal valueOfCertificateIssuerExtension() throws IOException
      Returns the value of Certificate Issuer Extension (OID = 2.5.29.29). It is a CRL entry extension and contains the GeneralNames describing the issuer of revoked certificate. Its ASN.1 notation is as follows:
         id-ce-certificateIssuer   OBJECT IDENTIFIER ::= { id-ce 29 }
      
         certificateIssuer ::=     GeneralNames
       
      (as specified in RFC 3280)
      Returns:
      the value of Certificate Issuer Extension
      Throws:
      IOException
    • getEncoded

      public byte[] getEncoded()
      Returns ASN.1 encoded form of this X.509 Extensions value.
    • equals

      public boolean equals​(Object other)
      Description copied from class: Object
      Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.

      The default implementation returns true only if this == o. See Writing a correct equals method if you intend implementing your own equals method.

      The general contract for the equals and Object.hashCode() methods is that if equals returns true for any two objects, then hashCode() must return the same value for these objects. This means that subclasses of Object usually override either both methods or neither of them.

      Overrides:
      equals in class Object
      Parameters:
      other - the object to compare this instance with.
      Returns:
      true if the specified object is equal to this Object; false otherwise.
      See Also:
      Object.hashCode()
    • hashCode

      public int hashCode()
      Description copied from class: Object
      Returns an integer hash code for this object. By contract, any two objects for which Object.equals(java.lang.Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

      Note that hash values must not change over time unless information used in equals comparisons also changes.

      See Writing a correct hashCode method if you intend implementing your own hashCode method.

      Overrides:
      hashCode in class Object
      Returns:
      this object's hash code.
      See Also:
      Object.equals(java.lang.Object)
    • dumpValue

      public void dumpValue​(StringBuilder sb, String prefix)