Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) Load .crl, Convert to XML, Get Revoked Serial Numbers and DatesLoad 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.
integer li_rc oleobject loo_BdCrl integer li_Success oleobject loo_Asn oleobject loo_Xml integer i integer li_Count_i string ls_TagPath integer j integer li_Count_j integer k integer li_Count_k string ls_RevokedCertSerialHex string ls_DateRevoked oleobject loo_Dt // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Load a binary .crl file. loo_BdCrl = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_BdCrl.ConnectToNewObject("Chilkat.BinData") if li_rc < 0 then destroy loo_BdCrl MessageBox("Error","Connecting to COM object failed") return end if li_Success = loo_BdCrl.LoadFile("qa_data/crl/ca1.crl") if li_Success <> 1 then Write-Debug "Failed to load CRL file." destroy loo_BdCrl return end if loo_Asn = create oleobject // Use "Chilkat_9_5_0.Asn" for versions of Chilkat < 10.0.0 li_rc = loo_Asn.ConnectToNewObject("Chilkat.Asn") li_Success = loo_Asn.LoadBd(loo_BdCrl) if li_Success <> 1 then Write-Debug loo_Asn.LastErrorText destroy loo_BdCrl destroy loo_Asn return end if // Convert ASN.1 to XML and load into xml and re-emit for pretty printing.. loo_Xml = create oleobject // Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0 li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml") loo_Xml.LoadXml(loo_Asn.AsnToXml()) li_Success = loo_Xml.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 loo_Dt = create oleobject // Use "Chilkat_9_5_0.CkDateTime" for versions of Chilkat < 10.0.0 li_rc = loo_Dt.ConnectToNewObject("Chilkat.CkDateTime") i = 0 li_Count_i = loo_Xml.NumChildrenHavingTag("sequence") do while i < li_Count_i loo_Xml.I = i j = 0 li_Count_j = loo_Xml.NumChildrenHavingTag("sequence[i]|sequence") do while j < li_Count_j loo_Xml.J = j k = 0 li_Count_k = loo_Xml.NumChildrenHavingTag("sequence[i]|sequence[j]|sequence") do while k < li_Count_k loo_Xml.K = k // Get the revoked certificate's serial number in uppercase hex. ls_RevokedCertSerialHex = loo_Xml.GetChildContent("sequence[i]|sequence[j]|sequence[k]|int") Write-Debug "serial number: " + ls_RevokedCertSerialHex // Get the date/time revoked. It will be a string formatted as "YYMMDDhhmmssZ", such as "181023093028Z" ls_DateRevoked = loo_Xml.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: loo_Dt.SetFromTimestamp(ls_DateRevoked) Write-Debug "date revoked: " + loo_Dt.GetAsRfc822(0) k = k + 1 loop j = j + 1 loop i = i + 1 loop destroy loo_BdCrl destroy loo_Asn destroy loo_Xml destroy loo_Dt |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.