public class IssuingDistributionPoint extends V3Extension
IssuingDistributionPoint extension.
 
 The IssuingDistributionPoint extension is a critical
 standard X509v2 CRL extension which may or may not be supported by
 implementations conforming to RFC5280.
 
 Each extension is associated with a specific certificateExtension
 object identifier, derived from:
 
 certificateExtension  OBJECT IDENTIFIER ::=
                            {joint-iso-ccitt(2) ds(5) 29}
 id-ce                 OBJECT IDENTIFIER ::=  certificateExtension
 
 The object identifier for the IssuingDistributionPoint extension
 is defined as:
 
 id-ce-IssuingDistributionPoint OBJECT IDENTIFIER ::=  { id-ce 28 }
 
which corresponds to the OID string "2.5.29.28".
The X.509 Certificate and CRL profile presented in RFC 5280 specifies the IssuingDistributionPoint extension for identifying the CRL distribution point for a particular CRL. It indicates whether the CRL is an indirect CRL, whether it covers revocation for end entity certificates only, CA certificates only, or for a limitied set of reason codes.
ASN.1 definition:
 issuingDistributionPoint ::= SEQUENCE {
      distributionPoint          [0] DistributionPointName OPTIONAL,
      onlyContainsUserCerts      [1] BOOLEAN DEFAULT FALSE,
      onlyContainsCACerts        [2] BOOLEAN DEFAULT FALSE,
      onlySomeReasons            [3] ReasonFlags OPTIONAL,
      indirectCRL                [4] BOOLEAN DEFAULT FALSE,
      onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
 
 For adding a IssuingDistributionPoint extension object to a X509v2 certificate revocation
 list, use the addExtension method of the iaik.x509.X509CRL class, e.g.:
 
IssuingDistributionPoint issuingDistributionPoint = new IssuingDistributionPoint(); GeneralName dpName = new GeneralName(GeneralName.uniformResourceIdentifier, "http://www.test-ca.at/repository"); issuingDistributionPoint.setDistributionPointName(dpName); issuingDistributionPoint.setOnlyContainsUserCerts(true); issuingDistributionPoint.setReasonFlags(DistributionPoint.keyCompromise); X505CRL crl = new X509CRL(); ... crl.addExtension(issuingDistributionPoint);
V3Extension, 
X509Extensions, 
X509CRL| Modifier and Type | Field and Description | 
|---|---|
| static ObjectID | oidThe object identifier of this IssuingDistributionPoint extension. | 
critical| Constructor and Description | 
|---|
| IssuingDistributionPoint()Default constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| ASN1Type | getDistributionPointName()Returns the distribution point name of this issuing distribution point. | 
| boolean | getIndirectCRL()Returns whether the crl is an indirect crl. | 
| ObjectID | getObjectID()Returns the object ID of this  IssuingDistributionPointextension. | 
| boolean | getOnlyContainsAttributeCerts()Returns whether the CRL only contains attribute certs. | 
| boolean | getOnlyContainsCaCerts()Returns whether the CRL only contains ca certs. | 
| boolean | getOnlyContainsUserCerts()Returns whether the CRL only contains user certs. | 
| int | getReasonFlags()Returns the reason flags specification of this distribution point. | 
| int | hashCode()Returns a hashcode for this identity. | 
| void | init(ASN1Object obj)Inits this  IssuingDistributionPointimplementation with an ASN1object
 representing the value of this extension. | 
| void | setDistributionPointName(ASN1Type distributionPointName)Sets the distribution point name parameter of this extension. | 
| void | setIndirectCRL(boolean indirectCRL)Decides whether the crl is an indirect crl. | 
| void | setOnlyContainsAttributeCerts(boolean onlyContainsAttributeCerts)Decides whether the CRL only contains attribute cert entries. | 
| void | setOnlyContainsCaCerts(boolean onlyContainsCaCerts)Decides whether the CRL only contains ca certs. | 
| void | setOnlyContainsUserCerts(boolean onlyContainsUserCerts)Decides whether the CRL only contains user certs. | 
| void | setReasonFlags(int reasonFlags)Sets the reason flags (onlySomeReasons) parameter of this extension. | 
| ASN1Object | toASN1Object()Returns an ASN1Object representing the value of this  IssuingDistributionPointextension object. | 
| java.lang.String | toString()Returns a string that represents the contents of this  IssuingDistributionPointextension. | 
getName, isCritical, setCriticalpublic static final ObjectID oid
public IssuingDistributionPoint()
IssuingDistributionPoint object.
 Use the any of the setValue methods for supplying proper
 values to this IssuingDistributionPoint.public ObjectID getObjectID()
IssuingDistributionPoint extension.getObjectID in class V3Extensionpublic void init(ASN1Object obj) throws X509ExtensionException
IssuingDistributionPoint implementation with an ASN1object
 representing the value of this extension.
 
 The given ASN1Object is the one created by toASN1Object().
 
 This method is used by the X509Extensions class when parsing the ASN.1 representation
 of a CRL for properly initializing an included
 IssuingDistributionPoint extension. This method initializes the
 extension only with its value, but not with its critical
 specification. For that reason, this method shall not be
 explicitly called by an application.
init in class V3Extensionobj - the IssuingDistributionPoint as ASN1ObjectX509ExtensionException - if an error occurs when parsing the
                                   ASN.1 objectpublic ASN1Object toASN1Object() throws X509ExtensionException
IssuingDistributionPoint
 extension object.toASN1Object in class V3ExtensionIssuingDistributionPoint as ASN1ObjectX509ExtensionException - if an error occurs when creating the ASN.1 objectpublic int hashCode()
hashCode in class V3Extensionpublic void setDistributionPointName(ASN1Type distributionPointName) throws java.lang.IllegalArgumentException
 Only instances of RDN or GeneralNames are accepted!
 For instance:
 
RDN distributionPointName = new RDN(); distributionPointName.addAVA(ObjectID.country, "AT"); distributionPointName.addAVA(ObjectID.locality, "Graz"); distributionPointName.addAVA(ObjectID.organization ,"UT Graz"); distributionPointName.addAVA(ObjectID.organizationalUnit ,"IAIK"); distributionPointName.addAVA(ObjectID.commonName ,"http://ca.iaik.com/"); IssuingDistributionPoint issuingDistributionPoint = new IssuingDistributionPoint(); issuingDistributionPoint.setDistributionPointName(distributionPointName);
distributionPointName - the name to be setjava.lang.IllegalArgumentException - if the given name is not an instance of RDN
                                     or GeneralNamesGeneralNames, 
RDNpublic void setOnlyContainsUserCerts(boolean onlyContainsUserCerts)
onlyContainsUserCerts - whether the crl only contains user certspublic void setOnlyContainsCaCerts(boolean onlyContainsCaCerts)
onlyContainsCaCerts - whether the crl only contains ca certspublic void setReasonFlags(int reasonFlags)
 Use the static parameters defined in iaik.asn1.structures.DistributionPoint for setting the reason flags.
 
For instance:
 issuingDistributionPoint.setReasonFlags(DistributionPoint.keyCompromise);
 
reasonFlags - the reasons value as intpublic void setIndirectCRL(boolean indirectCRL)
indirectCRL - whether the crl  is an indirect crlpublic void setOnlyContainsAttributeCerts(boolean onlyContainsAttributeCerts)
onlyContainsAttributeCerts - whether the crl only contains attribute certspublic ASN1Type getDistributionPointName()
GeneralNames or as RDNGeneralNames, 
RDNpublic boolean getOnlyContainsUserCerts()
public boolean getOnlyContainsCaCerts()
public int getReasonFlags()
 Note the "big endian" representation of the BIT STRING representing the
 reason flag value of this DistributionPoint: the least significant
 bit indicates the reason flag with the lowest bit value, meaning that the integer
 value 1 specifies the "unused" flag, and the integer value 64 (binary 1000000,
 hexadecimal 40) specifies the "certificateHold" purpose.
intpublic boolean getIndirectCRL()
public boolean getOnlyContainsAttributeCerts()
public java.lang.String toString()
IssuingDistributionPoint
 extension.toString in class java.lang.Object