Sample code for 30+ languages & platforms
Delphi ActiveX

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 Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
pem: TChilkatPem;
numCrls: Integer;
i: Integer;
asn: TChilkatAsn;
xml: TChilkatXml;
crlBase64: WideString;

begin
success := 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 := TChilkatPem.Create(Self);

pem.VerboseLogging := 1;
success := pem.LoadPemFile('qa_data/crl/sampleCrl.pem','password_not_used');
if (success <> 1) then
  begin
    Memo1.Lines.Add(pem.LastErrorText);
    Exit;
  end;

numCrls := pem.NumCrls;
i := 0;

asn := TChilkatAsn.Create(Self);
xml := TChilkatXml.Create(Self);
while i < numCrls do
  begin

    // Get the CRL as base64 (multi-line)
    crlBase64 := pem.GetEncodedItem('crl','','base64_mime',i);
    if (pem.LastMethodSuccess <> 1) then
      begin
        Memo1.Lines.Add(pem.LastErrorText);
        Exit;
      end;

    Memo1.Lines.Add(crlBase64);

    success := asn.LoadEncoded(crlBase64,'base64');
    if (success <> 1) then
      begin
        Memo1.Lines.Add(asn.LastErrorText);
        Exit;
      end;

    // Convert ASN.1 to XML and load into xml and re-emit for pretty printing..
    xml.LoadXml(asn.AsnToXml());
    Memo1.Lines.Add(xml.GetXml());

    // Use this online tool to generate parsing code from CRL XML: 
    // Generate Parsing Code from XML

    Memo1.Lines.Add('-------------------------------------');
    i := i + 1;
  end;
end;