Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

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

set cert [new_CkCert]

set success [CkCert_LoadFromFile $cert "qa_data/certs/testIcpBrasil.cer"]
if {$success == 0} then {
    puts [CkCert_lastErrorText $cert]
    delete_CkCert $cert
    exit
}

set subjectAltNameXml [CkCert_subjectAlternativeName $cert]

puts "$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:

set xml [new_CkXml]

CkXml_LoadXml $xml $subjectAltNameXml

set i 0
set count_i [CkXml_NumChildrenHavingTag $xml "name"]
while {$i < $count_i} {
    CkXml_put_I $xml $i
    set oid [CkXml_chilkatPath $xml "name[i]|(oid)"]
    set name [CkXml_getChildContent $xml "name[i]"]
    set i [expr $i + 1]
}
set rfc822Name [CkXml_getChildContent $xml "rfc822Name"]

delete_CkCert $cert
delete_CkXml $xml