Class CRLDistributionPointsExtension

  • All Implemented Interfaces:
    java.io.Serializable, CertAttrSet

    public class CRLDistributionPointsExtension
    extends Extension
    implements CertAttrSet
    An extension that tells applications where to find the CRL for this certificate.
     cRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
    
     DistributionPoint ::= SEQUENCE {
          distributionPoint       [0]     DistributionPointName OPTIONAL,
          reasons                 [1]     ReasonFlags OPTIONAL,
          cRLIssuer               [2]     GeneralNames OPTIONAL }
    
     DistributionPointName ::= CHOICE {
          fullName                [0]     GeneralNames,
          nameRelativeToCRLIssuer [1]     RelativeDistinguishedName }
    
     ReasonFlags ::= BIT STRING {
          unused                  (0),
          keyCompromise           (1),
          cACompromise            (2),
          affiliationChanged      (3),
          superseded              (4),
          cessationOfOperation    (5),
          certificateHold         (6) }
     
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String NAME  
      static java.lang.String OID
      The Object Identifier for this extension.
    • Constructor Summary

      Constructors 
      Constructor Description
      CRLDistributionPointsExtension​(java.lang.Boolean critical, java.lang.Object value)
      This constructor is called by the CertificateExtensions class to decode an extension whose OID indicates it is a CRLDistributionsPoints extension.
      CRLDistributionPointsExtension​(CRLDistributionPoint dp)
      Creates a new CRLDistributionPoints extension, with the given distribution point as the first element.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addPoint​(CRLDistributionPoint dp)
      Adds an additional distribution point to the end of the sequence.
      void decode​(java.io.InputStream in)
      Decodes the attribute in the input stream.
      void delete​(java.lang.String name)
      Deletes an attribute value from this CertAttrSet.
      void encode​(java.io.OutputStream ostream)
      DER-encodes this extension to the given OutputStream.
      void encode​(DerOutputStream out)
      Encodes this extension to the given DerOutputStream.
      void flushCachedEncoding()
      Should be called if any change is made to this data structure so that the cached DER encoding can be discarded.
      java.lang.Object get​(java.lang.String name)
      Gets an attribute value for this CertAttrSet.
      java.util.Enumeration<java.lang.String> getAttributeNames()
      Returns an enumeration of the names of the attributes existing within this attribute.
      java.lang.String getName()
      Returns the name (identifier) of this CertAttrSet.
      int getNumPoints()
      Returns the number of distribution points in the sequence.
      CRLDistributionPoint getPointAt​(int index)
      Returns the DistributionPoint at the given index in the sequence.
      static void main​(java.lang.String[] args)
      Test driver.
      void set​(java.lang.String name, java.lang.Object obj)
      Sets an attribute value within this CertAttrSet.
      void setCritical​(boolean critical)
      Sets the criticality of this extension.
      java.lang.String toString()
      Returns the Extension in user readable form.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CRLDistributionPointsExtension

        public CRLDistributionPointsExtension​(java.lang.Boolean critical,
                                              java.lang.Object value)
        This constructor is called by the CertificateExtensions class to decode an extension whose OID indicates it is a CRLDistributionsPoints extension.
      • CRLDistributionPointsExtension

        public CRLDistributionPointsExtension​(CRLDistributionPoint dp)
        Creates a new CRLDistributionPoints extension, with the given distribution point as the first element.
    • Method Detail

      • addPoint

        public void addPoint​(CRLDistributionPoint dp)
        Adds an additional distribution point to the end of the sequence.
      • getNumPoints

        public int getNumPoints()
        Returns the number of distribution points in the sequence.
      • getPointAt

        public CRLDistributionPoint getPointAt​(int index)
        Returns the DistributionPoint at the given index in the sequence.
      • setCritical

        public void setCritical​(boolean critical)
        Sets the criticality of this extension. PKIX dictates that this extension SHOULD NOT be critical, so applications can make it critical if they have a very good reason. By default, the extension is not critical.
        Overrides:
        setCritical in class Extension
      • encode

        public void encode​(DerOutputStream out)
                    throws java.io.IOException
        Encodes this extension to the given DerOutputStream. This method re-encodes each time it is called, so it is not very efficient.
        Overrides:
        encode in class Extension
        Parameters:
        out - the DerOutputStream to write the extension to.
        Throws:
        java.io.IOException - on encoding errors
      • flushCachedEncoding

        public void flushCachedEncoding()
        Should be called if any change is made to this data structure so that the cached DER encoding can be discarded.
      • toString

        public java.lang.String toString()
        Description copied from class: Extension
        Returns the Extension in user readable form.
        Specified by:
        toString in interface CertAttrSet
        Overrides:
        toString in class Extension
        Returns:
        value of this certificate attribute in printable form.
      • encode

        public void encode​(java.io.OutputStream ostream)
                    throws java.security.cert.CertificateException,
                           java.io.IOException
        DER-encodes this extension to the given OutputStream.
        Specified by:
        encode in interface CertAttrSet
        Parameters:
        ostream - the OutputStream to encode the attribute to.
        Throws:
        java.security.cert.CertificateException - on encoding or validity errors.
        java.io.IOException - on other errors.
      • decode

        public void decode​(java.io.InputStream in)
                    throws java.security.cert.CertificateException,
                           java.io.IOException
        Description copied from interface: CertAttrSet
        Decodes the attribute in the input stream.
        Specified by:
        decode in interface CertAttrSet
        Parameters:
        in - the InputStream to read the encoded attribute from.
        Throws:
        java.security.cert.CertificateException - on decoding or validity errors.
        java.io.IOException - on other errors.
      • set

        public void set​(java.lang.String name,
                        java.lang.Object obj)
                 throws java.security.cert.CertificateException,
                        java.io.IOException
        Description copied from interface: CertAttrSet
        Sets an attribute value within this CertAttrSet.
        Specified by:
        set in interface CertAttrSet
        Parameters:
        name - the name of the attribute (e.g. "x509.info.key")
        obj - the attribute object.
        Throws:
        java.security.cert.CertificateException - on attribute handling errors.
        java.io.IOException - on other errors.
      • get

        public java.lang.Object get​(java.lang.String name)
                             throws java.security.cert.CertificateException,
                                    java.io.IOException
        Description copied from interface: CertAttrSet
        Gets an attribute value for this CertAttrSet.
        Specified by:
        get in interface CertAttrSet
        Parameters:
        name - the name of the attribute to return.
        Throws:
        java.security.cert.CertificateException - on attribute handling errors.
        java.io.IOException - on other errors.
      • delete

        public void delete​(java.lang.String name)
                    throws java.security.cert.CertificateException,
                           java.io.IOException
        Description copied from interface: CertAttrSet
        Deletes an attribute value from this CertAttrSet.
        Specified by:
        delete in interface CertAttrSet
        Parameters:
        name - the name of the attribute to delete.
        Throws:
        java.security.cert.CertificateException - on attribute handling errors.
        java.io.IOException - on other errors.
      • getAttributeNames

        public java.util.Enumeration<java.lang.String> getAttributeNames()
        Description copied from interface: CertAttrSet
        Returns an enumeration of the names of the attributes existing within this attribute.
        Specified by:
        getAttributeNames in interface CertAttrSet
        Returns:
        an enumeration of the attribute names.
      • getName

        public java.lang.String getName()
        Description copied from interface: CertAttrSet
        Returns the name (identifier) of this CertAttrSet.
        Specified by:
        getName in interface CertAttrSet
        Returns:
        the name of this CertAttrSet.
      • main

        public static void main​(java.lang.String[] args)
        Test driver.