Sample code for 30+ languages & platforms
AutoIt

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

AutoIt
Local $bSuccess = False

$oCert = ObjCreate("Chilkat.Cert")

$bSuccess = $oCert.LoadFromFile("qa_data/certs/testIcpBrasil.cer")
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

; If the cert's Subject Alternative Name contains multiple values, each specified by an OID,
; then the Rfc822Name property returns XML.
Local $subjectAltNameXml = $oCert.Rfc822Name

ConsoleWrite($subjectAltNameXml & @CRLF)

; 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:

$oXml = ObjCreate("Chilkat.Xml")
$oXml.LoadXml($subjectAltNameXml)

Local $sOid
Local $sName

Local $i = 0
Local $iCount_i = $oXml.NumChildrenHavingTag("name")
While $i < $iCount_i
    $oXml.I = $i
    $sOid = $oXml.ChilkatPath("name[i]|(oid)")
    $sName = $oXml.GetChildContent("name[i]")
    ConsoleWrite($sOid & ": " & $sName & @CRLF)
    $i = $i + 1
Wend