AutoIt
AutoIt
Load .crl, Convert to XML, Get Revoked Serial Numbers and Dates
See more Certificates Examples
Load a binary .crl file (Certificate Revocation List), converts to XML, and then gets the revoked certificate serial numbers and revocation dates.Note: This example requires Chilkat v9.5.0.77 or greater.
Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; Load a binary .crl file.
$oBdCrl = ObjCreate("Chilkat.BinData")
$bSuccess = $oBdCrl.LoadFile("qa_data/crl/ca1.crl")
If ($bSuccess <> True) Then
ConsoleWrite("Failed to load CRL file." & @CRLF)
Exit
EndIf
$oAsn = ObjCreate("Chilkat.Asn")
$bSuccess = $oAsn.LoadBd($oBdCrl)
If ($bSuccess <> True) Then
ConsoleWrite($oAsn.LastErrorText & @CRLF)
Exit
EndIf
; Convert ASN.1 to XML and load into xml and re-emit for pretty printing..
$oXml = ObjCreate("Chilkat.Xml")
$oXml.LoadXml($oAsn.AsnToXml())
$bSuccess = $oXml.SaveXml("qa_output/crl.xml")
; Use this online tool to generate parsing code from CRL XML:
; Generate Parsing Code from XML
; Here's code to parse the XML. This code was generated by the above tool,
; and then we modified it by removing unneeded code and changing some names
Local $i
Local $iCount_i
Local $sTagPath
Local $iJ
Local $iCount_j
Local $iK
Local $iCount_k
Local $sRevokedCertSerialHex
Local $sDateRevoked
$oDt = ObjCreate("Chilkat.CkDateTime")
$i = 0
$iCount_i = $oXml.NumChildrenHavingTag("sequence")
While $i < $iCount_i
$oXml.I = $i
$iJ = 0
$iCount_j = $oXml.NumChildrenHavingTag("sequence[i]|sequence")
While $iJ < $iCount_j
$oXml.J = $iJ
$iK = 0
$iCount_k = $oXml.NumChildrenHavingTag("sequence[i]|sequence[j]|sequence")
While $iK < $iCount_k
$oXml.K = $iK
; Get the revoked certificate's serial number in uppercase hex.
$sRevokedCertSerialHex = $oXml.GetChildContent("sequence[i]|sequence[j]|sequence[k]|int")
ConsoleWrite("serial number: " & $sRevokedCertSerialHex & @CRLF)
; Get the date/time revoked. It will be a string formatted as "YYMMDDhhmmssZ", such as "181023093028Z"
$sDateRevoked = $oXml.GetChildContent("sequence[i]|sequence[j]|sequence[k]|utctime")
; Starting in Chilkat v9.5.0.77, date/time strings formatted as YYMMDDhhmmssZ can be parsed as follows:
$oDt.SetFromTimestamp($sDateRevoked)
ConsoleWrite("date revoked: " & $oDt.GetAsRfc822(False) & @CRLF)
$iK = $iK + 1
Wend
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend