Sample code for 30+ languages & platforms
Java

Get Certificate CRL Distribution Points

See more Certificates Examples

Demonstrates how to get a certificate's CRL Distribution Points extension data (assuming it exists). In the vast majority of cases, there will be one CRL Distribution Point.

Note: This example requires Chilkat v9.5.0.76 or greater.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.StringBuilder;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        boolean success = false;

        Cert cert = new Cert();

        try {
            cert.loadFromFile("qa_data/certs/test_haswdt.cer");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Get the CRL Distribution Points extension, which is at OID 2.5.29.31
        String extensionXmlStr;
        try {
            extensionXmlStr = cert.getExtensionAsXml("2.5.29.31");
        } catch (ChilkatException e) {
            System.out.println("Certificate does not have the CDP extension.");
            return;
        }

        Xml xml = new Xml();
        xml.loadXml(extensionXmlStr);

        // See what we have..
        System.out.println(xml.getXml());

        // We should get XML like this:

        // <?xml version="1.0" encoding="utf-8" ?>
        // <sequence>
        //     <sequence>
        //         <contextSpecific tag="0" constructed="1">
        //             <contextSpecific tag="0" constructed="1">
        //                 <contextSpecific tag="6" constructed="0">aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPUlNBQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1
        // cmVFbWFpbENBLmNybA==</contextSpecific>
        //             </contextSpecific>
        //         </contextSpecific>
        //     </sequence>
        // </sequence>
        //

        // Assuming there is one CRL Distribution Point...
        StringBuilder sbDistPoint = new StringBuilder();
        try {
            xml.getChildContentSb("sequence|contextSpecific|contextSpecific|contextSpecific", sbDistPoint);
            success = true;
        } catch (ChilkatException e) {
            success = false;
        }
        if (success) {
            sbDistPoint.decode("base64", "utf-8");
            System.out.println("CRL Distribution Point:  " + sbDistPoint.getAsString());
        }

        // Sample output:
        // CRL Distribution Point:  http://crl.comodoca.com/COMODORSAClientAuthenticationandSecureEmailCA.crl
    }
}