Sample code for 30+ languages & platforms
PHP

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 PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Csr;
use Chilkat2\FileAccess;
use Chilkat2\Xml;

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$csr = new Csr();

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

$fac = new FileAccess();
$csrPem = $fac->ReadEntireTextFile('qa_data/csr/sample.pem', 'utf-8');

try {
    $csr->LoadCsrPem($csrPem);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

$xml = new Xml();

try {
    $csr->GetExtensionRequest($xml);
} catch (\Chilkat2\Exception $e) {
    echo "CSR has no extensionRequest.\n";
    exit;
}

$xmlStr = $xml->GetXml();
echo $xmlStr, "\n";

// 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