Sample code for 30+ languages & platforms
Lua Requires Chilkat v9.5.0.91+

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.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

local csr = chilkat.Csr.new()

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

local fac = chilkat.FileAccess.new()
local csrPem = fac:read_entire_text_file("qa_data/csr/sample.pem", "utf-8")

local success = csr:load_csr_pem(csrPem)
if not success then
    print(csr.last_error_text)
    return
end

local xml = chilkat.Xml.new()

success = csr:get_extension_request(xml)
if not success then
    print("CSR has no extensionRequest.")
    return
end

local xmlStr = xml:get_xml()
print(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