Sample code for 30+ languages & platforms
Java

CSR Get Extension Request

See more CSR Examples

If a CSR contains a 1.2.840.113549.1.9.14 extensionRequest, then this method will return the extension request in XML format.

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

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Csr;
import com.chilkatsoft.chilkat2.FileAccess;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // This requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Csr csr = new Csr();

        // Load a CSR PEM file.  The file should contain content that looks like this:
        //
        //     -----BEGIN CERTIFICATE REQUEST-----
        //     MII...
        //     ....
        //     ....
        //     ....
        //     -----END CERTIFICATE REQUEST-----

        FileAccess fac = new FileAccess();
        String csrPem = fac.readEntireTextFile("qa_data/csr/sample.pem", "utf-8");

        try {
            csr.loadCsrPem(csrPem);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        Xml xml = new Xml();

        try {
            csr.getExtensionRequest(xml);
        } catch (ChilkatException e) {
            System.out.println("CSR has no extensionRequest.");
            return;
        }

        String xmlStr = xml.getXml();
        System.out.println(xmlStr);

        // Sample output:

        // <?xml version="1.0" encoding="utf-8"?>
        // <set>
        //     <sequence>
        //         <sequence>
        //             <oid>1.3.6.1.4.1.311.20.2</oid>
        //             <asnOctets>
        //                 <printable>ZATCA-Code-Signing</printable>
        //             </asnOctets>
        //         </sequence>
        //         <sequence>
        //             <oid>2.5.29.17</oid>
        //             <asnOctets>
        //                 <sequence>
        //                     <contextSpecific tag="4" constructed="1">
        //                         <sequence>
        //                             <set>
        //                                 <sequence>
        //                                     <oid>2.5.4.4</oid>
        //                                     <utf8>334623324234325</utf8>
        //                                 </sequence>
        //                             </set>
        //                             <set>
        //                                 <sequence>
        //                                     <oid>0.9.2342.19200300.100.1.1</oid>
        //                                     <utf8>310122393500003</utf8>
        //                                 </sequence>
        //                             </set>
        //                             <set>
        //                                 <sequence>
        //                                     <oid>2.5.4.12</oid>
        //                                     <utf8>0000</utf8>
        //                                 </sequence>
        //                             </set>
        //                             <set>
        //                                 <sequence>
        //                                     <oid>2.5.4.26</oid>
        //                                     <utf8>Sample E</utf8>
        //                                 </sequence>
        //                             </set>
        //                             <set>
        //                                 <sequence>
        //                                     <oid>2.5.4.15</oid>
        //                                     <utf8>Sample Business</utf8>
        //                                 </sequence>
        //                             </set>
        //                         </sequence>
        //                     </contextSpecific>
        //                 </sequence>
        //             </asnOctets>
        //         </sequence>
        //     </sequence>
        // </set>

        // Use this online tool to generate parsing code from sample XML:
        // Generate Parsing Code from XML
    }
}