Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

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
}

# If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
# then the Rfc822Name property returns XML.
set subjectAltNameXml [CkCert_rfc822Name $cert]

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

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]"]
    puts "$oid: $name"
    set i [expr $i + 1]
}

delete_CkCert $cert
delete_CkXml $xml