PureBasic
PureBasic
Convert CRL PEM to XML
See more PEM Examples
Loads a CRL (Certificate Revocation List) from the PEM file format and converts to XML to allow for visual examination and parsing.Note: This example requires Chilkat v9.5.0.77 or greater.
Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
IncludeFile "CkAsn.pb"
IncludeFile "CkPem.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; This example requires Chilkat v9.5.0.77 or greater.
pem.i = CkPem::ckCreate()
If pem.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkPem::setCkVerboseLogging(pem, 1)
success = CkPem::ckLoadPemFile(pem,"qa_data/crl/sampleCrl.pem","password_not_used")
If success <> 1
Debug CkPem::ckLastErrorText(pem)
CkPem::ckDispose(pem)
ProcedureReturn
EndIf
numCrls.i = CkPem::ckNumCrls(pem)
i.i = 0
asn.i = CkAsn::ckCreate()
If asn.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
While i < numCrls
; Get the CRL as base64 (multi-line)
crlBase64.s = CkPem::ckGetEncodedItem(pem,"crl","","base64_mime",i)
If CkPem::ckLastMethodSuccess(pem) <> 1
Debug CkPem::ckLastErrorText(pem)
CkPem::ckDispose(pem)
CkAsn::ckDispose(asn)
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
Debug crlBase64
success = CkAsn::ckLoadEncoded(asn,crlBase64,"base64")
If success <> 1
Debug CkAsn::ckLastErrorText(asn)
CkPem::ckDispose(pem)
CkAsn::ckDispose(asn)
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
; Convert ASN.1 to XML and load into xml and re-emit for pretty printing..
CkXml::ckLoadXml(xml,CkAsn::ckAsnToXml(asn))
Debug CkXml::ckGetXml(xml)
; Use this online tool to generate parsing code from CRL XML:
; Generate Parsing Code from XML
Debug "-------------------------------------"
i = i + 1
Wend
CkPem::ckDispose(pem)
CkAsn::ckDispose(asn)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure