Sample code for 30+ languages & platforms
PowerBuilder

Subject Alternative Name

See more Certificates Examples

Demonstrates the usage of the SubjectAlternativeName property to get the certificate SAN (subject alternative name) as XML.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Cert
string ls_SubjectAltNameXml
oleobject loo_Xml
string ls_Oid
string ls_Name
integer i
integer li_Count_i
string ls_Rfc822Name

li_Success = 0

// Note: Not all certificates contain a Subject Alternative Name.
// If it does not, the SubjectAlternativeName property will contain the empty string.

loo_Cert = create oleobject
li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert")
if li_rc < 0 then
    destroy loo_Cert
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_Cert.LoadFromFile("qa_data/certs/testIcpBrasil.cer")
if li_Success = 0 then
    Write-Debug loo_Cert.LastErrorText
    destroy loo_Cert
    return
end if

ls_SubjectAltNameXml = loo_Cert.SubjectAlternativeName

Write-Debug ls_SubjectAltNameXml

// Here's a sample of the subjectAltNameXml:

// <?xml version="1.0" encoding="utf-8"?>
// <SubjectAltName>
//     <name type="oid" oid="2.16.76.1.3.4">...</name>
//     <name type="oid" oid="2.16.76.1.3.2">...</name>
//     <name type="oid" oid="2.16.76.1.3.3">...</name>
//     <name type="oid" oid="2.16.76.1.3.7">...</name>
//     <rfc822Name>...</rfc822Name>
// </SubjectAltName>

// The XML can be parsed like this:

loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")

loo_Xml.LoadXml(ls_SubjectAltNameXml)

i = 0
li_Count_i = loo_Xml.NumChildrenHavingTag("name")
do while i < li_Count_i
    loo_Xml.I = i
    ls_Oid = loo_Xml.ChilkatPath("name[i]|(oid)")
    ls_Name = loo_Xml.GetChildContent("name[i]")
    i = i + 1
loop
ls_Rfc822Name = loo_Xml.GetChildContent("rfc822Name")


destroy loo_Cert
destroy loo_Xml