Sample code for 30+ languages & platforms
Lua

Subject Alternative Name for ICP Brasil Certs

See more Certificates Examples

Demonstrates how to access the multiple names contained in the Subject Alternative Name of a certificate. This example is for an ICP Brasil certificate.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local cert = chilkat.Cert.new()

local success = cert:load_from_file("qa_data/certs/testIcpBrasil.cer")
if not success then
    print(cert.last_error_text)
    return
end

-- If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
-- then the Rfc822Name property returns XML.
local subjectAltNameXml = cert.rfc822_name

print(subjectAltNameXml)

-- Here's a sample of the subjectAltNameXml:

-- <SubjectAltName>
--     <name type="oid" oid="2.16.76.1.3.4">290999653223955019700000000000000000000150424SRJUXPTS</name>
--     <name type="oid" oid="2.16.76.1.3.2">JOAO SILVA</name>
--     <name type="oid" oid="2.16.76.1.3.3">02408939000115</name>
--     <name type="oid" oid="2.16.76.1.3.7">000000000000</name>
-- </SubjectAltName>

-- The XML can be parsed like this:

local xml = chilkat.Xml.new()
xml:load_xml(subjectAltNameXml)

local oid = ""
local name = ""

local i = 0
local count_i = xml:num_children_having_tag("name")
while i < count_i do
    xml.i = i
    oid = xml:chilkat_path("name[i]|(oid)")
    name = xml:get_child_content("name[i]")
    print(oid .. ": " .. name)
    i = i + 1
end